在Linux的开发有一条很经典的法则就是不要重复发明轮子,在Linux上面做东西如果说一切从头开始是没有必要的,因为是开源的,所以我们完全可以运用别人创建的东西完善自己的东西。
管道和重定向简单的理解就是对输出输入的数据进行再次操作,使之最后达到再求的结果和格式,因此这就涉及到了多个命令的配合操作,多命令的协作,各个程序之间实现交互。
Linux提供的管理与重定向就是通过多命令协作实现标准的输入输出。
管道重定向是为了规定shell标准输出的格式及输出位置
>指定结果输出位置(覆盖)
>>指定结果输出位置(追加)
2>指定标准错误的输出位置
2>&1将标准错误和标准输出结合在一起输出
<重定向标准输出 将指定文件导出显示
| 管道,将一个命令的标准输出作为一个命令的标准输入
ls -l | grep linuxcast
所有重定向到/dev/null文件的信息都会被自动丢掉
几个常用的例子:
1.将指定目录下的文件详细信息保存到1.txt文件中:
touch 1.txt | ls –al >1.txt
2.显示最近root用户的登录次数
last | grep root| wc –l
3.将 1.txt中的文件导出并查找包含了ssh的文件名称
ls –al <1.txt|find –name *ssh*
3.按ID反向排序查看所用户
sort
语法:[root @test /root ]# sort [-t 分隔符] [(+起始)(-结束)] [-nru]
参数说明:
-t 分隔符:使用分隔符来隔开不同区间,预设是tab
+start -end:由第 start 区间排序到 end 区间
-n :使用『纯数字』排序(否则就会以文字型态来排序)
-r :反向排序
-u :相同出现的一行,只列出一次!
cat /etc/passwd | sort –t :+2 -3 –r
4.将该系统上所有用户的名称追加到表1.txt文件中
cut
语法:[root @test /root ]# cut -d "分隔字符" [-cf]fields
参数说明:
-d :后面接的是用来分隔的字符,预设是『空格符』
-c :后面接的是『第几个字符』
-f :后面接的是第几个区块?
cat /etc/passwd |cut –d “:” –f 1>>1.txt