5690 字
28 分钟

Linux系统管理命令和技巧

2026-02-03
浏览量 加载中...

Linux系统管理命令和技巧#

系统管理概述#

Linux系统管理是维护和操作Linux系统的过程,包括系统配置、用户管理、服务管理、网络配置、安全管理等方面。本文将介绍Linux系统管理中常用的命令和技巧,帮助系统管理员更高效地管理Linux系统。

用户和组管理#

用户管理#

useradd - 创建用户#

useradd命令用于创建新用户。

Terminal window
# 创建新用户
useradd username
# 创建用户并指定主目录
useradd -d /home/username username
# 创建用户并指定登录shell
useradd -s /bin/bash username
# 创建用户并指定UID
useradd -u 1000 username
# 创建用户并指定所属组
useradd -g groupname username
# 创建用户并指定附加组
useradd -G group1,group2 username
# 创建系统用户(无登录shell)
useradd -r username
# 创建用户并设置密码
useradd -m username && passwd username

usermod - 修改用户属性#

usermod命令用于修改用户的属性。

Terminal window
# 修改用户的登录shell
usermod -s /bin/zsh username
# 修改用户的主目录
usermod -d /new/home/dir username
# 修改用户的UID
usermod -u 1001 username
# 修改用户的所属组
usermod -g groupname username
# 修改用户的附加组
usermod -G group1,group2 username
# 锁定用户账户
usermod -L username
# 解锁用户账户
usermod -U username
# 修改用户的过期时间
usermod -e 2026-12-31 username

userdel - 删除用户#

userdel命令用于删除用户。

Terminal window
# 删除用户
userdel username
# 删除用户及其主目录
userdel -r username

passwd - 修改密码#

passwd命令用于修改用户的密码。

Terminal window
# 修改当前用户的密码
passwd
# 修改指定用户的密码(需要root权限)
passwd username
# 锁定用户的密码
passwd -l username
# 解锁用户的密码
passwd -u username
# 清除用户的密码
passwd -d username
# 查看用户密码状态
passwd -S username

组管理#

groupadd - 创建组#

groupadd命令用于创建新组。

Terminal window
# 创建新组
groupadd groupname
# 创建组并指定GID
groupadd -g 1000 groupname
# 创建系统组
groupadd -r groupname

groupmod - 修改组属性#

groupmod命令用于修改组的属性。

Terminal window
# 修改组名
groupmod -n newgroupname oldgroupname
# 修改组的GID
groupmod -g 1001 groupname

groupdel - 删除组#

groupdel命令用于删除组。

Terminal window
# 删除组
groupdel groupname

gpasswd - 管理组密码和成员#

gpasswd命令用于管理组的密码和成员。

Terminal window
# 向组中添加用户
gpasswd -a username groupname
# 从组中删除用户
gpasswd -d username groupname
# 设置组的管理员
gpasswd -A username1,username2 groupname
# 设置组密码
gpasswd groupname
# 允许用户加入组(需要组密码)
gpasswd -M username groupname

查看用户和组信息#

Terminal window
# 查看当前用户
whoami
id
# 查看用户信息
id username
finger username
# 查看所有用户
cat /etc/passwd
getent passwd
# 查看所有组
cat /etc/group
getent group
# 查看用户所属的组
groups username
# 查看组中的用户
getent group groupname

服务管理#

systemctl 命令#

systemctl命令是systemd系统的服务管理工具,用于管理系统服务。

Terminal window
# 查看服务状态
systemctl status service_name
# 启动服务
systemctl start service_name
# 停止服务
systemctl stop service_name
# 重启服务
systemctl restart service_name
# 重新加载服务配置
systemctl reload service_name
# 启用服务(开机自启)
systemctl enable service_name
# 禁用服务(禁止开机自启)
systemctl disable service_name
# 查看服务是否启用
systemctl is-enabled service_name
# 查看所有服务状态
systemctl list-units --type=service
# 查看所有已启用的服务
systemctl list-unit-files --type=service --state=enabled
# 查看所有失败的服务
systemctl list-units --type=service --state=failed
# 查看服务依赖
systemctl list-dependencies service_name
# 屏蔽服务(禁止启动)
systemctl mask service_name
# 取消屏蔽服务
systemctl unmask service_name

