Linux 6个超好用基础指令,10分钟搞定
一、快速认识一下几个基本指令的用法
这里只是为了让大家粗略认识一下,并不严谨,大家不用记,指令的用法博主后面会一个一个结合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个超好用基础指令就完美散花啦,那请大佬不要忘记给博主来个赞哦!
