grep是行的过滤工具,主要是截取行
grep --color=auto 'root' passwd //
alias grep='grep --color=auto' //别名定义显示颜色
vim /etc/bashrc //修改配置文件让每次输入grep都是可以显示颜色
source /etc/bashrc //让配置立即生效
![](https://i-blog.csdnimg.cn/blog_migrate/b0d717f28085093def5d5c3e61484f23.png)
grep -n 'root' passwd //-n:显示行号
grep -ni 'root' passwd //-i:不区分大小写
grep '^root' passwd //^:以什么开头
grep 'root$' passwd //以什么结尾
grep -niv '^root' passwd //过滤出 -v(取反)不以root开头的文件
grep -nB 3 '^ftp' passwd //过滤以ftp开头的前3行(包括本身)
grep -nA 3 '^ftp' passwd //过滤ftp开头的后三行(包括本身)
grep -nC 3 '^ftp' passwd //过滤以ftp开头的前后三行(包括本身)
-w:按单词搜索 -o:打印匹配的关键字
![](https://i-blog.csdnimg.cn/blog_migrate/1c785037f93d81e1e8e5d83615b37878.png)
cut是列的过滤工具,主要是截取列
cut -d: -f1 passwd //以:为分隔符截取passwd的第一列
![](https://i-blog.csdnimg.cn/blog_migrate/ae4eed530753c53565e4bc9d809c3338.png)
cut -d: -f1,7 passwd |head //管道命令过滤passwd的前10行,然后截取第一列和第七列
![](https://i-blog.csdnimg.cn/blog_migrate/be158a2d85c2d49cb0088f2d77b350f2.png)
cut -c1-5 passwd //以1到5个字符过滤 -c10-:每一行的第10个字符开始截取
![](https://i-blog.csdnimg.cn/blog_migrate/4979f1027565f6146fe8095bd949ee38.png)
sort工具(排序)
sort -n -t: -k3 1.txt //按第三列的uid升序截取1.txt
sort -nr -t: -k3 1.txt //-r:降序排列
>:=1> :标准输出重定向 2是错误输出
-o:标准输出重定向
-u:去重
![](https://i-blog.csdnimg.cn/blog_migrate/035492cc5bf159158ab8c77d035e5587.png)
![](https://i-blog.csdnimg.cn/blog_migrate/88299c88aa92fc55f62f889410064af6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dd4a933685a95626e150105f53c28247.png)
uniq工具:只去除连续的重复行
uniq 文件名
-c:显示重复行的次数
-d:只显示重复行
![](https://i-blog.csdnimg.cn/blog_migrate/b6f86e153fef41244cbe2c63a5011194.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8c3333a7f32674371c9609ddb85791e5.png)
tee工具:输出屏幕输入覆盖
-a:追加
![](https://i-blog.csdnimg.cn/blog_migrate/0c1aa744b2581cafc5402591951887af.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2198663d6b6f04a2ac9295d4788d9a22.png)
diff工具:对比两个文件的区别
>file:清空内容
paste工具:合并两个文件内容行
paste file1 file2 //合并两个文件内容行(第一个文件和第二个文件的每行都会按顺序合并)
![](https://i-blog.csdnimg.cn/blog_migrate/b9dd71440f0aa17a0953c8b59de375a7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a59557da33ca67eea578252c7c7f05d1.png)
tr工具:替换显示文件内容
tr '0-9' '@'<filename //0-9表示所有的数字 【a-zA-Z0-9】表示所有数字和字母
tr -d '[:/]' <filename //删除:和/
cat filename |tr '[:/]' //删除:和/
tr 'a-z' 'A-Z' <filename //把小写字母替换成大写
![](https://i-blog.csdnimg.cn/blog_migrate/ea684e6dd6e7d605e250119e25d68efd.png)
常用的通配符:
*:0个或多个任意字符
?:匹配任意单个字符
[]:匹配任意单个字符或者一组字符
{}:匹配字符串或{1..9}匹配1到的文件
![](https://i-blog.csdnimg.cn/blog_migrate/16586f2fe2bbaf9694510a884694ef3b.png)
bash中的引号:
" ":把引号内容看成整体,可以和$使用
'':把引号内容看成整体,禁止和变量使用
反撇号``:和$()一样,引号和括号里面的内容会优先执行,但是不支持嵌套
![](https://i-blog.csdnimg.cn/blog_migrate/8150856ba8deedd00178c59218546fcb.png)