
文章目录Ubuntu Server 第 3 讲:文件与目录与三个静默动作一、单根的树:没有盘符,只有 `/`二、路径:只有两种写法,和四个坐标三、目录四命令:只有两条会动磁盘四、文件四命令,和三个静默动作静默动作一:`mv` 覆盖同名文件,它不会问你静默动作二:`rm` 只删目录记录,没有回收站静默动作三:`touch` 撞上已存在的文件,一声不吭就改了时间五、看文件:先量长度,再决定用哪条六、硬链接与软链接:两个名字与一张路条七、通配符:让一条命令对付一批文件一句话带走Ubuntu Server 第 3 讲:文件与目录与三个静默动作Linux 只有一棵目录树,树顶是/。可真正把人教会的是它的脾气:这棵树上的大多数命令,做完了都不吭声。回车、屏幕空白、事情已变——这一讲把「说人话的命令」和「沉默的命令」分开讲,因为踩坑的几乎都在后者。全文命令与回显都取自一台Ubuntu 24.04.5 LTS实验机。单根的树——顶层目录的分工,说清/etc、/var、/usr各自装什么。路径——绝对与相对、四个相对坐标。目录四命令——pwd、cd、mkdir、rmdir。文件四命令——touch、cp、mv、rm,认得出三个静默动作和防法。看文件与链接——less治长文件,ln与ln -s一眼分清。通配符——*、?、[]加上那个坑。一、单根的树:没有盘符,只有/要学会什么:Windows 给你 C 盘、D 盘、E 盘,每块盘各自是一棵独立的树。Linux 完全不是这个模型——它只有一棵树,树顶只有一个目录/。系统文件、你的文档、插上去的 U 盘,全都挂在这一个根下面。那 C 盘跑到哪儿去了?答案是:它们变成了树上的枝杈。新硬盘、U 盘、光盘都会被「挂载」到树上某个目录,比如 U 盘插上去会出现在/media/你的用户名/下面一个新建的目录里——你cd进去相当于走进了那块盘,但它在你眼里仍是树的一部分,路径照旧从/写起。照着练:先用ls -F看根目录,再把那几条软链接单独拎出来问它们指向哪儿。ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ ls -F / bin@ boot/ dev/ etc/ home/ lib@ lib.usr-is-merged/ ... tmp/ usr/ var/ ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ ls -ld /bin /lib /lib64 lrwxrwxrwx 1 root root 7 Apr 22 2024 /bin - usr/bin lrwxrwxrwx 1 root root 7 Apr 22 2024 /lib - usr/lib lrwxrwxrwx 1 root root 9 Apr 22 2024 /lib64 - usr/lib64ls -F是个省事的小选项:目录名后面加斜杠,软链接后面加@,一眼分出类型。注意bin后面是@(软链接),而bin.usr-is-merged后面是斜杠(真目录)。老教程写/bin/ls,新系统上实际取到的是/usr/bin/ls,内容一样——认得出它们、别去删它们就够了。顶层目录的分工不是随便排的,它跨发行版通用(这套约定有正式名字,叫 FHS,文件系统层次标准)。真正要记住的是四个:/etc放配置,改配置就来这儿,全是纯文本;/var放经常变动的数据,排查故障的第一站是/var/log;/usr放绝大多数程序与库,人称「第二层根」;/home是每个用户的家目录,你的~就是它。再量一下这棵树有多大:ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ du -sh /usr /var /etc /home 2/dev/null 3.5G /usr 2.5G /var 13M /etc 21M /home/etc只有 13M,因为它全是文本文件;/usr3.5G,因为一千五百多个程序都装在这儿。这两个数字你机器上必然不同,要学的是怎么量:上面那条du -sh量空间,数条目则用「列出某目录、再数它的行数」两步组合。容易踩的坑是改完配置找不到文件——多半把/etc和/var搞混了,/etc放配置本身,/var/log放日志;方向相反的错是把日志写进/etc。二、路径:只有两种写法,和四个坐标要学会什么:同一份文件,两条走法。以/开头的是绝对路径,从根算起,全世界任何地方敲它都指向同一个东西;不以/开头的是相对路径,从你此刻站着的那个目录算起。相对路径有四个坐标:.是当前目录,..是上一层目录,~是家目录(也就是/home/你的用户名),cd -回到上一次待过的目录。照着练:下面这串请跟着走一遍,重点不是命令,是看提示符中间那一段怎么变——那是pwd的结果。ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ cd docs ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab/docs$ pwd /tmp/ch5lab/docs ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab/docs$ cd .. ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ cd - /tmp/ch5lab/docs ubuntu@hanyw-ubuntu-desk:~$ pwd /home/ubuntucd -值得单独记:它回到上一次待过的目录,而且会把那个目录的路径打印出来——这是cd里唯一会主动说话的形式。另外注意最后一行:提示符里显示的是~而不是/home/ubuntu,提示符会偷懒,家目录一律缩写成~。还有一条能绕住老手的陷阱,跟软链接有关:ubuntu@hanyw-ubuntu-desk:/tmp/ch5lab$ cd linkdemo pwd /t