缘博客
发布日期

Linux实用操作(一):终端技巧、软件安装与服务管理

作者
  • 姓名
    社交账号

本篇学习范围

这一组 Linux 实用操作不是再背一批零散命令,而是围绕一个很常见的工作过程展开:

在终端里高效输入命令 → 安装需要的软件 → 启动并设置系统服务。

本篇覆盖课件中的终端快捷键、历史命令、yum / aptsystemctl。后续文章再处理网络、进程、监控、文件传输与压缩。命令示例以 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 软件通常由发行版的软件仓库提供。包管理器负责下载软件包、安装、卸载和处理依赖关系;因此安装前通常需要:

  1. 使用具备管理员权限的账户,或在命令前加 sudo
  2. 能访问已配置的软件仓库;
  3. 确认软件名,而不是只记住下载文件名。

课件的 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

不要把 yumapt 混在同一台系统上使用:它们对应不同的软件包格式和仓库体系。安装失败时,先执行下面两步排查,而不是盲目换命令:

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 不等于现在就 startdisable 也不等于现在就 stop。如果希望“现在启动且以后开机也启动”,应分别执行:

sudo systemctl start 服务名
sudo systemctl enable 服务名

课件列出的常见服务包括:

服务名示例用途发行版差异
NetworkManager管理网卡和连接配置现代桌面和服务器发行版常见。
network传统网络脚本服务在 CentOS 7 课程环境中常见,新系统未必存在。
firewalld动态管理防火墙规则RHEL 系常见。
sshdSSH 远程登录服务多数 Linux 都有,但部分 Debian 系服务名会显示为 ssh
ntpdhttpd时间同步、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 配置。