在Linux操作系统中,查看系统进程是一项基本且重要的任务,通过了解当前运行的进程,管理员可以监控系统资源使用情况,排查问题并进行性能优化,本文将详细介绍如何使用各种命令和工具来查看和管理Linux系统中的进程。
使用ps命令查看进程
ps
(process status)是最常用的查看进程的命令之一,它提供了关于当前系统活动进程的信息。
常用选项:
ps aux
:显示所有用户的所有进程。
ps -ef
:以完整格式显示进程信息。
ps -eo pid,comm,args,%mem,%cpu --sort=-%mem
:按内存使用率排序显示进程信息。
示例:
ps aux
输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 22564 1328 ? Ss 10:00 0:01 /sbin/init ...
使用top命令实时监控进程
top
命令是一个交互式实用程序,用于实时显示系统中各个进程的资源占用情况。
常用操作:
h
:显示帮助。
q
:退出top
。
k
:杀死一个进程。
r
:重新调整进程优先级(renice)。
示例:
top
输出(部分):
top 10:27:56 up 1 day, 2:23, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 98.5 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2048524 total, 327680 free, 112648 used, 1608240 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1685568 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 user1 20 0 123456 7890 1234 S 0.5 0.4 0:01.00 some_command ...
使用htop命令增强版top
htop
是top
命令的增强版,提供更友好的用户界面和更多功能。
安装:
在Debian/Ubuntu上:
sudo apt-get install htop
在CentOS/RHEL上:
sudo yum install htop
示例:
htop
输出(部分):
F1 Help F2 Setup F3 Search F4 Filter F5 Tree F6 Sort by F7 Quit ...
使用pgrep和pkill管理进程
pgrep
用于查找匹配条件的进程,pkill
用于根据条件终止进程。
示例:
查找名为some_command的进程:
pgrep some_command
终止名为some_command的进程:
pkill some_command
使用systemctl管理服务进程
systemctl
是用于控制systemd系统和服务管理器的命令。
常用命令:
systemctl status <service>
:查看服务状态。
systemctl start <service>
:启动服务。
systemctl stop <service>
:停止服务。
systemctl restart <service>
:重启服务。
systemctl enable <service>
:开机自启服务。
systemctl disable <service>
:取消开机自启服务。
示例:
查看nginx服务状态:
systemctl status nginx
启动nginx服务:
sudo systemctl start nginx
6. 使用netstat和ss查看网络连接
netstat
和ss
命令用于查看系统的网络连接和端口使用情况。
netstat命令示例:
netstat -tuln
输出(部分):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp6 0 0 :::80 :::* LISTEN 5678/nginx: master p ...
ss命令示例:
ss -tuln
输出(部分):
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:80 [::]:* ...
使用lsof列出打开的文件
lsof
(list open files)命令用于列出系统中打开的文件及其对应的进程。
示例:
列出所有打开的文件:
lsof -i
列出特定端口的打开文件:
lsof -i :80
输出(部分):
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 5678 root 6u IPv4 12345 0t0 TCP *:http (LISTEN) ...
使用vmstat查看系统性能指标
vmstat
命令用于报告虚拟内存统计信息、进程、CPU活动等。
示例:
每秒刷新一次,共显示5次:
vmstat 1 5
输出(部分):
procs -----------memory------------swap------io----system-------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 123456 12345678 12345 12345 12345 12345 12345 12345 1 10 1 85 5 0 0 ...
使用free查看内存使用情况
free
命令用于显示系统的内存使用情况。
示例:
free -h
输出:
total used free shared buff/cache available Mem: 2048 1234 789 123 987 567 Swap: 2097 0 2097
使用df查看磁盘使用情况
df
(disk free)命令用于显示文件系统的磁盘空间使用情况。
示例:
df -h
输出:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% / tmpfs 16G 0 16G 0% /dev/shm ...
使用du查看目录或文件的大小
du
(disk usage)命令用于显示文件和目录的磁盘使用情况。
示例:
查看当前目录及其子目录的大小:
du -sh
输出(部分):
12K ./file1.txt 4、0K ./file2.txt 20K ./dir1 ...
使用iostat查看IO设备负载
iostat
命令用于监控系统输入输出设备的负载情况。
示例:
每秒刷新一次,共显示5次:
iostat 1 5
输出(部分):
Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 12.34 23.45 67.89 34.56 7890 1234 123.45 0.56 1.23 0.67 0.98 12.34 56.78% ...
FAQs
Q1:ps
命令有哪些常用的参数?
A:ps
命令有许多参数,以下是一些常用的:
ps aux
:显示所有进程。
ps -ef
:显示所有进程的详细信息。
ps -u <username>
:显示指定用户的进程。
ps -C <command>
:显示运行特定命令的进程。
ps -o <options>
:自定义输出格式,例如ps -eo pid,comm,args
。
ps --help
:查看所有可用参数。
Q2:top
命令如何保存输出到文件?
A: 你可以使用重定向符号将top
命令的输出保存到文件中,
top -b -n 1 > top_output.txt
-b
表示批处理模式,-n 1
表示只刷新一次,这样,输出将被保存到top_output.txt
文件中。
Q3:htop
命令有哪些快捷键?
A:htop
提供了许多快捷键,使操作更加便捷:
F1
:帮助。
F2
:设置。
F3
:搜索。
F4
:过滤。
F5
:树状视图。
F6
:排序。
F7
:减少nice值。
F8
:增加nice值。
F9
:发送信号。
F10
:退出。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1265530.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复