2.1 用cat进行拼接
1 cat命令是一个日常会使用到的简单命令,cat本身表示concatenate(拼接)
2 用cat读取文件的一般格式是
cat file1 file2 file3.... // 这个命令将命令行参数的文件内容拼接在一起输出
3 cat命令不仅可以读取文件并拼接数据,它还能够从标准输入中进行读取。要从标准输入中读取,就要使用管道
stand_ouput | cat
4 cat命令可以用来压缩多个空行,使得被压缩成为单个
cat -s file
5 tr命令也可以把多个的'\n'字符压缩成为单个'\n'
6 cat命令的-n选项会在输出的每一行内容之前加上行号,但是这个并不会修改文件的内容
2.2 录制与回放终端会话
1 script和scriptreplay命令在绝大多数GNU/Linux发行版本上面都可以找到
2 scritp命令同样可以用于建立多个用户之间的进行广播的视频会话
第一步:打开两个终端T1和T2
第二步:在T1中输入mkfifo scriptfifo
第三步:在T2中输入以下命令cat scriptfifo
第四步:在T1中输入以下命令script -f scriptfifo
第五步:在T1中输入的commands都可以在T2中看到
2.3 文件查找与文件列表
1 find是UNIX/Linux命令行工具箱中最棒的工具之一
2 find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作
3 要列出当前目录及子目录下的所有文件以及文件夹:find base_bash
4 find命令的两个重要的参数
-print 指明打印匹配文件的文件名,当使用-print的时候,'\n'做为分割文件的定界符
-print0 指明使用'\0'作为定界符来打印每一个匹配的文件名
5 根据文件名或正则表达式匹配搜索,-name的参数指定了文件名所匹配的字符串。
比如 find . -name "*.txt" -print // 命令查找当前目录下的所有txt文件并打印出来
6 find命令有一个选项-iname,该选项的作用和-name类似,但是匹配的时候会忽略大小写
7 find命令也可以用!来否定参数意思
find . ! -name "*.txt" -print // 命令的作用是找出当前目录下的所有非txt文件
8 find命令在使用时候会遍历所有的子目录,我们可以采用深度参数来限制find命令的遍历深度。
-maxdepth和-mindepth指定最大的递归深度以及最少的递归深度(从哪一层开始向下搜索)
9 -maxdepth和-mindepth应该做为find的第三个参数出现,这样就可以第一时间限制搜索的条件,效率会提高的很多
10 类UNIX系统将所有的一切都视为文件,文件具有不同的类型,例如普通文件,目录,字符设备,块设备,符号链接,硬链接,套接字以及FIFO等
11 find命令的-type选项可以对文件搜索进行过滤
12 type参数来匹配所需要的文件类型
文件类型 类型参数
普通文件 f
符合链接 l
目录 d
字符设备 c
块设备 b
套接字 s
fifo p
13 删除匹配的文件,-delete可以用来删除find查找到的匹配文件
find . -type f -name "*.txt" -delete // 命令的作用是find找出当面目录下的所有txt文件,然后删除
14 基于文件权限和所有权进行搜索
find . -type f -name "*.txt" -perm 644 -print // 命令的作用是找到当前目录下所有权限为644的txt文件
2.4 用tr进行转换
1 tr可以用来对标准输入的字符进行替换,删除以及压缩,它可以将一组字符变成另一组字符,因而通常也被称为转换命令
2 tr只能通过stdin,而无法通过命令行参数来接受输入。
tr [options] set1 set2 // 将来自stdin的输入字符从set1映射到set2,并将其输入到stdout。
set1和set2是字符类或字符集,如果两个字符集的长度不相等,那么set2会不断重复其最后一个字符直到和set1长度相等,如果set2长度大于set1那么在set2中超出set1的部分长度就全部忽略
3 将输入字符由大写转换成小写 ,可以使用以下命令
echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z' // 'A-Z和‘a-z’都是集合
4 tr有一个选项-d可以通过指定需要被删除的字符集合,将出现的stdin中的特定字符删除
echo "Hello 13 world 345" | tr -d '0-9' // 命令可以将stdin中的数字删除并输出
5 我们可以利用选项-c来使用set1的补集,-c set1等同于定义了一个集合,这集合中的字符不包含在set1中
6 tr可以像使用集合一样使用各种不同的字符类,这些字符类型如下所示
alnum: 字母和数字
alpha: 字母
cntrl: 控制字符
digit: 数字
graph: 图形字符
lower: 小写字母
print: 可打印字符
punct: 标点符号
space: 空白字符
upper: 大写字母
xdigit: 十六进制字符
7 可以按照下面的方式选择要使用的字符集: tr [:class1:] [:class2:]
2.5 排序,单一和重复
1 sort命令既可以从特定文件也可以从stdin中获取输入,并将输入写入stdout,uniq的工作模式和sort一样
2 我们可以按照下面的方式轻松的对一组文件进行排序
sort file1 file2 file3 ... > sorted // 命令把多个文件排序然后重定向到sorted
3 按数字进行排序: sort -n file
按逆序进行排序: sort -r file
按月份进行排序: sort -M file
4 如果需要合并两个排过序的文件,而且不需要对合并后的文件再进行排序,可以使用
sort -m sorted1 sorted2
5 uniq命令通过消除重复内容,从给定输入中找出单一的行。它也可以用来找出输入中出现的重复行
6 uniq只能用于排过序的数据输入,因此uniq要么使用管道,要么使用排过序的文件做为输入
只显示唯一的行: uniq -u sorted
统计个行中出现的次数: uniq -c sorted
找出文件中重复的行: uniq -d sorted
2.6 分割文件和数据
1 生成一个大小为100KB的测试文件
dd if=/dev/zero bs=100K count=1 of=data.file
上面的命令会创建一个大写为100KB的文件内容全部都是0
2 我们可以指定分割大小,将文件分割成多个更小的文件
split -b 10k data.file // 这个命令将data.file分割成多个文件,每个文件大小为10KB
2.7 根据扩展名切分文件名
1 借助%我们可以轻松将名称部分从“名称.扩展名"这种格式的文件名中提取出来
2 ${var%.*}的含义是
第一:从$var中删除位于%右侧的通配符所匹配的字符串,通配符从右向左进行匹配
第二:给var进行赋值,var=sample.jpg,那么通配符从右向左匹配到.jpg,因此删除之
3 %属于非贪婪操作,它从右到左匹配通配符的最短结果。还有一个是%%是贪婪的,匹配最长的结果
4 类似的#和%的一样,就是它的匹配是从左到右,属于非贪婪操作
那么##和%%类似
分享到:
相关推荐
《Linux shell 脚本攻略-第二版》是一本深受赞誉的书籍,旨在帮助读者深入理解并掌握Shell脚本编程。这本书的源代码合集提供了丰富的实例,供读者实践和学习。 Shell脚本的基础在于Bash(Bourne-Again SHell),它...
本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍了Shell脚本的编写技巧和实战应用,非常适合对Linux感兴趣的初学者学习。 **Shell脚本基础** 1. **Shell介绍**:Shell是Linux的命令解释器,它提供了一个与...
Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...
Linux Shell脚本攻略(第2版) (图灵程序设计丛书) linux shell脚本攻略 电子书
Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...
Linux Shell脚本攻略是一本专为想要深入理解并掌握Linux Shell编程技术的读者精心编写的指南。Shell脚本是Linux操作系统中的强大工具,它允许用户通过编写简单的命令行指令组合来自动化日常任务,提高工作效率。这...
"Linux Shell 脚本攻略 中文 第三版和源码"提供了全面的学习资源,帮助你深入理解并熟练掌握Shell脚本编程。 首先,让我们了解什么是Linux Shell。Linux Shell是操作系统内核与用户交互的界面,它是命令行解释器,...
《Linux Shell脚本攻略(第二版)》是一本详尽阐述Linux Shell脚本编程的权威指南,适合初学者和有经验的系统管理员阅读。这本书深入浅出地介绍了如何利用Shell脚本来自动化日常的Linux系统任务,提升工作效率。通过...
在“Linux Shell脚本攻略(第2版).pdf”中,读者可以期待学习以下内容: 1. **Shell基础**:了解各种常用的Shell类型,如Bash、Sh、Csh等,以及它们之间的区别。学习如何设置环境变量、控制流程(如if条件语句、...
**Linux Shell 脚本攻略** 在信息技术领域,Linux Shell脚本是系统管理员和程序员们进行自动化任务处理的重要工具。Shell脚本允许用户通过编写简单的命令序列来执行一系列复杂的操作,极大地提高了工作效率。本攻略...
Linux Shell脚本是一种在Linux操作系统环境下执行的命令行脚本,它允许用户通过编写一系列的命令来自动化系统任务。Shell脚本是Linux环境中的强大工具,尤其对于系统管理员和开发者而言,能有效提高工作效率。本资源...
根据提供的文件信息,“LINUX+SHELL脚本攻略.pdf”似乎是一份关于Linux系统下的Shell脚本编程指南。这里我们将从几个方面对这份资料可能涵盖的关键知识点进行总结与扩展。 ### Linux简介 Linux是一种免费开放源...
一款相当好用的shell攻略,很适合初学shell脚本的人群使用
这份资源包含"Linux Shell脚本攻略中文版"的PDF文档以及一本名为"Linux Shell Scripting Cookbook"的英文电子书,还有"linux+shell+script.rar"的压缩包,很可能包含了更多实用的Shell脚本示例和资料。 "Linux ...
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
**Linux Shell脚本攻略概述** Linux Shell脚本是Linux操作系统中一种强大的自动化工具,它允许用户通过编写一系列命令来执行批量任务,简化日常操作。在Linux世界里,Shell脚本对于开发人员、测试人员和运维人员来...
《Linux Shell脚本攻略》第三版是一本专为Linux用户和开发者设计的详细教程,旨在帮助读者掌握编写高效、实用的Shell脚本的技能。Shell脚本是Linux系统中的强大工具,它允许用户通过编程的方式来自动化执行一系列...
Linux Shell脚本攻略第二版是一本专为Linux用户和管理员设计的指南,旨在帮助读者深入理解和掌握Shell脚本编写技术。Shell脚本是Linux系统中不可或缺的自动化工具,它允许用户通过编写简单的或复杂的命令序列来执行...
《LINUX SHELL脚本攻略 中文版》是一本针对Linux系统中SHELL脚本编程的实战指南,旨在帮助读者掌握高效、实用的SHELL脚本编写技巧。书中的内容覆盖了从基础知识到高级应用,通过解决110多个实际问题,展示了作者的...
Linux Shell脚本攻略,作为一款深受用户欢迎的学习资源,尤其对于初学者而言,它提供了一个系统且详尽的教程,帮助读者深入理解并掌握Linux Shell编程。Shell脚本是Linux操作系统中的一种强大工具,用于自动化执行一...