欢迎来到罐子的实验室
本次目标 :
让你从「面对黑框框发懵」到「能熟练地敲下命令、看到输出、知道发生了什么」。
前置依赖:无 这是整个教程的起点。
学完你能做什么:
- 知道「命令找不到」「权限不足」这类报错大致是什么意思
1. Hello,命令行
打开终端(也叫「终端模拟器」「Terminal」「控制台」),你会看到一个闪烁的光标,前面有一行字,长这样:
这整行叫做提示符(prompt),
它在「提示」你:我准备好了,请输入命令。
把它拆开看:
user —— 当前用户名。在你的电脑上可能是 tom、alice 或别的。host —— 主机名,也就是这台机器的名字。如果你管很多台服务器,这个提示会很有用。~ —— 你当前所在的目录(~ 是「家目录」的简写,下一模块细讲)。$ —— 表示你现在是普通用户。等你能用管理员权限时,它会变成 #,那时你就知道「我升级了」。
提示符末尾那个闪烁的光标,就是在等你输入。
2. 第一条命令
命令(command)就是告诉电脑要做的事。输入一条命令,按下回车,它就被执行了。我们来试一条最简单的:
user@host:~$ whoamiuseruser@host:~$
这里发生了什么?
- Shell 找到
whoami 这个程序并运行它。 whoami 把「当前用户名」打印到屏幕上(这里是 user)。- 程序结束,Shell 再次显示提示符,等你下一条命令。
💡 Shell 是什么? 你输入命令、它负责「听懂并执行」的那个程序,就叫 Shell(壳)。Linux 上最常用的 Shell 叫 bash。你可以把 Shell 想象成一个永远在线的助理:你说一句,它做一句。
动手练习 1:你是谁?
任务:在终端里运行 whoami,确认它输出的是你的用户名。
思路引导:照着上面的例子敲就行,注意拼写全小写,敲完按回车。
参考答案:
常见错误:
- ❌
Whoami / WHOAMI —— Linux 命令区分大小写,必须全小写。报错会是 command not found。 - ❌ 输入了中文输入法下的字符 —— 确保切换到英文输入。
3. 命令带参数:echo
光一个命令名往往不够,你通常还要给它一些附加信息,这叫参数(argument)。
当你按回车时,Shell 会把你输入的一行按空格拆开:第一个词是命令,后面的词都是参数。
user@host:~$ echo HelloHellouser@host:~$
echo 的作用很简单:把它收到的参数原样打印出来(像回声一样,所以叫 echo)。
参数可以有多个:
user@host:~$ echo Hello WorldHello Worlduser@host:~$ echo Hello World Foo BarHello World Foo Bar
注意:echo 收到的是「Hello」「World」两个参数,但打印时用空格连起来了。
动手练习 2:让 echo 说话
任务:用 echo 打印出 I love Linux 这几个字。
思路引导:命令是 echo,后面跟你要打印的内容作为参数。
参考答案:
user@host:~$ echo I love LinuxI love Linux
常见错误:
- ❌
echo I love Linux 看起来像三个参数,但 echo 把它们都打印出来并用空格连接——这正是你想要的,所以没问题。 - ⚠️ 如果内容里有空格的短语想作为一个整体,需要加引号,下一节会用到。现在先不管。
4. 命令历史:少打字
你会发现自己经常重复输入相似的命令。Shell 帮你记住了历史——你执行过的每一条命令都存在内存里。
按上方向键 ↑,就能调出上一条命令;再按一次,调出更早的;按**下方向键 ↓**往回翻。
user@host:~$ echo HelloHellouser@host:~$ whoamiuseruser@host:~$ <按上箭头># 这时命令行会变成 whoamiuser@host:~$ <再按上箭头># 变成 echo Hello
调出来之后你可以直接回车再执行,也可以用左右箭头移动光标去修改它,然后回车。
💡 实用快捷键:
Ctrl-R 然后输入关键词,可反向搜索历史命令(比如输入 ech 就能找到之前所有 echo 开头的命令)。!! 表示「上一条命令」,常用于 sudo !!(用管理员权限重跑上一条)。
动手练习 3:调出历史
任务:
- 先运行
echo first,再运行 echo second。 - 按上方向键,把
echo second 调出来并修改成 echo second time,回车执行。
思路引导:按 ↑ 调出 echo second,用 ← 把光标移到行尾(或末尾的 d 后面),补打 time,回车。
参考答案:
user@host:~$ echo firstfirstuser@host:~$ echo secondseconduser@host:~$ echo second time# 按↑调出后修改echo second time
常见错误:
- ❌ 以为按 ↑ 会「撤销」——不会,它只是调出历史,不会撤销任何操作。
- ⚠️ 用鼠标点击命令行的位置是无法移动光标的(除非你得做点什么不过这就是后面的事情了),必须用键盘左右箭头。
5. 看懂常见的「拒绝」报错
新手最怕的就是敲完命令看到一串红字。其实大多数报错就那么几类,认得就不慌了:
| | |
|---|
command not found | | |
No such file or directory | | |
Permission denied | | 要么改权限,要么用 sudo(→ 详见《模块 10》) |
bash: syntax error | | |
举例:
user@host:~$ whoamiiwhoamii: command not found
——whoamii 拼错了,多打了一个 i。
user@host:~$ cat /etc/shadowcat: /etc/shadow: Permission denied
——你想看密码文件,但普通用户没权限(→ 详见《模块 10 用户组与权限》)。
记住一条原则:看到报错别慌,先读完那行报错,它通常已经告诉你问题在哪了。
6. 清屏与退出
两个常用的小技巧,先记住:
user@host:~$ clear# 清空当前屏幕(命令历史还在,只是看不见了)
或者直接按 Ctrl-L,效果一样。
退出终端:输入 exit 或按 Ctrl-D。
速查表
| | |
|---|
whoami | | whoami |
echo 文本 | | echo Hello |
↑ | | |
Ctrl-R | | |
Ctrl-L | | clear |
Ctrl-D | | exit |
提示符拆解
user @ host : ~ $ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━ $ 普通用户 /# 管理员 ┃ ┃ ┗━━━ 当前目录(~ 是家目录) ┃ ┗━━━━━━━ 主机名 ┗━━━━━━━━━━━━ 用户名
下一步
恭喜!你已经能跟命令行打交道了。但它就像一个城市——光会问「我是谁」还不够,你得知道自己在哪、文件在哪。