首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从 “小白懵” 到 “玩得溜”:6 个 Linux 基础指令的硬核拆解,原理 + 实操一次吃透!

从 “小白懵” 到 “玩得溜”:6 个 Linux 基础指令的硬核拆解,原理 + 实操一次吃透!

作者头像
LOTSO
发布2025-10-29 12:08:06
发布2025-10-29 12:08:06
17700
举报
文章被收录于专栏:C++C++
运行总次数:0

🔥草莓熊Lotso:个人主页

❄️个人专栏:《C++知识分享》《Linux 入门到实践:零基础也能懂》

生活是默默的坚持,毅力是永久的享受。


🎬博主简介:

前言:

如果你刚接触 Linux,是不是总在 “指令输错→报错→查教程→再试” 的循环里打转?比如敲了个ls看到满屏文件却不知道背后逻辑,用rm时又怕一不小心删光重要数据?其实,Linux 的 “入门门槛”,本质是没摸清指令的 “底层脾气”。今天就带你拆解最常用的 6 个基础指令 —ls/pwd/cd/touch/mkdir/rm,从 “为什么能这么用” 讲到 “实战怎么用不踩坑”,看完就能上手!


一. pwd:Linux里的 "定位神器"

我们刚打开Linux终端时,是不是常常回困惑"当前在哪里?"pwd就是来解决这个问题的--它的核心作用就是显示你当前所在的绝对路径

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# pwd
/root

1.1 原理:Linux的 "路径地图" 怎么画?

Linux的文件系统就像是一颗树一样,根目录 / 是树根,其它文件都是它分出去的。而绝对路径就是从树根开始到你当前位置的完整路线。一般来说,这棵树的叶子节点就是普通文件或者是空目录,其它的结点都可以称为路上结点。

pwd的使用逻辑很简单:它会读取系统记录的 “当前工作目录标识符”,再把这个标识符对应的 “完整路径字符串” 输出到终端,相当于给你实时标注 “坐标”。

1.2 实操:1行命名直接定位当前路径,无套路!

pwd是最基础的指令-- 不需要任何的东西,直接敲就完事了。

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# pwd
/root

补充:/也是分隔符,两个/之间一定是一个目录。


二. ls:Linux的 "文件透视镜",想看什么随你挑

如果说pwd是"定位",那么ls就是"扫描"--它的全称是"List"(列表),核心作用是显示当前目录下的所有文件/文件夹。但很多人不知道,ls加选项之后可以看到更多信息,比如文件的大小,修改时间等等。

2.1 原理:Linux怎么 "识别" 文件

每个文件/文件夹在Linux下都有自己的 "属性标签"。文件是由文件的内容和文件的属性两个部分组成的(所有空文件/文件夹也是占磁盘空间的),我们学习和识别文件,本质上其实就是对内容或者属性进行操作修改。

ls的本质是 “读取当前目录的文件列表”,再根据你加的参数 “筛选并展示标签信息”:比如不加参数时,只显示 “文件名 / 文件夹名”;加-l参数时,会显示完整的 “属性标签”;加-a参数时,会显示隐藏文件(Linux 里以.开头的文件是隐藏文件,如 .hello)。

2.2 实操:3个高频用法,覆盖大部分场景

指令

作用

示例输出(以/root为例,我提前添加过一个dir和)

ls

显示非隐藏的文件 / 文件夹名

dir

ls -l

显示详细属性(长格式)

drwxr-xr-x 2 root root 4096 Sep 27 12:07 dir

ls -a

显示所有文件(含隐藏文件)

. .. .hello

--这里的 . 是标识当前路径,.. 标识上级路径,后面还会讲的。

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# ls
dir

[root@VM-4-4-centos ~]# ls -a
.   .bash_history  .bash_profile  .cache   .cshrc  .pip              .ssh
..  .bash_logout   .bashrc        .config  dir     .pydistutils.cfg  .tcshrc

[root@VM-4-4-centos ~]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Sep 27 16:42 dir

[root@VM-4-4-centos ~]# ls -la
total 56
dr-xr-x---.  7 root root 4096 Sep 27 12:07 .
dr-xr-xr-x. 19 root root 4096 Sep 27 16:45 ..
-rw-------   1 root root  671 Sep 27 16:45 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
drwxr-xr-x   4 root root 4096 Sep 23 03:58 .cache
drwxr-xr-x   3 root root 4096 Mar  7  2019 .config
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
drwxr-xr-x   2 root root 4096 Sep 27 16:42 dir
drwxr-xr-x   2 root root 4096 Sep 10 22:45 .pip
-rw-r--r--   1 root root   73 Sep 10 22:45 .pydistutils.cfg
drwx------   2 root root 4096 Nov  5  2019 .ssh
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

