news 2026/10/12 7:44:44

Linux零基础必学:6条常用指令彻底搞懂文件与目录操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux零基础必学:6条常用指令彻底搞懂文件与目录操作

带过不少从零开始学 Linux 的新人,发现大家最开始需要的不是一堆复杂的配置,而是心里先有一张地图。今天这篇就拿 Linux 基础指令里最常用的 6 条作为起点,把文件、目录、路径这几件事彻底讲透,让你打开终端不再发慌。适合刚接触 Linux、第一次登录服务器、或者准备系统学习运维和开发的同学,也适合教别人入门的读者拿来当参考提纲。

这 6 条指令分别是:pwd、ls、cd、mkdir、touch、rm。它们单独看都特别简单,但组合起来就是一套完整的最小操作系统。理解了它们的逻辑,后面学权限、学管道、学文本处理都会顺很多。

1. 思路拆解:为什么入门必须先学这 6 条

1.1 终端操作的底层逻辑是"位置 + 内容 + 动作"

Linux 命令行的操作方式,和你在图形界面里点鼠标完全不一样。图形界面里你不需要关心"我在哪个文件夹",因为界面会直接告诉你当前在哪,双击就能进去。但在终端里,你所有的操作都是围绕一个"当前工作目录"展开的,你敲的每条指令,系统都要先判断:这个操作发生在哪里。

所以我把入门指令拆成三组来看:

  • 位置组:pwd负责回答"我在哪",cd负责回答"我要去哪"。
  • 查看组:ls负责回答"这里有什么"。
  • 动作组:mkdir负责"创建目录",touch负责"创建文件",rm负责"删除东西"。

这 6 条指令其实组成了一个人最基本的操作闭环:我到了一个地方,看看周围有什么,创建我需要的文件或目录,不需要了就删掉,然后去下一个地方。这个闭环熟练之后,你就能在 Linux 上完成很多日常管理工作了。

1.2 为什么先学这 6 条而不是先学 vim 或者配置网络

很多新手容易犯一个错误:一上来就学 vim、学防火墙、学各种服务配置。结果发现根本不知道自己在什么目录下、文件放哪里了、改完配置文件找不到了。所以我特别强调:先掌握这 6 条基础指令,再往深走,你会觉得一切都顺理成章。

有一个很直观的类比:这 6 条指令就像是你在 Linux 世界里的"腿"和"手"。pwd 是地图坐标,cd 是两条腿,ls 是眼睛,mkdir 和 touch 是手,rm 是清理工具。一个人还没学会走路,直接去学跑步,摔跤是必然的。

1.3 它们背后牵出一个关键概念:路径

学这 6 条指令的同时,你实际上在潜移默化地理解 Linux 的目录结构。Linux 所有东西都从根目录/开始,往下是一层一层的子目录。/home/用户名是普通用户的家目录,/etc放配置文件,/var放日志和变化的数据,/tmp放临时文件。

你会接触到两种路径写法:

  • 绝对路径:从/开始写,比如/home/ubuntu/project。
  • 相对路径:从当前位置开始写,比如project表示当前目录下的 project 子目录。

这 6 条指令练熟之后,这两种路径切换就会变成肌肉记忆,不需要再在脑子里反复换算。

2. 动手之前:准备好练习环境

2.1 本地虚拟机、云服务器、还是浏览器在线环境

练习 Linux 基础指令,最推荐的方式是本地虚拟机,因为你可以随便折腾,玩坏了快照恢复就行。云服务器也可以,但早期容易不小心把环境搞坏,所以操作时多一些谨慎。还有一种是浏览器里的在线终端,比如各类在线 Linux 练习环境,适合回家路上用手机也能敲两句。

我个人的建议是:理论上任何一种都可以,但本地虚拟机是容错率最高的选择。因为rm这个指令一旦用错,后果很直接,在虚拟机里你还能恢复,在线上环境就得靠备份了。

2.2 如何确认你已经进入终端并处于正确的登录身份

