1、date:显示、设置系统的日期和时间。


$date
2011年 01月 30日 星期日 14:43:35 CST
$date 012309232011
执行结果:设置主机的时间日期为:2011/01/23 09:23

$date  +'%d %H %M'

以一定的格式显示时间或日期信息,常见有如下的格式:


%d   :显示日
$date +'%d'
30
%D  :显示日期
$date +'%D'
01/30/11
%e  :不足二位数的部分不用0补而是用空格补
%m :显示月份
%Y  :显示公元年
$date +'%Y'
2011
%m  :显示月
%M  :显示分钟
%S   :显示秒
%s   :显示自1970年1月1日 00:00:00开始到现在的秒数
$date +'%s'
1296371799
$date -R :产生与RFC-2822兼容的时间字符串
$date -R
Sun, 30 Jan 2011 15:20:17 +0800

2、cat:连接文件并显示


cat file1
显示file1文件的内容
cat file1 file2
将file1 和 file2并将结果显示
cat file1 file2>result.txt
将file1和file2连接并将结果重定向到result.txt

3、wc:计算文件内含的总字数或行数


wc -l file  :显示文件file的行数
wc -c file :显示文件file的字符
wc -w file :显示文件file的单词个数

4、find :在分层目录中寻找文件。

find 路径 样式 操作

例如:


find /  -name  *.txt -print

/为路径,-name *.txt是样式 ,-print是操作, 表示将结果打印到标准输出。


find / -name *.txt -exec rm-f {} \;

-exec的操作表示找到所有的.txt文件之后 执行 rm -f命令,{}表示找到的所有结果,;是-exec的终止符,由于;是shell的特殊符号,所有要用\将其转义。


find /etc -cnewer /etc/passwd

在/etc 目录中寻找比/etc/passwd文件异动时间新的文件


find /etc -type d -print

将/etc目录中所有类型为d(也就是目录)的文件打印出来

其他的类型还有:

b:块设备文件 c:字符设备文件 d:目录 p:管道 f:一般文件 l:链接文件 s:socket

5、basename:取得路径名称中最后的文件名部分

如:


basename /etc/configure.sh

执行结果:configure.sh

6、dirname:取得路径中目录部分

如:


dirname /etc/configure.sh

执行结果:/etc

7、sort:按ascii码的行首字母对文件的行做排序


sort file1  :按ascii码值增大的顺序
sort -r file1:按ascii码值减少的顺序
sort -n file1:按字符串比较
sort -k 2 file1:按字符串比较每行的第二个字段
sort -nk 2 file1:按数值比较每行的第二个字段
sort -nr +2 -t: /etc/passwd :+2表示跳过前两个字段,-t: 表示该:为字段分隔符

8、uniq:删除重复行,若重复行没相邻,则无作用

uniq -d: 挑出重复行 uniq -c: 计算每一行的重复次数

如:

编辑文件q,文件内容如下:


baaaaaaaaaa
baaaaaaaaaa
baaaaaaaaaa
baaaaaaaaaa
aaaaaaaaaaa
aaaaaaaaaaa
dddddddddd
dddddddddd
dddddddddd
dddddddddd
dddddddddd
dddddddddd

执行命令uniq -d q结果为:


baaaaaaaaaa
aaaaaaaaaaa
dddddddddd

执行命令uniq -c q结果为:


4 baaaaaaaaaa
2 aaaaaaaaaaa
6 dddddddddd

该命令和sort命令一样,都不改变原文件内容,若要保存结果,可通过重定向和管道。

9、cut :从文件中抽出某一部分

如:


cut -c2 q :从文件q中抽出每一行的第2个字符
cut -c2-10 q:从文件中抽出每一行的第2到第10个字符
cut -c2- q:从q中抽出每一行第2个及其以后的字符
cut -d: -f3,4 passwd:从文件passwd中抽出每一行的第3个和第4个字段,-d:表明:为分割符

10、paste:把两个文件按行合并,默认以Tab分割


paste -d'#' file1 file2:以#分割
paste -s file:file的每一行和自己的每一行合并

11、tr:转换和删除字符。

如:


$tr k K < file1

将file1中所有的k换成K


$tr -d k <file1

将file1中所有的k删除


$tr '[A-Z]' '[a-z]' <file1

将file1中所有的大写字母换成小写字母


$cut -d: -f1-6 /etc/passwd |tr :‘+’

将passwd文件中前六个字段中的分隔符用+代替

12、grep:显示符合样式的行


grep A * :将含有A这个字符的文件及行打印出来
grep -i A * :-i 表示不区分大小写,A或a都行
grep -v A file :将file中所有不包含A的行打印出来
grep -l teacher *:只显示含有teacher的文件的文件名而不显示具体的行
grep -n teacher *:显示文件名和行号
grep -q teacher filename :若filename文件中含有teacher关键字则返回0,否则返回非0
grep -A 200 -e 'wadfadfdf' filename :表示在filename 中查找wadfadfdf行并显示其后的200行

13、 tee:从标准输入读取数据,显示在标准输出上,并将内容写在指定的文件中。


$tee filename

若filename已经存在,则清空其内容,否则新建一个文件。按ctrl+D组合键,输入的数据就存储在filename中。


$tee -a filename 以追加的方式写入文件

14、diff:比较两个文件之间的差异

15、comm:以列和列的方式比较两个已排序好的文件

如:

file1 文件的内容如下:


1 2 3
6 5 4
9 8 7
a b c
file2:
2 4 5
6 5 4
8 0 9
x y z

执行comm file1 file2后的结果:


1 2 3
2 4 5
6 5 4
8 0 9  
9 8 7
a b c
x y z

第1列为file1与file2不同的内容,第2列为file2与file1不同的内容,第3列为file1和file2相同的内容。

16、xargs:安排标准输入给要执行命令的参数

如:


$find . -name *.txt | xargs -n 2 diff

将找到的.txt文件以两个一组的方式交给diff进行比较

17、按以下格式可执行多个命令:


A、命令1;命令2;命令3...   执行一组命令,不能保证每个命令都成功执行
B、命令1&&命令2&&命令3...      依次执行命令1、命令2...直到执行失败
C、命令1||命令2||命令3...       依次执行命令1、命令2...直到执行成功
D、(命令1;命令2;...)  开启一个子shell去执行该组命令
E、{  命令1;命令2;...  } 在现行的shell中执行该组命令,{右和}左有至少一个空格

18、script::记录命令执行内容。


$script com.log
$ls
$exit

ls命令的执行结果会被被保存在com.log中