第2章 上手 Linux:环境与文件操作

第2章 上手 Linux:环境与文件操作

上一章你装好了 Ubuntu,敲下人生第一条命令 uname -a。但只看不动永远学不会------这一章我们真的动手:建文件、复制、搬家、删除,全程在终端里完成。

本章回答什么问题

  • Windows 里的 C 盘、D 盘,在 Linux 里去哪儿了?文件到底放在哪?
  • 绝对路径和相对路径怎么写?
  • 日常文件操作,靠哪几个命令就够了?
  • 命令忘了怎么用,怎么自己查?
  • 数据存成文件挺好的,为什么后来还要发明数据库?

正文

终端是窗口,bash 是办事员

第 1 章我们装好了 Ubuntu(打开方式见第 1 章:WSL 用户直接在开始菜单里找 Ubuntu 图标)。那个黑乎乎的窗口有个正式名字:终端(Terminal) 。终端本身其实不懂命令,它只负责显示字符;真正听懂你说话的是一个叫 bash 的程序,它是一种外壳(Shell)------还记得上一章说的"内核与外壳"吗?bash 就是那个外壳,替你把话传给内核去干活。

打开终端,你会看到一行提示符:

bash 复制代码
@ubuntu:~$

从左到右拆开看:`` 是当前用户名,ubuntu 是机器名,~ 是当前位置(马上讲),结尾的 $ 表示"我准备好了,请输入"。如果结尾是 # 而不是 $,说明你现在是超级用户 root------权限大到足以搞坏整个系统,本书除非必要,一律用普通用户。

命令的格式很统一:命令 + 参数 。比如 ls -l /etcls 是命令,-l 是选项(改变命令行为的开关),/etc 是操作对象。选项大多以 - 开头。

整个文件系统就是一棵树

在 Windows 里打开"此电脑",你会看到 C:、D:、E: 这些盘符。Linux 没有盘符,整个系统只有一棵树 :最顶端是根目录(Root Directory)/,所有目录都挂在它下面。你插上的硬盘、U 盘,也都会被"挂"到树的某个目录上(这个动作叫挂载,第 7 章细讲)。

打个比方:文件系统像一棵倒着长的档案树 ,根 / 是最上面的总入口,树枝是目录,树叶是文件;路径就是"从入口出发的走法"。这个类比有一处失效:目录里存的其实只是一份"名字 → inode"的清单,并不存放文件内容本身。inode 是什么?第 7 章展开,这里先记住"目录 ≠ 文件内容"就够了。

/ 下面有几个经常打照面的目录,先用 ls / 看一眼混个脸熟:

目录 大白话
/home 普通用户的"家",一人一间房,比如 /home/albert
/etc 系统的各种配置文件
/tmp 临时文件,随时可能被清掉
/usr 你装的大部分软件和命令

不用背,后面用着用着就熟了。

路径的两种写法:绝对与相对

指路有两种说法:"从总入口开始走"和"从我现在的位置开始走"。

  • 绝对路径(Absolute Path) :从根 / 写起,比如 /home/albert/lab。不管你此刻在哪,照它走都能到,不会有歧义。家目录有个快捷写法 ~~/lab 就等于 /home/albert/lab(把 albert 换成你的用户名)。
  • 相对路径(Relative Path) :从当前目录写起,不以 / 开头 。比如你现在在 /home/albert,那么 lab/notes 指的就是 /home/albert/lab/notes。还有两个特殊记号:. 表示当前目录,.. 表示上一级目录,所以 cd .. 是"往上走一层"。

一句话记忆:开头是 /(或 ~)的是绝对路径,其余都是相对路径。

文件命令九件套

日常用得最多的就这 9 个命令,按"看、走、建与读、搬与删"四组来记。

1. 看

  • pwd(Print Working Directory):我现在在哪?输出当前目录的绝对路径。
  • ls(List):这里有什么?加 -l 出详细清单,加 -a 连以 . 开头的隐藏文件一起显示。

2. 走

  • cd(Change Directory):走到某个目录。cd ~ 回家,cd .. 上二楼......哦不,上一级,cd - 回到刚才待过的地方,类似电视遥控器的"回看"键,很好用。

