1.查看cpu占用率 top
前5行为系统总体资源统计情况
top - 系统当前时间
up 系统已开机多长时间 user 当前用户数 load average cpu平均负载,三个数值分别为,1分钟,5分钟,15分钟
Tasks 系统当前进程数,total:总进程数,running:正在运行的进程数,sleeping:睡眠的进程数,stopped:停止的进程数,zombie:僵尸进程数
%Cpu(s) cpu使用率,us:用户使用cpu百分百,sy:系统内核使用cpu百分百,id:剩余的cpu百分百
Mem 内存使用信息,total:总内存大小,free:空闲的内存,used:已使用的内存,buff/cache:缓存的内存大小
Swap 虚拟内存信息
PID 进程id
USER 进程所有者
PR 优先级
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量
RES 进程使用的物理内存大小
SHR 共享内存大小
S 进程状态,D:不可中断的睡眠状态,R:运行,S:睡眠,T:跟踪/停止,Z:僵尸进程
%CPU 进程使用的CPU占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计
COMMAND 命令名
附加选型 例如 top -a
-b 以批处理模式操作
-c 显示完整的治命令
-d 屏幕刷新间隔时间
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置刷新间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数
在top命令下的快捷键,经常使用 q 退出top命令
h 显示快捷键帮助
k 终止一个进程
i 开/关忽略闲置和僵死进程
q 退出程序
r 重新安排一个进程的优先级别
S 切换到累计模式
s 更改刷新间隔时间,单位秒
f,F 从当前显示中添加或者删除项目
o,O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据内存使用大小排序
P 根据CPU使用率进行排序 (默认排序)
T 根据时间/累计时间进行排序
w 将当前设置写入~/.toprc文件中
1 展开多核cpu显示
2.查看进程ps、jps
ps [选项]
-A 显示所有进程(同-e,后者能显示干更多信息)
-a 显示当前终端的所有进程
-u 显示进程的用户信息
-o 以用户自定义形式显示进程信息
-f 显示程序间的关系
ps -A 显示如下
ps -ef 显示如下
ps aux 显示如下 更多 ,如果进程信息过多可以用 ps -aux|more/less
USER 进程所有者的用户名
PID 进程号
START 进程激活时间
%CPU 进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM 进程使用内存的百分比
VSZ 进程使用的虚拟内存大小,以K为单位
RSS 驻留空间的大小。显示当前常驻内存的程序的K字节数。
TTY 进程相关的终端
STAT 进程状态,包括下面的状态:
D 不可中断 Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
\+ 位于后台的进程组;
l 多线程,克隆线程
TIME 进程使用的总CPU时间
COMMAND 被执行的命令行
NI 进程的优先级值,较小的数字意味着占用较少的CPU时间
PRI 进程优先级。
PPID 父进程ID
WCHAN 进程等待的内核事件名
ps -u root 显示指定用户的进程信息
ps -ef|grep java 查看java相关进程信息 | 表示管道
ps -ejh 进程间关系用树形结构表示
jps
jps [选项] [hostid]
列出本机所有Java进程的pid
-q:仅输出VM标识符,不包括class name,jar name,arguments in main method
-m:输出main method的参数
-l:输出完全的包名,应用主类名,jar的完全路径名
-v:输出jvm参数
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
-Joption:传递参数到vm,例如:-J-Xms48m
3.结束进程kill
kill -signal pid
进程id可通过上述查询进程命令查到
signal 可以为(一般取值 9,即kill -9 435):
Signal Name | Single Value | Effect |
---|---|---|
SIGHUP | 1 | 挂起 |
SIGINT | 2 | 键盘的中断信号 |
SIGKILL | 9 | 发出杀死信号 |
SIGTERM | 15 | 发出终止信号 |
SIGSTOP | 17, 19, 23 | 停止进程 |
4.查看进程的线程数量
(1)top -H -p 进程id
能看到线程数量及每个线程的cpu占用情况
(2)pstree -p 进程id| wc -l 只显示线程数量
(3)cat /proc/进程id/status 在proc目录下查找进程信息
(这里只截取部分)
5.查找文件find
find 路径 [选项] [操作]
例如:
查找 /etc 目录下以 conf 结尾的文件,文件名区分大小写
find /etc -name '*.conf'
查找文件所属用户为 yangyang 的所有文件,
find . -user yangyang
查找文件所属组为 yangyang 的所有文件
find . -group yangyang
根据类型查找:如下
f 文件 find . -type f
d 目录 find . -type d
c 字符设备文件 find . -type c
b 块设备文件 find . -type b
l 链接文件 find . -type l
p 管道文件 find . -type p
操作查找到的文件
-print 打印输出。 默认的选项,即打印出找到的结果。
-exec 对搜索到的文件执行特定的操作,固定的格式为:-exec 'commond' {} \; 注意:{} 表示查询的结果。
举例1: 搜索 /etc 目录下的文件(非目录),文件以 conf 结尾,且大于 10k,然后将其删除。
find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
举例2: 将 /data/log/ 目录下以 .log 结尾的文件,且更改时间在 7 天以上的删除。
find /data/log -name '*.log' -mtime +7 -exec rm -f \;
举例3: 搜索条件同 例1 一样,但是不删除,只是将其复制到 /root/conf 目录下
find /etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;
-ok 和 -exec 的功能一样,只是每次操作都会给用户提示。
6.不挂断地运行命令 nohup
nohup [命令]
nohup [选项]
使用nohup命令时,如果指定了输出文件,那么输出信息则输出到指定的文件中。如果没有指定输出文件,则输出信息会输出到当前目录中的nohup.out文件中。
1)使用nohup命令查看当前目录下的文件,并把输出结果重定向到ls.log文件中。
[root@vms002 opt]# ls
a_ aa.txt a^x.txt rh rh134 tmp
[root@vms002 opt]# nohup ls >> ls.log
nohup: 忽略输入重定向错误到标准输出端
[root@vms002 opt]# ls
a_ aa.txt a^x.txt ls.log rh rh134 tmp
[root@vms002 opt]# cat ls.log
a_
aa.txt
a^x.txt
ls.log
rh
rh134
tmp
2)使用nohup命令查看当前目录下的文件,不指定输出文件,查看输出结果是否在当前目录下的nohu.out文件中。
[root@vms002 opt]# ls
a_ aa.txt a^x.txt ls.log rh rh134 tmp
[root@vms002 opt]# nohup ls
nohup: 忽略输入并把输出追加到"nohup.out"
[root@vms002 opt]# ls
a_ aa.txt a^x.txt ls.log nohup.out rh rh134 tmp
[root@vms002 opt]# cat nohup.out
a_
aa.txt
a^x.txt
ls.log
nohup.out
rh
rh134
tmp
3)让某个程序在后台运行
nohup /root/start.sh & 默认输出在当期那目录的 nohup.out 文件中
nohup command > myout.file 2>&1 & 输出呗重定向到myout.file中
7.grep命令
查找压缩文件中文件内容
zcat filename*|grep --binary-files=text xxxxx' | tail -10 |grep 'llll'