命令 | 说明 |
---|---|
awk | 用于文本处理的解释性程序设计语言,通常被作为数据提取和报告的工具。 |
cut | 用于将每个输入文件(如果没有指定文件则为标准输入)的每行的指定部分输出到标准输出。 |
grep | 用于搜索一个或多个文件中匹配指定模式的行。 |
tar | 用于归档文件的应用程序。 |
head | 用于读取文件的开头部分(默认是 10 行)。如果没有指定文件,则从标准输入读取。 |
paste | 用于合并文件的行。 |
sed | 用于过滤和转换文本的流编辑器。 |
sort | 用于对文本文件的行进行排序。 |
split | 用于将文件分割成块。 |
strings | 用于打印文件中可打印的字符串。 |
tac | 与 cat 命令的功能相反,用于倒序地显示文件或连接文件。 |
tail | 用于显示文件的结尾部分。 |
tee | 用于从标准输入读取内容并写入到标准输出和文件。 |
tr | 用于转换或删除字符。 |
uniq | 用于报告或忽略重复的行。 |
wc | 用于打印文件中的总行数、单词数或字节数。 |
[task.lmcjl.com]$ awk -F: '{print $1}' /etc/passwd | sort adm apache avahi avahi-autoipd bin daemon dbus ftp games ...在上例中,使用冒号
:
作为列分隔符,将文件 /etc/passwd 的内容分为了多列,并打印了第一列的信息(即用户名),然后将输出通过管道发送到了 sort 命令。
[task.lmcjl.com]$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head 140 echo 75 man 71 cat 63 su 53 ls 50 vi 47 cd 40 date 26 let 25 paste在上例中,history 命令将输出通过管道发送到 awk 命令,awk 命令默认使用空格作为列分隔符,将 history 的输出分为了两列,并把第二列内容作为输出通过管道发送到了 sort 命令,使用 sort 命令进行排序后,再将输出通过管道发送到了 uniq 命令,使用 uniq 命令 统计了历史命令重复出现的次数,再用 sort 命令将 uniq 命令的输出按照重复次数从高到低排序,最后使用 head 命令默认列出前 10 个的信息。
[task.lmcjl.com]$ free | grep Mem | awk '{print $2}' 2029860
[task.lmcjl.com]$ grep "bin/bash" /etc/passwd | cut -d: -f1,6 root:/root mozhiyan:/home/mozhiyan如果你对 Linux 系统有所了解,你会知道,/ctc/passwd 文件被用来存放用户账号的信息,此文件中的每一行会记录一个账号的信息,每个字段之间用冒号分隔,第一个字段即是账号的账户名,而第六个字段就是账号的主目录的路径。
[task.lmcjl.com]$ cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz上例中,执行命令
cat /proc/cpuinfo | grep name
得到的内容如下所示:
[task.lmcjl.com]$ cat /proc/cpuinfo | grep name model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz model name : Intel(R) Core(TM) i5-2520M CPU 0 2.50GHz然后,我们使用 cut 命令将上述输出内容以冒号作为分隔符,将内容分为了两列, 并显示第二列的内容,最后使用 uniq 命令去掉了重复的行。
[task.lmcjl.com]$ ls -l | cut -c 1 | grep d | wc -l 5上述管道命令主要做了如下操作:
ls -l
输出的内容中,每行的第一个字符表示文件的类型,如果第一个字符是d
,就表示文件的类型是目录。cut -c 1
是截取每行的第一个字符。grep d
来获取文件类型是目录的行。wc -l
用来获得 grep 命令输出结果的行数,即目录个数。[task.lmcjl.com]$ grep -i "error:" /var/log/messages | less
[task.lmcjl.com]$ ps auxwww | grep httpd apache 18968 0.0 0.0 26472 10404 ? S Dec15 0:01 /usr/sbin/httpd apache 18969 0.0 0.0 25528 8308 ? S Dec15 0:01 /usr/sbin/httpd apache 18970 0.0 0.0 26596 10524 ? S Dec15 0:01 /usr/sbin/httpd
[task.lmcjl.com]$ ls /bin /usr/bin | sort | uniq | grep zip bunzip2 bzip2 bzip2recover gunzip gzip
[task.lmcjl.com]$ rpm -qa | grep kernel kernel-2.6.18-92.e15 kernel-debuginfo-2.6.18-92.e15 kernel-debuginfo-common-2.6.18-92.e15 kernel-devel-2.6.18-92.e15
[task.lmcjl.com]$ find /etc -type f -exec grep '[0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*' {} \;
[task.lmcjl.com]$ tar cf - /home/mozhiyan | ( cd /backup/; tar xf - )
[task.lmcjl.com]$ tar cf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xf - )"
[task.lmcjl.com]$ tar czf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xzf - )"
[task.lmcjl.com]$ cd /; tar cf - etc | wc -c 215040
[task.lmcjl.com]$ tar czf - etc.tar | wc -c 58006
[task.lmcjl.com]$ tar cjf - etc.tar | wc -c 50708
[task.lmcjl.com]$ ls /usr/bin | head addftinfo afmtodit apropos arch ash awk base64 basename bash bashbug
[task.lmcjl.com]$ ls / | head -n 5 bin cygdrive Cygwin.bat Cygwin.ico Cygwin-Terminal.ico
[task.lmcjl.com]$ cat testfile This line occurs only once. This line occurs twice. This line occurs twice. This line occurs three times. This line occurs three times. This line occurs three times.
[task.lmcjl.com]$ sort testfile | uniq This line occurs only once. This line occurs three times. This line occurs twice.
[task.lmcjl.com]$ sort testfile | uniq -c | sort -nr 3 This line occurs three times. 2 This line occurs twice. 1 This line occurs only once.
[task.lmcjl.com]$ who | wc -l
[task.lmcjl.com]$ ps -ef | wc -l
本文链接:http://task.lmcjl.com/news/7177.html