linux命令补遗 - 1

   在linux下面,常用的命令都比较熟悉,可是有些命令的更多用法,如果掌握了对提高工作效率还是有很大作用的。
 killall httpd:杀死所有的apache进程, 在大量访问的情况下特别有效
为了方便命令行的输入,以下命令可以加快效率:
ctrl+a:直接到行首
ctrl+e:直接到行尾
 
而对于vi编辑器而言:
$:直接到行尾
^:直接到行首的第一个非空字母
0(数字0):直接到行首
w:移动到单词的词首
e:移动到单词的词末
  
(1)ls
ls -t:按照更改时间排序
ls -S:按照大小进行排序
ls -R:递归处理,将子目录及其下面的都显示出来
更多,查阅man ls
 
(2)cd
cd -:回到上一次的目录
 

(3)grep总结

^:匹配行的开始,grep '^A':以A开头, grep '^#':以#开头
$:匹配行的结束, grep 'y$':以y结束
.:匹配一个非换行字符 grep 'A.C'
*:匹配0个或多个字符
[]:匹配一个范围, grep '[Gg]rep':Grep和grep都可以
 
-b:打印该行所在的块号码
-c:匹配的行数
-i:忽略大小写
 
-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行
例子:非a~z开头的行及行号
grep -n '^[a-z]' regular_express.txt

 
(4)cat
-b:显示内容时显示行数
-n:显示内容时包含所有空行
-s:有多个空行时合并成一个空行显示
cat时翻页:shift+pagedown, shift+pageup
 
(5) top
top -d 10:每10秒刷新一次
在启动top之后,想监控特定用户的进程情况,按‘u’后再输入用户名回车即可。
显示全部用户的进程:直接空白时回车即可
 
(6)kill
kill命令杀死进程是通过向该进行发送信号来完成的,通过kill -l查看所有的信号。
oracle@b2b_plat_13619:/home/oracle>kill -l
1) SIGHUP             2) SIGINT             3) SIGQUIT            4) SIGILL
5) SIGTRAP            6) SIGABRT            7) SIGBUS             8) SIGFPE
9) SIGKILL         10) SIGUSR1         11) SIGSEGV         12) SIGUSR2
13) SIGPIPE         14) SIGALRM         15) SIGTERM         17) SIGCHLD
18) SIGCONT         19) SIGSTOP         20) SIGTSTP         21) SIGTTIN
22) SIGTTOU         23) SIGURG            24) SIGXCPU         25) SIGXFSZ
26) SIGVTALRM     27) SIGPROF         28) SIGWINCH        29) SIGIO
30) SIGPWR            31) SIGSYS            34) SIGRTMIN        35) SIGRTMIN+1
36) SIGRTMIN+2    37) SIGRTMIN+3    38) SIGRTMIN+4    39) SIGRTMIN+5
40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8    43) SIGRTMIN+9
44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13
52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
56) SIGRTMAX-8    57) SIGRTMAX-7    58) SIGRTMAX-6    59) SIGRTMAX-5
60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2    63) SIGRTMAX-1
64) SIGRTMAX
killall java:杀死所有的java进程
 killall httpd:杀死所有的apache进程, 在大量访问、速度较慢时特别有效
 
6、统计文本的行数
wc -l filename
[jiangyr@]$ wc -l CRM131500.txt
131499 CRM131500.txt
去除重复行:sort CRM131500.txt | uniq -u > abc.txt 
 
7、删除当前文件夹下面大于10M的文件
find ./ -size +10000k -exec rm -f {} \;
 
查找大于1M且最后修改时间在10天之前的文件
find ./ -mtime +10 -size +1000k
 
查找出大于1G且在30内无修改的, 删除之
find ./ -mtime +30 -size +1000000k -exec rm -f {} \;
 
8、ifconfig
如果是root用户,直接用ifconfig可以查看当前机器的ip地址; 如果不是,直接使用ifconfig则会提示命令找不到的问题, 此时使用/sbin/ifconfig则可以查看机器的ip地址了。
 
