
个人主页:胡萝卜3.0
个人专栏:《C语言》、《数据结构》、《C++干货分享》、LeetCode&牛客代码强化刷题
《Linux环境编程》
⭐️人生格言:不试试怎么知道自己行不行
胡萝卜3.0的简介:


目录
前言:
前情提示:
一、迅速认识一下几个基础指令的用法
二、ls:Linux的 "记录透视镜",想看什么随你挑
2.1 显示文件元数据:ls -l
2.2 列出指定目录:ls [路径]
2.3 获取全列表:ls -a(包含隐藏项)
三、确认当前位置:pwd
3.1 路径分隔符对比:Windows 反斜杠 vs Linux 正斜杠
四、切换工作目录:cd 命令
4.1 向上移动一级:cd ..
4.2 切换至当前目录:cd .
4.3 命令行导航基础:理解相对与绝对路径
4.3.1 实用查询:“我是谁?”—— whoami 命令
4.4 基础导航:进入指定子目录
五、创建空的普通档案:采用 touch 命令
5.1 深入洞察:stat 查看文件详细信息
六、目录管理:使用 mkdir 创建目录
6.1 递归创建目录:mkdir -p
6.1.1 目录结构可视化:tree
七、删除操控:rmdir 与 rm 命令
7.1 删除空目录:rmdir 命令
7.2 文件与目录删除:rm
结尾
前言:
新手村的你,是否被这个魔咒困住了:「指令输错 → 报错 → 查教程 → 继续错」。ls 看了不懂,rm 用了就怂。
别慌,这不是你的问题,只是指令的「底层逻辑」还没打通。本文用 10 分钟,带你打通 ls / pwd / cd / touch / mkdir / rm 这六大基础的任督二脉,看完不再死记硬背,让你的 Linux 血脉瞬间觉醒!我们的目标不仅是让您「知其然」,更要「知其所以然」,从而自信地迈出 Linux 操作的第一步。
前情提示:

一、快速认识一下几个基本指令的用法
这里只是为了让大家粗略认识一下,并不严谨,大家不用记,指令的用法博主后面会一个一个结合Linux系统的理论知识详细地去介绍,大家以后面为准。
- 通过clear (清除历史命令)——如果指令已经写满屏幕了,能够运用clear进行清除操作
- pwd——查看当前路径(查看自己当前在哪条工作路径下)
- cd——更改工作路径
- ls——罗列当前路径下的文件
- mkdir——新建文件夹(文件夹是Windows的讲法,Linux里面叫目录)
- cd ..——回退到上一个路径(相当于windows中的返回)
ok,现在大家“见过猪跑了”,接下来我们“吃猪肉了”!博主会对上面的指令一一介绍!
二、ls:Linux的 "材料透视镜",想看什么随你挑
- ls (list)——罗列当前路径下的所有的资料详情
之前博主已经在/root/118路径下mkdir了一个dir1目录,所以这里ls出来的就是dir1。
ok ,大家来看这句话:罗列当前路径下的所有的文件详情。这里面有两个点需要我们注意:
- 如何理解文件?
ok,若是我们在windows系统中新建一个空文件(比如一个空的记事本,大小为0),那这个空的资料(或者说这个空的记事本)占不占空间?
其实是占空间的
为什么?肯定会有很多小伙伴说:不对啊,这是一个空的文件怎么会占空间呢?
ok,我们想一想,都需要保存下来,就是一个空的文件是不是有名称,是不是有文件类型,是不是有创建的时间,这些我们是不我们将文件的名称、文件的类型、创建时间……这些信息称为材料的属性数据,也叫做元数据,元数据也是数据,既然是数据,我们就应该保存下来
其实记录是由两部分组成的:
所以即使文件是空的,也要存储这些文件属性;学习资料的本质无非就是对内容或者对属性做操控
- 什么叫做当前路径?
所谓当前路径——就是默认所处的路径,就叫做当前路径
Linux平台中为什么要有路径?因为我得访问文件,所以要有路径
那为什么有了路径,我就可以访问数据呢?基于路径是有唯一性的,我们可以通过唯一的路径找到唯一的文件
- 总结一下:
通过上面的学习,我们就知道:
- ls——罗列的是当前路径下的所有文件的文件名(只罗列文件名,文件名是属性)
ok,大家知道一个文档不仅仅只有文件名一个属性,还有一些其他的属性,例如:文件类型,创建时间……那我们怎么通过指令来查看这些信息呢?
2.1 显示文件元素材:ls -l
- ls -l 显示更多的文件属性(大小,时间,文件名……)
也许会有UU想问:ls -l,中的“-”是什么东西?其实这是一个选项符,通过这个选项符,我们可以利用指定命令的扩展效果
那如果此时我们想去查看任意路径下有哪些文件,我们该怎么做呢?大家能够使用下面的命令
2.2 列出指定目录:ls [路径]
- ls [路径] 显示指定路径下的所有文件名
有了 ls [路径] ,我们就可以在任意的目录下去查看我们想查看目录下有哪些文件了!!!
2.3 获取全列表:ls -a(包含隐藏项)
ls -a 显示当前路径下的隐藏文件
,隐藏项!哪里来的隐藏项?
某些档案无法通过常规命令直接查看,但使用ls -a命令即可表现隐藏项目!
凭借上图,我们行清晰的看出,. 文件 和 .. 文件 就是这个隐藏项,在Linux系统中,我们将这些以“.”开头的记录称为隐藏档案(. 文件 和 .. 文件 就是隐藏文件)
- 注意:
ls 表明时默认不表明隐藏文件(以“.”开头的文件),. 材料 和 .. 文件 在Linux系统中会隐藏文件名,默认看不到
依据上图我们允许看到,ls -a 会显示当前路径下的所有文件的文件名(包括隐藏文件的文件名和未被隐藏文件的文件名)
至于 .文件 和 ..文件 是什么?后面会进行介绍——
那如果我们想显示隐藏材料并且显示更详细的文件属性,该怎么办?
我们可以将效果相同的选项进行组合——
总结:选项可以组合实现,选项可以自由组合!!!
三、确认当前位置:pwd
- pwd 查看当前我处于哪个路径下(确认位置)
表示当前我处于/root/118这个路径下
3.1 路径分隔符对比:Windows 反斜杠 vs Linux 正斜杠
在windows中我们应用“\”作为路径分隔符,而在Linux中我们使用“/”作为路径分隔符
四、切换工作目录:cd 命令
- cd 命令——更改路径
4.1 向上移动一级:cd ..
通过前面的学习,我们知道 .. 文件是一个隐藏文件,默认是看不到的,但是可以通过ls -a 查看隐藏文件
那这个.. 文件中存的到底是什么?
通过上级路径就是“..”就是相当于当前路径,上级路径是谁。我们能够认为 ..资料 中存放的
既然是这样的话,我们就可以将cd 和 .. 连接起来,这样就可以实现返回上级路径的操控——
Linux中的 .. 就想当于windows中的回退,windows中可以在任何路径下都可以回退,Linux在任何目录中都有 .. 标记上级路径
通过但是这里有个问题,大家能够一直回退吗?
ok,当我们回退到一定程度,就不让回退了,Linux中会停在 /(根目录)的目录下
这里有个问题,我们知道windows管理文件使用的是树形结构,那Linux管理文件,使用的也是树形结构吗?
ok,是的,Linux管理文件,启用的也是树形结构管理文件的,根目录是目录,目录里面可以套目录(目录可以认为是windows中的文件夹)
假设bin目录里面有个hello.txt文件——
那我该怎么找到这个hello.txt文件呢?
这样:/usr/bin/hello.txt就是我们是不是进入根目录/,到usr,再到bin中找到hello.txt,也就
- 我们称这种:/usr/bin/hello.txt 从根目录开始的路径称为绝对路径
处于树的叶子节点的文件为普通文件或者空目录,路上节点(除叶子节点)一定是一个目录
ok,通过上面的学习,我们再来看一下pwd——
/root/118 表示当前处于根目录下的root目录下的118目录里面
总结:cd .. 路径回退(回退到上级路径)
那 . 表示什么呢?ok,接下来,我们就来看一下该 . 表示什么。
4.2 切换至当前目录:cd .
- . 表示当前路径,cd . 就表示进入你的当前路径
我们先来看看为什么要有 . ?
:先找到这个材料,我们可以通过路径来找到这个文件(允许通过绝对路径或者相对路径)就是当我们运行一个可执行程序时,将可执行程序从磁盘加载到内存,前提
假设118目录里面有个test.exe可执行程序,此时我们想运行这个可执行程序,我们能够这样:
- 绝对路径:/root/118/test.exe 告诉系统,test.exe在什么路径下,test.exe在根目录下的root目录下的118目录下
但是此时突然想起来,我们就在根目录下的root目录下的118目录,那我们是不是就可以直接写test.exe
不可以直接写test.exe会报错,因为系统找不到该test.exe(虽说我们知道这个test.exe在根目录下的root目录下的118目录里面,但是平台不知道啊),所以必须给可执行程序带路径
- 相对路径
带/root/118显得有点麻烦,怎么办呢?就是可
通过上面的学习,我们知道. 表示当前路径,我们可以这样写——./test.exe
告诉系统要执行的是当前路径下的test.exe
“.”可以帮助我们快捷进行路径定位,辅助我们找到test.exe在哪个路径下
ok,像这种 ./test.exe 不从根目录开始,以相对于当前位置开始的路径称为相对路径!!!
总结: “.”可以帮助我们敏捷进行路径定位,援助我们找到文件在哪个路径下
假设当前在bin路径下,我们想找到good.txt,该怎么找?
通过ok,那我们就能够对上面运行test.exe可执行程序进行一个总结——
通过从上面我们可以看出绝对路径在哪里都能够使用
总结一下:
- 相对路径通常进行命令行操作
- 绝对路径路径通常会在配置文件中使用
4.3 命令行导航基础:理解相对与绝对路径
ok,上面说了那么多相对路径和绝对路径,接下来我们真正认识一下相对路径和绝对路径
- 绝对路径是一种特殊的相对路径
为什么允许这么说?
我们先来看相对路径——
这里有个问题:一个相对路径具有唯一性吗?
ok,任意一个相对路径具有唯一性(每一个相对路径有唯一性),相对路径可以有多个,但是每一个相对路径都是唯一的
相对路径无非就是以我当前的位置为参考点,路径唯一的帮我找到这个文件
而绝对路径是相对于根目录去找该文件,相对位置是固定的,绝对路径是一个固定的参照点(根目录)从根目录开始帮为照这个文件
所以我们可以认为绝对路径是一个特殊的相对路径
总结:
- 绝对路径的本质相对于根目录开始的
- 从你当前所处的路径作为参考点来让你能够定位其他文件或者目录的路径就是相对路径的本质
谁啊?就是这里有个问题:什么叫做你的当前路径?你
4.3.1 实用查询:“我是谁?”—— whoami 命令
- whoami 命令 ——就行知道我是谁了
我是root
/root/118 就是当前用户root在当前/root/118的路径下
4.4 基础导航:进入指定子目录
- cd 目录名 ——利用相对路径或者绝对路径自由进行路径切换
- cd /——直接进入根目录
- cd -——两个高频访问的目录下进行飞快切换,切换到当前用户上一次所处的路径
- cd ~——直接进入当前用户的家目录
什么叫做家目录?
所谓家目录就是操作系统用户登录环境后,默认所处的路径
多人共用的操作系统就是windows中也有家目录的概念,windows可以创建多个用户,windows和Linux都
什么?为什么登录时要有确切的用户呢?就是那家目录的本质
这是因为要给windows孩子啊桌面,下载软件提供当前用户的默认路径
五、创建空的普通文件:使用 touch 命令
touch 文件名 ——在目录里面创建一个新的文件(普通文件)
touch 文件名 就相当于 windows中的创建文本文件
5.1 深入洞察:stat 查看文件详细信息
- stat 文件名 ——查看一个记录更详细的信息
六、目录管理:应用 mkdir 创建目录
- mkdir 目录名 —— 创建一个目录
在118目录下创建一个dir2的目录——
- 目录呢?就是嗯?这里有个问题:那我们怎么知道创建的是普通文件还
- 我们知道在windows中是通过后缀区分文件的,Linux是怎么区分的?
Linux依据文件的属性区分资料
- d开头:叫做目录
- -开头:普通文件(包括可执行程序、文本文件、动静态库……)
- ……(其余后面介绍)
Linux区分文件类型,不关系资料后缀(并不代表后缀不可用),文件后缀就是所见及所得
Linux操作系统不关系档案后缀,但是gcc关心后缀(gcc != Linux操作系统)
此时博主突发奇想:想创建一连串路径,直接上手干——
嗯?既然不行,好叭,因为mkdir不允许一次创建一串路径,此时我们就寻求外援了——
6.1 递归创建目录:mkdir -p
- mkdir -p 路径 ——可以递归创建一串路径
这里什么都没显示,凭什么证明你创建了一串路径——
6.1.1 目录结构可视化:tree
- tree 路径/目录 ——将当前路径/目录用树形结构显示出来
有个小提醒:系统自带的,若没有需下载就是tree不
- Centos 7下载指令: yum install -y tree
- Ubuntu下载指令:apt install -y tree
这就证明我们 mkdir a/b/c/d 创建一串路径
通过既然我们可以创建一个普通文件或者目录,那是不是能够删除他们呀!
七、删除操作:rmdir 与 rm 命令
7.1 删除空目录:rmdir 命令
- rmdir 目录名 —— 删除一个空的目录
我们看到dir1目录中没有其他东西,是一个空目录,可以用rmdir直接删除。
如果目录不是一个空目录能够用mkdir删吗?
我们看到a目录不是一个空的目录,使用rmdir不能删除
- 总结:
为了删除空目录(只能删除空目录)就是rmdir只
7.2 文档与目录删除:rm
- rm 文件名 ——rm 能够删除普通文件
- rm -r[ f ] 目录名 —— 一个目录是递归式建立,删除时得递归删除
- 否删除就是rm -i 目录名/文件名 ——删除前给提示,询问
rm 普通文件
- rm -r 目录名(rm -r 目录名 —> -r 递归式删除目录(删除目录及其下所有文件))
删除一个空的目录
删除非空目录
上面删除非空目录时好像有点麻烦:
- rm -rf 目录名 —— 强制删除,不需要每次确定
- 总结:
扩展:Linux整体也是一棵树形结构,/根目录也是目录
rm -rf / 强制删除根目录(这就搞挂了架构)
- 否删除就是rm -i 目录名/文件名 ——删除前给提示,询问
rm -i 是给普通用户用的,删除时给提示,删除前逐一询问是否删除
普通用户用rm默认是没有 -i 的:
- 无 -i :删除前不会逐一询问是否删除
- 否删除就是有 -i:删除前逐一询问
超级管理员(root)用rm ,默认是有 -i 的
- 加不加 -i 删除前都会逐一询问是否删除
结尾
写到这里Linux 6个超好用基础指令就完美散花啦,那请大佬不要忘记给博主来个赞哦!
૮₍ ˶ ˊ ᴥ ˋ˶₎ა