打开终端之后,先看一眼命令行提示符。不同发行版风格不同,但核心信息类似:

user@hostname:~$

这一行的意思是:当前登录用户是 user,主机名是 hostname,当前工作目录是~(波浪号,代表家目录),最后的$表示普通用户权限。如果你看到的是#,那说明你当前是 root 用户,操作时必须格外小心,因为 root 用户不受权限限制,误删系统文件也不会被拦。

我见过很多新手一开始就用 root 练手,结果误删了目录还一脸懵。这里给一个实操心得:练习入门阶段,尽量用普通用户,等学到权限管理那部分,再专门开 root 环境做实验。

进入终端之后,先不要急着敲别的,先敲第一条指令:pwd。看看系统告诉你当前位置在哪,通常你会看到一个类似/home/用户名的路径。这一步就是第一篇内容的状态确认。

3. 6 大基础指令逐个拆解

3.1 pwd:确认当前位置

pwd是 print working directory 的缩写,作用只有一个:打印当前工作目录的绝对路径。

pwd /home/user

理解这条指令,是建立终端方向感的第一步。很多在线环境上教学时,一些同学会面临这样的尴尬:跟着教程敲了半天的命令,结果文件都不知道创建到哪了,回头想找的时候,目录已经绕晕了。随手pwd一下,就能定位自己。

这里有一个贴士:刚进入终端、准备开始干活之前,先pwd确认一下,尤其是当你通过某些工具远程登录到服务器时,初始位置不一定是你以为的那个目录。我发现很多人一登录就直接ls,然后发现文件列表和自己预期的不一样,其实就是因为初始目录不对。

3.2 ls:看清目录里有什么

ls是 list 的缩写,用来列出目录内容。它大概是所有 Linux 指令里最早学会的一个,几乎每个教程都会用到。最简单的用法是直接敲:

ls

得到当前目录下的文件和文件夹列表。但默认效果很朴素,不带任何颜色,也不区分文件还是目录。所以实际使用中,更多人会配合参数:

ls -l ls -a ls -lah

-l是 long 格式,会显示文件的权限、属主、大小、修改时间等详细信息。-a是 all,把隐藏文件也显示出来(Linux 里以.开头的文件默认不显示)。-h是 human-readable,让文件大小显示成 K、M、G 这种便于阅读的形式。

把ls -lah组合在一起,就能看到完整而清晰的文件列表,这是我日常使用频率最高的一个组合键。

有人会问:什么是隐藏文件?其实 Linux 的隐藏文件不是安全意义上的"隐藏",只是默认不列出来而已。很多软件的配置都放在家目录下的隐藏文件里,比如.bashrc、.ssh等,文件名开头加一个点即可隐藏。

ls还可以指定目录,比如:

ls /etc ls /var/log/

这也是一个很常见的用法:人不在那个目录里,但想直接查看那个目录的内容。它配合cd使用,可以让你快速浏览多个目录的内容而不用来回切换。

3.3 cd:切换工作目录

cd是 change directory 的缩写,改变当前工作目录。它和pwd正好是一对:cd负责移动,pwd负责确认移动后的结果。

cd /tmp pwd /tmp

cd也支持几种特殊用法,入门阶段最好直接记熟:

  • cd ~或直接cd:回到当前用户的家目录。
  • cd ..:回到上一层目录。
  • cd -:回到上一次所在的目录。

我自己对cd -的评价很高,虽然它不如cd常见,但当你需要在两个目录之间来回切换时,比如一边看配置文件、一边看日志文件,cd -比重复敲完整路径省太多事。

有一个新手容易懵的地方:cd的参数严格来说是目录名,不能直接接文件名。比如你写cd file.txt,系统会提示 not a directory。正确做法是先确定目标是目录,再cd进去。

还有一点要特别注意:cd不区分大小写的情况不存在,Linux 是严格区分大小写的。CD、Cd、cd是三个完全不同的词,只有小写cd才是切换目录指令。这点有人觉得是小事,但在入门阶段养成区分大小写的习惯非常要紧,因为后面的指令、参数、文件名全都区分大小写。

