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
23
2 4
2 5
1 6
1 1
12
1 3
14
15
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
6
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:103M 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 www.sina.com.cn @${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