文章目录
- 一、概览
- 二、top命令
- 2.1 使用方法
- 2.2 输出解释
- 三、htop命令
- 3.1 安装方法
- 3.2 使用方法
- 3.3 输出解释
- 四、free命令
- 4.1 使用方法
- 4.2 输出解释
- 五、uptime命令
- 5.1 使用方法
- 5.2 输出解释
- 六、查看磁盘情况
- 6.1 df命令
- 6.2 du命令
- 七、查看网络情况
- 7.1 iftop命令
- 7.2 nload命令
- 7.3 NetHogs命令
- 结语
一、概览
本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列
,欢迎大家提前关注锁定。
Linux是一种开源的操作系统,它在服务器、嵌入式设备、超级计算机等领域都有广泛的应用。在运行Linux系统时,对于我们了解系统的资源占用情况非常重要,因为资源的占用情况直接影响着系统的性能和稳定性。本文主要介绍top、htop、free、uptime、df、du、iftop这些命令来查看Linux系统资源占用情况的方法。
二、top命令
top命令是Linux系统下一个常用的命令行工具,用于实时监视系统中运行的进程和资源的使用情况。可以通过top命令查看CPU、内存、进程等系统资源的占用情况。
2.1 使用方法
运行top命令后,会显示系统当前的资源占用情况,如下所示:
top - 20:34:37 up 1 day, 3:48, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 174 total, 1 running, 173 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1018728 total, 348052 free, 355404 used, 315272 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 533272 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1843 root 20 0 1444120 212936 58864 S 1.0 21.0 8:35.31 Xorg 2029 ubuntu 20 0 159400 18656 13192 S 0.7 1.8 0:02.77 gnome-terminal- 1925 ubuntu 20 0 500672 91412 60788 S 0.3 9.0 1:41.70 gnome-shell 2503 ubuntu 20 0 671692 43016 31480 S 0.3 4.2 0:04.01 gedit
2.2 输出解释
在top命令输出的内容中,可以看到以下几个关键信息:
- 第一行显示系统当前时间和负载情况。
- 第二行显示进程总数、正在运行的进程数、睡眠中的进程数等信息。
- 第三行显示CPU占用情况。
- 第四行显示内存占用情况。
- 从第七行开始,显示了系统中各个进程的占用情况。
top命令默认情况下会按照CPU占用率来进行排序,可以通过按“P”键来切换成按内存占用率排序。另外,如果想结束top命令,可以直接按下“Q”键即可。
三、htop命令
htop命令是top命令的增强版,它能够更加直观地显示系统资源的占用情况,支持使用鼠标来操作,可以方便地进行进程管理。
3.1 安装方法
在Debian或Ubuntu系统上,可以通过以下命令来安装htop:
sudo apt-get install htop
3.2 使用方法
运行htop命令后,会显示系统当前的资源占用情况,如下所示:
1 │ root │ │ 1427MiB │ 21% │ │ python3 2 │ root │ │ 827MiB │ 12% │ │ python3 3 │ root │ │ 461MiB │ 6% │ /usr/bin/python3 /usr/bin/ansible- │ ansible-playbook 4 │ _apt │ showca │ 352MiB │ 5% │ /usr/bin/python3 /usr/bin/unatten │ unattended-upgrades 5 │ root │ │ 327MiB │ 5% │ │ python3 6 │ root │ │ 112MiB │ 1% │ /usr/sbin/mysqld --daemonize --l │ mysqld 7 │ mysql │ │ 95MiB │ 1% │ /usr/sbin/mysqld --daemonize --l │ mysqld 8 │ root │ │ 82MiB │ 1% │ kubelet --bootstrap-kubeconfig= │ kubelet 9 │ ubuntu │ tty1 │ 79MiB │ 1% │ /lib/systemd/systemd --user │ systemd 10 │ ubuntu │ │ 71MiB │ 1% │ /usr/lib/gnome-terminal/gnome-t │ gnome-terminal- 11 │ ubuntu │ │ 60MiB │ 1% │ /usr/lib/xorg/Xorg -core │ Xorg 12 │ root │ │ 58MiB │ 1% │ /usr/bin/dockerd -H fd:// --con │ dockerd ...
3.3 输出解释
在htop命令输出的内容中,可以看到以下几个关键信息:
- 第一列显示进程的PID。
- 第二列显示进程的用户。
- 第三列显示进程的状态。
- 第四列显示进程所占用的内存大小。
- 第五列显示进程所占用CPU的百分比。
- 最后一列显示进程的命令行。
可以通过键盘上的上下左右箭头来选择进程,并且可以通过F2、F3、F4等键来进行进程管理,如结束进程、改变进程优先级等操作。
四、free命令
free命令用于显示系统的物理内存和交换空间使用情况,可以方便地查看系统中的内存和交换分区的使用情况。
4.1 使用方法
运行free命令后,会输出系统当前的内存和交换空间使用情况,如下所示:
total used free shared buff/cache available
Mem: 1018728 651368 216620 23956 150740 258176
Swap: 1048572 0 1048572
4.2 输出解释
在free命令输出的内容中,可以看到以下几个关键信息:
- 第一行显示了系统的总内存、已使用内存、空闲内存、共享内存和缓存占用情况。
- 第二行显示了系统的总交换空间、已使用交换空间、空闲交换空间占用情况。
五、uptime命令
uptime命令用于显示系统的运行时间和负载情况,可以方便地了解系统的稳定性和负载情况。
5.1 使用方法
运行uptime命令后,会输出系统的运行时间和负载情况,如下所示:
20:09:07 up 1 day, 4:22, 1 user, load average: 0.02, 0.02, 0.00
5.2 输出解释
在uptime命令输出的内容中,可以看到以下几个关键信息:
- 第一列显示了系统当前时间。
- 第二列显示了系统的运行时间,格式为“天数:小时:分钟”。
- 第三列显示了当前登录用户数。
- 最后一列显示了系统的平均负载情况,分别是1分钟、5分钟、15分钟内的平均负载。
六、查看磁盘情况
6.1 df命令
df
命令用于显示分区和文件系统的信息。通过-h
选项可以将输出转换为人类可读的形式。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 479G 264G 191G 59% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 1.3M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
tmpfs 3.2G 0 3.2G 0% /run/user/0
6.2 du命令
du
命令用于计算文件和目录占用的磁盘空间。通过-h
选项可以将输出转换为人类可读的形式。
$ du -h /home/user/
4.0K /home/user/testfile.txt
4.0K /home/user/Downloads
24K /home/user/Desktop
4.0K /home/user/Public
12K /home/user/Documents
64K /home/user/
七、查看网络情况
7.1 iftop命令
iftop
命令用于实时监测网络流量,可以按照IP和端口号进行过滤。
$ sudo iftop -i eth0
7.2 nload命令
nload
命令用于实时监测网络带宽使用情况,可以按照网络接口进行过滤。
$ sudo nload eth0
7.3 NetHogs命令
NetHogs
命令用于显示每个进程所消耗的网络流量。通过-p
选项可以按照端口号进行过滤。
$ sudo nethogs -p eth0
结语
以上就是本文讲解的内容,这些东西无论是平时日常工作还是面试,都是比较常见和基础的。
本文已收录于PHP全栈系列专栏:PHP面试专区。
计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列
,欢迎大家提前关注锁定。