服务配置文件#

系统服务的配置文件通常位于以下目录:

  • /etc/systemd/system/:系统服务的配置文件目录
  • /lib/systemd/system/:默认服务的配置文件目录

服务配置文件的基本结构:

[Unit]
Description=Service description
After=network.target
[Service]
Type=simple
ExecStart=/path/to/service
Restart=always
[Install]
WantedBy=multi-user.target

自定义服务#

创建自定义服务的步骤:

  1. 创建服务配置文件
  2. 重载systemd配置
  3. 启用并启动服务

示例:创建一个简单的服务

Terminal window
# 创建服务配置文件
sudo nano /etc/systemd/system/my-service.service
# 服务配置文件内容
[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/my-service.sh
Restart=always
User=username
[Install]
WantedBy=multi-user.target
# 重载systemd配置
sudo systemctl daemon-reload
# 启用服务
sudo systemctl enable my-service
# 启动服务
sudo systemctl start my-service
# 查看服务状态
sudo systemctl status my-service

系统日志管理#

journalctl 命令#

journalctl命令用于查看和管理systemd日志。

Terminal window
# 查看所有日志
journalctl
# 查看最近的日志
journalctl -n 100
# 实时查看日志
journalctl -f
# 查看特定服务的日志
journalctl -u service_name
# 查看特定时间段的日志
journalctl --since "2026-02-05 00:00:00" --until "2026-02-05 12:00:00"
# 查看错误日志
journalctl -p err..emerg
# 按时间排序(最新的在前)
journalctl -r
# 查看引导日志
journalctl -b
journalctl -b -1 # 查看上一次引导的日志
# 查看特定进程的日志
journalctl _PID=1234
# 查看特定用户的日志
journalctl _UID=1000
# 查看日志磁盘使用情况
journalctl --disk-usage
# 清理日志(保留2天)
journalctl --vacuum-time=2d
# 清理日志(保留100MB)
journalctl --vacuum-size=100M

传统日志文件#

Linux系统中还有一些传统的日志文件,位于/var/log/目录:

  • /var/log/syslog/var/log/messages:系统日志
  • /var/log/auth.log/var/log/secure:认证日志
  • /var/log/daemon.log:守护进程日志
  • /var/log/cron.log:定时任务日志
  • /var/log/kern.log:内核日志
  • /var/log/boot.log:启动日志
  • /var/log/ufw.log:防火墙日志

查看日志文件:

Terminal window
# 使用cat查看日志文件
cat /var/log/syslog
# 使用tail查看日志文件的最后几行
tail /var/log/syslog
tail -n 50 /var/log/syslog
# 使用tail -f实时查看日志
tail -f /var/log/syslog
# 使用grep搜索日志中的关键词
grep "error" /var/log/syslog
# 使用less分页查看日志
less /var/log/syslog

日志轮转#

日志轮转用于管理日志文件的大小和数量,防止日志文件过大。

Terminal window
# 查看日志轮转配置
cat /etc/logrotate.conf
# 查看特定服务的日志轮转配置
ls /etc/logrotate.d/
cat /etc/logrotate.d/nginx
# 手动执行日志轮转
logrotate /etc/logrotate.conf
logrotate -f /etc/logrotate.d/nginx # 强制轮转

日志轮转配置示例:

/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -s /run/nginx.pid ] && kill -USR1 $(cat /run/nginx.pid)
endscript
}

系统监控#

进程监控#

top 命令#

top命令用于实时监控系统的进程和资源使用情况。

Terminal window
# 启动top
top
# 常用快捷键
# P: 按CPU使用率排序
# M: 按内存使用率排序
# T: 按运行时间排序
# k: 终止进程
# q: 退出
# 以批处理模式运行top
top -b -n 1
# 显示特定用户的进程
top -u username
# 显示特定进程
top -p PID

htop 命令#

htop命令是top命令的增强版,提供了更友好的界面和更多功能。

Terminal window
# 启动htop
htop
# 常用快捷键
# F1: 显示帮助
# F2: 设置
# F3: 搜索进程
# F4: 过滤进程
# F5: 切换树状视图
# F6: 排序
# F7: 降低优先级
# F8: 提高优先级
# F9: 终止进程
# F10: 退出
# 显示特定用户的进程
htop -u username
# 显示特定进程
htop -p PID

