第 4/30 天
引言
在前三天的学习中,我们完成了 Ubuntu 的安装,并初步探索了 GNOME 桌面环境。从今天开始,我们将正式进入 Ubuntu 的核心——终端(Terminal)。无论你是桌面用户还是服务器管理员,终端都是与 Ubuntu 交互最高效、最强大的方式。
「不会用终端,就不算真正会用 Ubuntu」——这句话虽然听起来有些绝对,但事实是:几乎所有系统管理任务、服务器配置、开发环境搭建,都离不开终端。今天我们将从零开始,系统学习终端基础操作、文件系统结构和路径导航。
一、终端与 Shell:你的命令解释器
1.1 打开终端
在 Ubuntu 桌面中,有几种方式打开终端:
- 快捷键:
Ctrl + Alt + T - 右键菜单:在桌面或文件管理器空白处右键 →「在终端中打开」
- 应用菜单:搜索「Terminal」或「终端」
1.2 Shell 是什么?
Shell(壳)是用户与操作系统内核之间的命令解释器。它接收你输入的命令,解析后交给内核执行,然后将结果返回给你。
Ubuntu 默认使用 Bash(Bourne Again Shell),它是 Linux 世界最流行的 Shell:
# 查看当前使用的 Shell
echo $SHELL
# 查看 Bash 版本
bash --version
输出示例:
/bin/bash
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
1.3 命令提示符解读
打开终端后,你会看到类似这样的提示符:
hermes@ubuntu:~$
各部分的含义:
| 部分 | 含义 | 说明 |
|---|---|---|
hermes |
当前用户名 | 登录的账户名 |
ubuntu |
主机名 | 计算机名称 |
~ |
当前目录 | ~ 代表用户家目录 /home/hermes |
$ |
普通用户 | # 表示 root 用户 |
💡 提示:
~是家目录的缩写(/home/用户名),是终端中最常用的快捷路径之一。
二、文件系统结构:Linux 的目录树
2.1 基础概念
Linux 文件系统是一个树形结构,根目录是 /,所有文件和目录都从根开始延伸。与 Windows 不同,Linux 没有盘符(C:、D:),所有存储设备都挂载在目录树中的某个节点上。
2.2 FHS 标准目录一览
Ubuntu 遵循 FHS(Filesystem Hierarchy Standard),这是 Linux 文件系统层次结构标准。以下是 Ubuntu 最核心的目录及其用途:
# 查看根目录下的顶层目录
ls /
输出示例:
bin dev home lib32 libx32 mnt proc run snap sys usr
boot etc lib lib64 media opt root sbin srv tmp var
各目录的功能:
| 目录 | 用途 | 类比 Windows |
|---|---|---|
/bin |
基本命令(ls、cp、mv 等) | C:WindowsSystem32 |
/boot |
内核与引导加载器文件 | 启动分区 |
/dev |
设备文件(硬盘、键盘、终端等) | 设备管理器 |
/etc |
系统配置文件 | 注册表 + 配置文件 |
/home |
用户家目录 | C:Users |
/lib |
系统库文件 | C:WindowsSystem32 DLL |
/media |
可移动设备挂载点(U盘、光驱) | 自动挂载的驱动器 |
/mnt |
临时挂载点(手动挂载) | — |
/opt |
第三方软件包 | C:Program Files |
/proc |
虚拟文件系统,进程与内核信息 | 任务管理器(数据形式) |
/root |
root 用户的家目录 | — |
/run |
运行时数据(进程 PID 文件等) | — |
/sbin |
系统管理命令(管理员用) | — |
/snap |
Snap 软件包 | — |
/srv |
服务数据(Web、FTP 等) | — |
/sys |
内核与硬件信息(虚拟文件系统) | 设备管理器 |
/tmp |
临时文件(重启后清空) | C:WindowsTemp |
/usr |
用户程序与数据(第二级层级) | C:Program Files |
/var |
可变数据(日志、缓存、数据库) | — |
💡 重点记忆:
/etc(配置)、/var(数据)、/home(用户文件)、/tmp(临时文件)是日常操作最频繁的目录。
2.3 绝对路径 vs 相对路径
理解路径是文件操作的基础:
# 绝对路径:从根目录 / 开始
cd /home/hermes/Documents
cat /etc/apt/sources.list
# 相对路径:从当前目录开始
cd Documents # 当前目录下的 Documents
cd ../Downloads # 上级目录下的 Downloads
cd ../../opt # 上两级目录下的 opt
特殊目录符号:
| 符号 | 含义 | 示例 |
|---|---|---|
. |
当前目录 | ./script.sh 执行当前目录的脚本 |
.. |
上级目录 | cd .. 返回上级目录 |
~ |
当前用户家目录 | cd ~/Documents |
- |
上一个工作目录 | cd - 在两个目录间切换 |
/ |
根目录 | cd / 回到根目录 |
三、核心 Shell 命令实战
3.1 目录导航命令
# pwd — 打印当前工作目录(Print Working Directory)
pwd
# ls — 列出目录内容(List)
ls # 基本列表
ls -l # 详细列表(权限、大小、修改时间)
ls -a # 显示隐藏文件(以 . 开头的文件)
ls -la # 组合:详细列表 + 隐藏文件
ls -lh # 人类可读的文件大小(KB、MB)
ls -ltr # 按修改时间倒序排列(最新在最后)
# cd — 切换目录(Change Directory)
cd /etc # 切换到 /etc
cd ~ # 回到家目录
cd / # 回到根目录
cd - # 回到上一个目录
3.2 查看文件内容
# cat — 显示文件全部内容(Concatenate)
cat /etc/hostname # 查看主机名
cat /etc/os-release # 查看 Ubuntu 版本信息
# less — 分页查看(支持上下翻页,推荐)
less /var/log/syslog # 按 q 退出,按 / 搜索
# head — 查看文件开头(默认前 10 行)
head -n 20 /etc/passwd # 查看前 20 行
# tail — 查看文件末尾(默认后 10 行)
tail -n 50 /var/log/syslog # 查看最后 50 行
tail -f /var/log/syslog # 实时跟踪日志(Ctrl+C 退出)
# wc — 统计行数、单词数、字符数
wc -l /etc/passwd # 统计用户数(一行一个用户)
3.3 文件与目录操作
# mkdir — 创建目录
mkdir my_project # 创建单个目录
mkdir -p project/src/lib # 创建多级目录(-p = parents)
# touch — 创建空文件或更新文件时间戳
touch README.md # 创建一个空文件
# cp — 复制文件或目录
cp file.txt backup.txt # 复制文件
cp -r my_project my_project_backup # 递归复制目录(-r = recursive)
# mv — 移动或重命名
mv file.txt ~/Documents/ # 移动到 Documents
mv old_name.txt new_name.txt # 重命名
# rm — 删除文件或目录
rm temp.txt # 删除文件
rm -r old_project # 递归删除目录
rm -rf junk_dir # 强制删除(⚠️ 危险!不可恢复)
⚠️ 警告:
rm -rf是 Linux 最危险的命令之一。rm -rf /会删除整个系统!永远不要在不确认路径的情况下使用。
3.4 文件搜索
# find — 查找文件(最强大)
find /home -name "*.txt" # 按文件名查找
find /etc -type f -name "*.conf" # 找配置文件
find / -size +100M # 找大于 100MB 的文件
find ~ -mtime -7 # 最近 7 天修改过的文件
# locate — 基于数据库的快速查找(需先安装)
sudo apt update && sudo apt install mlocate -y
sudo updatedb # 更新数据库
locate .bashrc # 快速查找文件
3.5 文本搜索与处理
# grep — 文本搜索之王
grep "root" /etc/passwd # 在文件中搜索包含 "root" 的行
grep -i "error" /var/log/syslog # 忽略大小写搜索
grep -r "TODO" ~/project/ # 递归搜索目录中所有文件
grep -v "^#" /etc/ssh/sshd_config # 排除注释行(显示有效配置)
# 管道(|)— 将前一个命令的输出作为后一个命令的输入
ls -la /usr/bin | grep "python" # 列出所有包含 python 的可执行文件
cat /var/log/syslog | grep "error" | head -10 # 多级管道
3.6 获取帮助
# man — 命令手册(最权威的文档)
man ls # 查看 ls 的完整手册(按 q 退出)
man bash # Bash 的完整手册
# 常用 man 操作:
# /keyword — 搜索关键词
# n — 下一个匹配
# N — 上一个匹配
# q — 退出
# --help — 快速帮助
ls --help # 显示 ls 的简要帮助
grep --help | head -20 # 查看 grep 帮助的前 20 行
# whatis — 命令简介
whatis ls # 一行说明
四、Shell 实用技巧
4.1 Tab 自动补全
Tab 键是终端中最节省时间的技巧:
# 输入前几个字符后按 Tab
cd /et[Tab] # 自动补全为 /etc/
ls /etc/apt/sour[Tab] # 补全为 /etc/apt/sources.list
# 按两次 Tab 显示所有匹配
cd /etc/[Tab][Tab] # 列出 /etc 下所有目录
4.2 命令历史
# history — 查看命令历史
history # 显示所有历史命令
history | grep apt # 搜索历史中的 apt 命令
# 快捷键
# ↑/↓ — 浏览历史命令
# Ctrl+R — 搜索历史(输入关键词后按 Ctrl+R 继续搜索)
# !! — 执行上一条命令
# !apt — 执行最近一条以 apt 开头的命令
4.3 快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl + C |
终止当前运行的命令 |
Ctrl + D |
退出终端或 EOF |
Ctrl + L |
清屏(等价于 clear) |
Ctrl + A |
光标移到行首 |
Ctrl + E |
光标移到行尾 |
Ctrl + U |
删除光标前所有内容 |
Ctrl + K |
删除光标后所有内容 |
Ctrl + W |
删除光标前一个单词 |
Ctrl + R |
搜索命令历史 |
4.4 通配符
# * — 匹配任意字符
ls *.txt # 所有 .txt 文件
rm backup_* # 删除所有以 backup_ 开头的文件
# ? — 匹配单个字符
ls file?.txt # 匹配 file1.txt、fileA.txt(不匹配 file10.txt)
# [...] — 匹配字符集合
ls file[0-9].txt # 匹配 file0.txt 到 file9.txt
五、常见问题
Q1:提示「command not found」怎么办?
通常是因为命令未安装或路径不对:
# 检查命令是否安装
which python3 # 显示命令的路径(如果安装了)
apt search python3 # 搜索软件包
# 如果未安装
sudo apt update && sudo apt install python3 -y
Q2:ls 命令显示的文件颜色代表什么?
在默认配置下:
– 蓝色:目录
– 绿色:可执行文件
– 红色:压缩包或归档文件
– 青色:符号链接
– 白色:普通文件
Q3:不小心删除了重要文件怎么办?
rm 删除的文件不会进入回收站,直接不可恢复。建议:
1. 用 rm -i 让删除前确认(alias 可设为默认)
2. 安装 trash-cli 代替 rm:
sudo apt install trash-cli -y
trash-put file.txt # 放入回收站
trash-list # 查看回收站
trash-restore # 恢复文件
Q4:路径太长,输入很麻烦怎么办?
使用 Tab 自动补全和通配符,或设置符号链接:
# 创建快捷方式
ln -s /very/long/path/to/project ~/project
cd ~/project # 等价于 cd /very/long/path/to/project
总结
今天我们学习了 Ubuntu 终端的核心基础知识:
- Shell 基础:终端与 Bash 的关系,命令提示符的含义
- 文件系统结构:FHS 标准目录树,每个目录的用途
- 路径导航:绝对路径 vs 相对路径,特殊目录符号
- 核心命令:
pwd、ls、cd、cat、grep、find等 - 实用技巧:Tab 补全、命令历史、快捷键、通配符
今日作业:打开终端,用 ls -la 查看你的家目录,用 tree(需安装:sudo apt install tree -y)查看 /etc 的目录结构,再用 find /home -name "*.txt" 搜索你所有的文本文件。
💡 记住:终端操作的熟练度来自于反复练习。从今天开始,尽量用终端完成日常操作,而不是图形界面——这是成为 Ubuntu 高手的必经之路。
下期预告
第 5 天:用户与权限管理——useradd、usermod、sudo、chown、chmod 详解
Ubuntu 的多用户权限模型是系统安全的第一道防线。明天我们将深入学习如何管理用户、用户组,以及 Linux 文件权限系统(rwx 三剑客),让你彻底掌握 Ubuntu 的权限控制。
📖 系列目录
- 第 1 天:Ubuntu 简介与版本选择——为什么选择 Ubuntu 作为操作系统
- 第 2 天:手把手安装 Ubuntu——从 U 盘启动到分区方案详解
- 第 3 天:Ubuntu 桌面环境初探——GNOME 桌面、设置与软件中心使用
- 第 4 天:Ubuntu 终端基础——Shell 命令、文件系统结构与路径导航 ← 本篇
- 第 5 天:用户与权限管理——useradd、usermod、sudo、chown、chmod 详解 🔜
- 第 6 天:软件包管理——apt、dpkg、snap、flatpak 全面对比与实践 🔜
- 第 7 天:文件与文本操作——ls、cp、mv、find、grep、sed、awk 实战 🔜















暂无评论内容