1.. cat  -t
2.. ls  -t -u
3.. uniq -c -u -d
4.. sort -k -u -t -f -n
5.. tail head 
6.. rpm -q -ql -qf -qc
7.. find
8.. sz 从服务器上下载文件
9.. du 和 df 命令区别
 
1.. cat  
-t 相当于 -vT   作用是显示文件中的tab符号,通常和-v参数一起使用。
 
[root@watchout2 ~]# cat -t -v nu  (^I表示制表符,2和3之间是回车,没有显示出来,不知怎么解释,请指教)
1
2
 
3
4^I
5
^I6
 
2.. ls  默认输出是以字母表的顺序列出文件
           ls -R   列出所有子目录(ls -R ./*/*/*列出当前目录下三层目录)
           ls -t    根据文件的修改时间,即文件被改变的最后时间来进行分类。最先列出最新的文件。
    
[root@watchout2 /]# ls -t
etc   tmp   home     sys   dev     aaa  rsync  apacheTomcat  index.jsp.bak  bin      lib    lost+found  boot  misc    mnt  srv
root  file  selinux  proc  nagios  www  var    index         sbin           1tomcat  media  tftpboot    usr   initrd  opt
[root@watchout2 /]# touch /home/shell
[root@watchout2 /]# ls -t
home  root  file     sys   dev     aaa  rsync  apacheTomcat  index.jsp.bak  bin      lib    lost+found  boot  misc    mnt  srv
etc   tmp   selinux  proc  nagios  www  var    index         sbin           1tomcat  media  tftpboot    usr   initrd  opt
修改时间最新旧顺序从最左边由上向下,尔后第二列由上向下,左上角为最新修改的时间,右下角的是最旧的修改时间。
 
ls -u 显示文件的最后访问时间而不是最后修改时间。单独的ls同-u不会做任何事情,用户必须将它同另外一个选项,如-t或者-l一起使用。
[root@watchout2 /]# ls -ut
etc   bin   usr   dev   selinux  var  1tomcat  apacheTomcat  initrd      media  mnt     opt    srv       tmp  proc   index.jsp.bak
root  sbin  file  home  sys      lib  aaa      boot          lost+found  misc   nagios  rsync  tftpboot  www  index
[root@watchout2 /]# cat file
aaaaaaaaaaaaaaaaaaaaaaaaaa
[root@watchout2 /]# ls -ut
file  root  sbin  dev   selinux  var  1tomcat  apacheTomcat  initrd      media  mnt     opt    srv       tmp  proc   index.jsp.bak
etc   bin   usr   home  sys      lib  aaa      boot          lost+found  misc   nagios  rsync  tftpboot  www  index
[root@watchout2 /]# cd boot
[root@watchout2 boot]# cd ..
[root@watchout2 /]# ls -ut
boot  etc   bin   usr  home     sys  lib      aaa           initrd      media  mnt     opt    srv       tmp  proc   index.jsp.bak
file  root  sbin  dev  selinux  var  1tomcat  apacheTomcat  lost+found  misc   nagios  rsync  tftpboot  www  index
 
3.. uniq 用来删除已排序的文件中相邻文本行的重复内容。
如:
[root@watchout2 ~]# cat nu
1
1
2
2
3
3
4
4
5
5
6
1
2
3
4
5
6
[root@watchout2 ~]# uniq nu
1
2
3
4
5
6
1
2
3
4
5
6
[root@watchout2 ~]# uniq nu nu.bak  (将uniq 对文件nu的处理结果输入新的文件nu.bak)
[root@watchout2 ~]# cat nu.bak
1
2
3
4
5
6
1
2
3
4
5
6
[root@watchout2 ~]#
以上说明uniq会处理相邻行重复的内容
 
uniq 的参数
 
-c   一次打印一行文本,并且计算每行出现的次数。(计算每行出现的次数是指的相邻的行出现的次数)
[root@watchout2 ~]# uniq -c nu     (红色为出现的次数,但“6”出现了两次,但不是相邻的)
      2 1
      2 2
      2 3
      2 4
      2 5
      1 6
      1 1
      1 2
      1 3
      1 4
      1 5
      1 6
 