ps 命令#

ps命令用于显示当前系统的进程信息。

Terminal window
# 显示当前用户的进程
ps
# 显示所有进程
ps aux
# 以树状结构显示进程
ps axjf
# 按CPU使用率排序
ps aux --sort=-%cpu
# 按内存使用率排序
ps aux --sort=-%mem
# 显示特定用户的进程
ps -u username
# 显示特定进程
ps -p PID
# 显示进程的线程
ps -Lf PID

资源监控#

vmstat 命令#

vmstat命令用于显示虚拟内存、进程、CPU活动等系统信息。

Terminal window
# 显示系统统计信息
vmstat
# 每2秒显示一次,共显示5次
vmstat 2 5
# 显示详细信息
vmstat -a
# 显示磁盘统计信息
vmstat -d
# 显示内存统计信息
vmstat -m
# 显示进程统计信息
vmstat -p /dev/sda1

iostat 命令#

iostat命令用于显示CPU和磁盘I/O统计信息。

Terminal window
# 显示CPU和磁盘I/O统计信息
iostat
# 每2秒显示一次,共显示5次
iostat 2 5
# 显示详细的磁盘统计信息
iostat -x
# 显示指定磁盘的统计信息
iostat -p sda

sar 命令#

sar命令用于收集、报告和保存系统活动信息。

Terminal window
# 显示CPU使用情况
sar
# 每2秒显示一次,共显示5次
sar 2 5
# 显示内存使用情况
sar -r
# 显示磁盘I/O统计
sar -d
# 显示网络统计
sar -n DEV
# 显示进程统计
sar -q
# 保存系统活动信息
sar -o datafile 1 10
# 从数据文件中读取信息
sar -f datafile

free 命令#

free命令用于显示系统的内存使用情况。

Terminal window
# 显示内存使用情况
free
# 以人类可读的格式显示
free -h
# 显示详细信息
free -v
# 显示内存总量
free -t
# 每2秒显示一次,共显示5次
watch -n 2 free -h

df 命令#

df命令用于显示文件系统的磁盘使用情况。

Terminal window
# 显示磁盘使用情况
df
# 以人类可读的格式显示
df -h
# 显示inode使用情况
df -i
# 显示指定文件系统的使用情况
df -h /dev/sda1
# 显示所有文件系统的类型
df -T

du 命令#

du命令用于显示目录或文件的大小。

Terminal window
# 显示目录大小
du directory/
# 以人类可读的格式显示
du -h directory/
# 显示目录总大小
du -sh directory/
# 显示前n个最大的文件或目录
du -h --max-depth=1 directory/ | sort -hr | head -n 10
# 显示指定文件的大小
du -h file.txt

网络管理#

网络配置#

ifconfig 命令#

ifconfig命令用于显示或配置网络接口信息。

Terminal window
# 显示所有网络接口信息
ifconfig
# 显示指定网络接口信息
ifconfig eth0
# 启动网络接口
ifconfig eth0 up
# 关闭网络接口
ifconfig eth0 down
# 配置IP地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 配置IP地址和广播地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
# 添加IPv6地址
ifconfig eth0 inet6 add 2001:db8::1/64
# 显示网络接口的MAC地址
ifconfig eth0 | grep HWaddr

ip 命令#

ip命令是一个功能强大的网络配置工具,可替代ifconfig

Terminal window
# 显示所有网络接口信息
ip addr
# 显示指定网络接口信息
ip addr show eth0
# 启动网络接口
ip link set eth0 up
# 关闭网络接口
ip link set eth0 down
# 配置IP地址
ip addr add 192.168.1.100/24 dev eth0
# 删除IP地址
ip addr del 192.168.1.100/24 dev eth0
# 显示路由表
ip route
# 添加路由
ip route add 10.0.0.0/8 via 192.168.1.1
# 删除路由
ip route del 10.0.0.0/8
# 显示默认网关
ip route | grep default
# 设置默认网关
ip route add default via 192.168.1.1
# 显示网络连接
ip link
# 修改网络接口的MAC地址
ip link set eth0 address 00:11:22:33:44:55

netplan 配置(Ubuntu 18.04+)#

