Linux系统管理命令和技巧
Linux系统管理命令和技巧
系统管理概述
Linux系统管理是维护和操作Linux系统的过程,包括系统配置、用户管理、服务管理、网络配置、安全管理等方面。本文将介绍Linux系统管理中常用的命令和技巧,帮助系统管理员更高效地管理Linux系统。
用户和组管理
用户管理
useradd - 创建用户
useradd命令用于创建新用户。
# 创建新用户useradd username
# 创建用户并指定主目录useradd -d /home/username username
# 创建用户并指定登录shelluseradd -s /bin/bash username
# 创建用户并指定UIDuseradd -u 1000 username
# 创建用户并指定所属组useradd -g groupname username
# 创建用户并指定附加组useradd -G group1,group2 username
# 创建系统用户(无登录shell)useradd -r username
# 创建用户并设置密码useradd -m username && passwd usernameusermod - 修改用户属性
usermod命令用于修改用户的属性。
# 修改用户的登录shellusermod -s /bin/zsh username
# 修改用户的主目录usermod -d /new/home/dir username
# 修改用户的UIDusermod -u 1001 username
# 修改用户的所属组usermod -g groupname username
# 修改用户的附加组usermod -G group1,group2 username
# 锁定用户账户usermod -L username
# 解锁用户账户usermod -U username
# 修改用户的过期时间usermod -e 2026-12-31 usernameuserdel - 删除用户
userdel命令用于删除用户。
# 删除用户userdel username
# 删除用户及其主目录userdel -r usernamepasswd - 修改密码
passwd命令用于修改用户的密码。
# 修改当前用户的密码passwd
# 修改指定用户的密码(需要root权限)passwd username
# 锁定用户的密码passwd -l username
# 解锁用户的密码passwd -u username
# 清除用户的密码passwd -d username
# 查看用户密码状态passwd -S username组管理
groupadd - 创建组
groupadd命令用于创建新组。
# 创建新组groupadd groupname
# 创建组并指定GIDgroupadd -g 1000 groupname
# 创建系统组groupadd -r groupnamegroupmod - 修改组属性
groupmod命令用于修改组的属性。
# 修改组名groupmod -n newgroupname oldgroupname
# 修改组的GIDgroupmod -g 1001 groupnamegroupdel - 删除组
groupdel命令用于删除组。
# 删除组groupdel groupnamegpasswd - 管理组密码和成员
gpasswd命令用于管理组的密码和成员。
# 向组中添加用户gpasswd -a username groupname
# 从组中删除用户gpasswd -d username groupname
# 设置组的管理员gpasswd -A username1,username2 groupname
# 设置组密码gpasswd groupname
# 允许用户加入组(需要组密码)gpasswd -M username groupname查看用户和组信息
# 查看当前用户whoamiid
# 查看用户信息id usernamefinger username
# 查看所有用户cat /etc/passwdgetent passwd
# 查看所有组cat /etc/groupgetent group
# 查看用户所属的组groups username
# 查看组中的用户getent group groupname服务管理
systemctl 命令
systemctl命令是systemd系统的服务管理工具,用于管理系统服务。
# 查看服务状态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 descriptionAfter=network.target
[Service]Type=simpleExecStart=/path/to/serviceRestart=always
[Install]WantedBy=multi-user.target自定义服务
创建自定义服务的步骤:
- 创建服务配置文件
- 重载systemd配置
- 启用并启动服务
示例:创建一个简单的服务
# 创建服务配置文件sudo nano /etc/systemd/system/my-service.service
# 服务配置文件内容[Unit]Description=My Custom ServiceAfter=network.target
[Service]Type=simpleExecStart=/usr/local/bin/my-service.shRestart=alwaysUser=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日志。
# 查看所有日志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 -bjournalctl -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:防火墙日志
查看日志文件:
# 使用cat查看日志文件cat /var/log/syslog
# 使用tail查看日志文件的最后几行tail /var/log/syslogtail -n 50 /var/log/syslog
# 使用tail -f实时查看日志tail -f /var/log/syslog
# 使用grep搜索日志中的关键词grep "error" /var/log/syslog
# 使用less分页查看日志less /var/log/syslog日志轮转
日志轮转用于管理日志文件的大小和数量,防止日志文件过大。
# 查看日志轮转配置cat /etc/logrotate.conf
# 查看特定服务的日志轮转配置ls /etc/logrotate.d/cat /etc/logrotate.d/nginx
# 手动执行日志轮转logrotate /etc/logrotate.conflogrotate -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命令用于实时监控系统的进程和资源使用情况。
# 启动toptop
# 常用快捷键# P: 按CPU使用率排序# M: 按内存使用率排序# T: 按运行时间排序# k: 终止进程# q: 退出
# 以批处理模式运行toptop -b -n 1
# 显示特定用户的进程top -u username
# 显示特定进程top -p PIDhtop 命令
htop命令是top命令的增强版,提供了更友好的界面和更多功能。
# 启动htophtop
# 常用快捷键# F1: 显示帮助# F2: 设置# F3: 搜索进程# F4: 过滤进程# F5: 切换树状视图# F6: 排序# F7: 降低优先级# F8: 提高优先级# F9: 终止进程# F10: 退出
# 显示特定用户的进程htop -u username
# 显示特定进程htop -p PIDps 命令
ps命令用于显示当前系统的进程信息。
# 显示当前用户的进程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活动等系统信息。
# 显示系统统计信息vmstat
# 每2秒显示一次,共显示5次vmstat 2 5
# 显示详细信息vmstat -a
# 显示磁盘统计信息vmstat -d
# 显示内存统计信息vmstat -m
# 显示进程统计信息vmstat -p /dev/sda1iostat 命令
iostat命令用于显示CPU和磁盘I/O统计信息。
# 显示CPU和磁盘I/O统计信息iostat
# 每2秒显示一次,共显示5次iostat 2 5
# 显示详细的磁盘统计信息iostat -x
# 显示指定磁盘的统计信息iostat -p sdasar 命令
sar命令用于收集、报告和保存系统活动信息。
# 显示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 datafilefree 命令
free命令用于显示系统的内存使用情况。
# 显示内存使用情况free
# 以人类可读的格式显示free -h
# 显示详细信息free -v
# 显示内存总量free -t
# 每2秒显示一次,共显示5次watch -n 2 free -hdf 命令
df命令用于显示文件系统的磁盘使用情况。
# 显示磁盘使用情况df
# 以人类可读的格式显示df -h
# 显示inode使用情况df -i
# 显示指定文件系统的使用情况df -h /dev/sda1
# 显示所有文件系统的类型df -Tdu 命令
du命令用于显示目录或文件的大小。
# 显示目录大小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命令用于显示或配置网络接口信息。
# 显示所有网络接口信息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 HWaddrip 命令
ip命令是一个功能强大的网络配置工具,可替代ifconfig。
# 显示所有网络接口信息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:55netplan 配置(Ubuntu 18.04+)
Netplan是Ubuntu 18.04及更高版本的网络配置工具。
# 查看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 tryNetplan配置示例:
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命令用于测试与目标主机的网络连接。
# 测试与目标主机的连接ping google.com
# 发送指定数量的数据包ping -c 5 google.com
# 设置数据包大小ping -s 100 google.com
# 设置ping的超时时间ping -W 2 google.com
# 使用IPv4ping -4 google.com
# 使用IPv6ping -6 google.comtraceroute 命令
traceroute命令用于追踪数据包从本地到目标主机的路径。
# 追踪到目标主机的路径traceroute google.com
# 使用ICMP协议traceroute -I google.com
# 使用TCP协议traceroute -T google.com
# 设置最大跳数traceroute -m 10 google.com
# 设置数据包大小traceroute -s 100 google.commtr 命令
mtr命令是ping和traceroute的组合,用于实时显示网络路径的质量。
# 启动mtrmtr google.com
# 以报告模式运行mtr -r google.com
# 以CSV格式输出mtr -c 10 -C google.comcurl 命令
curl命令用于在网络上传输数据,支持多种协议。
# 测试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:25netcat 命令
netcat命令用于读取和写入网络连接。
# 测试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服务用于安全远程登录。
# 查看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 sshSSH安全配置建议:
- 禁用root登录:
PermitRootLogin no - 禁用密码登录,使用密钥登录:
PasswordAuthentication no - 更改默认端口:
Port 2222 - 限制允许登录的用户:
AllowUsers username - 启用公钥认证:
PubkeyAuthentication yes
防火墙管理
ufw 命令(Ubuntu/Debian)
ufw是Ubuntu和Debian系统的防火墙管理工具。
# 查看UFW状态ufw status
# 启用UFWufw enable
# 禁用UFWufw disable
# 重置UFWufw reset
# 允许SSH连接ufw allow sshufw allow 22/tcp
# 允许HTTP连接ufw allow httpufw allow 80/tcp
# 允许HTTPS连接ufw allow httpsufw 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/tcpfirewalld 命令(CentOS/RHEL)
firewalld是CentOS和RHEL系统的防火墙管理工具。
# 查看firewalld状态systemctl status firewalld
# 启动firewalldsystemctl start firewalld
# 停止firewalldsystemctl 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=httpfirewall-cmd --reload存储管理
磁盘管理
fdisk 命令
fdisk命令用于管理磁盘分区。
# 列出所有磁盘和分区fdisk -l
# 进入磁盘分区模式fdisk /dev/sda
# 在fdisk交互模式中的常用命令# p: 显示分区表# n: 创建新分区# d: 删除分区# t: 修改分区类型# w: 保存更改并退出# q: 退出不保存更改parted 命令
parted命令用于管理磁盘分区,支持GPT分区表。
# 列出所有磁盘和分区parted -l
# 进入磁盘分区模式parted /dev/sda
# 在parted交互模式中的常用命令# print: 显示分区表# mkpart: 创建新分区# rm: 删除分区# resize: 调整分区大小# quit: 退出
# 非交互模式创建分区parted /dev/sda mkpart primary ext4 1MiB 100GiB文件系统管理
mkfs 命令
mkfs命令用于在分区上创建文件系统。
# 在分区上创建ext4文件系统mkfs.ext4 /dev/sda1
# 在分区上创建xfs文件系统mkfs.xfs /dev/sda1
# 在分区上创建FAT32文件系统mkfs.vfat -F 32 /dev/sda1
# 在分区上创建NTFS文件系统mkfs.ntfs /dev/sda1mount 命令
mount命令用于挂载文件系统。
# 挂载分区到目录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 /mntfstab 配置
/etc/fstab文件用于配置系统启动时自动挂载的文件系统。
# 查看fstab配置cat /etc/fstab
# 编辑fstab配置sudo nano /etc/fstab
# 测试fstab配置sudo mount -afstab配置示例:
# <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 0UUID=12345678-1234-1234-1234-1234567890ab /mnt/data ext4 defaults 0 0UUID 管理
UUID是分区的唯一标识符,比设备名更稳定。
# 查看分区的UUIDblkidblkid /dev/sda1
# 使用UUID挂载分区mount UUID=12345678-1234-1234-1234-1234567890ab /mntLVM 管理
LVM(Logical Volume Manager)用于管理逻辑卷,提供更灵活的存储管理。
# 查看物理卷pvspvdisplay
# 查看卷组vgsvgdisplay
# 查看逻辑卷lvslvdisplay
# 创建物理卷pvcreate /dev/sda1
# 创建卷组vgcreate vg0 /dev/sda1
# 创建逻辑卷lvcreate -L 100G -n lv_data vg0
# 扩展逻辑卷lvresize -L +50G /dev/vg0/lv_dataresize2fs /dev/vg0/lv_data
# 缩小逻辑卷umount /dev/vg0/lv_dataresize2fs /dev/vg0/lv_data 100Glvresize -L 100G /dev/vg0/lv_datamount /dev/vg0/lv_data /mnt
# 删除逻辑卷umount /dev/vg0/lv_datalvremove /dev/vg0/lv_data
# 删除卷组vgremove vg0
# 删除物理卷pvremove /dev/sda1系统维护
系统更新
apt 命令(Debian/Ubuntu)
# 更新包列表sudo apt update
# 升级已安装的包sudo apt upgrade
# 升级系统版本sudo apt dist-upgrade
# 自动删除不需要的包sudo apt autoremove
# 清理包缓存sudo apt cleanyum 命令(RHEL/CentOS 7)
# 更新包sudo yum update
# 升级系统sudo yum upgrade
# 清理包缓存sudo yum clean alldnf 命令(RHEL/CentOS 8+)
# 更新包sudo dnf update
# 升级系统sudo dnf upgrade
# 清理包缓存sudo dnf clean all系统备份
rsync 命令
rsync命令用于远程文件同步,可用于备份。
# 本地备份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命令用于创建归档文件,可用于备份。
# 创建备份归档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命令用于复制和转换文件,可用于备份磁盘。
# 备份整个磁盘到镜像文件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系统清理
# 清理包缓存(Debian/Ubuntu)sudo apt cleansudo apt autoclean
# 清理包缓存(RHEL/CentOS)sudo yum clean allsudo 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/*系统安全
密码策略
# 查看密码策略cat /etc/login.defs
# 编辑密码策略sudo nano /etc/login.defs
# 设置密码复杂度(使用pam_pwquality)cat /etc/security/pwquality.conf
sudo nano /etc/security/pwquality.confPAM 配置
PAM(Pluggable Authentication Modules)用于系统认证。
# 查看PAM配置文件ls /etc/pam.d/
# 编辑SSH的PAM配置sudo nano /etc/pam.d/sshd
# 编辑登录的PAM配置sudo nano /etc/pam.d/loginSELinux 管理(RHEL/CentOS)
SELinux(Security-Enhanced Linux)用于增强系统安全。
# 查看SELinux状态getenforce
# 临时禁用SELinuxsetenforce 0
# 临时启用SELinuxsetenforce 1
# 永久修改SELinux状态cat /etc/selinux/configsudo 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系统审计
# 查看审计日志auditctl -l
# 查看审计规则auditctl -s
# 添加审计规则auditctl -w /etc/passwd -p wa -k passwd_changes
# 查看审计日志ausearch -k passwd_changes故障排查
启动故障
查看启动日志
# 查看启动日志journalctl -b
# 查看启动失败的服务systemctl list-units --type=service --state=failed
# 查看引导加载程序配置cat /boot/grub/grub.cfg
# 编辑引导加载程序配置sudo nano /etc/default/grubsudo update-grub进入救援模式
- 重启系统,在GRUB菜单中选择”Advanced options for Ubuntu”
- 选择”Ubuntu, with Linux … (recovery mode)”
- 在恢复菜单中选择相应的选项,如”root”、“fsck”等
网络故障
排查步骤
- 检查网络接口状态
- 检查IP地址配置
- 检查路由表
- 检查DNS配置
- 测试网络连接
- 检查防火墙规则
# 检查网络接口状态ip addrip link
# 检查IP地址配置ifconfig
# 检查路由表ip route
# 检查DNS配置cat /etc/resolv.conf
# 测试网络连接ping 8.8.8.8ping google.com
# 检查防火墙规则ufw status # Ubuntu/Debianfirewall-cmd --list-all # RHEL/CentOS
# 检查网络服务状态systemctl status networksystemctl status NetworkManager磁盘故障
排查步骤
- 检查磁盘使用情况
- 检查磁盘健康状态
- 检查文件系统完整性
- 检查磁盘I/O性能
# 检查磁盘使用情况df -h
# 检查磁盘健康状态smartctl -a /dev/sda
# 检查文件系统完整性sudo fsck /dev/sda1
# 检查磁盘I/O性能iostat -x
# 检查磁盘错误dmesg | grep -i error内存故障
排查步骤
- 检查内存使用情况
- 检查内存错误
- 运行内存测试
# 检查内存使用情况free -htop
# 检查内存错误dmesg | grep -i memorydmesg | grep -i error
# 运行内存测试sudo apt install memtest86+ # Debian/Ubuntusudo yum install memtest86+ # RHEL/CentOS# 重启系统,在GRUB菜单中选择内存测试进程故障
排查步骤
- 查看占用资源最多的进程
- 检查进程状态
- 终止无响应的进程
- 检查进程日志
# 查看占用CPU最多的进程topps aux --sort=-%cpu | head -n 10
# 查看占用内存最多的进程top -o %MEMps aux --sort=-%mem | head -n 10
# 检查进程状态ps aux | grep process_name
# 终止进程kill PIDkill -9 PID # 强制终止
# 检查进程日志journalctl -u service_name总结
本文介绍了Linux系统管理中常用的命令和技巧,包括用户和组管理、服务管理、系统日志管理、系统监控、网络管理、存储管理、系统维护和故障排查等方面的内容。
掌握这些命令和技巧是Linux系统管理员的必备技能,它们可以帮助你更高效地管理和维护Linux系统,确保系统的稳定性和安全性。通过不断练习和使用,你会逐渐熟悉这些命令,并能够灵活运用它们来解决实际问题。
练习
- 创建一个新用户,并设置密码和主目录。
- 配置一个自定义服务,使其在系统启动时自动运行。
- 查看系统的CPU、内存和磁盘使用情况。
- 配置网络接口的IP地址和默认网关。
- 配置防火墙规则,允许SSH和HTTP连接。
- 创建一个新的分区,并在其上创建文件系统。
- 备份系统的关键文件和目录。
- 清理系统中的临时文件和不需要的包。
- 排查网络连接问题,确保系统可以正常访问互联网。
- 检查系统的安全状态,确保系统配置符合安全最佳实践。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!