文件与文件夹 · Linux 与命令行
不用鼠标,怎么在电脑里找路?
课程目录为什么需要它
服务器没有屏幕。网站半夜出故障时,值班工程师连上一台 Linux 机器,手里只有一个终端:你输入命令,它打印回答。云服务器、Docker 容器和大多数构建系统都是这样,所以这是后端、运维、安全每一份工作的第一件工具。
这里的终端是一个安全的练习副本:你输入的任何命令都不会碰到你真正的电脑。
直觉理解
文件放在文件夹里,文件夹又套着文件夹,像一棵倒过来的树。/ 是最上面的根,你自己的文件夹是 /home/learner,简写成 ~。
你永远站在某一个文件夹里,叫当前目录:
pwd:我在哪?ls:这里有什么?cd notes:走进 notes。cd ..往上走一层,只写cd就回家。
以 / 开头的路径是绝对路径(从根开始)。其他的是相对路径,从你站的地方算起。
定义
当前目录
The folder your commands run in. Relative paths start from here; `pwd` prints it.命令运行时所在的文件夹。相对路径从这里算起;`pwd` 会把它打印出来。
mkdir、touch、cp、mv、rm
Make a folder, make an empty file, copy, move (or rename), remove. `mkdir -p a/b` makes missing parents too; `rm -r` removes a folder and everything in it.建文件夹、建空文件、复制、移动(或改名)、删除。`mkdir -p a/b` 会把缺的上级目录一起建好;`rm -r` 删除整个文件夹及里面的一切。
示例
四处看看
在互动课里运行每条命令的回答打印在提示符下面。提示符本身就显示了你在哪里。
pwd
ls
cd notes
ls
cd ..
pwd逐步执行
- L1家目录是 /home/learner。
/home/learner - L2三个文件夹。
data logs notes - L3走进 notes;提示符变成 ~/notes。
- L5
..永远是上一层文件夹。
建、复制、移动、删除
在互动课里运行整理笔记:一个新文件夹、一份备份、一次改名、一次清理。
mkdir -p archive/2025
cp notes/todo.txt archive/2025/todo-backup.txt
mv notes/ideas.txt notes/plans.txt
touch notes/draft.txt
rm notes/draft.txt
ls notes archive/2025逐步执行
- L1-p 一次建好 archive 和 archive/2025。
- L2cp 不动原文件。
- L3在同一个文件夹里 mv 到新名字,就是改名。
- L6ls 跟两个文件夹,会分别列出。
常见错误
rm 没有回收站
用 rm 删掉的文件就没了。执行 rm -r 之前,先对同一个路径跑一次 ls,看清楚会删什么。
名字里有空格
cd my notes 被当成两个词。要加引号:cd "my notes",或者干脆不要在文件名里用空格。
小测验
1. 这段代码会输出什么?
cd logs
cd ..
cd notes
pwd查看答案
答案:A
进 logs,再回到家目录,然后进 notes。
2. 你在 `/home/learner/notes`。哪个路径指向 `/home/learner/logs/app.log`?
查看答案
答案:B
先用 .. 回到家目录,再进 logs。
动手练习
3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。
- 预测输出最后在哪?
准确写出这些命令打印的内容。
- 改需求修好备份
这些命令本来要把
notes/todo.txt复制到backup/todo.txt,但是失败了。修好它们。 - 从零写整理日志
建一个文件夹
logs/old,把logs/app.log移进去,再在原来的位置留一个空的logs/app.log(用touch)。
本课术语
| 术语 | 中文 | 英文定义 |
|---|---|---|
| Terminal | 终端 | A window where you type commands and read their output. |
| Working directory | 当前目录 | The folder commands run in; relative paths start here. |
| Absolute path | 绝对路径 | A path from the root, starting with /. |