《Linux基础入门指令》:从零开始理解Linux系统

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

🌟心向往之行必能至


🎥Cx330🌸的简介:


前言:

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


目录

前言:

[一. pwd:"定位神器"](#一. pwd:"定位神器")

[1.1 原理:Linux的 "路径图" 怎么画?](#1.1 原理:Linux的 "路径图" 怎么画?)

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

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

[2.1 原理:Linux怎么 "识别" 文件](#2.1 原理:Linux怎么 "识别" 文件)

[2.2 实操:3个高频用法,覆盖大部分场景](#2.2 实操:3个高频用法,覆盖大部分场景)

[三. cd:"穿梭门" ->想到哪就到哪](#三. cd:"穿梭门" ->想到哪就到哪)

[3.1 原理:Linux怎么 "找路" ?](#3.1 原理:Linux怎么 "找路" ?)

[3.2 实操:5 个高频场景,解决"查找难题"](#3.2 实操:5 个高频场景,解决“查找难题”)

[四. mkdir: Linux的 "新建文件夹",自己随心创建](#四. mkdir: Linux的 "新建文件夹",自己随心创建)

[4.1 原理:Linux 怎么 "生成" 文件夹?](#4.1 原理:Linux 怎么 “生成” 文件夹?)

[4.2 实操:3 个用法,从 "单文件夹" 到 "多层目录"](#4.2 实操:3 个用法,从 “单文件夹” 到 “多层目录”)

文件类型区分特点:

常见文件类型标识:

[五. touch:不止 "新建空文件",还能 "修改文件时间"](#五. touch:不止 “新建空文件”,还能 “修改文件时间”)

[5.1 原理:Linux 文件的 "时间密码"](#5.1 原理:Linux 文件的 “时间密码”)

[5.2 实操:简单场景,新手也能玩转](#5.2 实操:简单场景,新手也能玩转)

[六. rm:Linux 的 "删除指令",用对安全,用错崩溃](#六. rm:Linux 的 “删除指令”,用对安全,用错崩溃)

[6.1 原理:Linux 怎么 "删除" 文件?](#6.1 原理:Linux 怎么 “删除” 文件?)

[6.2 实操:3 个安全用法,避开 "删库跑路" 坑](#6.2 实操:3 个安全用法,避开 “删库跑路” 坑)

结尾:


一. pwd:"定位神器"

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

bash 复制代码
[root@VM-4-4-centos ~]# pwd
/root

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

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

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

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

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

bash 复制代码
[root@VM-4-4-centos ~]# pwd
/root

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

如图:


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

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

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

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

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

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

|--------|-----------------|----------------------------------------------|
| 指令 | 作用 | 示例输出 |
| ls | 显示非隐藏的文件 / 文件夹名 | dir |
| ls -l | 显示详细属性 | drwxr-xr-x 2 root root 4096 Sep 27 12:07 dir |
| ls -a | 显示所有文件(含隐藏文件) | . .. .hello |

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

如图:


三. cd:"穿梭门" ->想到哪就到哪

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

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

cd可以识别两种路径:

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

|--------------|-------------------------------------------------------------|
| 内容分类 | 具体说明 |
| 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 目录 |

如图:

补充: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,会报错) |

如图:

注:中间这里cd./B博主忘记加空格导致没有查找到这里的子文件

补充:

文件类型区分特点:

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

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

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

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

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

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

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

如图:

  • 访问时间(atime):最后一次 "查看" 文件内容的时间(比如用cat读文件);
  • 修改时间(mtime):最后一次 "修改" 文件内容的时间(比如用编辑器改文字);
  • 更改时间(ctime):最后一次 "修改文件属性" 的时间(比如改文件名、改权限)

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

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


六. 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/(删根目录,系统直接崩溃) |

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

bash 复制代码
# 删除普通⽂件
[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:

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

bash 复制代码
[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 基础指令的核心不是 "死记硬背",而是 "理解原理 + 多练"------ 刚开始可能会输错,但敲个 10 次、20 次,你就会发现:这些指令就像 "电脑的快捷键",熟了之后比图形界面还快!下次用 Linux 时,不妨从这 6 个指令开始,一步步搭建你的 "指令思维"

相关推荐
YH行业报告分析14 分钟前
2026电缆铺设设备市场:自动化敷设与电网升级驱动增长
运维·自动化
ajassi20001 小时前
AI语音智能体开发日记(十八)智能体服务器xiaozhi-esp32-server源码部署指南
运维·服务器·人工智能·ai·ai编程
‎ദ്ദിᵔ.˛.ᵔ₎1 小时前
linux 进程信号(下)
linux·运维·服务器
skywalk81632 小时前
在FreeBSD系统的linux仿真环境下安装和使用kiro 这个亚马逊的AI agent
linux·人工智能·freebsd·kiro
Mikko72 小时前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
蓝胖的四次元口袋2 小时前
Jenkins知识梳理(2)
运维·jenkins
yumgpkpm2 小时前
Acceldata ODP 3.3.6.4 vs CDP Private Cloud Base 7.3.2 对比
大数据·运维·服务器·hadoop·华为·zookeeper·hbase
Madison-No72 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
Liuqy-052 小时前
特殊进程——孤儿、僵尸、守护进程
linux·运维·服务器
流浪0012 小时前
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前
linux·操作系统·线程·信号量·环形队列