《鸟哥的Linux私房菜》读书笔记4

1. grep查找
grep 'string' filename;
last | grep 'root';
以行为单位。
利用参数-i(忽略大小写),-v(反相)等进行正则表达式;
‘’中可以为正则表达式。
2. 正则表达特别的
空行'^$',即只有行首和行尾;'^a'表示以a开头,'b$'表示以b结尾。
*表示重复前面的0个或多个字符;
a*,aa*,分别匹配<space>,a,aa,...和a,aa,aaa...,即aa*匹配者必须有一个a;
.表示除本身外任意字符,\.表示.。
3. 在shell中{和}具有特殊意义,故正则匹配n个字符时,需要转义{和}:
\{n\}。
4. []表示一个:[a]
减号-表示连续:[0-9]
括号中的^表示反相:[^A-Z],非大写字母。
开始时的^表示开头;
5. sed工具(stream editor)
sed -e '2,5s/A/B/g',将第2到5行中的A替换为B,/g全部替换。
s,替换;a,添加;d,删除;c,取代;i,插入;
A,B可以是正则表达式。
6. awk命令
awk处理以空格或者Tab间隔的行内数据;
last | awk '{print $1 "\t" $4}',该命令表示列出登录用户名和登录星期,两者Tab隔开。
其中$1表示第一块行数据,$2第二块,...,$0表示整个行数据。
awk有几个变量:
NF表示改行有多少字段,即多少列;NR表示正在处理的行号;
FS代表分割字符,默认空格,可以{FS=":"}修改。
awk可以处理逻辑运算:
last | awk '$1=="ltn" {print $1}'
输出行第一字段为ltn的第一地段。
注意:因为awk先读取第一行,而后处理预设条件等,因此可能第一行是个例外,此时需要先调用BEGIN命令。
7. 一些命令
printf,格式输出;
last最后登录者,30分钟自动刷新;
ifconfig,IP等网络信息。
8. 比较两个文件diff,cmp
diff text.txt text1.txt,比较详细列举不同之处,以行作单位;
cmp text.txt text1.txt,默认列举第一处不同,以位作单位。






 

posted @ 2015-06-06 07:19  ITRoad  阅读(237)  评论(0编辑  收藏  举报