3. 建与读

  • mkdir(Make Directory):建目录。加 -p 可以一口气建好几层,比如 mkdir -p a/b/c
  • touch:创建一个空文件;如果文件已存在,只更新它的时间戳,不动内容。
  • cat:把文件内容打印到屏幕上,适合看短小的文本文件。

4. 搬与删

  • cp(Copy):复制,cp 源 目标;复制目录要加 -r
  • mv(Move):移动。目标是目录就搬进去;同一目录下换个名字,它就变成了重命名。一个命令两用。
  • rm(Remove):删除。注意:Linux 的 rm 不进回收站,删了就是删了。 删目录用 rm -r;还有个最危险的组合 rm -rf(强制递归删除,不问任何问题)。它的危险范围是"你有权限删的一切",所以敲回车前,务必盯清楚 rm 后面写的路径,尤其别拿 /~ 开玩笑。

两个省力技巧:Tab 补全与历史命令

  • Tab 补全 :敲出文件名或命令的前几个字符,按一下 Tab,系统帮你补全或列出候选。少打字,还防拼错。
  • 历史命令 :按 翻出之前敲过的命令;history 列出全部。刚敲过的长命令,下次按 就能再来一遍。

忘了就查:man 和 --help

命令不需要死记,忘了有两件自助工具:

  • 命令 --help:速查小抄,列出主要选项,比如 ls --help
  • man 命令:完整手册(manual),比如 man ls。打开后按空格翻页,按 q 退出。

会自己查,比背得多更重要。

光靠文件还不够:数据库为什么会出现

学完上面的操作你会发现:文件很自由------格式随便你定,内容随便你写。写个人笔记、存配置文件,它刚刚好。可一旦要正经管理大量、有结构的数据------比如全校几万条学生成绩、网店里每天都在新增的订单------纯文件方案马上暴露四个短板:

  1. 查找难:想找"所有 90 分以上的学生",只能自己一行行翻;
  2. 容易不一致:同一个地址写在两个文件里,搬家后只改了一处,另一处就在说谎;
  3. 多人同时用很难:两个程序同时写一个文件,内容很容易搅在一起;
  4. 不抗意外:写到一半断电,文件可能只剩半截。

为了解决这些问题,人们发明了数据库(Database) :一个专门管理数据的软件,把数据按固定结构存放,提供专门的查询方式,并负责处理多人同时访问和断电恢复。类比一下:文件像你自己的笔记本------自由,但难查;数据库像银行的账本系统------有格式、能查询、多个柜员同时操作也不会乱账。当然类比到此为止:真实数据库的内部机制比账本复杂得多。数据库不是本书的主题,这里只需要记住一句话:数据库是"用文件管理数据"的下一站,而它的地基,仍然是磁盘上的文件和操作系统。

动手实验

实验目标:亲手搭一个三层"个人目录",把创建、进入、复制、移动、删除全走一遍,再用 ls -l 认一遍每一列。全程命令可直接照敲。

第 1 步:建三层目录并进入

bash 复制代码
mkdir -p ~/lab/ch2/notes/daily
cd ~/lab/ch2
pwd

预期观察:pwd 输出一条以 /lab/ch2 结尾的路径(~ 被展开成了你的家目录)。解释:-p 让 mkdir 顺带把不存在的父目录一起建出来。

第 2 步:看看目录里有什么

bash 复制代码
ls -a

预期观察:除了 notes,还有 ...。解释:. 是当前目录,.. 是上一级,这两个"自带条目"在每个目录里都存在。

第 3 步:详细清单认列

bash 复制代码
ls -l

预期观察(示意输出,实际以本机为准):

复制代码
total 4
drwxr-xr-x 3 albert albert 4096 Aug 16 10:20 notes

从左到右认一遍:

  • drwxr-xr-x:权限。开头 d 表示目录(普通文件是 -),后面每 3 个字符一组是读/写/执行权限,细节留给第 7 章;
  • 3:链接数,可以先理解成"有几个名字指向它";
  • 第一个 albert:属主;第二个 albert:属组;
  • 4096:大小(字节)。注意目录自身的大小不等于里面内容的总大小;
  • Aug 16 10:20:最后修改时间;
  • notes:名字。

