- 发布日期
Linux实用操作(一):终端技巧、软件安装与服务管理
- 作者
- 姓名
- 缘
- 社交账号
文章目录
本篇学习范围
这一组 Linux 实用操作不是再背一批零散命令,而是围绕一个很常见的工作过程展开:
在终端里高效输入命令 → 安装需要的软件 → 启动并设置系统服务。
本篇覆盖课件中的终端快捷键、历史命令、yum / apt 和 systemctl。后续文章再处理网络、进程、监控、文件传输与压缩。命令示例以 CentOS 7 课程环境为主;如果正在使用较新的 RHEL 系、Ubuntu 或 Debian,请同时看文中的版本提示。
终端操作:先把输入和中断用熟
终端不是只能“敲完一整行再执行”。下面这些快捷键会直接影响排错和日常效率。
| 快捷键或命令 | 作用 | 使用场景与注意点 |
|---|---|---|
Ctrl + C | 中断当前前台命令,或放弃当前正在输入的一行 | 例如 ping 一直运行、输错命令但还没按 Enter。它通常会向前台进程发送中断信号,不是无条件“杀掉一切”。 |
Ctrl + D | 在 Shell 中输入 EOF;空提示符时通常会退出当前 Shell | 可用于退出登录 Shell,或结束会读取标准输入的程序。它不是 Vim 的通用退出键;退出 Vim 应使用 :q、:q! 或 :wq。 |
Ctrl + L / clear | 清空当前终端可视区域 | 只是清屏,不会删除历史命令,也不会停止正在执行的程序。 |
Ctrl + A | 光标跳到命令行开头 | 修改长命令的前缀很方便。 |
Ctrl + E | 光标跳到命令行末尾 | 补充最后一个参数时使用。 |
Ctrl + ← / Ctrl + → | 按单词向左或向右移动光标 | 适合在路径、选项和参数之间快速移动;不同终端模拟器的按键映射可能略有差异。 |
一个实用习惯是:发现命令不可控时,先判断它是“仍在运行”还是“只是屏幕杂乱”。前者优先用 Ctrl + C,后者用 Ctrl + L。
查看和复用历史命令
1. 列出历史
history
Shell 会给历史命令编号。它方便回顾刚才执行过什么,也能帮助定位一条曾经有效的命令。
2. 按前缀重放
!命令前缀
例如:
!ls
它会执行最近一条以 ls 开头的历史命令。这个功能很快,但也有风险:真正执行前应确认前缀足够具体,避免误执行一条参数不同、甚至具有修改性的旧命令。
3. 交互式搜索:Ctrl + R
按下 Ctrl + R 后,输入记得住的一小段关键字,就会从最近的历史命令向前搜索。找到目标后:
| 后续动作 | 结果 |
|---|---|
| 按 Enter | 立即执行当前匹配的命令。 |
| 按 ← 或 → | 把当前匹配内容带回普通命令行,再修改;此时不会立刻执行。 |
再按 Ctrl + R | 继续查找更早的匹配项。 |
对于删文件、重启服务、下载覆盖文件等命令,推荐用“Ctrl + R → 方向键 → 检查参数 → Enter”的方式,而不是找到后直接执行。
软件安装:先识别发行版,再选包管理器
Linux 软件通常由发行版的软件仓库提供。包管理器负责下载软件包、安装、卸载和处理依赖关系;因此安装前通常需要:
- 使用具备管理员权限的账户,或在命令前加
sudo; - 能访问已配置的软件仓库;
- 确认软件名,而不是只记住下载文件名。
课件的 CentOS 环境使用 yum。较新的 RHEL、Rocky、AlmaLinux、Fedora 往往把 dnf 作为默认实现,常见基本用法与 yum 相近;Ubuntu / Debian 则使用 apt。
CentOS / RHEL 系:yum
课件给出的通用格式为:
yum [-y] install | remove | search 软件名
其中:
| 部分 | 含义 |
|---|---|
install 软件名 | 安装软件及其依赖。 |
remove 软件名 | 卸载指定软件包;操作前要看清将被一起移除的依赖。 |
search 关键词 | 从仓库中搜索相关软件包。 |
-y | 自动回答确认提示。批量或脚本中常用,但手工排错时先不加更安全,能看清变更清单。 |
例如安装、搜索与卸载 wget:
sudo yum install wget
sudo yum search wget
sudo yum remove wget
如果明确确认安装内容,也可以使用课件中的非交互写法:
sudo yum -y install wget
现代 RHEL 系中可把上面的 yum 替换为 dnf:
sudo dnf install wget
这不是要求把课程命令改掉,而是为了避免在新系统里看到 yum 被兼容包装或行为略有差异时感到困惑。
Ubuntu / Debian:apt
Ubuntu、Debian 及其衍生发行版常用 apt。和课件对应的通用格式可写成:
apt [-y] install | remove | search 软件名
常见实际命令为:
sudo apt install wget
sudo apt -y install wget
sudo apt remove wget
sudo apt search wget
不要把 yum 和 apt 混在同一台系统上使用:它们对应不同的软件包格式和仓库体系。安装失败时,先执行下面两步排查,而不是盲目换命令:
cat /etc/os-release
command -v yum dnf apt
第一条识别发行版,第二条确认当前系统实际可用的包管理器。
安装后如何确认
以 wget 为例,安装完成后可检查命令是否已进入 PATH:
command -v wget
wget --version
command -v 比单独依赖 which 更稳妥,因为它也能识别 Shell 内建命令和别名。软件“装上了但不能用”时,常见原因是安装失败、可执行文件不在 PATH,或当前命令名记错。
服务管理:systemctl 管的是长期运行的系统能力
服务(service)通常是后台持续运行的程序,例如 SSH 远程登录、网络管理、防火墙、时间同步、Web 服务等。对于采用 systemd 的 Linux,课件使用的统一管理入口是:
systemctl start | stop | status | enable | disable 服务名
五个动作含义不同:
| 命令 | 含义 | 是否立刻影响运行状态 | 是否影响下次开机 |
|---|---|---|---|
start | 启动服务 | 是 | 否 |
stop | 停止服务 | 是 | 否 |
status | 查看服务状态与近期日志摘要 | 否 | 否 |
enable | 设置开机自动启动 | 通常否 | 是 |
disable | 取消开机自动启动 | 通常否 | 是 |
这张表最容易混淆的点是:enable 不等于现在就 start,disable 也不等于现在就 stop。如果希望“现在启动且以后开机也启动”,应分别执行:
sudo systemctl start 服务名
sudo systemctl enable 服务名
课件列出的常见服务包括:
| 服务名示例 | 用途 | 发行版差异 |
|---|---|---|
NetworkManager | 管理网卡和连接配置 | 现代桌面和服务器发行版常见。 |
network | 传统网络脚本服务 | 在 CentOS 7 课程环境中常见,新系统未必存在。 |
firewalld | 动态管理防火墙规则 | RHEL 系常见。 |
sshd | SSH 远程登录服务 | 多数 Linux 都有,但部分 Debian 系服务名会显示为 ssh。 |
ntpd、httpd | 时间同步、Apache Web 服务等第三方服务 | 需要先安装相应软件包;现代系统也可能用 chronyd。 |
例如检查 SSH 服务:
sudo systemctl status sshd
如果状态中显示 active (running),说明服务正在运行;若启动失败,不要只反复执行 start,而应查看更完整的日志:
sudo journalctl -u sshd --no-pager -n 50
这条日志命令不属于课件必背项,但能把“服务启动失败”从猜测变成可定位的问题。
课件也以第三方服务说明“先安装,才会有对应服务名”。例如:
sudo yum install -y ntp
sudo systemctl start ntpd
sudo yum install -y httpd
sudo systemctl start httpd
不同发行版的包名和服务名可能不同;例如 Debian 系 Apache 服务常叫 apache2。执行前先用 systemctl status 服务名 验证实际名称,而不是假设每台机器都和 CentOS 7 一样。
一个完整的服务操作示例
下面以课件出现的网络服务名演示顺序。请只在理解所在系统网络管理方式后操作,因为远程服务器上重启网络可能会让 SSH 连接中断。
sudo systemctl status NetworkManager
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
运行后再次检查:
sudo systemctl is-active NetworkManager
sudo systemctl is-enabled NetworkManager
前者回答“当前是否在运行”,后者回答“是否会随开机启动”。把这两个状态分开验证,比只看一条 status 更清楚。
本篇命令清单
# 终端与历史
history
!ls
# 软件管理(按发行版择一)
sudo yum install wget
sudo yum -y install wget
sudo yum remove wget
sudo yum search wget
sudo apt install wget
sudo apt -y install wget
sudo apt remove wget
sudo apt search wget
# 服务管理
sudo systemctl start 服务名
sudo systemctl stop 服务名
sudo systemctl status 服务名
sudo systemctl enable 服务名
sudo systemctl disable 服务名
sudo yum install -y ntp
sudo yum install -y httpd
下一篇会从“本机如何被网络识别”开始:软连接、日期与时区、主机名、hosts 解析,以及课程环境中最容易出错的虚拟机固定 IP 配置。