grep

g/re/p(globally search a regular expression and print),使用正则表示式进行全局查找并打印。

  1. $ grep [-acinv] [--color=auto] 搜寻字符串 filename
  2. -c : 统计个数
  3. -i : 忽略大小写
  4. -n : 输出行号
  5. -v : 反向选择,也就是显示出没有 搜寻字符串 内容的那一行
  6. --color=auto :找到的关键字加颜色显示

示例:把含有 the 字符串的行提取出来(注意默认会有 —color=auto 选项,因此以下内容在 Linux 中有颜色显示 the 字符串)

  1. $ grep -n 'the' regular_express.txt
  2. 8:I can't finish the test.
  3. 12:the symbol '*' is represented as start.
  4. 15:You are the best is mean you are the no. 1.
  5. 16:The world Happy is the same with "glad".
  6. 18:google is the best tools for search keyword

因为 { 和 } 在 shell 是有特殊意义的,因此必须要使用转义字符进行转义。

  1. $ grep -n 'go\{2,5\}g' regular_express.txt

printf

用于格式化输出。它不属于管道命令,在给 printf 传数据时需要使用 $( ) 形式。

  1. $ printf '%10s %5i %5i %5i %8.2f \n' $(cat printf.txt)
  2. DmTsai 80 60 92 77.33
  3. VBird 75 55 80 70.00
  4. Ken 60 90 70 73.33

awk

是由 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 创造,awk 这个名字就是这三个创始人名字的首字母。

awk 每次处理一行,处理的最小单位是字段,每个字段的命名方式为:$n,n 为字段号,从 1 开始,$0 表示一整行。

示例:取出最近五个登录用户的用户名和 IP

  1. $ last -n 5
  2. dmtsai pts/0 192.168.1.100 Tue Jul 14 17:32 still logged in
  3. dmtsai pts/0 192.168.1.100 Thu Jul 9 23:36 - 02:58 (03:22)
  4. dmtsai pts/0 192.168.1.100 Thu Jul 9 17:23 - 23:36 (06:12)
  5. dmtsai pts/0 192.168.1.100 Thu Jul 9 08:02 - 08:17 (00:14)
  6. dmtsai tty1 Fri May 29 11:55 - 12:11 (00:15)
  1. $ last -n 5 | awk '{print $1 "\t" $3}'

可以根据字段的某些条件进行匹配,例如匹配字段小于某个值的那一行数据。

  1. $ awk '条件类型 1 {动作 1} 条件类型 2 {动作 2} ...' filename

示例:/etc/passwd 文件第三个字段为 UID,对 UID 小于 10 的数据进行处理。

  1. $ cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3}'
  2. root 0
  3. bin 1
  4. daemon 2

awk 变量:

变量名称 代表意义
NF 每一行拥有的字段总数
NR 目前所处理的是第几行数据
FS 目前的分隔字符,默认是空格键

示例:显示正在处理的行号以及每一行有多少字段

  1. $ last -n 5 | awk '{print $1 "\t lines: " NR "\t columns: " NF}'
  2. dmtsai lines: 1 columns: 10
  3. dmtsai lines: 2 columns: 10
  4. dmtsai lines: 3 columns: 10
  5. dmtsai lines: 4 columns: 10
  6. dmtsai lines: 5 columns: 9

其他命令

1. ifconfig

查看当前系统的网卡信息。

2. ping

查看与某台机器的连接情况。

3. shutdown

关机。

  1. shutdown -h now
  2. # 指定现在立即关机
  1. shutdown +5 "System will shutdown after 5 minutes"
  2. # 指定5分钟后关机,同时送出警告信息给登入用户

4. reboot

重新开机。