Linux: 终端入门——Shell 与第一个命令
终端是开发者与 Linux 交流的主要方式。它没有图形界面的花哨,但效率——一旦上手——远超鼠标点击。
📋 前置知识:需要先掌握以下内容
- 第2课:安装 Linux
1. 你将学到
- Shell 与终端模拟器的区别
- 命令的通用语法(命令 + 选项 + 参数)
- Tab 自动补全与历史命令
- 终端快捷键
- 命令帮助的获取方式
2. 一个初学者的第一次终端体验
(1) 痛点:黑底白字的窗口令人紧张
小明打开 WSL2 终端,只看到一个黑底窗口和一行闪烁的光标。他不知道该输入什么,也不知道按下回车会发生什么。他甚至不知道怎么退出。
(2) 第一个命令
资深工程师 Bob 说:"先打个招呼。输入 echo "Hello Linux" 然后按回车。"
echo "Hello Linux"
# 输出:Hello Linux
终端返回了他输入的内容——小明发现,终端就像一个对话窗口,你输入指令,计算机回复结果。
(3) 收益:从紧张到掌控
小明学会了第一个命令后,又试了 date、whoami、cal。不到 5 分钟,他从"不敢碰终端"变成了"能看懂终端输出"。
3. 知识点讲解
(1) Shell 与终端
终端模拟器(Terminal Emulator)是你看到的那个窗口——Linux 下的 GNOME Terminal、Windows 下的 Windows Terminal、macOS 的 Terminal.app。
Shell 是运行在终端内部的程序,负责解释你输入的命令。最常见的 Shell 是 bash(Bourne Again Shell)。
终端窗口 → Shell(bash)→ 操作系统
(2) 命令的通用语法
几乎所有的 Linux 命令遵循这个结构:
COMMAND [OPTIONS] [ARGUMENTS]
| 部分 | 解释 | 示例 |
|---|---|---|
| COMMAND | 要执行的命令名 | ls |
| OPTIONS | 修改命令行为的选项(一般以 - 开头) |
-l(长格式)、-a(显示隐藏) |
| ARGUMENTS | 命令操作的目标 | 文件名、目录名 |
# 语法示例
ls -la /home
# 命令: ls
# 选项: -l(长格式)和 -a(隐藏文件)
# 参数: /home(要列出的目录)
(3) Tab 自动补全
Tab 键是终端里最有用的键。 你只需要输入命令/文件名的一部分,按 Tab 就会自动补全。
Ctrl+R 反向搜索历史命令,效率可提升数倍。
| 按 Tab 的效果 | 说明 |
|---|---|
| 自动补全 | 唯一匹配时自动补全完整名称 |
| 显示所有匹配 | 多个匹配时按一次不反应,按两次显示所有选项 |
| 补全命令 | 输入 ec + Tab → 自动补全为 echo |
| 补全文件 | cd /ho + Tab → 自动补全为 cd /home |
| 补全路径 | ls ~/Doc + Tab → ls ~/Documents/ |
(4) 终端快捷键
| 快捷键 | 作用 |
|---|---|
Ctrl + C |
终止当前运行的程序(不是复制!) |
Ctrl + D |
退出当前 Shell 或结束输入(EOF) |
Ctrl + L |
清屏(同 clear 命令) |
Ctrl + R |
反向搜索历史命令 |
↑ / ↓ |
浏览历史命令 |
Ctrl + A |
光标移到行首 |
Ctrl + E |
光标移到行尾 |
Ctrl + U |
删除光标前所有字符 |
Ctrl + K |
删除光标后所有字符 |
Ctrl + W |
删除光标前一个词 |
Ctrl+A 跳行首(同 Emacs 移动到行首)、Ctrl+E 跳行尾、Ctrl+U 清空前方、Ctrl+K 清空后方、Ctrl+W 删前一个词。记住这几个组合,长命令编辑效率会大幅提升。
▶ 示例:基本交互命令
# 查看当前日期和时间
date
# 输出:Tue Jul 7 10:23:45 CST 2026
# 打印当前用户名
whoami
# 输出:alice
# 查看日历
cal
# 七月 2026
# 日 一 二 三 四 五 六
# 1 2 3 4
# 5 6 7 8 9 10 11
# ...
# 查看系统运行时间
uptime
# 输出:10:23 up 2 days, 2 users
输出:
TEXT 📖 仅展示Tue Jul 7 10:23:45 CST 2026 alice July 2026 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 10:23 up 2 days, 2 users
▶ 示例:echo 命令的多种用法
# 打印字符串
echo "Hello Linux"
# 打印变量
echo "当前用户是:$USER"
# 打印命令输出
echo "今天是 $(date +%A)"
# 写入文件
echo "Hello World" > welcome.txt
▶ 示例:Tab 自动补全练习
# 输入 cd /h 然后按 Tab → 自动补全 /home
cd /home
# 输入 ls -l /e 然后按 Tab → 自动补全 /etc
ls -l /etc
# 两次 Tab 显示匹配(输入 cd /e + Tab + Tab)
# 会列出所有以 /e 开头的路径
▶ 示例:清屏与退出
# 屏幕内容太多?清屏
clear
# 或者用快捷键 Ctrl + L
# 退出终端
exit
# 或者按 Ctrl + D
▶ 示例:获取命令帮助
# 方式一:--help 选项(大部分命令支持)
ls --help | head -20
# 方式二:man 手册(最详细)
man ls
# 按 q 退出 man 页面
# 方式三:whatis 一句话描述
whatis ls
# 输出:ls (1) - list directory contents
▶ 综合示例:小明的第一次终端探险
# 小明打开终端后,尝试了以下操作
echo "Hello Linux" # 跟计算机打招呼
date # 看看今天几号
whoami # 我是谁?
uptime # 服务器跑了多久?
cal # 看看这个月的日历
ls -la # 我的家目录有什么文件?
echo $SHELL # 我用的什么 Shell?
exit # 再见,终端!
输出:
TEXT 📖 仅展示Hello Linux Tue Jul 8 10:23:45 CST 2026 alice 10:23:45 up 3 days, 2:10, 1 user, load average: 0.00, 0.01, 0.05 July 2026 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 total 28 drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 . drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 .. -rw-r--r-- 1 alice alice 220 Jul 8 10:23 .bash_logout -rw-r--r-- 1 alice alice 3771 Jul 8 10:23 .bashrc -rw-r--r-- 1 alice alice 807 Jul 8 10:23 .profile /bin/bash💡 小明已经学会了最基本的终端命令,接下来会在后续章节逐步深入!
❓ 常见问题
Q: 终端和 Shell 有什么区别? A: 终端是窗口程序(如 GNOME Terminal、Windows Terminal),Shell 是运行在终端里的命令解释器(如 bash、zsh)。终端提供"窗户",Shell 是"和你对话的人"。
Q: Tab 键在终端里可以补全什么? A: 命令名、文件名、目录名、命令选项(部分程序支持)、环境变量名(以
$开头时)。在 Linux 上,Ctrl + I和 Tab 是同一个东西。
Q: 按了 Ctrl + C 程序还是没停下来怎么办? A: 先试
Ctrl + C,不行试Ctrl + Z挂起程序,然后用kill %1终止。还不行就用ps aux | grep 程序名找到 PID 后kill -9 PID。
Q: clear 和 Ctrl + L 有什么区别? A: 效果一样——都清屏。但
clear是一个命令(会清除终端并配置滚动缓冲区),Ctrl + L是一个快捷键(仅清可见部分)。实践中可以混用。
Q: 怎么查看以前输过的命令? A: 按
↑键逐条浏览。按Ctrl + R进入反向搜索模式,输入关键词即可搜索历史命令。所有历史命令保存在~/.bash_history文件中。
📖 小节
- 终端是窗口、Shell 是命令解释器,默认 Shell 是 bash
- 命令结构:
COMMAND [OPTIONS] [ARGUMENTS] - Tab 自动补全是终端最高效的功能——多按 Tab
- 终端快捷键能大幅提升效率:
Ctrl + C终止、↑历史、Ctrl + R搜索 - 获取帮助用
--help(简要)或man(详细)
📝 作业
- 基础题(难度⭐):打开终端输入
echo "Hello Linux"并观察输出,然后用date和cal查看当前日期和日历 - 进阶题(难度⭐⭐):用
man ls阅读 ls 命令的手册(按 q 退出),并练习 Tab 补全——输入cd /后按 Tab 两次查看有哪些目录 - 挑战题(难度⭐⭐⭐):写一个 Shell 别名
today,让它同时显示日期和日历;再用Ctrl + R搜索历史命令,整理出 5 个你最常用的终端快捷键