第 4 步:创建、复制、移动、读

bash 复制代码
touch notes/todo.txt
mkdir backup
cp notes/todo.txt backup/
mv backup/todo.txt backup/todo.bak
cat backup/todo.bak

预期观察:cat 什么都没打印。解释:touch 建的是空文件,复制和移动只搬文件本身,内容本来就是空的------"没输出"也是一种正常结果。

第 5 步:删除

bash 复制代码
rm backup/todo.bak
ls backup

预期观察:ls backup 没有输出,说明目录空了。解释:rm 直接删除,不进回收站。

第 6 步:感受 Tab 补全和历史

cd ~/lab/ch2/no,先别回车,按一下 Tab------预期观察:自动补全成 notes/。再连按几次 ------预期观察:刚敲过的命令一条条翻回来。解释:补全防拼错,历史省重复。

收尾(可选)

bash 复制代码
rm -rf ~/lab

危险说明:这条命令会强制删除整个 ~/lab 目录且不询问 。危险范围仅限你自己的 ~/lab------路径必须照抄,不要改成 /~;拿不准就别执行,留着也不影响后面任何一章。

常见误区

  1. 误解 :Linux 也有 C 盘 D 盘,用之前先找到盘。→ 真相:Linux 只有一棵树,硬盘、U 盘都是挂到树上的某个目录(挂载,第 7 章讲),不存在盘符的概念。
  2. 误解 :删错文件可以去回收站找回来。→ 真相rm 是直接删除,没有回收站,执行完基本不可恢复。rm -rf 敲回车前永远先看路径。
  3. 误解 :文件名大小写无所谓,跟 Windows 一样。→ 真相 :Linux 严格区分大小写,readme.mdREADME.md 是两个不同的文件;命令写成大写,还会直接告诉你"找不到命令"。

小结

  • Linux 没有盘符:整个系统是一棵树,根目录 / 是总入口,路径就是"从入口出发的走法"。
  • 绝对路径以 /(或 ~)开头;相对路径从当前目录出发,.. 表示上一级。
  • 九件套:pwd 看我在哪、ls 看有什么、cd 走、mkdir/touch 建、cat 读、cp 复制、mv 移动兼改名、rm 删除。
  • 目录里存的其实是"名字 → inode"的清单,第 7 章展开。
  • Tab 补全和 历史能省大量功夫;忘了命令用 --helphistory 自己查。
  • rm 没有回收站,rm -rf 之前务必看清路径。
  • 文件自由但有查找难、易不一致、不抗意外等短板,数据库正是为解决这些问题而生。

思考题

  1. Windows 用 C、D、E 盘符,Linux 只用一棵树。如果哪天你要给电脑加一块新硬盘,树形结构有什么好处?(提示:新硬盘需要打扰已有的路径吗?)
  2. 什么情况下必须用绝对路径?什么情况下用相对路径更方便?各举一个你自己的使用场景。
  3. 假设你是班长,要用普通文本文件管理全班的成绩表:增删学生、改分、查"谁挂科了",还有几个班委想同时修改。对照本章"光靠文件还不够"一节,想想你会撞上哪几个短板?
相关推荐
☆凡尘清心☆2 小时前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
Escalating_xu2 小时前
【Linux】进程间通信:从匿名管道、FIFO 到共享内存、消息队列与信号量
java·linux·面试
予昊2 小时前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood2 小时前
管理网络安全
linux
xiaoxiangsiyan2 小时前
RHCE之2026年全套考点详解
运维·前端·网络·chrome·学习·rhce
love530love2 小时前
彻底清理 Windows 右键“打开方式“中的重复/失效程序项(PyCharm 多版本残留实战 + 自动化脚本)
运维·人工智能·windows·pycharm·jetbrains·toolbox
zhexunnb2 小时前
SAP赋能芯片封装行业,打造封测企业全链路数字化底座
运维
蓝速科技2 小时前
蓝速科技会议预约屏深度评测:为何安卓系统是智慧办公长期最优解
运维·人工智能·科技
2401_834636992 小时前
保姆级 K8s 运维:RBAC 认证 + Dashboard+Local/NFS 动态卷实战
运维·容器·kubernetes