Linux通常被广泛应用于服务器操作系统领域,绝大多数Linux服务器操作系统默认不提供图形用户界面。服务器管理员需通过命令行界面与Linux服务器进行交互。本文将为您介绍Linux系统中的常用命令。
管理进程
ps
命令介绍
ps命令是Process Status的缩写,用来查看当前系统中正在运行的进程信息快照。
常用参数说明
|
|
参数 |
含义 |
-A |
显示所有程序。 |
-a |
显示现行终端机下的所有程序。 |
-e |
此选项的效果和指定“A”选项相同。 |
-f |
显示UID、PPIP、C与STIME栏位。 |
-u |
以用户为主的格式来显示程序状况。 |
-U |
列出属于该用户的程序的状态,也可以使用用户名来指定。 |
-x |
显示所有程序,不以终端机来区分。 |
更多参数说明,可运行man ps
进行查看。
使用示例
-
查看所有进程信息。
ps -ef
-
通过程序名称关键字查找程序进程信息(指定-e、-f参数)。
ps -ef | grep <key_word>
请将上述命令中的
<key_word>
替换为您指定的关键字。 -
通过程序名称关键字查找程序进程信息(指定-a、-u、-x参数)。
ps -aux | grep <key_word>
请将上述命令中的
<key_word>
替换为您指定的关键字。 -
查看进程树信息。
ps -ejH
-
查看包含线程数据的进程信息。
ps -eLf
-
使用自定义字段格式展示线程信息。
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
-
查看指定PID指定指标的信息,示例中PID为1,指标信息为comm=。
ps -q 1 -o comm=
top
命令介绍
top命令为Linux系统运行中的进程提供了动态实时视图,可以显示系统的概览信息及Linux内核当前管理的进程列表。
常用参数说明
|
|
参数选项 |
说明 |
-d |
指定top命令刷新频率。 |
-p |
指定PID以监控指定进程的状态。 |
-s |
在安全模式下运行top命令,此模式下将去除交互模式带来的潜在危险。 |
-i |
使top不显示任何闲置或者僵死进程。 |
-c |
显示完整命令而不是只显示命令名称。 |
资源监控字段说明
下图展示了部分监控字段及其数值,具体数值会因采样周期的不同而有所变化。该图仅供参考,具体数据应以您的实际数据为准。
主要参数说明如下
使用示例
-
按指定采集频率查看系统指标
运行如下命令,按指定采集频率展示系统指标。示例中指定采集频率为3 秒一次。
top 3
执行top命令,默认会以5s的采集频率展示系统指标。
-
定制top命令指标展示界面
默认情况下top命令展示的指标如系统摘要信息及进程指标监控字段说明所示。如需修改展示的指标界面,您可以在top交互式命令界面下按
f
键,以便筛选您需要的指标视图。在视图字段管理界面,相关操作,请参见下表。
按键
说明
↑,↓
进行字段选择。
→
选择整列,之后可以使用上下键移动整列的显示位置。
空格
选择隐藏还是显示该字段,带*的为显示。
s
将当前光标所在列设置为排序列。
q
退出视图字段管理界面。
-
使用top命令的交互模式
运行top命令后,系统将进入交互模式。在该模式下,用户可以通过按键与命令进行交互。有关交互模式所支持的命令,请参见下表。
按键
说明
1
展示每个逻辑CPU的指标状况。
u
按u键之后,输入Linux系统用户名,可以查看该用户相关的进程。
E
切换内存指标的计量单位,在Kib、MiB、GiB、TiB、PiB、EiB之间切换。
x
显示排序列。
y
显示运行中的进程。
?
显示帮助信息。
kill
命令介绍
kill命令用于在Linux中手动结束进程。
常用参数说明
|
|
参数 |
说明 |
-l |
列出可用的信号的名称。 |
-L |
在表格中列出信号名称。 |
使用示例
-
杀死所有可以杀死的进程。
sudo kill -9 -1
-
显示信号编号 11 所代表的信号名称。
sudo kill -l 11
-
在表格中列出所有可用的信号。
sudo kill -L
-
结束指定PID的进程。
sudo kill -9 <PID>
请将上述命令中的
<PID>
替换为您指定的进程PID。
killall
命令介绍
killall
命令用于在Linux中通过进程名称结束进程。
常用参数说明
|
|
参数 |
说明 |
-g |
杀死属于该进程组的进程。 |
-i |
交互模式,杀死进程前会征求确认信息。 |
-v |
报告信号是否成功发送。 |
使用示例
杀死top进程。
sudo killall top
查看系统信息
在使用Linux实例过程中,可以使用uname命令查询系统信息。
uname
命令介绍
uname
命令用于输出系统信息。
常用参数说明
|
|
选项 |
说明 |
-a |
输出全部信息。 |
-s |
输出内核名称。 |
-n |
输出网络节点主机名。 |
-r |
输出内核发行版本。 |
-v |
输出内核版本信息。 |
-m |
输出机器硬件名称。 |
-P |
输出处理器类型。 |
-i |
输出硬件平台信息。 |
-o |
输出操作系统信息。 |
使用示例
查看全部系统信息。
uname -a
查看管理磁盘
df
命令介绍
df
命令用于报告文件系统磁盘空间使用情况。
常用参数说明
|
|
选项 |
说明 |
-a |
包含伪(pseudo)、重复和无法访问的文件系统。 |
-B |
输出前将块大小转换为指定大小。 |
-h |
以 1024 为幂显示大小(例如,1023M)。 |
-H |
以 1000 为幂输出大小(例,1.1G)。 |
-k |
等效于 --block-size=1K。 |
-l |
仅列出本地的文件系统。 |
-t |
只显示指定类型的文件系统信息。 |
使用示例
查看磁盘空间使用情况,结果以MB为单位。
df -BM
回显结果示例如下。
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 742M 22M 721M 3% /run
/dev/vda3 39943M 2542M 35556M 7% /
tmpfs 3708M 0M 3708M 0% /dev/shm
tmpfs 5M 0M 5M 0% /run/lock
tmpfs 742M 1M 742M 1% /run/user/0
lsblk
命令介绍
lsblk
命令用于列出块设备信息。
常用参数说明
|
|
参数 |
说明 |
-a |
列出所有设备,包含空设备及内存盘设备。 |
-b |
SIZE列使用bytes作为输出。 |
-f |
输出信息中包含文件系统。 |
使用示例
查看块设备信息,包含文件系统信息。
lsblk -f
回显结果示例如下。
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
vda
|-vda1
|-vda2 vfat FAT32 6175-F96E
`-vda3 ext4 1.0 df02e0a1-d28d-41b1-99c2-58f2b684cc79 34.7G 6% /
blkid
命令介绍
blkid
命令用于查看块设备属性信息。
使用示例
查看块设备属性信息
blkid /dev/vda
回显结果示例如下。
/dev/vda: PTUUID="bdee1c7f-46fc-4838-9a74-9exxxxxxxxaf" PTTYPE="gpt"
fdisk
命令介绍
fdisk
命令是Linux分区表操作工具。
常用参数说明
|
|
参数 |
说明 |
-l |
列出指定设备的分区表信息。 |
-u |
以扇区数而不是以柱面数的形式显示分区表中各分区的信息。 |
使用示例
查看设备分区情况。
sudo fdisk -lu
回显结果示例如下。
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BDEE1C7F-46FC-4838-9A74-9E57F8FD63AF
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 413695 409600 200M EFI System
/dev/vda3 413696 83886046 83472351 39.8G Linux filesystem
mount
命令介绍
mount
命令用于挂载一个文件系统。
常用参数说明
|
|
参数 |
说明 |
-a |
挂载所有在 |
-L |
以给定的标签挂载分区。 |
-r |
以只读模式挂载文件系统。 |
-w |
以读写模式挂载文件系统。 |
-U |
以指定的 |
使用示例
-
挂载fstab中配置的所有文件系统。
sudo mount -a
-
以读写模式挂载指定文件系统。
sudo mount -w /dev/vdb1 /mnt
umount
命令介绍
umount
命令用于卸载一个文件系统。
常用参数说明
|
|
参数 |
说明 |
-r |
如果卸载失败,试图以只读方式重新挂载。 |
-a |
卸载所有在 |
-t |
只卸载指定类型的文件系统。如果要一次指定多个文件系统, 可以用逗号分隔。 |
-f |
强制卸载。 |
使用示例
强制卸载指定分区。
sudo umount -f /dev/vdb1
管理服务
systemctl
命令介绍
systemctl
命令用于服务管理。
常用参数说明
|
|
参数 |
说明 |
-a |
表示列出所有已加载的单元或者属性。 |
常用单元命令
|
|
命令 |
说明 |
start |
启动指定的已加载单元。 |
stop |
停止指定的已加载单元。 |
restart |
重新启动指定的已加载单元。 |
reload |
要求指定的单元重新加载它们的配置。 |
status |
显示指定单元的运行时状态信息。常见的服务运行状态如下所示。
|
常用单元文件命令
|
|
命令 |
说明 |
enable |
启用指定的单元或单元实例。 |
disable |
停用指定的单元或单元实例。 |
使用示例
-
重新启动
nginx
服务。sudo systemctl restart nginx
-
查看
nginx
服务状态。sudo systemctl status nginx
-
设置
nginx
服务开机启动。sudo systemctl enable nginx
管理资源占用
lsof
命令介绍
lsof
命令用于列出打开的文件。
如果您使用的Linux发行版没有预装lsof工具,您可以使用对应的软件包管理工具进行安装。
-
Alibaba Cloud Linux、CentOS、RHEL:
sudo yum install lsof
。 -
Ubuntu、Debian:
sudo apt install lsof
。
常用参数说明
|
|
参数 |
说明 |
-p |
输出指定进程打开的文件。 |
-l |
输出中使用ID代替用户名。 |
-u |
输出指定用户打开的文件。 |
-c |
输出 |
-d |
输出包含指定描述符的项。 |
-i |
输出符合指定条件的项。可选参数如下:
|
回显信息说明
运行lsof命令后的回显信息示例如下:
相关参数说明如下。
|
|
参数 |
说明 |
COMMAND |
命令名称。 |
PID |
进程ID。 |
TID |
线程ID,如果为空代表列出的是进程。 |
TASKCMD |
任务名称,通常与 COMMAND 相同。 |
USER |
用户ID号或登录名。 |
FD |
文件描述符。 |
TYPE |
与文件关联节点的类型。 |
DEVICE |
设备号。 |
SIZE/OFF |
文件大小/偏移量,以字节为单位。 |
NODE |
文件结点。 |
NAME |
文件挂载点和文件所在的系统。 |
使用示例
-
列出指定进程打开的文件
sudo lsof -p 1
请将上述命令中的
1
进程PID替换为您指定的进程PID。 -
查看指定用户相关进程打开的文件
sudo lsof -u <user-name>
请将上述命令中的
<user-name>
替换为您指定的Linux系统用户名。 -
查看打开指定文件的相关进程信息
sudo lsof <file-name>
请将上述命令中的
<file-name>
替换为您指定的文件名。 -
输出 TYPE 为 IPv4 的所有项
sudo lsof -i 4
netstat
命令介绍
netstat
命令用于显示 tcp,udp 的端口和进程等相关情况。
常用参数说明
|
|
参数 |
说明 |
-t |
仅显示tcp相关选项。 |
-u |
仅显示udp相关选项。 |
-i |
显示网卡列表。 |
-n |
拒绝显示别名,能显示数字的全部转化为数字。 |
-l |
仅列出在Listen(监听)的服务状态。 |
-p |
显示建立相关链接的程序名。 |
-s |
显示网络统计信息。 |
使用示例
-
查看8000端口的占用情况。
netstat -tunlp | grep 8000
请将上述命令中的
8000
端口替换为您指定的进程PID。 -
查看所有TCP端口使用情况。
netstat -ntlp