Netplan是Ubuntu 18.04及更高版本的网络配置工具。

Terminal window
# 查看Netplan配置文件
ls /etc/netplan/
cat /etc/netplan/00-installer-config.yaml
# 编辑Netplan配置文件
sudo nano /etc/netplan/00-installer-config.yaml
# 应用Netplan配置
sudo netplan apply
# 测试Netplan配置
sudo netplan try

Netplan配置示例:

network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

网络连接测试#

ping 命令#

ping命令用于测试与目标主机的网络连接。

Terminal window
# 测试与目标主机的连接
ping google.com
# 发送指定数量的数据包
ping -c 5 google.com
# 设置数据包大小
ping -s 100 google.com
# 设置ping的超时时间
ping -W 2 google.com
# 使用IPv4
ping -4 google.com
# 使用IPv6
ping -6 google.com

traceroute 命令#

traceroute命令用于追踪数据包从本地到目标主机的路径。

Terminal window
# 追踪到目标主机的路径
traceroute google.com
# 使用ICMP协议
traceroute -I google.com
# 使用TCP协议
traceroute -T google.com
# 设置最大跳数
traceroute -m 10 google.com
# 设置数据包大小
traceroute -s 100 google.com

mtr 命令#

mtr命令是pingtraceroute的组合,用于实时显示网络路径的质量。

Terminal window
# 启动mtr
mtr google.com
# 以报告模式运行
mtr -r google.com
# 以CSV格式输出
mtr -c 10 -C google.com

curl 命令#

curl命令用于在网络上传输数据,支持多种协议。

Terminal window
# 测试HTTP连接
curl -I https://example.com
# 测试HTTPS连接
curl -v https://example.com
# 测试FTP连接
curl -I ftp://ftp.example.com
# 测试SMTP连接
curl -v smtp://smtp.example.com:25

netcat 命令#

netcat命令用于读取和写入网络连接。

Terminal window
# 测试TCP端口
nc -zv google.com 80
# 测试UDP端口
nc -zvu google.com 53
# 扫描端口范围
nc -zv google.com 80-90
# 创建简单的服务器
nc -l 8080
# 连接到服务器
nc localhost 8080

网络服务管理#

ssh 服务#

SSH服务用于安全远程登录。

Terminal window
# 查看SSH服务状态
systemctl status ssh
# 启动SSH服务
systemctl start ssh
# 停止SSH服务
systemctl stop ssh
# 重启SSH服务
systemctl restart ssh
# 启用SSH服务(开机自启)
systemctl enable ssh
# 禁用SSH服务(禁止开机自启)
systemctl disable ssh
# 查看SSH配置
cat /etc/ssh/sshd_config
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 重启SSH服务使配置生效
sudo systemctl restart ssh

SSH安全配置建议:

  • 禁用root登录:PermitRootLogin no
  • 禁用密码登录,使用密钥登录:PasswordAuthentication no
  • 更改默认端口:Port 2222
  • 限制允许登录的用户:AllowUsers username
  • 启用公钥认证:PubkeyAuthentication yes

防火墙管理#

ufw 命令(Ubuntu/Debian)#

ufw是Ubuntu和Debian系统的防火墙管理工具。

Terminal window
# 查看UFW状态
ufw status
# 启用UFW
ufw enable
# 禁用UFW
ufw disable
# 重置UFW
ufw reset
# 允许SSH连接
ufw allow ssh
ufw allow 22/tcp
# 允许HTTP连接
ufw allow http
ufw allow 80/tcp
# 允许HTTPS连接
ufw allow https
ufw allow 443/tcp
# 允许特定端口
ufw allow 8080/tcp
# 允许特定IP访问
ufw allow from 192.168.1.100
# 允许特定IP访问特定端口
ufw allow from 192.168.1.100 to any port 22
# 拒绝连接
ufw deny 3306/tcp
# 删除规则
ufw delete allow 80/tcp
firewalld 命令(CentOS/RHEL)#

firewalld是CentOS和RHEL系统的防火墙管理工具。