-d  打印出重复的文本行,而不是惟一的文本行。(仍然指的是相邻重复的行)
[root@watchout2 ~]# uniq -d nu
1
2
3
4
5
 
-u  只打印唯一的文本行
[root@watchout2 ~]# uniq -u nu
6
1
2
3
4
5
 
4.. sort   
没有特别指明,默认的字段定界符是空白(空格处或tab字符处)把每一行分割成多个字段,然后从左到右计算字段数量,并且从0开始计数。
 
sort  datafile  以字母顺序排列datafile文件中域0的文件行
 
[root@watchout2 ~]# cat datafile
M H:(424)2222233:250:890:102323111
Y U:(433)3334443:250:890:124234
M H:(424)4444433:250:890:12222
M H:(424)2222888:250:890:100
M H:(424)2222833:250:890:103
M H:(424)2222233:250:890:102323111
Y U:(433)3334443:250:890:124234
M H:(424)4444433:250:890:12222
M H:(424)2222888:250:890:100
M H:(424)2222833:250:890:103
 
[root@watchout2 ~]# sort +2 -3  +0 -1   datafile    意思是对文件datafile,先进行第三个域进行排序(第一行第三个域排序完成后,一般情况下是在同行上,下一个域进行排序,当有了-3后就对第四个域停止排序),在(-3)第四个域停止排序。尔后在第一个域进行排序,在(-1)第二个域停止排序。
 

[root@watchout2 ~]# sort -u datafile    -u 排列并合并相同的文本行
M H:(424)2222233:250:890:102323111
M H:(424)2222833:250:890:103
M H:(424)2222888:250:890:100
M H:(424)4444433:250:890:12222
Y U:(433)3334443:250:890:124234
 
[root@watchout2 ~]# sort datafile
M H:(424)2222233:250:890:102323111
M H:(424)2222233:250:890:102323111
M H:(424)2222833:250:890:103
M H:(424)2222833:250:890:103
M H:(424)2222888:250:890:100
M H:(424)2222888:250:890:100
M H:(424)4444433:250:890:12222
M H:(424)4444433:250:890:12222
Y U:(433)3334443:250:890:124234
Y U:(433)3334443:250:890:124234
[root@watchout2 ~]# sort -r datafile    -r 反向排序
Y U:(433)3334443:250:890:124234
Y U:(433)3334443:250:890:124234
M H:(424)4444433:250:890:12222
M H:(424)4444433:250:890:12222
M H:(424)2222888:250:890:100
M H:(424)2222888:250:890:100
M H:(424)2222833:250:890:103
M H:(424)2222833:250:890:103
M H:(424)2222233:250:890:102323111
M H:(424)2222233:250:890:102323111
 
sort -f datafile  忽略大小写
[root@station tmp]# sort -f -u test
1234
aaaa
bbbb
cccc
[root@station tmp]# sort -u test
1234
aaaa
AAAA
bbbb
cccc
CCCC
 
sort -t: +2 datafile 指定冒号:为域分隔符,对第三个域进行排序(域从0开始记数)
注:对第二个域进行排序,首先对第二个域中的第一位数字进行排序即:0、1、2进行比较
如果第一个数相同,则对下一个数字进行比较。
root:/root>sort -t: +1 num
9:08:70
7:17:40
8:26:50
[root@watchout2 ~]# sort -t: +5 -6 datafile
M H:(424)2222233:250:890:102323111
M H:(424)2222233:250:890:102323111
M H:(424)2222833:250:890:103
M H:(424)2222833:250:890:103
M H:(424)2222888:250:890:100
M H:(424)2222888:250:890:100
M H:(424)4444433:250:890:12222
M H:(424)4444433:250:890:12222
Y U:(433)3334443:250:890:124234
Y U:(433)3334443:250:890:124234
[root@watchout2 ~]# sort -t: -r +5 -6 datafile (-r 进行反向排序)
Y U:(433)3334443:250:890:124234
Y U:(433)3334443:250:890:124234
M H:(424)4444433:250:890:12222
M H:(424)4444433:250:890:12222
M H:(424)2222888:250:890:100
M H:(424)2222888:250:890:100
M H:(424)2222833:250:890:103
M H:(424)2222833:250:890:103
M H:(424)2222233:250:890:102323111
M H:(424)2222233:250:890:102323111
 
 
[root@watchout2 ~]# sort -t: -n +4 -5datafile -n 以数字为序
M H:(424)2222888:250:890:100
M H:(424)2222888:250:890:100
M H:(424)2222833:250:890:103
M H:(424)2222833:250:890:103
M H:(424)4444433:250:890:12222
M H:(424)4444433:250:890:12222
Y U:(433)3334443:250:890:124234
Y U:(433)3334443:250:890:124234
M H:(424)2222233:250:890:102323111
M H:(424)2222233:250:890:102323111
 
