
博客主页:christine-rr-CSDN博客 hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——系统管理、磁盘管理
功能:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间和挂载点。 常用参数:
-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:文件系统被挂载到的目录或位置。功能:查看系统中当前运行的进程信息(进程 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
R:运行中(Running)S:睡眠中(Sleeping,可被唤醒)D:不可中断睡眠(通常等待 IO,无法被 kill,不存在但暂时无法消除)Z:僵尸进程(Zombie,已终止但父进程未回收)T:暂停状态(Stopped,如被Ctrl+Z暂停)功能:向进程发送信号,常用以终止进程(默认发送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。
功能:动态显示系统资源(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 使用。
功能:安全关闭或重启系统,支持定时操作(默认 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功能:快速重启系统(相当于shutdown -r now)。
常用参数:
-f:强制重启(不执行关机前的清理步骤,慎用)-p:重启前关闭电源(部分系统支持)示例:
reboot # 正常重启系统
reboot -f # 强制重启(用于系统无响应时)功能:管理系统服务(启动、停止、重启、设置开机自启等),适用于采用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 - 紧急模式功能:查看和管理磁盘分区表(适用于 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)才能使用,且操作有数据丢失风险,建议先备份。
free 命令用于显示系统内存(物理内存和交换分区)的使用情况,包括总容量、已使用、空闲和缓冲区 / 缓存的内存量。
常用选项
-h:以人类可读的格式显示(自动转换为 K、M、G 单位)-m:以 MB 为单位显示-g:以 GB 为单位显示-s <秒数>:持续刷新显示,间隔指定秒数-t:显示内存总和(增加一行 Total)示例
free -h # 人类可读格式显示内存信息输出示例:
total used free shared buff/cache available
Mem: 15Gi 3.2Gi 8.5Gi 342Mi 3.8Gi 11Gi
Swap: 10Gi 0B 10Gi输出说明
total:总内存容量used:已使用的内存(包括应用程序和系统占用)free:完全空闲的内存shared:被多个进程共享的内存buff/cache:用于缓冲区和缓存的内存(可被回收利用)available:估计的可用于新应用程序的内存量(最有参考价值)