一、RPM 相关
1. 查询一个包是否被安装
rpm -qa |grep < rpm package name>
2. 查询所有被安装的 rpm 包
rpm -qa
3. 安装 rpm 包
如果因为缺少依赖而不能正常安装,可以使用 --nodeps 来忽略依赖关系
rpm -ivh libpcap-devel-1.4.0-1.el6.rft.x86_64.rpm --force --nodeps
4. 卸载 rpm 包
如果因为缺少依赖而不能正常卸载,可以使用 --nodeps 来忽略依赖关系
rpm -e [package name] --nodeps
二、openssh 与 openssl 相关
1. 查看 openssh 版本
ssh -V
2. 查看 openssl 版本
openssl version
三. watch 相关
1. 打印各个状态的连接数
netstat -an |grep 8080 | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key, "\t", sta[key]}'
watch -n 1 -d "netstat -an |grep 10086 | awk '/^tcp/ {++sta[\$NF]} END {for(key in sta) print key, "\t", sta[key]}'"
四. Sort 相关
cat exception.log |sort |uniq -c|sort -rnk 1 > sortexception.log
五. tcpdump
1. 分文件保存
tcpdump -nn -i any -vv -s0 port 7547 -C 100 -Z root -w /opt/hdc/temp/clean-200702.pcap
六. Swap
1. swap使用情况
vmstat -s | grep -i page
七. Sar
1. sar -n #统计网络信息
sar -n选项使用6个不同的开关:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6。
-n DEV : 网络接口统计信息。
-n EDEV : 网络接口错误。
-n IP : IP数据报统计信息。
-n EIP : IP错误统计信息。
-n TCP : TCP统计信息。
-n ETCP : TCP错误统计信息。
-n SOCK : 套接字使用。
它们可以单独或者一起使用,例: sar -n DEV,ETCP,UDP 1
2. 常用命令汇总
默认监控: sar 5 5 // CPU和IOWAIT统计状态
(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
(9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5 // 内存和swap空间使用情况
(11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5 // 每秒上下文交换的数目
(15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 5 5 // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f),如:sar -r -f /var/log/sa/sa12
八、占用CPU或内存最多的几个进程
1. ps命令
ps -aux | sort -k4nr | head -N
命令详解:
-
head:-N可以指定显示的行数,默认显示10行。
-
ps:
参数a指代all——所有的进程
参数u指代userid——执行该进程的用户id
参数x指代显示所有程序,不以终端机来区分。
ps -aux的输出格式如下:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19352 1308 ? Ss Jul29 0:00 /sbin/init root 2 0.0 0.0 0 0 ? S Jul29 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Jul29 0:11 [migration/0] USER 进程所属用户 PID 进程ID %CPU 进程占用CPU百分比 %MEM 进程占用内存百分比 VSZ 虚拟内存占用大小,单位:kb(killobytes) RSS 实际内存占用大小,单位:kb(killobytes) TTY 终端类型 STAT 进程状态 START 进程启动时刻 TIME 进程运行时长 COMMAND 启动进程的命令 -
sort -k4nr
k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;
n指代numberic sort,根据其数值排序;
r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。
本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。-k3表示按照cpu占用率排序。
2. top工具
命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。
八、grep
1. 从字符串中提取子串(正则表达式)
grep -Eo '<SerialNumber>\w{32}</SerialNumber>' file
注:grep的-o选项,可以只打印匹配的部分,否则会打印整行。
九、时间差
DATE=$(date +'%Y-%m-%d')
start_time=$(date +'%Y-%m-%d %H:%M:%S')
sleep 3s
end_time=$(date +'%Y-%m-%d %H:%M:%S')
duration=$(($(date +%s -d "${end_time}") - $(date +%s -d "${start_time}")))
echo "${DATE}:cost=${duration}s,startTime=${start_time},endTime=${end_time}"
$(( )) 整数运算符号
在$(( ))中的变量名称,可于其前面加 $ 符号来替换,也可以不用。
[root@localhost ~]# echo $((2*3))
6
[root@localhost ~]# a=5;b=7;c=2
[root@localhost ~]# echo $((a+b*c))
19
[root@localhost ~]# echo $(($a+$b*$c))
19
九、查看命令安装路径
例:查看 service 命令路径
command -v service
修改用户名密码
echo hdm:tmp123$%^|chpasswd
或者
创建一个包含用户名和密码的文本文件,例如:
user1:password1
user2:password2
user3:password3
必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令:
chpasswd < user.txt