命令行不是什么高深玩意儿,它只有三件事:「在哪儿」(当前位置)、「看什么」(查看)、「改成什么」(改动);一条命令 = 名字 + 选项 + 参数,用空格分开;再配上四个键盘技巧(Tab 补全、上下键、Ctrl + C、Ctrl + R),你就能干完八成日常工作——但请先记住那条红线:命令行里没有回收站,删掉就是没了。
3-1 讲了终端是什么,本节真正开始用它。
前面几节一直出现的命令(echo $XDG_SESSION_TYPE、apt list、df -h)你其实已经在用了——本节把它们收成一张表,并补上「怎么自己查到命令」的能力(man/--help)。
这也是后面所有章节的地基:第 4 章之后写 Python、接传感器、开机自启,全靠这里的手感。
一、打开终端的三种方式
| 方式 | 怎么做 | 什么时候用 |
|---|---|---|
| 快捷键 | Ctrl + Alt + T |
桌面下最快 |
| 菜单 | 主菜单 → 附件 → 终端 | 找快捷键麻烦时 |
| SSH | 在电脑上 ssh 用户名@主机名.local |
无头模式唯一的入口(2-3 讲过) |
三种方式打开的是同一个东西。 你在桌面上敲的命令,和透过 SSH 敲的命令,权限、效果完全一样——唯一的区别是「有没有图形界面可以看」。
二、拆开看一条命令:名字 + 选项 + 参数
拿这条命令当标本:
ls -l /home/pi
| 部分 | 内容 | 含义 |
|---|---|---|
| 命令(命令名) | ls |
要干什么(列出目录) |
| 选项(option) | -l |
怎么干(长格式列表:权限、大小、时间) |
| 参数(参数) | /home/pi |
对谁干(目标目录) |
三条规则,记住就不容易懵:
- 用空格分开——
ls-l是错的,ls -l才对; - 选项有长有短:
-l与--long是一个意思(短横一个字母、长横一个词); - 选项可以合并:
ls -l -a可以写成ls -la;换个顺序通常也行。
大小写是敏感的(3-1 讲过):LS 不是 ls。
三、必须会的命令:按用途分六组
第 1 组:我在哪、这儿有什么
| 命令 | 意思 | 例子 |
|---|---|---|
pwd |
我现在在哪个目录 | pwd |
ls |
列出当前目录的东西 | ls |
ls -l |
详细列表(权限/大小/时间) | ls -l ~/Desktop |
ls -a |
连隐藏文件一起列(. 开头的) |
ls -a |
hostname -I |
本机 IP 是多少 | hostname -I |
df -h |
磁盘还剩多少(-h =人看得懂的单位) |
df -h / |
free -h |
内存用掉多少 | free -h |
第 2 组:走到别处去
| 命令 | 意思 |
|---|---|
cd 目录 |
进到某个目录 |
cd .. |
回上一层 |
cd ~ 或直接 cd |
回家目录(/home/用户名) |
cd / |
去根目录 |
cd - |
回到上一个待过的目录(来回切换神器) |
第 3 组:建、删、搬(这组要慢一点)
| 命令 | 意思 | 风险提示 |
|---|---|---|
mkdir 名字 |
建目录 | 安全 |
mkdir -p a/b/c |
一次建多层(父目录不存在也一起建) | 安全 |
touch 文件名 |
建空文件/更新时间戳 | 安全 |
cp 源 目标 |
复制 | 同名会直接覆盖,无提示 |
cp -r 目录 目标 |
复制整个目录(-r =递归) |
同上 |
mv 源 目标 |
移动;同目录内就是改名 | 覆盖同样无声 |
rm 文件 |
删除文件 | 没有回收站 |
rm -r 目录 |
连目录一起删 | 危险 |
rm -rf 目录 |
强制递归删,不提示 | 最危险的一条,别照着网上乱抄 |
图形界面的「废纸篓」在命令行里不存在。 rm 执行完,文件就没了。
新手期的自我保护三条:
① rm 后面先不加 -r,确认真要删目录再加;
② sudo rm 前先想三秒——它删的是系统文件;
③ 拿不准就把 rm 换成 ls:把要删的路径先用 ls 看一眼,确认列出来的正是你想删的东西,再把命令头换成 rm。这个习惯能救你无数次。
第 4 组:看文件内容
| 命令 | 意思 |
|---|---|
cat 文件 |
全部打印出来(短文件用) |
less 文件 |
分页看(长文件用,q 退出,空格翻页) |
head 文件 |
只看开头 10 行 |
tail 文件 |
只看末尾 10 行 |
tail -f 文件 |
盯着它,有新内容就实时打出来(看日志必备) |
第 5 组:找东西
| 命令 | 意思 | 例子 |
|---|---|---|
grep 关键词 文件 |
在文件里找包含某文字的行 | grep DNS /etc/resolv.conf |
find 目录 -name 文件名 |
按名字找文件 | find ~ -name "*.py" |
区分:
grep找的是「文件里的内容」,find找的是「文件本身」——这两个新手最常搞混。
第 6 组:改文件、装软件、开关机
| 命令 | 意思 | 备注 |
|---|---|---|
nano 文件 |
最友好的命令行编辑器 | Ctrl + O 保存、Ctrl + X 退出(2-3 的体检表用过) |
sudo apt update |
刷新软件清单 | 装软件前先做 |
sudo apt install 包名 |
装软件 | 3-3 讲过 |
sudo reboot |
重启 | 关机/重启只用命令或菜单,别拔电 |
sudo poweroff |
关机 | 同上 |
sudo raspi-config |
进系统设置 | 2-4 的地图 |
man 命令 或 命令 --help |
查这个命令怎么用 | 最该养成的习惯 |
history |
看敲过的命令历史 | 忘了上次怎么写的就查它 |
四、四个键盘技巧:让手速翻倍
| 技巧 | 怎么做 | 省掉什么 |
|---|---|---|
| Tab 补全 | 敲前几个字母,按 Tab |
最值钱的一个——文件名、路径都自动补全;按两下会列出所有可能的候选 |
| 历史命令 | 按 ↑ ↓ 翻 |
不用重敲 |
| 搜索历史 | Ctrl + R,然后敲关键词 |
在几百条历史里搜,比上下键强得多 |
| 中断 / 清屏 | Ctrl + C 停掉正在跑的命令;Ctrl + L 清屏 |
跑飞了的命令有救 |
还有两个小动作:Ctrl + A 跳到行首、Ctrl + E 跳到行尾——改长命令时不用按半天方向键。
五、三个「组合技」:管道、重定向、通配符
① 通配符:* 代表任意多个字符,? 代表一个字符。
ls *.py # 列出所有 .py 文件
ls photo?.jpg # photo1.jpg、photoA.jpg 都算
② 重定向:把输出送到文件里。> 覆盖、>> 追加。
ls -l > list.txt # 把结果写进 list.txt(会覆盖原内容!)
date >> log.txt # 追加到 log.txt 末尾
③ 管道:把前一条命令的输出喂给后一条命令。
ls /etc | grep ssh # 在 /etc 的文件列表里筛出带 ssh 的
ps aux | grep python # 看有哪些 python 进程
组合起来就是一条真本事:
ls -l /etc | grep ssh > ssh_files.txt
从左往右读:列出 /etc 的详细内容 → 筛出带 ssh 的行 → 写进文件。这就是「命令行能写脚本」的雏形。
顺带一个纪律:
>会覆盖目标文件、而且不提示。写重定向命令时,先确认右边的文件名是新的,或者用>>追加。
六、动手 Demo:七步上手
做完这七步,你就有了最基本的命令行肌肉记忆。
第一步:先看清自己在哪、有什么
pwd
ls -l
df -h /
怎么读:pwd 输出 /home/pi;ls -l 每行开头那串 drwxr-xr-x 是权限(d =目录);df -h 看卡还剩多少空间。
第二步:建一个工作目录走进去
mkdir -p ~/lab/demo3
cd ~/lab/demo3
pwd
看到什么算成功:pwd 输出 /home/pi/lab/demo3。注意 mkdir -p 把两层目录一次建好了。
第三步:造点东西出来
echo "hello raspberry" > hello.txt
ls -l
cat hello.txt
看到什么算成功:ls -l 里出现 hello.txt;cat 打印出 hello raspberry。
第四步:搜一下(管道与 grep 的第一次实战)
history | grep echo
怎么读:从历史里筛出所有含 echo 的命令——上一秒刚敲的那条就在里面。
第五步:编辑它(nano 上手)
nano hello.txt
改几个字,然后按 Ctrl + O(保存,回车确认)、Ctrl + X(退出),再:
cat hello.txt
看到什么算成功:打印出你改过之后的内容。如果发现「改了没生效」,多半是没按 Ctrl + O 保存——这是 nano 最常见的翻车点。
第六步:清理现场(用第 3 组那条纪律)
cd ~
ls ~/lab/demo3 # 先看一眼要删的东西
rm -r ~/lab/demo3 # 确认无误再删
ls ~/lab
怎么读:rm -r ~/lab/demo3 删掉整个 demo3;ls ~/lab 里 demo3 已经不见了(lab 目录本身还在)。这一步请你顺便体会一遍「先 ls 后 rm」的手感——它以后会救你。
第七步:关机/重启只用命令
sudo reboot
看到什么算成功:屏幕提示、断开 SSH、约半分钟后系统重新起来(uptime 里的时间会重置)。
七、30 秒实验
亲手体会一次「命令记不住也能干活」。
- 忘掉某个命令的用法,直接问系统:
ls --help
- 再看更详细的说明书(看完按
q退出):
man ls
- 从历史里把它捞回来:按
Ctrl+R,敲man,看它自动补出你刚才那条命令。
这 30 秒你收获的是:你不需要背命令表。 需要的是三招——--help / man / Ctrl + R。知道「去哪儿查」比「背下来」值钱得多。
八、常见误区
- 「命令行里的删除会进回收站」:不会。
rm是永久删除——这是本节第一件要记住的事。 - 「
rm -rf加上sudo更保险」:恰好相反,这是最危险的组合(无提示、递归、还带最高权限)。网上抄来的这条命令一律先搞清它删什么再用。 - 「
ifconfig看 IP」:已废弃。现在用ip a(或hostname -I只看地址,更清爽)。 - 「用
service xxx restart管服务」:老写法。现在是sudo systemctl restart xxx(服务器课 9.5 讲的启用/停用服务也是这套)。 - 「关机直接拔电源更快」:会坏文件系统(3-2 已强调)。用
sudo poweroff/菜单。 - 「命令敲错了会立刻出事」:多数时候不会——最常见的结果只是「报错」。真正危险的是少数几条(
rm -r、带sudo的改删、>覆盖)——把这几条记住了,其余放心敲。 - 「路径分隔符和 Windows 一样」:Linux 用正斜杠
/。cd C:\Users这种写法在这儿不成立。
自测三问
1. 一条命令由哪几部分组成?`ls -la /home` 里的三部分分别是什么?(**命令 + 选项 + 参数**;`ls` 是命令、`-la` 是合并后的选项、`/home` 是参数) 2. 命令行删东西能后悔吗?删目录前推荐先做什么?(**不能,没有回收站**;**先用 `ls` 看一眼要删的路径,确认无误再把命令头换成 `rm`**) 3. 「看文件内容」「找文件内容」「找文件本身」分别用什么命令?(**`cat`/`less`;`grep`;`find`**)- ☐ 下一节(3-6 在 Windows 和树莓派之间交换文件)
相关笔记
- 认识 Linux、终端机和桌面环境 —— 上一节起的「终端从哪来、为什么离不开」
- 设置 Raspberry Pi OS ——
raspi-config与系统更新三命令 - Raspberry Pi OS 应用程序界面 ——
apt装软件那一段的命令版 - 性能与更新 —— 服务与更新在服务器一侧的讲法
- 在 Windows 和树莓派之间交换文件 —— 把命令用到跨机器传文件
- 🍓 树莓派 · 索引 —— 全课路线图