在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 反向选择,即找 没有搜索字符串的行
-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
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
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)
#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 -
(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 &
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
/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.
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
# rm -rf *
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令:
# cd /var/spool/clientmqueue
# ls | xargs rm -f
26、VI的定位
vi 命令模式中可用的移动键:
w ---将光标向前移一个单词
b ---将光标向后移一个单词
e ---将光标移到下一个单词之后
0 ---将光标移到行首
$ ---将光标移到行末
) ---将光标移到下一句句首
( ---将光标移到上一句句首
} ---将光标移到下一段开始处
{ ---将光标移到下一段开始处
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$ -------把当前行及其以前的所有文本移到缓冲区
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、压缩与解压缩:
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
sort -t: -k3 /etc/passwd
cut:显示文件中的某一列
//显示第三列,默认以tab来分割
cut -f3 cutfile
cut -f3 cutfile
//显示以‘,’分割的第二列
cut -f2 -d, cut.txt
cut -f2 -d, cut.txt
paste将文件按列拼接, 之间以tab作为分割
paste abc ABC > merge
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
qa-qd-62-180
39、ISO文件安装
mkdir /mnt/iso
mount -o loop xxxx.iso /mnt/iso
cd /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
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
/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
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
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 &
#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
或者
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
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、SOCK和FULL。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使用的情况
// 每隔2秒,显示5次,CPU使用的情况
%usr:CPU处在用户模式下的时间百分比。
%sys:CPU处在系统模式下的时间百分比。
%wio:CPU等待输入输出完成时间的百分比。
%idle:CPU空闲时间百分比。
在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈,
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,
此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表
明系统中最需要解决的资源是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文件中。
// 每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar 1 0 - e 15 : 00 : 00 > data.txt
// 每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
sar 1 0 - r - e 15 : 00 : 00 > data.txt
// 每隔1秒记录 内存使用情况 ,直到15点,数据将保存到data.txt文件中。
sar 1 0 - n DEV - e 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
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=
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
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
Tue Aug 31 04:03:14 CST 2010
查看当前时间戳
- #date +%s
查看指定时间
- #date -d 2008-01-01 +%s
- 1199116800
- #date -d 20080101 +%s
- 1199116800
2.将时间戳转换成date
- #date -d '1970-01-01 UTC 1199116800 seconds'
- 2008年 01月 01日 星期二 00:00:00 CST
- #export LANG=en
- #date -d '19700101 UTC 1199116800 seconds'
- Tue Jan 1 00:00:00 CST 2008
55、VI中的统计信息
:%s/./&/gn 字符数
:%s/\i\+/&/gn 单词数
:%s/^//n 行数
:%s/the/&/gn 任何地方出现的 "the"
:%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
会安装jboss,httpd,cronlog,openssl,java
***59、将文件中的内容出现的次数进行排序
awk '{print $1}' recent.log | sort | uniq -c | sort -nr | more
运行结果:
- 473 172.29.61.66
- 379 10.20.143.26
- 338 10.20.143.117
- 314 10.20.143.119
- 290 10.20.143.109
- 286 10.249.162.109
- 263 10.20.143.115
- 237 10.20.143.45
- 236 10.20.131.215
- 205 10.20.143.114
- 189 10.20.143.105
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/265655,如需转载请自行联系原作者