快速认识一些指令
在这里我们先简单了解一些指令,不深究它们的复杂用法,以后会讲
pwd
pwd
指令可以查看当前处于什么路径下
以上说明我们处于 /root 路径下
ls
ls
可以列出当前目录下的文件名
以上说明当前目录下只有一个文件 code
mkdir
mkdir
可以在当前目录下,创建一个目录
mkdir 目录名
下面我们在当前目录下新建一个 test 目录,mkdir test
可以看到,在当前目录下,多了一个 test 目录
cd
可以切换当前所在目录
cd 目录名
下面我们进入当前目录下的 code 目录
这样就进入了 code 目录
touch
可以创建一个文件
touch 文件名
在当前目录创建文件 file.txt
指令详细介绍及周边知识
ls | 文件
语法:ls 选项 目录或文件
常用选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
- 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r 对目录反向排序。
- -t 以时间排序。
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件。
ls -l
指令
这个指令可以列出文件的详细信息,可简写为 ll
可以看到,文件名前面多了一堆东西,这些东西具体是什么意思,我们先不管
下面我们来补充一点相关知识
文件 = 文件属性 + 文件内容
就拿我们熟悉的 windows 操作系统来说
这个文件的名字,修改日期,文件类型,文件大小等等,都属于文件属性
而文件中存的数据就是文件内容
文件属性和文件内容都是数据,都需要保存起来,所以这个文件虽然内容为空,但是属性也是数据,也是需要占据空间的
未来我们对文件进行操作时:
- 1.对文件属性操作
- 2.对文件内容操作
操作形式:
- 指令操作
- 编写程序操作
所以 ls -l 显示的都是文件的属性
ls -a
指令
可以显示隐藏文件,什么是隐藏文件呢?
在 Linux 系统中,以 .
开头的文件都是隐藏文件
ls -la
列出隐藏文件在内的所有文件,其中 a
和 l
的顺序怎样都可以,可以是 al
也可以是 la
我们手动创建一个隐藏文件,然后用 ll
查看
查看不到 .file.txt
文件
再用 ls -la
查看
这样就可以看到了
pwd | 路径
上面我们已经了解到,pwd 会显示我们当前所处的路径,那么什么是路径呢?
在 windows 系统中,我们使用文件资源管理器时,顶端都会有当前所处路径
在 Linux 系统中,我们使用 pwd 指令,也可以看到当前所处路径
这是 windows 系统下的路径 C:\Users\13581\Desktop\Code\blog\Linux
这是 Linux 系统下的路径 /root/code
可以看到它们之间的不同:一个用 \
分隔,一个用/
分隔
无论是 \
还是 /
,我们统称为 分隔符
用分隔符维护起来的一串字符就是路径
通过观察,可以发现:
- 两个分隔符之间一定是目录
- 路径的末尾可能是目录或者普通文件
那为什么要有路径呢?
路径在系统层面标识了一个特定文件,当我们要寻找特定文件时,就需要路径
既然路径可精准地找到特定文件,那路径必须有唯一性,总不能同一个路径找到了好几个不同目录或文件吧,这不就乱套了
cd | 目录
上面已经提过,cd 可以切换目录,那我们下面就来谈谈目录
当前路径与上级路径
我么已经知道,使用 ls - la
可以查看,隐藏文件,隐藏文件都是以 .
开头的
那么有没有人注意过 .
和 ..
呢?它们又是什么意思呢?
先不着急,我们再来看文件属性最前面的信息
以 d
开头的代表 direct,目录
以 -
开头的代表普通文件
那就说明,.
和..
代表的是文件夹
这里直接说明:
.
代表当前路径..
代表上级路径
直接上手使用看看
先使用 pwd 查看当前路径,再进入 .
再查看当前路径
可以看到,当前路径并没有发生变化
进入 ..
再查看
此时,当前路径切换到了上级路径
还有一点:任何目录下都存在 .
和 ..
那 . 和 … 有什么用呢?
..
不难理解,可以帮我们回退到上级目录,那 .
呢?
当我们要访问一个文件时,是需要找到这个文件的
当前文件下有一个可执行文件,我们不要写出它的完整路径,只需要 ./文件名
就可以了
例如,当前目录下有一个 test.c 文件,内容如下:
我们要运行,就得先编译 test.c ,形成 a.out 可执行文件
运行 a.out
并没有运行成功,这是因为没有 a.out 的路径,找不到文件
如果加上当前路径再运行
运行成功
所以 .
可以帮我们访问可执行文件
路径的唯一性
当我们无脑进入上级路径之后,发现进入 /
后就不能继续了
这个 /
就是Linux系统中的根目录
我们知道,目录中可以有文件,也可以有目录,那子目录中还可以有目录
所以,Linux的整个文件目录结构是一颗多叉树
每个目录都可能有多个子目录或文件,但是每个目录或文件都只有一个父目录
就像一个人有好多个孩子,那这些孩子只有一个父亲
因为这个特点,当我们寻找某个特定目录或文件时,就只能有一个路径
比如,在上图中寻找 test.c ,因为每个目录或文件只有一个父目录,在 test.c 的位置向上逆推到根目录,就只有一个路径
/home/bit/test.c
这就体现了路径的唯一性
相对路径与绝对路径
访问一个文件或目录
- 路径从根目录开始,就是绝对路径
- 以当前路径为参照开始,就是相对路径
就这么说有点抽象,下面我们来看例子
当前路径是 /root/code/test
,要访问 a.out
先来看绝对路径
从根目录开始访问
再来看相对路径
当前处于 test 目录下
只需要以 test 目录为参考,找到a.out
这里还有另一种玩法,进入 dir
以 dir 为参考,利用上级路径 ..
,找到 a.out
以上就是本章的内容,如果对你有帮助,请留个赞叭~ 😄