小技巧:

  • ls -l和ls -a可以结合起来一起用,自由组合,上面的演示里面我也使用过了。

三. cd:Linux的 "穿梭门" ,想到哪就到哪

知道了"当前在哪"(pwd),"有什么文件"(ls),下一步就是"去想去的地方"---cd的核心是帮你从当前目录跳转至目标目录

3.1 原理:Linux怎么 "找路" ?

cd可以识别两种路径:

  • 绝对路径:从根目录/开始的完整路径(比如/root/dir),相当于 “从市中心出发,报完整门牌号找地方”;
  • 相对路径:从当前目录出发的 “短途路线”,相当于 “从你现在站的地方,往左转 / 往前走”—— 比如当前在/root,想进dir,直接用cd ./dir(相对路径),比写绝对路径更省事(这里可能还不是很看的出来,学到后面大家体会会比较深)。

li

内容分类

具体说明

Linux 文件系统结构

磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件

普通文件与目录的节点特性

普通文件一定是目录树的叶子节点;目录可能是叶子(空目录),也可能是路上节点

路径存在的意义

树状组织方式是为保证快速定位查找到指定文件,且任何一个节点只有一个父节点,从根目录开始定位指定文件,路径具有唯一性

绝对路径

一般从/开始,不依赖其他目录的定位文件的方式;不会随着用户的路径变化而丧失唯一性,在特定服务的配置文件中经常被使用

相对路径

相对于当前用户所处目录,定位文件的路径方式;因为便捷性,在命令行中使用较多

另外,Linux 里有两个 “特殊符号” 帮你简化路径:

  • .:代表 “当前目录”(比如cd . .就是 “留在原地”,几乎不用,但理解很重要);
  • ..:代表 “上一级目录”(比如当前在/root,cd .. 就回到/root)。

3.2 实操:5 个高频场景,解决 “跳转难题”

场景

指令

说明

跳转到绝对路径目录

cd /home/user/Documents

不管当前在哪,直接跳转到目标绝对路径

跳转到当前目录的子目录

cd ./Music

当前在/home/user,直接进Music子目录

回到上一级目录

cd ..

从 “子目录” 退回 “父目录”

回到自己的 “家目录”

cd ~(波浪号)

不管当前在哪,一键回到/home/你的用户名

回到上一次所在的目录

cd -(减号)

比如从 A 目录跳到 B 目录,cd -能跳回 A 目录

--上述表格借鉴了一下资料,我后面的演示是使用的root账户,可能有点不同,但是使用方式上来说是一样的。

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# pwd
/root

[root@VM-4-4-centos ~]# cd /root/dir
[root@VM-4-4-centos dir]# pwd
/root/dir

[root@VM-4-4-centos dir]# cd -
/root

[root@VM-4-4-centos ~]# cd ./dir
[root@VM-4-4-centos dir]# pwd
/root/dir

[root@VM-4-4-centos dir]# cd ..
[root@VM-4-4-centos ~]# pwd
/root

[root@VM-4-4-centos ~]# cd ./dir
[root@VM-4-4-centos dir]# cd ~
[root@VM-4-4-centos ~]# pwd
/root

补充:Linux上的家目录就像是我们windows上的账户,每个账户都会有自己的桌面。在这里再提一句,我们的电脑上虽然有c盘d盘,但是其实就是只有一个磁盘的,所谓的这些都是我们进行分盘操作得到的,本质上跟文件夹一样。


四. mkdir: Linux的 "新建文件夹",自己随心创建

需要存文件却没有文件夹?mkdir来帮你 —— 它的核心作用是新建一个或多个文件夹,甚至能 “一次性建多层嵌套的文件夹”。

4.1 原理:Linux 怎么 “生成” 文件夹?

在 Linux 里,“文件夹” 本质是一种 “特殊的文件”—— 它不存具体内容,只存 “里面包含的文件 / 文件夹的索引”。

mkdir的工作逻辑是:根据你指定的路径,在对应的位置 “创建一个新的索引文件”,并给这个文件标记 “目录属性”(让系统知道这是文件夹,不是普通文件)。如果路径里的 “上层目录不存在”,默认会报错 —— 这时候就需要用-p参数 “强制创建多层目录”。

