人人都能学编程
English 开始学习
核心 · Linux第 1 课 / 共 6 课免费阅读

文件与文件夹 · 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
逐步执行
  1. L1家目录是 /home/learner。/home/learner
  2. L2三个文件夹。data logs notes
  3. L3走进 notes;提示符变成 ~/notes。
  4. 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
逐步执行
  1. L1-p 一次建好 archive 和 archive/2025。
  2. L2cp 不动原文件。
  3. L3在同一个文件夹里 mv 到新名字,就是改名。
  4. L6ls 跟两个文件夹,会分别列出。

常见错误

rm 没有回收站

用 rm 删掉的文件就没了。执行 rm -r 之前,先对同一个路径跑一次 ls,看清楚会删什么。

名字里有空格

cd my notes 被当成两个词。要加引号:cd "my notes",或者干脆不要在文件名里用空格。

小测验

1. 这段代码会输出什么?

cd logs
cd ..
cd notes
pwd
  1. A
    /home/learner/notes
  2. B
    /home/learner/logs/notes
  3. C
    /notes
查看答案

答案:A

进 logs,再回到家目录,然后进 notes。

2. 你在 `/home/learner/notes`。哪个路径指向 `/home/learner/logs/app.log`?

  1. Alogs/app.log
  2. B../logs/app.log
  3. C/logs/app.log
查看答案

答案:B

先用 .. 回到家目录,再进 logs。

动手练习

3 道练习,分三层:先预测程序的输出,再按新需求改程序,最后从零写一个。代码在浏览器里运行,提交马上判题。

  1. 预测输出最后在哪?

    准确写出这些命令打印的内容。

  2. 改需求修好备份

    这些命令本来要把 notes/todo.txt 复制到 backup/todo.txt,但是失败了。修好它们。

  3. 从零写整理日志

    建一个文件夹 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 /.