cat /etc/passwd
使用这条命令会立即讲文本内容一股脑的显示出来,在虚拟终端下讲不能看到上一页的内容,所以非常不友好,这条命令使用的比较少。
more命令和less命令都提供了分页功能,但是more一旦到达文件尾部,就会自动退出程序,less命令则不然,它到达文件尾部之后也不会退出程序,还能够翻到上一页,所以使用less命令比较多。
实际上man命令内部就是调用了less命令打开文档的,所以在man中能够使用的所有快捷键都能在less中使用,比如向下翻一屏、向上翻一屏、翻半屏、查找关键字、退出等都和man相同,不赘述。
tail命令的详细说明:http://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html#tail-invocation
tail命令和head命令都能使用-c或者-n的用法,这两种使用方法也是最常用的:
tail -n :显示倒数n行数据 -c :显示倒数n个字节
示例:
kdyzm@kdyzm:~$ tail -n 2 /etc/passwd lightdm:x:119:126:Light Display Manager:/var/lib/lightdm:/bin/false kdyzm:x:1000:1000:kdyzm,,,:/home/kdyzm:/bin/bash
如果没有指定-n和-c,则默认显示10行。
特殊用法:
tail -f #该命令能够动态等待其他线程向文件追加数据并显示之。
tail -f名命令执行之后线程就会处于等待状态如果其他线程想该文件中追加了数据,则直接将追加的数据显示出来,这种功能对于日志的查看非常有用。
cut
数据库实际上就是一张张的表,表结构实际上就是行与列,这种结构在文本文件中也能够实现,比如/etc/passwd文件,它使用分隔符‘:‘将一个个的字段分割开如下所示:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin ......
如果想要查看某一列的信息或者某几列的信息该怎么办呢?cut命令解决了这个问题
cut -d CHARACTER #指定分隔符 -f n1,n2... #指定第几列
示例:
kdyzm@kdyzm:~$ cut -d : -f 1,2 /etc/passwd root:x daemon:x bin:x sys:x sync:x games:x man:x lp:x mail:x ......
sort命令对"行"进行排序,其功能和asc或者desc相似。
sort -n #按照数值进行排序(默认当做字符串排序) -t #指定分隔符 -k #指定按照第几列进行排序 -u #相同的行只显示一次
示例:
kdyzm@kdyzm:~$ sort -nt : -k 4 -u -r /etc/passwd 显示结果略。
以上命令的意思是:对/etc/passwd按照第4列数值逆序排序并且去除重复行,行分隔符为:
uniq命令的作用是显示或者不显示重复行(whatis)。
uniq -c #统计重复行信息,将统计结果放到行头 -d #只显示重复行 -u #只显示非重复行 -D #显示所有重复行
uniq没有排序功能,所以就算是重复行如果没有相邻在一起,则视为非重复行,针对这种情况可以结合sort命令以及管道实现目标功能。
示例:
kdyzm@kdyzm:~$ uniq -c b.txt 1 abc 1 ab 1 abc 1 de 1 fg 1 de 1 abc 1 ab 1 a 1 abc kdyzm@kdyzm:~$ sort b.txt | uniq -c 1 a 2 ab 4 abc 2 de 1 fg kdyzm@kdyzm:~$ sort b.txt | uniq -d ab abc de kdyzm@kdyzm:~$ sort b.txt | uniq -u a fg kdyzm@kdyzm:~$ sort b.txt | uniq -D ab ab abc abc abc abc de de kdyzm@kdyzm:~$
wc命令统计一个文本文件中有多少行数据、多少个单词、多少个字节。
wc -c #显示有多少各字节 -m #显示有多少个字符 -l #显示有多少行 -L #显示最长行的长度 -w #显示有多少个单词
tr命令实际上是一个比较复杂的命令。
tr set1 set2
set1是源,set2是目标,其字符个数应当相同。
该命令的执行默认会让线程处于等待状态(等待输入字符),该命令通常结合输入重定向使用。
kdyzm@kdyzm:~$ tr ‘a-z‘ ‘A-Z‘ < /etc/passwd ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH DAEMON:X:1:1:DAEMON:/USR/SBIN:/USR/SBIN/NOLOGIN BIN:X:2:2:BIN:/BIN:/USR/SBIN/NOLOGIN SYS:X:3:3:SYS:/DEV:/USR/SBIN/NOLOGIN ......
上述命令将/etc/passwd中所有的小写字母转换成为大写。
kdyzm@kdyzm:~$ tr -d ‘a-z‘ < /etc/passwd ::0:0::/:// ::1:1:://:/// ::2:2::/:/// ::3:3::/:/// ......
删除掉/etc/passwd中所有的小写英文单词。
具体看http://www.gnu.org/software/coreutils/tr
常用的有:
[:alnum:] all letters and digits [:alpha:] all letters [:blank:] all horizontal whitespace [:digit:] all digits [:lower:] all lower case letters [:punct:] all punctuation characters [:space:] all horizontal or vertical whitespace [:upper:] all upper case letters
使用方法:将上面的转换和删除的例子重写一下:
kdyzm@kdyzm:~$ tr [:lower:] [:upper:] < /etc/passwd
kdyzm@kdyzm:~$ tr -d [:lower:] < /etc/passwd
本文出自 “狂盗一枝梅的博客” 博客,请务必保留此出处http://kdyzm.blog.51cto.com/8316029/1739538
原文:http://kdyzm.blog.51cto.com/8316029/1739538