4.2 实操:3 个用法,从 “单文件夹” 到 “多层目录”

场景

指令

效果

在当前目录新建 1 个文件夹

mkdir Test

当前目录下多了一个叫Test的文件夹

在当前目录新建多个文件夹

mkdir Test1 Test2 Test3

当前目录下多了Test1/Test2/Test3三个文件夹

新建多层嵌套文件夹

mkdir -p A/B/C

一次性创建A文件夹,以及A里的B、B里的C(如果不加-p,会报错)

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# mkdir Test
[root@VM-4-4-centos ~]# ls -l
total 8
drwxr-xr-x 2 root root 4096 Sep 27 16:42 dir
drwxr-xr-x 2 root root 4096 Sep 27 18:09 Test

[root@VM-4-4-centos ~]# mkdir Test1 Test2 Test3
[root@VM-4-4-centos ~]# ls
dir  Test  Test1  Test2  Test3

[root@VM-4-4-centos ~]# mkdir -p A/B/C
[root@VM-4-4-centos ~]# ls
A  dir  Test  Test1  Test2  Test3

[root@VM-4-4-centos ~]# cd ./A
[root@VM-4-4-centos A]# ls
B

[root@VM-4-4-centos A]# cd ./B
[root@VM-4-4-centos B]# ls
C

补充:

文件类型区分特点:

Linux 区分文件类型不依赖文件后缀(并非完全不能用后缀,只是系统本身不以此为核心判断依据),而是通过文件属性来识别。这里注意一下我们之后在操作系统之下用gcc编写代码还是看文件后缀的。

常见文件类型标识:
  • 目录:以 d 开头,例如示例中的dir,用于存放其他文件或子目录。
  • 普通文件:以 - 开头,涵盖可执行程序、文本文件、代码文件以及动静态库等多种类型。

五. touch:不止 “新建空文件”,还能 “修改文件时间”

提到touch,很多人只知道 “新建空文件”,但它的真实作用比这更实用 —— 它的核心是修改文件的 “时间戳”,如果目标文件不存在,才会自动新建一个空文件。

5.1 原理:Linux 文件的 “时间密码”

每个文件在 Linux 里有 3 个关键 “时间戳”,这是touch的核心操作对象:

我们使用指令 stat 可以查看到这些信息

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# stat Test1
  File: ‘Test1’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d	Inode: 786457      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-09-27 18:11:21.182843415 +0800
Modify: 2025-09-27 18:11:21.182843415 +0800
Change: 2025-09-27 18:11:21.182843415 +0800
 Birth: -
  • 访问时间(atime):最后一次 “查看” 文件内容的时间(比如用cat读文件);
  • 修改时间(mtime):最后一次 “修改” 文件内容的时间(比如用编辑器改文字);
  • 更改时间(ctime):最后一次 “修改文件属性” 的时间(比如改文件名、改权限)。

5.2 实操:简单场景,新手也能玩转

--这里先只讲创建空文件,修改时间这个之后还会再详细讲解的。

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos dir]# pwd
/root/dir
[root@VM-4-4-centos dir]# touch text.txt
[root@VM-4-4-centos dir]# ls
text.txt
[root@VM-4-4-centos dir]# pwd
/root/dir

六. rm:Linux 的 “删除指令”,用对安全,用错崩溃

rm是 Linux 里 “最危险也最常用” 的指令 —— 它的全称是 “Remove”(删除),核心作用是删除文件或文件夹,但要注意:Linux 没有 “回收站”,用rm删的文件几乎无法恢复,一定要谨慎!

补充:rmdir这个指令是专门用来删空目录的,其它的删不了,这里就不讲了,用的很少。

6.1 原理:Linux 怎么 “删除” 文件?

和 Windows 不同,Linux 删除文件时,不是 “直接清空内容”,而是 “删除文件的索引”—— 相当于把 “文件在目录树里的名字标签” 撕掉,让系统找不到这个文件。如果是删除文件夹(需要-r参数),则是 “先删除文件夹里所有文件的索引,再删除文件夹本身的索引”。

