Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288241
  • 博文数量: 56
  • 博客积分: 3025
  • 博客等级: 中校
  • 技术积分: 534
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 17:28
个人简介

Honesty and diligence should be your eternal mates.

文章分类

全部博文(56)

文章存档

2012年(1)

2011年(27)

2010年(20)

2008年(8)

分类:

2011-01-31 13:51:11

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

date

执行结果:显示现在的日期和时间,如:

2011年 01月 30日 星期日 14:43:35 CST

date 012309232011

执行结果:设置主机的时间日期为:2011/01/23 0923

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   :显示自197011日 000000开始到现在的秒数

date +'%s'

1296371799

date -R :产生与RFC-2822兼容的时间字符串

date -R

Sun, 30 Jan 2011 15:20:17 +0800

2cat:连接文件并显示

cat file1

显示file1文件的内容

cat file1 file2

file1 和 file2并将结果显示

cat file1 file2>result.txt

file1file2连接并将结果重定向到result.txt

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

wc -l file  :显示文件file的行数

wc -c file :显示文件file的字符

wc -w file :显示文件file的单词个数

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

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:链接文件 ssocket

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

如:

basename /etc/configure.sh

执行结果:configure.sh

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

如:

dirname /etc/configure.sh

执行结果:/etc

7sort:按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: 表示该:为字段分隔符

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

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命令一样,都不改变原文件内容,若要保存结果,可通过重定向和管道。

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

如:

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:表明:为分割符

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

paste -d'#' file1 file2:以#分割

paste -s filefile的每一行和自己的每一行合并

11tr

转换和删除字符。

如:

tr k K < file1

file1中所有的k换成K

tr -d k 

file1中所有的k删除

tr '[A-Z]' '[a-z]' 

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

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

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

12grep:显示符合样式的行

grep A * :将含有A这个字符的文件及行打印出来

grep -i A * -i 表示不区分大小写,Aa都行

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列为file1file2不同的内容,第2列为file2file1不同的内容,第3列为file1file2相同的内容。

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

阅读(1056) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~