如果有从第几个域排序,一定要有在那个域结束。
 
5.. tail
      tail  -f      观察文件的增长
      tail  -n  x  查看文件的最后x行
      tail  +y    查看文件第y行到最后
 
      head filename         (默认是查看文件的前10行)
      head -100 filename (查看文件的前100行)
 
      ls |head (如果目录下有几万个文件,使用这条命令可以大大缩短查看时间,默 认查看前10行) 
   
      ls |head -n 15  (查看前15行) 

 

6.. rpm

rpm -q  要查询系统中是否安装该程序时
root:/>rpm -q mysql
mysql-4.1.7-4.RHEL4.1
rpm -ql   查询包的所有文件在系统中安装的位置
root:/>rpm -ql mysql-server
/etc/logrotate.d/mysqld
/etc/rc.d/init.d/mysqld
/usr/bin/isamchk
/usr/bin/isamlog
/usr/bin/my_print_defaults
/usr/bin/myisam_ftdump
/usr/bin/myisamchk
/usr/bin/myisamlog
/usr/bin/myisampack
/usr/bin/mysql_convert_table_format
/usr/bin/mysql_create_system_tables
/usr/bin/mysql_explain_log
/usr/bin/mysql_fix_extensions
/usr/bin/mysql_fix_privilege_tables
/usr/bin/mysql_install_db
……………………
…………………… 
 
rpm -qf  查询系统中的某个文件是属于哪一个程序包
root:/>rpm -qf /usr/bin/sar
sysstat-5.0.5-1
root:/>
 
rpm -qc 列出程序的配置文件
root:/>rpm -qc vsftpd
/etc/logrotate.d/vsftpd.log
/etc/pam.d/vsftpd
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
/etc/vsftpd/vsftpd.conf

root:/>rpm -qc iptables
/etc/rc.d/init.d/iptables
/etc/sysconfig/iptables-config
root:/>
 
7.. find
根据类型搜索文件
b 块特殊文件     c字符特殊文件     d目录        f普通文件
l 符号链接          p 命名管道文件    s套接字
 
 
8.. sz 从服务器上下载文件
    rz  从本地上传文件
  netstat -antp
netstat -lntp
netstat -tulnp
for i in `ps -ef |grep dns |awk '{ print $3 }'`;do dig @${i}>>./result_file.txt ; done

查看系统硬件信息 dmidecode

9.. du 和 df 命令区别

     du 和 df 命令区别,查看了网上的说明个人理解如下:

 
          du 是直接各各目录的大小,尔不是从硬盘获得信息的
 
          df 是通过硬盘信息进行计算的
 
          所以有时候会遇到 du 的值与df 的值相差太远,这是因为当一个应用程序正在写入一个大的文件时,linux 操作系统允许rm 和mv ,应用程序会占有句柄,并根据句柄所指磁盘位置直接写磁盘,而不会检查该文件是否被删除。
 
 
   有关命令lsof
 
        下面这个命令可以删除从硬盘中删除掉的文件,但还没有从进程中释放出来的空间。
 
for i in `lsof |grep file_20090828*.log |awk '{ print $2 }'` ; do kill -9 $i ;done