linux-管道及IO重定向

(1)I/O重定向:
Linux:
>: 覆盖输出
>>:追加输出

(2)
set -C: 禁止对已经存在文件使用覆盖重定向;
强制覆盖输出,则使用 >|
set +C: 关闭上述功能

(3)
2>: 重定向错误输出
2>>: 追加方式

(4)
&>: 重定向标准输出或错误输出至同一个文件

例:ls /var &> /tmp/a.txt

(5)
<:输入重定向

//<<不是追加重定向。
<<:Here Document 此命令的含义是:在此处生成文档。(不存在<<重定向)

例:cat << END //输入END时,输入结束。
cat << EOF ///输入EOF时,输入结束。
cat >> /tmp/myfile.txt <<EOF //可用于在脚本中生成文档

(6)
管道:前一个命令的输出,作为后一个命令的输入

命令1 | 命令2 | 命令3 | ...
例:
文件名显示为大写: ls /var | tr 'a-z' 'A-Z'


(7) tee命令 读取标准输入写到标准输出和文件。
例:echo "Hello,World" | tee /tmp/hello.out //屏幕上会输出,文件中也会存一份。

例:只显示行数,不显示文件名:wc -l /etc/passwd | cut -d' ' -f1

例:
1、统计/usr/bin/目录下的文件个数;
# ls /usr/bin | wc -l
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
# cut -d: -f7 /etc/passwd | sort -u
3、思考:如何显示/var/log目录下每个文件的内容类型?
file /var/log/*
4、取出/etc/inittab文件的第6行;
# head -6 /etc/inittab | tail -1
5、取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;
# tail -9 /etc/passwd | head -1 | cut -d: -f1,7 | tee /tmp/users
6、显示/etc目录下所有以pa开头的文件,并统计其个数;
# ls -d /etc/pa* | wc -l
7、不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中;
# echo "alias cls=clear" >> ~/.bashrc

posted @ 2018-07-14 23:27  山的那一边  阅读(275)  评论(0编辑  收藏  举报