3.4 mkdir:创建目录

mkdir是 make directory 的缩写,看名字就知道作用是创建空目录。用法如下:

mkdir mydir

这个命令会在当前目录下创建一个名为 mydir 的目录。如果我在/home/user下执行它,那么它的绝对路径就是/home/user/mydir。

mkdir最常用的参数有两个:

  • -p:递归创建多级目录,作用是"如果父目录不存在,就一并创建"。
  • -v:显示创建过程的详细信息。

递归创建是我在部署项目时特别常用的一项。比如我需要一次创建project/logs和project/data这两层目录,直接写:

mkdir -p project/logs project/data

这样会自动创建 project,再创建 logs 和 data,省去了先创建 project 再逐个进入的麻烦。而如果你直接mkdir project/logs但 project 不存在,系统会报错说 no such file or directory。

还有一个细节:目录名里尽量别放空格,如果实在要放,用引号包起来或用下划线替代。比如:

mkdir "my project"

目录名里有空格的话,后续进入或操作时都必须带引号,非常容易出错。我在实际教学中一般建议新人用my_project这样的命名方式,少踩一个隐藏坑。

3.5 touch:创建文件与刷新时间戳

touch是这 6 条指令里功能最容易被低估的一个。新手接触它,通常是为了创建空文件,比如:

touch readme.txt

但 touch 真正做的事情,是修改文件的访问时间和修改时间为当前时间。如果文件不存在,它就顺便创建一个空文件。所以它同时具备两个功能:创建空文件 + 刷新时间戳。

这个特性在实际工作里有什么用?一个常见的场景:日志输出按天切分,有时需要提前生成一个空的日志文件来验证路径权限,这时touch就派上用场。另一个场景:刷新时间戳,让某些依赖文件时间做判断的构建工具认为文件已经更新过。

touch也支持一次创建多个文件:

touch a.txt b.txt c.txt

以及配合花括号扩展:

touch {a,b,c}.txt

涉及到一个入门小知识点:文件创建之后,是空的,没有内容。空文件怎么往里面写内容?那要涉及到重定向或者文本编辑器,属于后面章节的内容。但这里先用touch理解"文件名与内容是两回事"这个观念,对后续非常有帮助。

3.6 rm:删除文件与目录

rm是 remove 的缩写,用来删除文件或目录。它的威力很大,也是整个入门阶段最需要小心的指令。

删除单个文件:

rm test.txt

删除目录:

rm -r mydir

-r代表递归,意思是删除目录和目录里的所有内容。如果不加-r,rm只能删除文件,删除目录时会报错,提示是一个目录。

还有一个参数-f,force,强制删除,不提示任何确认。它的使用场景是删除一些只读文件时不需要系统反复询问。但新手千万别随意把-rf组合起来用。

我见过一个比较惊险的案例:某人想删除当前目录下某个子目录里的所有内容,结果因为路径写错,命令变成了rm -rf /,在 root 用户下执行,差点把整个系统删干净。好在现代一些系统对根目录的递归删除会有保护机制,但这个风险不能不提。

安全使用rm的心得如下:

  • 删除前先pwd和ls确认当前位置和内容。
  • 使用相对路径时,心里要清楚相对的是哪一个目录。
  • 重要数据目录,尽量少用rm -r,优先用把目录改名的"软删除"方案。
  • 定期备份的习惯比任何命令技巧都重要。

4. 实操演练:用这 6 条指令搭建一个项目目录

我安排一个新学员在 Linux 上初始化一个模拟项目环境,这个任务正好就能用上面 6 条指令完成。整个流程走一遍,你会发现这些指令组合起来效率很高,而且逻辑链条很清晰。

需求是这样的:在我家目录下创建 project 目录,里面放说明文件,再创建一个存放数据用的子目录。

