元数据卡
- 前置知识:第1章,ch02-first-commands
- 预计时间:8 分钟
- 阅读模式:边读边试
你连自己在哪都不知道
你成功对着终端说了一句话——whoami,它回了你的名字。
但现在你站在一片黑暗中,连自己站在哪都不知道。
就像刚进一座巨大的地下工坊,你听到回声,但看不到脚下的路。你摸着墙壁走了两步——"我这是在工坊的哪个角落?"
"你的当前目录在哪?"——这是在终端里永远要知道的第一个问题。
文件系统是一棵树。根是 /,然后分叉出 home、usr、etc、var…… 每个分叉又可以继续分。
你的当前位置,就是你在树上挂着的那个节点。
pwd:你到底在哪
# 打印当前工作目录(Print Working Directory)
pwd
# 预期输出:
# /home/steven2
3
4
5
语言:Shell (Bash/Zsh) 如何运行:打开终端,输入 pwd,回车 预期输出:你所在目录的完整路径 你试试:先输入 cd /tmp,再输入 pwd,看看路径怎么变
还记得提示符里的 ~ 吗?它代表 /home/steven——你的家目录。~ 是快捷键,pwd 告诉你完整地址。
ls:环顾四周
知道自己站哪了,总得看看周围有些什么吧?
# 列出当前目录的文件和子目录
ls
# 连隐藏文件一起看(以 . 开头的文件)
ls -a
# 详细信息模式
ls -l
# 最常用的组合:人类可读的详细列表
ls -lh2
3
4
5
6
7
8
9
10
11
语言:Shell (Bash/Zsh) 如何运行:ls 不加参数 = 看当前目录;ls /tmp = 看指定目录 预期输出:文件名列表,或带权限、大小、时间的详细列表 你试试:ls -la 同时显示隐藏文件和详细信息;ls / 看看根目录里有什么
cd:移动起来
现在你可以到处走了。
# 切换到 /tmp 目录
cd /tmp
# 看看到了没
pwd
# /tmp
# 回到上一级目录
cd ..
# 回到刚才的目录(终端会记住你上一个位置)
cd -
# 直接回老家
cd ~
# 或者直接输入 cd 不带参数,效果一样
cd
# 一次跳多级也是可以的
cd /usr/local/bin2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
语言:Shell (Bash/Zsh) 如何运行:cd <路径> 不需要输出,用 pwd 验证 预期输出:(无)——cd 成功时什么都不说,失败了会报错 你试试:用 cd 在各个目录间来回跳,每次用 pwd 确认你在哪
绝对路径 vs 相对路径
去一个地方通常有两种说法:
- 绝对路径:从根
/开始描述。就像说"从世界地图的东经116°北纬40°开始找"。 - 相对路径:从当前位置开始描述。就像说"往前三步,左转"。
# 绝对路径——不管你在哪,都能到
cd /home/steven/projects
# 相对路径——从当前位置出发
cd projects # 当前目录下的 projects
cd ../steven # 上一层目录里的 steven
cd ../../tmp # 往上两层,然后进 tmp2
3
4
5
6
7
两个特殊目录名:
.— 当前目录..— 上一级目录
Tab 补全:省一半的时间
这个技巧会让你觉得之前的自己都在浪费生命:
你打出路径的前几个字符,按 Tab 键,Shell 自动帮你补全剩下的部分。
# 假如 /usr/local/bin 下面有 file、find、finger
cd /usr/loc<Tab>
# 自动变成:cd /usr/local/2
3
如果有多个匹配,再按一次 Tab 会列出所有选项:
cd /usr/local/b<Tab>
# (第一次按,没反应,说明有多个)
# 再按一次 Tab
# bin/ boot/2
3
4
养成按 Tab 的习惯。除非你喜欢逐个字母敲。
旅人笔记
文件系统是树,
/是根。pwd确认位置,ls环顾四周,cd移动。
绝对路径从根开始;相对路径从当前位置开始。.是这里,..是上一层。
Tab 补全——敲几个字母,按它,省时间。
→ 下一步:动手——文件操作
你知道自己在哪,也知道怎么走了。但工坊的主人是让你干活的——不是光站着看的。