本文汇总了 Linux 系统中常用的操作命令,涵盖系统信息、资源监控、磁盘分区、网络配置、进程管理、用户服务等多个方面,旨在为系统管理员和开发者提供一份实用的快速参考手册。
硬件与系统信息
以下命令用于查看系统硬件配置和基本信息。
uname -a:查看内核、操作系统及 CPU 信息。head -n 1 /etc/issue或cat /etc/os-release:查看操作系统发行版版本。cat /proc/cpuinfo:查看 CPU 的详细信息。hostname:查看计算机主机名。lspci -tv:以树状视图列出所有 PCI 设备。lsusb -tv:以树状视图列出所有 USB 设备。lsmod:列出当前已加载的内核模块。env:查看当前环境变量。dmesg:查看系统启动时的内核环形缓冲区消息,常用于硬件故障诊断。
资源监控
监控系统资源(如内存、磁盘、负载)的使用情况。
free -h:以易读格式(GB/MB)查看内存和交换空间使用量。df -h:查看各磁盘分区的使用情况。du -sh <目录名>:查看指定目录的总大小。grep MemTotal /proc/meminfo:查看物理内存总量。uptime:查看系统运行时间、登录用户数和平均负载。cat /proc/loadavg:查看系统在过去 1、5、15 分钟内的平均负载。
磁盘与分区管理
管理磁盘分区、文件系统挂载和磁盘参数。
mount | column -t:以表格形式查看已挂载的文件系统。fdisk -l或lsblk:查看所有磁盘分区信息。swapon -s:查看所有激活的交换分区。hdparm -i /dev/sda:查看指定磁盘的参数(注意:现代系统多用/dev/sdX而非/dev/hdX)。
网络配置与诊断
配置网络接口、查看连接状态和防火墙规则。
ip addr或ifconfig(需安装 net-tools):查看网络接口属性。iptables -L -n:查看防火墙规则(-n选项以数字形式显示地址和端口)。ss -tunlp或netstat -lntp:查看所有监听端口及其对应进程。ss -antp或netstat -antp:查看所有已建立的网络连接。netstat -s:查看网络协议统计信息。route -n或ip route:查看内核路由表。
进程管理
查看和控制系统中运行的进程。
ps aux或ps -ef:查看所有进程的详细信息。top或htop:实时动态查看进程状态和系统资源占用。
用户与权限管理
管理系统用户、组和权限。
w或who:查看当前登录系统的活动用户。id <用户名>:查看指定用户的 UID、GID 及所属组。last:查看用户登录历史记录。cut -d: -f1 /etc/passwd:列出系统所有用户名。cut -d: -f1 /etc/group:列出系统所有组名。crontab -l:查看当前用户的计划任务。useradd <用户名>:创建新用户。passwd <用户名>:为用户设置或修改密码。userdel -r <用户名>:删除用户及其主目录。
服务管理
管理系统服务的启动、停止和状态。在现代 Linux 发行版(如 RHEL/CentOS 7+、Ubuntu 16.04+)中,建议使用 systemctl 命令。
systemctl list-unit-files --type=service(Systemd 系统)或chkconfig --list(SysVinit 系统):列出所有系统服务及其启动状态。systemctl start <服务名>:启动服务。systemctl stop <服务名>:停止服务。systemctl restart <服务名>:重启服务。systemctl status <服务名>:查看服务状态。
软件包管理
查询已安装的软件包。不同发行版使用不同的包管理器。
- RHEL/CentOS/Fedora:
rpm -qa或dnf list installed(DNF)或yum list installed(YUM)。 - Debian/Ubuntu:
dpkg -l或apt list --installed。
目录空间分析
使用 du 命令分析目录磁盘使用情况。
du -sh /path/to/directory
常用选项说明:
-s:仅显示指定目录的总计,不显示子目录详情。-h:以人类可读格式(K、M、G)显示大小(以 1024 为换算单位)。-a:显示目录及其中所有文件的磁盘使用量。--max-depth=N:限制显示的目录深度。
常见问题处理
SSH 终端中文乱码
若 SSH 连接后出现中文乱码,通常是因为终端与服务器字符集不匹配。解决方法之一是修改服务器的本地化设置。但请注意,现代 Linux 发行版普遍推荐使用 UTF-8 编码。
对于使用 Systemd 的系统,可通过以下命令设置:
localectl set-locale LANG=zh_CN.UTF-8
对于旧版系统,可以编辑 /etc/locale.conf(Systemd)或 /etc/sysconfig/i18n(SysVinit),确保 LANG 设置为 zh_CN.UTF-8 或 en_US.UTF-8,然后重新登录或重启系统生效。
配置防火墙开放端口
在开启防火墙的情况下,如需开放特定端口(如 HTTP 的 80 端口或 SSH 的 22 端口),请根据系统使用的防火墙工具进行操作:
- firewalld(RHEL/CentOS 7+ 默认):
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=22/tcp firewall-cmd --reload - UFW(Ubuntu 默认):
ufw allow 80/tcp ufw allow 22/tcp ufw reload - iptables(直接配置):可编辑
/etc/sysconfig/iptables文件(如果存在)添加规则,但更推荐使用上述高级工具或iptables命令直接管理。
请注意,直接编辑 iptables 规则文件可能因系统或配置不同而失效,使用发行版提供的管理工具是更可靠的做法。