正则表达式--能更准确的找出我们需要的数据信息。
1、对文本文件的操作
diff - 报告文件差异 diff和patch是配套使用的,和updatedb与locate一样;
aa.patch可以是两版软件的差异文件;内核的大小约为:300M
uniq -去除文件相邻的重复行
cut -只显示文件中的某一列
sort -按序重排
wc -统计文件的 行、词、字数
. 任意一个字符
* 任意多个字符
a* 任意多个a,可以是0
.* 任意多个任意字符
\. \* 脱义字符
^hi 以hi开头 一行
grep '^shrek' 以shrek开头
shrek$ 以shrek结尾 一行
grep 'shrek$' 以shrek结尾
\<s..k\>单词以s开头,以k结尾,中间有任意两个字符;
grep 's.*k' /etc/passwd 以s开头,中间任意个字符,然后以K结尾的字符显示出来;
\<aaa 单词单独以aaa开头
a\{18\} a重复18次;
i18n 把所有国家的语言排一下,同一管理,命令如下:
grep '^i.\{18\}n$' /etc/share/dict/words
查看世界上最长的单词:
vi /usr/share/dict/words
grep '.\{40,50\}' !$ 字符出现的次数为40-50之间
结果为:pneumomoultramicroscopicsilicovvolcanocomiosis //表示尘肺病,是英语中最长的单词,46个!
grep '.\{40\}' 只出现40次
grep '.\{40,\}' 出现40次以上
grep '^[abc]' /etc/passwd 以a或者b或者c开头的显示
grep '^[^a-s]' /etc/passwd 不是以a-s开始 的行
删除一些配置文件的#开头和空格
sed -e '/^#/d' -e '/^$/d' /etc/squid/squid.conf
grep -v '^#' /etc/squid/squid.conf |grep -v '^$' |wc -l
vi %s/old/new/g 将全文的old替换为new;
cat 全部显示
more 只能向下看
less 可以上下翻滚看
head 默认头10行
tail 末尾10行
tail -f /var/log/message 可以检测日志信息;如果我们重启serivce httpd restart ,这里就会实时显示信息;
cut -d: -f2-4 /etc/passwd | grep sherk 第2-4段显示出来
cut -c1-5 /etc/passwd 将第1-5个字符显示
将第三列按顺序来排序:
sort -t: +2 -n /etc/passwd
-n 以数字显示
-r 反向排序
-t:以:作为分隔符
+3 从第三列开始排序
du | sort -n -r 按文件大小反向排序;
du | sort -n -r | head -n 3 | cut -f2
wc -l -w -c 行,单词,字符
统计/etc/passwd中用的shell的种类数并显示:
cut -d: -f7 /etc/passwd | sort | uniq | wc -l