步骤一:进入终端后,先确认自己当前在哪个位置:

pwd /home/user

步骤二:看看家目录下已有哪些内容:

ls -lah

步骤三:创建第一层目录:

mkdir -p project

步骤四:进入该目录:

cd project

步骤五:创建数据子目录,顺便创建两个目录分别放原始数据和结果数据:

mkdir -p data/raw data/result

步骤六:创建项目的说明文件:

touch README.md

创建完这些之后,我用ls -R来递归查看整个目录结构:

ls -R project: README.md data project/data: raw result

到这里,这个空壳项目目录就建好了。你可能会觉得这很简单,但请注意,这个流程里每一个指令都在反复训练方向感和路径感。我见过不少学员,做了这一轮之后,对pwd、cd、ls的理解明显比零散地敲命令要扎实很多。

为了让基础更进一步,我们还可以把"清理"走一遍:假设 raw 这个目录建错了,想删掉它重新建:

rm -r data/raw mkdir -p data/raw

到这一步,你会对递归删除、相对路径、以及删除与重建的逻辑有一个更完整的掌握。

5. 常见问题与踩坑实录

5.1 "No such file or directory" 到底是文件不存在还是路径不对

这是初学者遇见最多的一类报错。表面上是说"没有这个文件或目录",但实际可能有两种情况:一是路径写错了,二是相对路径没写对。

举个例子:当前在/home/user/project,你想查看/home/user/README.md,如果写成cat README,系统当然会告诉你没有。因为相对路径是相对于当前目录去找的,README如果在 project 下就不存在,而../README才是正确的写法。

遇到这类报错,我的排查顺序固定这么来:先pwd确认当前位置,再ls看看目标文件到底在哪,最后再决定用绝对路径还是相对路径。这条思路看起来简单,但实际能解决大多数新手问题。

5.2 删除了重要文件,还有救吗

这里必须明确:rm删除的文件不会进入回收站,它直接从文件系统里消失。这和图形界面把文件放进回收站完全不一样。

如果你使用的是虚拟机,最好的恢复方式是快照或者备份。如果是云服务器上的数据,只能依赖定期备份来恢复,没有第二种方案。所以我一直强调,删数据之前至少要有备份意识。

我还见过一个场景:有人想删除家目录下某个临时目录,然后手滑多敲了一级路径,结果把自己的整个家目录删了。这类事故几乎都是因为速度快、没确认,而不是因为命令不熟。所以缓慢操作、分步确认,比任何技巧都重要。

5.3 目录名和文件名里有特殊字符怎么办

比如目录名带了空格:my project,进入它的时候必须加引号:

cd "my project" cd 'my project'

如果不加引号,系统会把它当成两个参数,提示目录不存在。如果文件名以横线开头,比如-temp.txt,直接rm -temp.txt会把-temp.txt当成命令参数,导致报错。解决办法是使用--分隔符:

rm -- -temp.txt

--的意思是告诉系统,后面内容都当文件名处理,不再解析为选项参数。这个知识点虽然不算高频,但遇到了不明原因报错时,是很经典的排查方向。

5.4 为什么我 ls 看不到文件

最常见的原因是文件名以.开头,属于隐藏文件,默认不显示。用ls -a就能看到。

另一个情况是权限限制:当前用户对某个目录没有读取权限,执行ls会得到 permission denied。那就要先学后面章节的权限管理,或者检查一下自己是否登录了正确的用户。

还有一个容易混淆的场景:你创建了文件,然后cd到别的目录,再ls就看不到了。这不是文件丢了,而是你离开了文件所在的目录。此时用ls加上完整路径就能看到,比如:

ls /home/user/project/README.md

5.5 tab 补全和方向键是你最好的朋友

如果只让我给新手一条实操建议,就是:命令不要完整手敲,多用 tab 键自动补全。输入cd pro后按一下 tab,如果只有一个匹配项,系统会自动补成project。如果有多个,再按两下 tab 显示所有候选。