9、view命令
以只读方式查看文件内容,而vi是可以编辑文件的
 
10、strings命令
查看二进制文件
 
11、软链接的建立
ln -s source target, 【注意】source一定要是绝对路径,否则在不同分区上建立软件时,会出现问题,尽管执行命令时不会报错,但是执行后的链接可以找到,但是不能操作,会一直闪动的现象。
ln -s /guest/stanley/ /home/stanley/stanley_sum
将install/apache-maven-2.2.1软链接到maven
ln -s  install/apache-maven-2.2.1/ maven 
 
删除软链接:直接rm即可,不会删掉原来的文件
 
12、查看进程的端口
查看20880被哪个进程占用, 【注意】lsof命令需要root权限才能执行
[Intranet root@qa13625 /root]
#lsof -i:20880
COMMAND     PID     USER     FD     TYPE         DEVICE SIZE NODE NAME
java        29192 morgan     79u    IPv6 1457881361             TCP *:20880 (LISTEN)
 
或者
[stanley@qa13625 stanley_sum]$ netstat -anp | grep 20880
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp                0            0 :::20880                                        :::*                                                LISTEN            -        
13、文件内部查找grep, 查找文件find和locate
grep "time" slow-query.log
14、网卡的关闭与自启动
让它们后台执行,网络断开之后还会执行吗?
ifconfig eth0 down &
ifconfig eth1 down &
sleep 10
service network restart &
15、查看及杀死僵死进程
ps -ef|grep def
执行结果如下:
root      1017 25862  0 Feb06 ?        00:00:00 [cfagent] <defunct>
root     14867 25862  0 Feb06 ?        00:00:00 [cfagent] <defunct>
root      4150 25862  0 Feb07 ?        00:00:00 [cfagent] <defunct>
root     23480 25862  0 Feb07 ?        00:00:00 [cfagent] <defunct>
root     12147 25862  0 Feb07 ?        00:00:00 [cfagent] <defunct>
 
16、查看当前目录下文件的大小情况
du -h:查所有的文件情况,显示细节
du -sh:查文件总的大小,不显示细节
 
17、VI中的全局替换
:%s/被替换内容/替换内容/g
 
18、环境变量
使用set或env查看环境变量,unset取消环境变量
常用环境变量:
echo $HOME
echo $PATH
echo $LANG
echo $PS1
查看所有的语言种类:locale -a
【注意】变量最好使用${a}的方式,避免$a123的出现,使用${a}123
basename /etc/X11 -> X11: 使用basename取得最后的目录
 
[oracle@localhost xdk]$pwd
/u01/oracle/xdk
[oracle@localhost xdk]$basename `pwd`
xdk
 
 19、系统日志信息
核心启动日志:/var/log/dmesg,  或直接用dmesg命令
系统报错日志:/var/log/messages
邮件系统日志:/var/log/mailog
 FTP服务日志:/var/log/xferlog
安全信息:/var/log/secure
登录记录:/var/log/wtmp, 为了防止篡改,此为二进制文件, 使用strings进行查看。
 
20、身份的检查
who:当前在线的用户
groups:查询用户所属的组
id:显示当前用户信息
finger:查询用户信息
 
[oracle@localhost xdk]$finger oracle
Login: oracle                                                     Name: (null)
Directory: /u01/oracle                                    Shell: /bin/bash
Last login 一    3月 15 00:41 (CST) on tty1
No mail.
No Plan.
 
 21、添加用户的标准步骤
  编辑/etc/passwd与/etc/group
  创建用户主目录
  从/etc/skel拷贝文件与目录
  让新用户获得其主目录与文件的拥有权限
  给新用户一个密码
 
 22、VI中的删除
 
 删除以当前行开始的n行:ndd
 
 删除一个单词/光标之后的单词剩余部分dw
 删除以当前字符开始的n个字:ndw 
 删除当前字符:x 若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。 
  X删除光标前面的那个字符。若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符。 
