I/O重定向
Linux
> :覆盖输出
>>:追加输出
set -C :禁止对已经存在内容的文件使用覆盖定向功能;开启该功能后,依然想强制覆盖输出,则使用>|
set +C :关闭上述功能
2> :重定向错误输出
2>>:追加方式重定向错误输出
&> :重定向标准输出或错误输出至同一文件
< :输入重定向
<<:Here Document
管道 :前一个命令的输出作为另一个命令的输入。
命令1 | 命令2 | 命令3 |...
tee :显示并保存至文件
练习:
1、统计/usr/bin/目录下的文件个数
ls /usr/bin | wc -l
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示
cut -d: -f7 /etc/passwd |uniq -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 /etc/pa* | wc -l
7、不使用文本编辑器,将alias clr=clear 一行内容添加到当前用户的.bashrc文件中
echo "alias clr=clear" >> ~/.bashrc
文本查找:grep,egrep,fgrep
grep: Global Reasearch 根据模式,搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正则表达的元字符组合而成的匹配条件
grep:
使用基本正则表达式定义的模式来过滤文本的命令
[OPTIONS] PATTERN [FILE...]
-i : 忽视大小写
--color :突出显示 (alias "grep=grep --color")
-v :显示没有被匹配的行
-o :只显示被模式匹配的字符串
-E 使用扩展正则表达式
-A #:显示被模式匹配行及其后#行(#表示数字)
-B #:显示被模式匹配行及其前#行(#表示数字)
-C #:显示被模式匹配行及其前后#行(#表示数字)
eg: grep 'n' -B 2 ~/test/1.txt