linux常用命令(2)——系统管理
博客主页:christine-rr-CSDN博客
hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——系统管理
linux常用系统管理命令
目录
- linux常用系统管理命令
- 1. df :显示磁盘空间使用
- 2. ps :显示进程状态
- 3. kill :结束进程
- 4. top :实时监控系统资源与进程
- 5. shutdown :关闭或重启系统
- 6. reboot :重启系统
- 7. systemctl :系统服务管理(systemd 系统)
- 8. fdisk:磁盘分区管理
1. df :显示磁盘空间使用
功能:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间和挂载点。
常用参数:
-h
:以人类可读格式显示(K、M、G 单位)-T
:显示文件系统类型(如 ext4、xfs、tmpfs)-i
:显示 inode 使用情况(而非磁盘容量,inode 满会导致无法创建新文件)
示例:
df -h # 查看所有挂载的文件系统空间使用(人类可读格式)
df -Th /home # 查看/home目录所在文件系统的类型和空间使用
df -i # 查看各文件系统的inode使用情况(排查"磁盘未满却无法创建文件"问题)
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 29640780 4320704 23814388 16% /
udev 1536756 4 1536752 1% /dev
tmpfs 617620 888 616732 1% /run
none 5120 0 5120 0% /run/lock
none 1544044 156 1543888 1% /run/shm
说明:
Filesystem
:文件系统的名称或标识符。1K-blocks
:文件系统的总容量,以 1KB 块为单位。即文件系统总大小。Used
:文件系统已经使用的容量,以 1KB 块为单位。Available
:文件系统中仍然可用的容量,以 1KB 块为单位。Use%
:文件系统已使用容量占总容量的百分比。Mounted on
:文件系统被挂载到的目录或位置。
2. ps :显示进程状态
功能:查看系统中当前运行的进程信息(进程 ID、状态、资源占用等)。
常用参数:
-a
:显示所有用户的进程(包括其他用户)-u
:以用户为中心显示详细信息(CPU、内存占用率、启动时间)-x
:显示没有控制终端的进程(如后台服务)-e
:显示所有进程(等同于-A
)-f
:以树状结构显示进程间的父子关系-w
:显示加宽可以显示较多的资讯-au
:显示较详细的资讯
常用组合:
ps -aux # 查看系统中所有进程的详细信息(最常用,包含其他使用者的进程)
ps -ef # 以树状结构显示所有进程及父进程关系
ps -aux | grep "nginx" # 过滤出包含"nginx"的进程(查找特定进程)
ps -u root # 只显示root用户的进程
进程状态字段说明(ps aux
输出中的STAT
列):
au(x) 输出格式 :USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-
USER: 行程拥有者
-
PID: pid
-
%CPU: 占用的 CPU 使用率
-
%MEM: 占用的记忆体使用率
-
VSZ: 占用的虚拟记忆体大小
-
RSS: 占用的记忆体大小
-
TTY: 终端的次要装置号码 (minor device number of tty)
-
STAT: 该行程的状态:
R
:运行中(Running)S
:睡眠中(Sleeping,可被唤醒)D
:不可中断睡眠(通常等待 IO,无法被 kill,不存在但暂时无法消除)Z
:僵尸进程(Zombie,已终止但父进程未回收)T
:暂停状态(Stopped,如被Ctrl+Z
暂停)- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
-
START: 行程开始时间
-
TIME: 执行的时间
-
COMMAND:所执行的指令
3. kill :结束进程
功能:向进程发送信号,常用以终止进程(默认发送TERM
信号,即 15)。
语法:
kill [options] < PID >
参数说明:
-l
:列出所有可用的信号。-<signal>
:发送特定的信号给目标进程,如-9
表示发送 KILL 信号,即强制终止进程。
核心信号< signal >:
15
(TERM
):正常终止(默认,允许进程清理资源)9
(KILL
):强制终止(不允许进程清理,用于无法正常终止的进程)1
(HUP
):重启进程(常用于重载配置,如kill -1 <nginx pid>
)
示例:
kill 1234 # 向PID为1234的进程发送TERM信号(正常终止)
kill -9 5678 # 强制终止PID为5678的进程(无法抗拒)
kill -1 8080 # 重启PID为8080的进程(如重载服务配置)
kill $(ps aux | grep "python" | awk '{print $2}') # 批量终止所有python进程
注:需先通过
ps
或pgrep
获取进程 ID(PID),例如pgrep nginx
可直接返回 nginx 的 PID。
4. top :实时监控系统资源与进程
功能:动态显示系统资源(CPU、内存)使用情况和进程状态,默认每秒刷新一次。
界面核心信息:
- 顶部:系统负载(1/5/15 分钟)、进程总数、CPU 使用率(用户态、系统态、空闲等)、内存 / 交换分区使用情况。
- 中部:进程列表(按 CPU 使用率排序,可切换排序字段)。
常用交互快捷键(在 top 界面中按下):
P
:按 CPU 使用率排序(默认)M
:按内存使用率排序T
:按进程运行时间排序k
:输入 PID 并发送信号(如终止进程,等同于kill
)q
:退出 top
示例:
top #显示进程信息
top -b #以批处理模式显示程序信息
top -S #以累积模式显示程序信息
top -d 3 # 设置信息更新次数,每3秒刷新一次top界面
top -p 1234 # 显示指定的进程信息,只监控PID为1234的进程
进阶工具:
htop
(需安装),界面更友好,支持鼠标操作和彩色显示,推荐替代 top 使用。
5. shutdown :关闭或重启系统
功能:安全关闭或重启系统,支持定时操作(默认 1 分钟后关闭)。
常用参数:
-h
:关闭系统(halt)-r
:重启系统(reboot)-c
:取消已计划的 shutdown+<分钟数>
:定时操作(如+5
表示 5 分钟后)<时间>
:指定具体时间(如23:30
表示晚上 11:30)
示例:
shutdown -h now # 立即关闭系统
shutdown -r now #重新启动计算机
shutdown -r +10 # 10分钟后重启系统
shutdown -h 22:00 # 晚上10点关闭系统
shutdown -c # 取消之前计划的shutdown
6. reboot :重启系统
功能:快速重启系统(相当于shutdown -r now
)。
常用参数:
-f
:强制重启(不执行关机前的清理步骤,慎用)-p
:重启前关闭电源(部分系统支持)
示例:
reboot # 正常重启系统
reboot -f # 强制重启(用于系统无响应时)
7. systemctl :系统服务管理(systemd 系统)
功能:管理系统服务(启动、停止、重启、设置开机自启等),适用于采用systemd的 Linux 系统(如 CentOS 7+、Ubuntu 16.04+),取代了传统的 init 系统和 service 命令。一般需要root权限。
常用命令结构:
systemctl <操作> <服务名>
核心操作:
start
:启动服务stop
:停止服务restart
:重启服务(先停后启)reload
:重载配置(不中断服务,如 nginx、apache)status
:查看服务状态(运行中、已停止、错误信息)enable
:设置服务开机自启disable
:关闭服务开机自启is-active
:检查服务是否正在运行list-unit-files --type=service
:列出所有服务及开机自启状态
示例:
# 看服务状态
systemctl status [服务名] # 查看单个服务状态
systemctl status firewalld # 查看防火墙服务状态(含日志)
systemctl list-units --type=service --state=running # 查看所有运行中的服务
systemctl --failed # 查看失败的服务
systemctl is-active httpd # 检查httpd服务是否运行(输出active/inactive)# 启动/停止/重启服务
sudo systemctl start nginx # 启动nginx服务
sudo systemctl stop mysql # 停止mysql服务
sudo systemctl reload [服务名] # 重新加载配置(不重启服务)
sudo systemctl restart sshd # 重启ssh服务# 启用/禁用服务
systemctl enable [服务名] # 启用服务(开机自启)
sudo systemctl enable docker # 设置docker开机自启
sudo systemctl disable [服务名] # 禁用服务(取消开机自启)
systemctl is-enabled [服务名] # 查看服务是否启用# 常用单元文件操作
## 单元文件位置:系统单元:/usr/lib/systemd/system/,管理员自定义单元:/etc/systemd/system/
sudo systemctl daemon-reload #重新加载所有单元文件(修改配置后需要执行)
systemctl cat [单元名] #显示单元文件内容
sudo systemctl edit [单元名] --full# 编辑单元文件(会创建覆盖文件)# 系统电源管理
systemctl poweroff # 关机
systemctl reboot # 重启
systemctl suspend # 挂起
systemctl hibernate # 休眠# 系统运行级别
systemctl get-default # 获取当前目标(运行级别)
systemctl set-default [目标名]# 设置默认目标
systemctl isolate [目标名] # 切换目标(立即生效)# 常见目标:
# graphical.target - 图形界面模式
# multi-user.target - 多用户文本模式
# rescue.target - 救援模式
# emergency.target - 紧急模式
8. fdisk:磁盘分区管理
功能:查看和管理磁盘分区表(适用于 MBR 分区格式,GPT 分区推荐用gdisk
),兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表,需 root 权限。
常用操作:
-
查看系统磁盘列表:
fdisk -l
(列出所有磁盘及分区) -
进入磁盘分区交互模式:
fdisk /dev/sda
(以 sda 磁盘为例)交互模式常用命令:
p
:打印当前磁盘的分区表,显示分区信息m
:显示菜单和帮助信息l
:显示分区类型a
:活动分区标记/引导分区n
:新建分区(需选择分区类型、起始扇区等)d
:删除分区(需指定分区号)w
:保存修改并退出(谨慎!操作不可逆)q
:放弃修改并退出t
:设置分区号v
:进行分区检查x
:扩展应用,高级功能
示例:
fdisk -l # 显示当前分区情况,查看所有磁盘(如/dev/sda、/dev/sdb)
fdisk -lu #显示SCSI硬盘的每个分区情况
fdisk /dev/sdb # 对sdb磁盘进行分区操作(进入交互模式)
# 交互模式中:p(查看现有分区)→ n(新建)→ 按提示设置分区 → w(保存)
注意:分区操作后需格式化分区(如
mkfs.ext4 /dev/sdb1
)才能使用,且操作有数据丢失风险,建议先备份。