Terminal window
# 查看firewalld状态
systemctl status firewalld
# 启动firewalld
systemctl start firewalld
# 停止firewalld
systemctl stop firewalld
# 启用firewalld(开机自启)
systemctl enable firewalld
# 禁用firewalld(禁止开机自启)
systemctl disable firewalld
# 查看防火墙规则
firewall-cmd --list-all
# 查看所有开放的端口
firewall-cmd --list-ports
# 允许SSH连接
firewall-cmd --permanent --add-service=ssh
# 允许HTTP连接
firewall-cmd --permanent --add-service=http
# 允许HTTPS连接
firewall-cmd --permanent --add-service=https
# 允许特定端口
firewall-cmd --permanent --add-port=8080/tcp
# 重新加载防火墙规则
firewall-cmd --reload
# 删除规则
firewall-cmd --permanent --remove-service=http
firewall-cmd --reload

存储管理#

磁盘管理#

fdisk 命令#

fdisk命令用于管理磁盘分区。

Terminal window
# 列出所有磁盘和分区
fdisk -l
# 进入磁盘分区模式
fdisk /dev/sda
# 在fdisk交互模式中的常用命令
# p: 显示分区表
# n: 创建新分区
# d: 删除分区
# t: 修改分区类型
# w: 保存更改并退出
# q: 退出不保存更改

parted 命令#

parted命令用于管理磁盘分区,支持GPT分区表。

Terminal window
# 列出所有磁盘和分区
parted -l
# 进入磁盘分区模式
parted /dev/sda
# 在parted交互模式中的常用命令
# print: 显示分区表
# mkpart: 创建新分区
# rm: 删除分区
# resize: 调整分区大小
# quit: 退出
# 非交互模式创建分区
parted /dev/sda mkpart primary ext4 1MiB 100GiB

文件系统管理#

mkfs 命令#

mkfs命令用于在分区上创建文件系统。

Terminal window
# 在分区上创建ext4文件系统
mkfs.ext4 /dev/sda1
# 在分区上创建xfs文件系统
mkfs.xfs /dev/sda1
# 在分区上创建FAT32文件系统
mkfs.vfat -F 32 /dev/sda1
# 在分区上创建NTFS文件系统
mkfs.ntfs /dev/sda1

mount 命令#

mount命令用于挂载文件系统。

Terminal window
# 挂载分区到目录
mount /dev/sda1 /mnt
# 挂载ISO文件
mount -o loop file.iso /mnt
# 挂载网络共享
mount -t cifs //server/share /mnt -o username=user,password=pass
# 挂载NFS共享
mount -t nfs server:/share /mnt
# 查看已挂载的文件系统
mount
# 卸载文件系统
umount /mnt
# 强制卸载
umount -f /mnt

fstab 配置#

/etc/fstab文件用于配置系统启动时自动挂载的文件系统。

Terminal window
# 查看fstab配置
cat /etc/fstab
# 编辑fstab配置
sudo nano /etc/fstab
# 测试fstab配置
sudo mount -a

fstab配置示例:

# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sda3 swap swap defaults 0 0
UUID=12345678-1234-1234-1234-1234567890ab /mnt/data ext4 defaults 0 0

UUID 管理#

UUID是分区的唯一标识符,比设备名更稳定。

Terminal window
# 查看分区的UUID
blkid
blkid /dev/sda1
# 使用UUID挂载分区
mount UUID=12345678-1234-1234-1234-1234567890ab /mnt

LVM 管理#

LVM(Logical Volume Manager)用于管理逻辑卷,提供更灵活的存储管理。

Terminal window
# 查看物理卷
pvs
pvdisplay
# 查看卷组
vgs
vgdisplay
# 查看逻辑卷
lvs
lvdisplay
# 创建物理卷
pvcreate /dev/sda1
# 创建卷组
vgcreate vg0 /dev/sda1
# 创建逻辑卷
lvcreate -L 100G -n lv_data vg0
# 扩展逻辑卷
lvresize -L +50G /dev/vg0/lv_data
resize2fs /dev/vg0/lv_data
# 缩小逻辑卷
umount /dev/vg0/lv_data
resize2fs /dev/vg0/lv_data 100G
lvresize -L 100G /dev/vg0/lv_data
mount /dev/vg0/lv_data /mnt
# 删除逻辑卷
umount /dev/vg0/lv_data
lvremove /dev/vg0/lv_data
# 删除卷组
vgremove vg0
# 删除物理卷
pvremove /dev/sda1

