Skip to content

2. 常用 Linux 命令与技巧

本章节基于 RHEL 8.10 系统(主机名 ZSLinux),在 SecureCRT 终端中执行并通过 SecureFX 传输文件。内容覆盖 Shell 基础、文件管理、软件管理与服务监控,是 Linux 运维初学者与中级使用者的核心实操指南。所有命令均经测试,确保在相同环境下可复现。


2.1 前提条件

  • RHEL 8.10 已完成安装与网络配置(详见第 1 章)。
  • 主机名设定为 ZSLinux
  • 使用 SecureCRT 通过 SSH(端口 22)连接系统。
  • 文件传输使用 SecureFX(SFTP 协议)。

💡 提示:建议为操作用户启用 sudo 权限,以便执行系统级命令。 🧠 知识点sudo 是 Linux 下的权限提升工具,用于以管理员身份执行命令。


2.2 Shell 基础

Shell 是用户与操作系统交互的接口。本节介绍查看 Shell 类型、编写脚本及查看命令帮助的基本操作。

查看当前 Shell 类型

bash
echo $SHELL  # 显示当前 Shell 路径

输出示例:

/bin/bash

🧩 示例/bin/bash 表示当前使用的是 Bash Shell。

创建与运行脚本

bash
echo '#!/bin/bash' > test.sh  # 创建脚本文件
echo 'echo "Hello from ZSLinux"' >> test.sh  # 添加命令
chmod +x test.sh  # 赋予执行权限
./test.sh  # 运行脚本

输出结果:

Hello from ZSLinux

⚙️ 操作步骤:编写 → 赋权 → 执行,是 Shell 脚本运行的标准流程。

查看命令帮助

bash
man ls        # 查看 ls 命令手册
ls --help     # 显示 ls 的简要帮助信息

⚠️ 注意:退出 man 手册需按 q 键。 🧠 知识点man 来自 manual,是最重要的系统帮助命令。

检查点:是否能独立创建、赋权并运行脚本?


2.3 常用命令

2.3.1 文件与目录管理

查看文件与目录

bash
ls -l  # 长格式显示文件
ls -a  # 显示包含隐藏文件

🧠 知识点:以 . 开头的文件为隐藏文件,-a 参数可列出它们。

创建与删除

bash
mkdir /data  # 创建目录
touch file.txt  # 创建空文件
rm -f file.txt  # 强制删除文件
rm -rf /data    # 递归删除目录

⚠️ 注意rm -rf 操作不可恢复,执行前务必确认路径。 💡 提示:可使用 tree 命令以结构化方式显示目录(需安装 tree 软件包)。

复制与移动

bash
cp file.txt /data/  # 复制文件
mv /data/file.txt /data/file2.txt  # 重命名或移动文件

🧩 示例:可将配置文件复制备份,如 cp /etc/hosts /etc/hosts.bak

查看文件内容

bash
cat /etc/hostname  # 查看文件内容
tail -f /var/log/messages  # 实时监控日志变化

🚀 提升:使用 less 可分页阅读大文件,更适合日志分析。


2.3.2 软件管理

安装与更新软件

bash
dnf install -y htop  # 安装 htop
dnf update -y htop   # 更新 htop 软件包

删除软件

bash
dnf remove -y htop  # 卸载软件

💡 提示dnf info <软件名> 可查看软件版本、来源与依赖信息。 🧠 知识点dnf 是 RHEL 8 默认的软件包管理器,取代了早期的 yum。 ✅ 检查点:是否能通过 DNF 命令实现软件的安装、更新与删除?


2.3.3 服务管理

管理服务状态

bash
dnf install -y httpd          # 安装 httpd 服务
systemctl enable --now httpd  # 启用并立即启动服务
systemctl status httpd        # 查看服务状态

停止与禁用服务

bash
systemctl stop httpd     # 停止服务
systemctl disable httpd  # 禁用开机自启

查看日志

bash
journalctl -u httpd  # 查看 httpd 日志
journalctl -f        # 实时监控系统日志

⚠️ 注意:服务名区分大小写,确保输入准确。 💡 提示systemctl list-units --type=service 可查看所有已加载服务状态。 🧠 知识点systemctl 是 systemd 的核心命令,用于统一管理系统服务。


2.4 系统监控

系统监控命令可帮助管理员掌握 CPU、内存、磁盘与网络状态。

进程监控

bash
top  # 实时查看进程
ps aux | grep httpd  # 查找 httpd 进程

💡 提示htop 提供更友好的交互界面,支持键盘快捷控制。

磁盘与存储

bash
df -h  # 显示磁盘使用情况
du -sh /var  # 查看目录大小

🧠 知识点df 显示文件系统空间使用情况,du 显示目录占用情况。

内存与 CPU

bash
free -h  # 显示内存使用
vmstat 1 5  # 每秒采样一次,共 5 次
uptime  # 查看系统负载与运行时间

🚀 提升:可结合 sar 工具进行长期性能采样。

网络状态

bash
ss -tuln  # 显示网络端口监听状态
ping -c 4 www.baidu.com  # 测试网络连通性

🧠 知识点ss 取代了旧的 netstat,性能更高。 ✅ 检查点:能否通过命令查看系统负载、磁盘与网络状态?


2.5 系统验证

检查主机名与系统信息

bash
hostnamectl  # 查看主机名与系统版本

输出示例:

Static hostname: ZSLinux
Icon name: computer-vm
Operating System: Red Hat Enterprise Linux 8.10

🧩 示例:可使用 hostnamectl set-hostname 修改系统主机名。

查看运行时间与用户

bash
whoami   # 当前用户
uptime   # 系统运行时间

⚠️ 注意:若主机名未生效,可执行 hostnamectl set-hostname ZSLinux 并重启。


2.6 实践任务

  1. 登录 ZSLinux,执行 echo $SHELL 验证当前 Shell。
  2. 创建并运行 test.sh 输出 "Hello from ZSLinux"。
  3. 安装 htop 并使用 topps 命令查看进程。
  4. 启动并验证 httpd 服务运行状态。
  5. 查看磁盘与内存使用情况。

检查点:是否能完成从登录、创建脚本到服务监控的完整流程?


2.7 自测问题

  • 问题 1:如何确认当前主机名?
    答案:执行 hostnamectl 并查看 Static hostname 字段。

  • 问题 2:如何安装并启动 httpd 服务?
    答案:使用 dnf install -y httpd 安装,systemctl enable --now httpd 启动。

  • 问题 3:如何实时查看系统日志?
    答案:使用 journalctl -f 命令实时输出日志内容。

🧠 知识点:掌握 journalctl 是理解 systemd 日志体系的关键。


🧾 章节总结: 本章系统介绍了 Linux 常用命令及 Shell 操作逻辑,构建了从文件操作到系统服务监控的完整技能链。通过学习本章,你应能独立进行文件管理、服务控制及系统监控操作,为后续的网络配置、安全强化与自动化部署打下坚实基础。

采用 CC BY-NC-ND 4.0 许可。欢迎邮件反馈(zslinux@qq.com)