博客 / Linux/ Linux常用系统操作命令

Linux常用系统操作命令

本文汇总了 Linux 系统中常用的操作命令,涵盖系统信息、资源监控、磁盘分区、网络配置、进程管理、用户服务等多个方面,旨在为系统管理员和开发者提供一份实用的快速参考手册。

硬件与系统信息

以下命令用于查看系统硬件配置和基本信息。

  • uname -a:查看内核、操作系统及 CPU 信息。
  • head -n 1 /etc/issuecat /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 -llsblk:查看所有磁盘分区信息。
  • swapon -s:查看所有激活的交换分区。
  • hdparm -i /dev/sda:查看指定磁盘的参数(注意:现代系统多用 /dev/sdX 而非 /dev/hdX)。

网络配置与诊断

配置网络接口、查看连接状态和防火墙规则。

  • ip addrifconfig(需安装 net-tools):查看网络接口属性。
  • iptables -L -n:查看防火墙规则(-n 选项以数字形式显示地址和端口)。
  • ss -tunlpnetstat -lntp:查看所有监听端口及其对应进程。
  • ss -antpnetstat -antp:查看所有已建立的网络连接。
  • netstat -s:查看网络协议统计信息。
  • route -nip route:查看内核路由表。

进程管理

查看和控制系统中运行的进程。

  • ps auxps -ef:查看所有进程的详细信息。
  • tophtop:实时动态查看进程状态和系统资源占用。

用户与权限管理

管理系统用户、组和权限。

  • wwho:查看当前登录系统的活动用户。
  • 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 -qadnf list installed(DNF)或 yum list installed(YUM)。
  • Debian/Ubuntu:dpkg -lapt 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-8en_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 规则文件可能因系统或配置不同而失效,使用发行版提供的管理工具是更可靠的做法。

发表评论

您的邮箱不会公开。必填项已用 * 标注。