另外,rm-f选项的 “强制删除” 逻辑:如果文件有 “只读权限”(,默认删除会提示 “是否删除只读文件”,用这个就能跳过提示,直接删除 —— 这个参数方便,但也更危险,一定要确认文件可以删再用。

6.2 实操:3 个安全用法,避开 “删库跑路” 坑

场景

指令

注意事项

删除 1 个文件

rm note.txt

删前用ls确认文件存在,且是你要删的

删除文件夹(含内容)

rm -r Test

必须加-r(递归删除),否则删不了文件夹;如果想强制删(跳过提示),用rm-rf,但千万不要用rm-rf/(删根目录,系统直接崩溃)

--这个指令博主这边就不拿自己的试了,直接给大家看看别人的

代码语言:javascript
代码运行次数:0
运行
复制
# 删除普通⽂件
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 14:22 file.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ rm file.txt
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1

# 删除⽬录⽂件
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ rm dir
rm: cannot remove ‘dir’: Is a directory
[whb@bite-alicloud test]$ rm -r dir
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1

# 删除普通⽂件前询问
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb 0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ rm -i newFile.txt
rm: remove regular empty file ‘newFile.txt’? y
[whb@bite-alicloud test]$ ll
total 4
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ ll
total 4
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
# 删除⽬录前询问
[whb@bite-alicloud test]$ mkdir -p d/d/d/d
[whb@bite-alicloud test]$ tree d
d
└── d
└── d
└── d
3 directories, 0 files
[whb@bite-alicloud test]$ rm -ri d
rm: descend into directory ‘d’? y
rm: descend into directory ‘d/d’? y
rm: descend into directory ‘d/d/d’? y
rm: remove directory ‘d/d/d/d’? y
rm: remove directory ‘d/d/d’? y
rm: remove directory ‘d/d’? y
rm: remove directory ‘d’? y
[whb@bite-alicloud test]$ ll
total 0

# 递归强制删除⾮空⽬录
[whb@bite-alicloud test]$ tree path1/
path1/
├── myfile.txt
└── path2
└── myfile.txt
1 directory, 2 files
[whb@bite-alicloud test]$ rm -f path1
rm: cannot remove ‘path1’: Is a directory
[whb@bite-alicloud test]$ rm -rf path1
[whb@bite-alicloud test]$ ll
total 0

补充一个指令tree:

先执行这个指令,才可以用

代码语言:javascript
代码运行次数:0
运行
复制
[root@VM-4-4-centos ~]# pwd
/root
[root@VM-4-4-centos ~]# tree
.
|-- A
|   `-- B
|       `-- C
|-- dir
|   `-- text.txt
|-- Test
|-- Test1
|-- Test2
`-- Test3

8 directories, 1 file

结尾:

往期回顾:

《Linux 入门到实践:零基础也能懂》--从历史到实战,一篇文章带你了解操作系统的 “服务器之王

结语:其实 Linux 基础指令的核心不是 “死记硬背”,而是 “理解原理 + 多练”—— 刚开始可能会输错,但敲个 10 次、20 次,你就会发现:这些指令就像 “电脑的快捷键”,熟了之后比图形界面还快!下次用 Linux 时,不妨从这 6 个指令开始,一步步搭建你的 “指令思维”~

逻辑图:

✨把这些内容吃透超牛的!放松下吧✨ ʕ˘ᴥ˘ʔ づきらど

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 一. pwd:Linux里的 "定位神器"
    • 1.1 原理:Linux的 "路径地图" 怎么画?
    • 1.2 实操:1行命名直接定位当前路径,无套路!
  • 二. ls:Linux的 "文件透视镜",想看什么随你挑
    • 2.1 原理:Linux怎么 "识别" 文件
    • 2.2 实操:3个高频用法,覆盖大部分场景
  • 三. cd:Linux的 "穿梭门" ,想到哪就到哪
    • 3.1 原理:Linux怎么 "找路" ?
    • 3.2 实操:5 个高频场景,解决 “跳转难题”
  • 四. mkdir: Linux的 "新建文件夹",自己随心创建
    • 4.1 原理:Linux 怎么 “生成” 文件夹?
    • 4.2 实操:3 个用法,从 “单文件夹” 到 “多层目录”
      • 文件类型区分特点:
      • 常见文件类型标识:
  • 五. touch:不止 “新建空文件”,还能 “修改文件时间”
    • 5.1 原理:Linux 文件的 “时间密码”
    • 5.2 实操:简单场景,新手也能玩转
  • 六. rm:Linux 的 “删除指令”,用对安全,用错崩溃
    • 6.1 原理:Linux 怎么 “删除” 文件?
    • 6.2 实操:3 个安全用法,避开 “删库跑路” 坑
  • 结尾:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档