系统维护#

系统更新#

apt 命令(Debian/Ubuntu)#

Terminal window
# 更新包列表
sudo apt update
# 升级已安装的包
sudo apt upgrade
# 升级系统版本
sudo apt dist-upgrade
# 自动删除不需要的包
sudo apt autoremove
# 清理包缓存
sudo apt clean

yum 命令(RHEL/CentOS 7)#

Terminal window
# 更新包
sudo yum update
# 升级系统
sudo yum upgrade
# 清理包缓存
sudo yum clean all

dnf 命令(RHEL/CentOS 8+)#

Terminal window
# 更新包
sudo dnf update
# 升级系统
sudo dnf upgrade
# 清理包缓存
sudo dnf clean all

系统备份#

rsync 命令#

rsync命令用于远程文件同步,可用于备份。

Terminal window
# 本地备份
rsync -av /home/ /backup/home/
# 远程备份
rsync -av /home/ user@remote:/backup/home/
# 增量备份
rsync -av --delete /home/ /backup/home/
# 压缩传输
rsync -avz /home/ /backup/home/
# 显示进度
rsync -av --progress /home/ /backup/home/

tar 命令#

tar命令用于创建归档文件,可用于备份。

Terminal window
# 创建备份归档
tar -czvf backup.tar.gz /home/
# 提取备份归档
tar -xzvf backup.tar.gz -C /
# 创建增量备份
tar -czvf backup-$(date +%Y%m%d).tar.gz --listed-incremental=backup.snar /home/

dd 命令#

dd命令用于复制和转换文件,可用于备份磁盘。

Terminal window
# 备份整个磁盘到镜像文件
dd if=/dev/sda of=/path/to/image.img bs=4M status=progress
# 从镜像文件恢复磁盘
dd if=/path/to/image.img of=/dev/sda bs=4M status=progress
# 备份分区
dd if=/dev/sda1 of=/path/to/partition.img bs=4M status=progress
# 压缩备份
dd if=/dev/sda | gzip > /path/to/image.img.gz
# 从压缩备份恢复
gunzip -c /path/to/image.img.gz | dd of=/dev/sda bs=4M status=progress

系统清理#