d0删除从光标前一个字符开始到行首的内容。
 光标之后的该行部分d$
 D 与d$同义
 d) 删除到下一句的开始
 d} 删除到下一段的开始
 d回车 删除2行
内容全部删除::1,$d

23、VI重复上次操作
.:执行上次的操作
u:撤消上次的操作
ctrl+r:重做操作、不撤销上次操作

24、为history增加时间戳
export HISTTIMEFORMAT="%F %T "

 
 25、清除/var/spool/clientmqueue/目录下的文件: 
# cd /var/spool/clientmqueue 
# rm -rf * 
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令: 
# cd /var/spool/clientmqueue 
# ls | xargs rm -f 

26、VI的定位
vi 命令模式中可用的移动键:
w ---将光标向前移一个单词
b
 ---将光标向后移一个单词
e
 ---将光标移到下一个单词之后
0
 ---将光标移到行首
$
 ---将光标移到行末
)
 ---将光标移到下一句句首
(
 ---将光标移到上一句句首
}
 ---将光标移到下一段开始处
{
 ---将光标移到下一段开始处
gg或者:1-----将光标移到当前文档的顶部
G
 ---将光标移到当前文档的底部
^
 ---将光标移到行内非空格的第一个字符
H
 ---将光标移到屏幕上第一行
L
 ---将光标移到屏幕上最后一行
vi 中滚动屏幕:
a
 然后按回车---- 将光标所在的那一行移至屏幕顶部
z
 然后按"-" ---将光标所在的那一行移至屏幕底部
z
 然后按"." ---将光标所在的那一行移至屏幕中部
Ctrl u
 ------向上滚动半屏
Ctrl d
 ------向下滚动半屏
Ctrl f
 ------向前滚动全屏
Ctrl b
 ------向后滚动全屏
Ctrl e
 ------向下滚动一行
Ctrl y
 ------向上滚动一行
vi
 的文本编辑命令:
D
 ------从光标定位的行末删除文本
rc
 ----- -c 代表字符。光标下方的字符将被替换为r 后面的字符
R
 ------R 后键入的文本将改写当前文本,从光标所在位置开始,一直到按下Escape 返回命令模式为止
S
 ------删除当前行,并开始在当前的空白行插入文本
x
 ------删除光标下方的字符,并将字符右移填空
X
 ------删除光标前的字符,并移动字符,令光标下方的字符来填空
~
 ------更改光标下方的字母的大小写
J
 ------将当前行和前一行连接起来,并删除因此而来的空行
vi
 中的文件操作:
:e!
 -----丢失所有更改,并从硬盘中重载已保存的文件
vi
 中的查找和替换命令
/ -----------重复上一次查找,在文件中查找下一个匹配样式
?pattern
 --------pattern( 样式) 指代的是要查找的内容。vi 将在文件中向后查找与指定内容匹配的第一样式
?
 -----------重复上一次查找,在文件中查找与上一次查找内容匹配的样式
%
 -----------把当前光标移至匹配的圆括号或方括号。对程序员来说,该命令非常有用
:s/pattern1/pattern2
 -- 用pattern2 替换当前行中pattern1 匹配的每个内容
:%s/pattern1/pattern2--
 用pattern2 替换整个文件中与pattern1 匹配的每个内容
vi
 中的yank 命令
yw
 -------把光标当前所在的单词移到缓冲区
y$
 -------把当前行及其以前的所有文本移到缓冲区

27、压缩与解压缩:
压缩:tar jcvf test3.tar.bz2 test, 将test文件夹进行压缩为test3.tar.bz2
解压:tar jxvf test3.tar.bz2, 则解压为test的文件夹
bzip2 gzip tar联合使用

28、备份与还原:
tar zxvf /dev/floppy test, 备份到软盘
dump/restore:备份和还原ext2/3文件系统
dump -0u -f /var/tmp/hda2dump /dev/hda1: 将/dev/hda1完全备份为/var/tmp/hda2du文件, -u为备份分区的顶级目录, 0-9代表完全备份
restore -rf /var/tmp/hda2dump :还原到当前目录下,当前在什么目录就还原什么目录下
restore -tf /var/tmp/hda2dump:查看备份的内容
 
29、去掉文档最后一行
sed -i -e '$d' test.txt
sed 有一个 -i 选项,此选项指定应该编辑的输入文件。(如果没有此选项,则读取输入文件,而不对其执行写入。)

sed 删除每行最后一个字符

sed 's/.$//' test.txt
也可以稍复杂些,awk -F "" -v OFS=""  '$NF="" {print}1'  test.txt

30、查看硬件资源
#dmidecode | grep Product
                                Product Name: PowerEdge 1950
                                Product Name: 0K649H

31、文件句柄数
     在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。在root权限下面,
查看:lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
    但是如果系统并发特别大,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:ulimit -HSn 8092
    以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后

32、添加用户帐号报错解决方案

在使用useradd命令添加帐号的时候出现“unable to lock password file”的错误,或者“cannot lock shadow password file”的问题。
 
解决办法:
在/etc/目录下有passwd.lock、group.lock、gshadow.lock、passwd.lock、shadow.lock之类的文件,并把它刪除就OK了。
Tip: .lock文件就是某人在读取时先锁定文件以防另一个程序又来读取产生错误

33、VI中显示行号和定位行

在VI的命令模式下输入“:set nu”,就有行号了
取消行号执行下面的命令:: set nonu ”或者“:set nu!”
直接定位到某行:
  方法1:在vi后面加上"+n", 省略到n,则光标到最后一行  例如:vi +50 tmp.sql
  方法2:进入文件后,使用‘:n’, 例如:':23'则表示光标直接定位到23行


34、WAR包的压缩与解压缩
在linux上面,war包的压缩了解压类似于tar,具体方式如下:
压缩命令格式:java cvf 打包文件名称 要打包的目录 打包文件保存路径
 
// 将当前目录打包成war包
jar   cvf   temp.war   */  .
 
解压自然就是:
 
jar xvf temp.war 

 

35、输入与输出

tr 'A-Z' 'a-z' < .bash_profile     将.bash_profile文件中的大写字母转换为小写字母

<<将内容送到内存,一次性送到文件中,以后面的字母结尾,比如‘!’
cat > cat.file <<!
 
标准输出和错误输出到不同文件
find /etc -name passwd 2> stderr > stdout
 
正确和错误输出到同一文件
find /etc -name passwd &> allout
find /etc -name passwd > allout 2>&1
 
36、补充命令
 
grep -n "a" abc:  匹配字符,且输出行号
grep -v "a" abc:不匹配的行
 
//对文件/etc/passwd进行排序,以‘:’分割的第3列进行排序
sort -t: -k3 /etc/passwd
 
cut:显示文件中的某一列
//显示第三列,默认以tab来分割
cut -f3 cutfile
 
//显示以‘,’分割的第二列
cut -f2 -d, cut.txt
 

 

 

 

 

 

 

 

 

 

 

 

 
paste将文件按列拼接, 之间以tab作为分割
paste abc ABC > merge
 
 37、非root下面查看机器信息
查看ip
[stanley@QA-144-2 ~]$ /sbin/ifconfig 
 
查看网卡ethtool
[stanley@QA-144-2 ~]$ /sbin/ethtool

38、查看用户的名字
[platvt@qa-qd-62-180 bin]$ hostname
qa-qd-62-180

39、ISO文件安装
mkdir     /mnt/iso
mount     -o     loop     xxxx.iso     /mnt/iso
cd     /mnt/iso
40、翻页操作
整页翻页 ctrl-f     ctrl-b
f就是forword b就是backward

翻半页
ctrl-d ctlr-u
d=down u=up

滚一行
ctrl-e ctrl-y

zz 让光标所在的行居屏幕中央
zt 让光标所在的行居屏幕最上一行 t=top
zb 让光标所在的行居屏幕最下一行 b=bottom
41、查询使用的命令所在的目录或者安装目录:which
[china@136_20 demo01]$ which whoami
/usr/bin/whoami
[china@136_20 demo01]$ which java
/usr/alibaba/java/bin/java
[china@136_20 demo01]$ which gcc
/usr/bin/gcc
42、top中内存没有释放的解释
赵晋-服务器接口人 (13:34:59):
vmstat -s
你用vmstat -s 看一下·
16432184    total memory
         16343268    used memory
            6766176    active memory
            9119716    inactive memory
                88916    free memory
             132812    buffer memory
你实际活动的 内存只有6G··
有9G的 都是空闲 非活动内存··
而内核有一个 空闲内存回收阀值··


赵晋-服务器接口人 (13:36:01):
在内存达到 这个阀值 他才会自动回收空闲内存的·

王-- (13:36:02):
那为什么top出来说占用了16G

赵晋-服务器接口人 (13:36:12):
16343268    used memory
这个是used了16G没错··但used中 又分为 活动的 和 非活动的·
非活动的 其实就是空闲的没有被系统 回收的内存·


赵晋-服务器接口人 (13:37:14):
这里 你其实还有9个G的 非活动内存·

赵晋-服务器接口人 (13:39:26):
/proc/sys/vm/dirty_background_ratio
10
43、TOP命令
 
 
 

44、时间格式化

取当前时间,且按照“年月日_时分秒”进行格式化, 时间的具体转换参考:http://tianya23.blog.51cto.com/1081650/366110
[stanley@qa13625 logs]$ date +%Y%m%d_%H%M%S
20100803_110543
 

 45、jstat监控脚本

jstat -gcutil 31789 1000 10:对进程31789进行1秒钟监控1次,一共监控10次

#!/bin/bash
#monitor the status of java process
#5 second per time, 8640 times 8700
current_date=`date +%Y%m%d_%H%M%S`

#backoffice
java_process1=20014

#authority
java_process2=21663

#subscription
java_process3=22213

#delivery
java_process4=23468

#interval time, 5000 means 5 Seconds
interval=5000

#how many times would be monitored
times=10

nohup jstat -gc -t ${java_process1} ${interval} ${times} >> /home/stanley/stanley_sum/pc2-1.2.0-t/output/logs/${java_process1}_backoffice_${current_date}.log &
nohup jstat -gc -t ${java_process2} ${interval} ${times} >> /home/stanley/stanley_sum/pc2-1.2.0-t/output/logs/${java_process2}_authority_${current_date}.log &
nohup jstat -gc -t ${java_process3} ${interval} ${times} >> /home/stanley/stanley_sum/pc2-1.2.0-t/output/logs/${java_process3}_subscription_${current_date}.log &
nohup jstat -gc -t ${java_process4} ${interval} ${times} >> /home/stanley/stanley_sum/pc2-1.2.0-t/output/logs/${java_process4}_delivery_${current_date}.log &

46、检查apache的启动:

netstat -tnl | grep :80
或者
lynx http://localhost

47、调到前台执行

fg

48、vi中搜索
/^Port  以Port开头
?Port

49、linux下面的计算器
[qaadmin@qa-qd-63-17 tags]$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3+4
10
quit

50、监控网络流量使用情况

2秒监控一次,监控10次
sar -n DEV 2 10

sar提供四种不同的语法选项来显示网络信息。-n选项使用四个不同的开关:DEV、EDEV、SOCKFULL。DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,SOCK显示套接字信息,FULL显示所有三个开关。 输出结果的含义如下:

IFACE:就是网络设备的名称;

rxpck/s:每秒钟接收到的包数目

txpck/s:每秒钟发送出去的包数目

rxbyt/s每秒钟接收的字节数

txbyt/s每秒钟发送出去的字节数

rxcmp/s:每秒钟接收到的压缩包数目

txcmp/s:每秒钟发送出去的压缩包数目

txmcst/s:每秒钟接收到的多播包的包数目

如果你使用EDEV关键字,那么会针对网络设备汇报其失败情况。具体参考:http://www.javaeye.com/articles/1903

 

sar命令详解如下:
sar 2 5
//每隔2秒,显示5次,CPU使用的情况
    %usr:CPU处在用户模式下的时间百分比。 
  %sys:CPU处在系统模式下的时间百分比。 
%wio:CPU等待输入输出完成时间的百分比。 
%idle:CPU空闲时间百分比。 

在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈, 
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存, 
此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表 
明系统中最需要解决的资源是CPU。 
  sar 1 10 > data.txt
//每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。

sar 1 0 -15:00:00 > data.txt
//每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)

sar 1 0 --15:00:00 > data.txt
//每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。

sar 1 0 -n DEV -15:00:00 > data.txt
//每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。
 

51、ps命令整理

ps -lef或者ps -eF 让进行相关的信息全部显示出来:
-l,l long
-F   extra full
[oracle@136_20 ~]$ ps -lef | grep memcached
1 S cobar        24551         1    0    75     0 - 77959 stext    19:40 ?                00:00:06 /usr/alibaba/memcached/bin/memcached -d -m 6000 -u cobar -p 12210 -c 4096 -t 8 -P /home/cobar/memcached/logs/memcached-s1.pid
1 S cobar        24564         1    0    75     0 - 61097 stext    19:40 ?                00:00:06 /usr/alibaba/memcached/bin/memcached -d -m 6000 -u cobar -p 11210 -c 4096 -t 8 -P /home/cobar/memcached/logs/memcached-s2.pid

52、快速查找使用过的命令

 
在history中使用grep进行查找

53、查看本机支持的字符编码:locale

[stanley@qa13625 ~]$ locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

export LANG=zh_CN.UTF-8:设置中文环境变量

54、时间戳与long型相互转换

时间戳转换为long类型:date +%s
[qaadmin@qa-qd-63-17 logs]$ date +%s
1283172248
[qaadmin@qa-qd-63-17 logs]$ date
Mon Aug 30 20:44:10 CST 2010

long转换为时间戳
[qaadmin@qa-qd-63-18 ~]$ date -d'1970-01-01 UTC 1283198594 seconds'
Tue Aug 31 04:03:14 CST 2010

查看当前时间戳

  1. #date +%s

查看指定时间

  1. #date -d 2008-01-01 +%s 
  2.  1199116800
  3.  #date -d 20080101 +%s
  4.  1199116800

2.将时间戳转换成date

  1. #date -d '1970-01-01 UTC 1199116800 seconds'
  2.  2008年 01月 01日 星期二 00:00:00 CST
  1. #export LANG=en
  2.  #date -d '19700101 UTC 1199116800 seconds' 
  3.  Tue Jan  1 00:00:00 CST 2008

55、VI中的统计信息

:%s/./&/gn 字符数 
:%s/\i\+/&/gn 单词数 
 :%s/^//n 行数 
:%s/the/&/gn 任何地方出现的 "the"

57、统计文件中单词出现的个数
tr -s "\t| " "\n" < jstack.21030.head |sort|uniq -c

58、yum安装常用软件

yum list | grep alibaba查找
yum install alibaba-cn-suite.x86_64 
会安装jboss,httpd,cronlog,openssl,java

***59、将文件中的内容出现的次数进行排序

awk '{print $1}' recent.log | sort | uniq -c | sort -nr | more
运行结果:
  1. 473 172.29.61.66 
  2.     379 10.20.143.26 
  3.     338 10.20.143.117 
  4.     314 10.20.143.119 
  5.     290 10.20.143.109 
  6.     286 10.249.162.109 
  7.     263 10.20.143.115 
  8.     237 10.20.143.45 
  9.     236 10.20.131.215 
  10.     205 10.20.143.114 
  11.     189 10.20.143.105