方向键上下可以翻阅历史命令,这个功能节省的时间比你想象得多。很多新手敲错的命令,其实按上方向键再修改就行,根本不用重新打一遍。

这两个习惯本质上都在帮你减少出错机会,因为手敲越多,拼写错误的概率就越高,尤其在文件名比较长的时候。

5.6 误以为大小写不通用导致的各种报错

Linux 对大小写敏感,所以LS、Ls、ls三者行为完全不同。这种敏感性同样应用于文件名:Readme.txt和readme.txt是两个不同类型文件。

我见过一个真实案例,某个开发者一直用Readme.txt创建文件,后来写脚本引用readme.txt,每次都找不到文件。查了很久才发现是大小写不一致。入门阶段就养成统一的命名习惯,比如一律用小写文件名,可以有效规避这种低级错误。

6. 下一步该练什么

掌握这 6 条基础指令之后,建议接下来练这几块内容:

先是文件内容的查看:cat、less、head、tail。它们解决的是文件创建好了之后,怎么查看里面写的内容。然后是文本编辑:nano或vim,解决的是怎么在终端里直接写内容。再往后是文件复制与移动:cp、mv,它们和rm一起构成完整的文件管理能力。

还有一条主线是权限管理:chmod、chown,以及用户相关指令。这部分和入门阶段看到的权限信息直接挂钩,理解了之后再看ls -l的输出,就会有一种豁然开朗的感觉。

我在实际带新人的过程中发现,基础指令的关卡不在于记不记得住,而在于能不能"不假思索地组合"。不假思索的前提,就是反复练习上面这个最小项目流程。把pwd、ls、cd、mkdir、touch、rm的配合练成肌肉记忆之后,后边的每一个新指令都会往这片地图上继续添砖加瓦,这也是 Linux 学习里最值得先投入时间的地方。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/12 7:44:40

PyTorch实现原型网络:小样本学习与欧氏距离度量实战

简介:在 PyTorch 中实现 Prototypical Networks 的少样本学习项目代码,面向机器学习开发者、研究者以及刚接触 Few-Shot Learning 的读者,可帮助在标注样本极少时完成图像分类训练与模型评估。代码对应 arXiv:1703.05175 论文,以 …

作者头像 李华
网站建设 2026/10/12 7:44:22

代码覆盖率100%为何线上仍崩?测试质量需看断言与核心路径

1. 从"100%覆盖"到"上线即崩":那个让我失眠的夜晚上一次线上事故,我到现在都记得很清楚。凌晨两点半,告警群里开始刷屏,支付回调的失败量肉眼可见地往上蹿。我一边盯着监控面板,一边顺手打开了最新…

作者头像 李华
网站建设 2026/10/12 7:41:08

功能复用实战:从重复代码到公共处理管道

做开发这些年,有个体会越来越深: 大部分新功能,其实是在“重做别人已经做过的事” 。不管是订单状态流转、数据导出、权限校验,还是一个小小的日期格式化,翻翻代码仓库,总能找到三四个“长得差不多但又不…

作者头像 李华
网站建设 2026/10/12 7:40:57

Hive数据建模实战:分层设计、存储选型与常见坑位排查

1. 动手之前先把思路摆正:Hive建模到底在"模"什么做了几年大数据平台,最深的感受不是SQL写得多花哨,而是建模这一步定错了,后面全在还债。Hive里的数据建模,不是把一张业务表搬过来建个壳,也不只…

作者头像 李华
网站建设 2026/10/12 7:40:54

Airpak 通风 CFD 教程:从建模到后处理快速入门

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/12 7:39:23

UDEC泰森多边形煤层建模实战:从块体生成到参数标定

干矿山数值模拟这些年,UDEC一直是我处理节理裂隙问题的主力工具。最近一个煤层采动影响分析的项目里,我用UDEC 7.0配合泰森多边形(Voronoi)重新构建了煤层离散块体模型,整个过程踩了不少坑,也积了一些值得分…

作者头像 李华