Terminal window
# 清理包缓存(Debian/Ubuntu)
sudo apt clean
sudo apt autoclean
# 清理包缓存(RHEL/CentOS)
sudo yum clean all
sudo dnf clean all
# 删除不需要的包(Debian/Ubuntu)
sudo apt autoremove
# 删除临时文件
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# 清理日志文件
sudo journalctl --vacuum-time=7d
# 清理用户缓存
rm -rf ~/.cache/*
# 清理浏览器缓存
rm -rf ~/.mozilla/firefox/*.default/cache2/*
rm -rf ~/.config/google-chrome/Default/Cache/*

系统安全#

密码策略#

Terminal window
# 查看密码策略
cat /etc/login.defs
# 编辑密码策略
sudo nano /etc/login.defs
# 设置密码复杂度(使用pam_pwquality)
cat /etc/security/pwquality.conf
sudo nano /etc/security/pwquality.conf

PAM 配置#

PAM(Pluggable Authentication Modules)用于系统认证。

Terminal window
# 查看PAM配置文件
ls /etc/pam.d/
# 编辑SSH的PAM配置
sudo nano /etc/pam.d/sshd
# 编辑登录的PAM配置
sudo nano /etc/pam.d/login

SELinux 管理(RHEL/CentOS)#

SELinux(Security-Enhanced Linux)用于增强系统安全。

Terminal window
# 查看SELinux状态
getenforce
# 临时禁用SELinux
setenforce 0
# 临时启用SELinux
setenforce 1
# 永久修改SELinux状态
cat /etc/selinux/config
sudo nano /etc/selinux/config
# 设置SELINUX=disabled|permissive|enforcing
# 查看SELinux上下文
ls -Z
# 修改SELinux上下文
chcon -t httpd_sys_content_t /var/www/html/index.html
# 查看SELinux布尔值
getsebool -a
# 修改SELinux布尔值
setsebool -P httpd_can_network_connect 1

系统审计#

Terminal window
# 查看审计日志
auditctl -l
# 查看审计规则
auditctl -s
# 添加审计规则
auditctl -w /etc/passwd -p wa -k passwd_changes
# 查看审计日志
ausearch -k passwd_changes

故障排查#

启动故障#

查看启动日志#

Terminal window
# 查看启动日志
journalctl -b
# 查看启动失败的服务
systemctl list-units --type=service --state=failed
# 查看引导加载程序配置
cat /boot/grub/grub.cfg
# 编辑引导加载程序配置
sudo nano /etc/default/grub
sudo update-grub

进入救援模式#

  1. 重启系统,在GRUB菜单中选择”Advanced options for Ubuntu”
  2. 选择”Ubuntu, with Linux … (recovery mode)”
  3. 在恢复菜单中选择相应的选项,如”root”、“fsck”等

网络故障#

排查步骤#

  1. 检查网络接口状态
  2. 检查IP地址配置
  3. 检查路由表
  4. 检查DNS配置
  5. 测试网络连接
  6. 检查防火墙规则
Terminal window
# 检查网络接口状态
ip addr
ip link
# 检查IP地址配置
ifconfig
# 检查路由表
ip route
# 检查DNS配置
cat /etc/resolv.conf
# 测试网络连接
ping 8.8.8.8
ping google.com
# 检查防火墙规则
ufw status # Ubuntu/Debian
firewall-cmd --list-all # RHEL/CentOS
# 检查网络服务状态
systemctl status network
systemctl status NetworkManager

磁盘故障#

排查步骤#

  1. 检查磁盘使用情况
  2. 检查磁盘健康状态
  3. 检查文件系统完整性
  4. 检查磁盘I/O性能
Terminal window
# 检查磁盘使用情况
df -h
# 检查磁盘健康状态
smartctl -a /dev/sda
# 检查文件系统完整性
sudo fsck /dev/sda1
# 检查磁盘I/O性能
iostat -x
# 检查磁盘错误
dmesg | grep -i error

内存故障#

排查步骤#

  1. 检查内存使用情况
  2. 检查内存错误
  3. 运行内存测试
Terminal window
# 检查内存使用情况
free -h
top
# 检查内存错误
dmesg | grep -i memory
dmesg | grep -i error
# 运行内存测试
sudo apt install memtest86+ # Debian/Ubuntu
sudo yum install memtest86+ # RHEL/CentOS
# 重启系统,在GRUB菜单中选择内存测试

进程故障#

排查步骤#

  1. 查看占用资源最多的进程
  2. 检查进程状态
  3. 终止无响应的进程
  4. 检查进程日志
Terminal window
# 查看占用CPU最多的进程
top
ps aux --sort=-%cpu | head -n 10
# 查看占用内存最多的进程
top -o %MEM
ps aux --sort=-%mem | head -n 10
# 检查进程状态
ps aux | grep process_name
# 终止进程
kill PID
kill -9 PID # 强制终止
# 检查进程日志
journalctl -u service_name

总结#

本文介绍了Linux系统管理中常用的命令和技巧,包括用户和组管理、服务管理、系统日志管理、系统监控、网络管理、存储管理、系统维护和故障排查等方面的内容。

掌握这些命令和技巧是Linux系统管理员的必备技能,它们可以帮助你更高效地管理和维护Linux系统,确保系统的稳定性和安全性。通过不断练习和使用,你会逐渐熟悉这些命令,并能够灵活运用它们来解决实际问题。

练习#

  1. 创建一个新用户,并设置密码和主目录。
  2. 配置一个自定义服务,使其在系统启动时自动运行。
  3. 查看系统的CPU、内存和磁盘使用情况。
  4. 配置网络接口的IP地址和默认网关。
  5. 配置防火墙规则,允许SSH和HTTP连接。
  6. 创建一个新的分区,并在其上创建文件系统。
  7. 备份系统的关键文件和目录。
  8. 清理系统中的临时文件和不需要的包。
  9. 排查网络连接问题,确保系统可以正常访问互联网。
  10. 检查系统的安全状态,确保系统配置符合安全最佳实践。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Linux系统管理命令和技巧
https://blog.vanilla.net.cn/posts/2026-02-05-linux-system-administration/
作者
鹁鸪
发布于
2026-02-03
许可协议
CC BY-NC-SA 4.0

评论区

目录