Linux 基础指令(一)

目录

  • 前言
  • 1. ls 指令
    • 1.1 拓展问题
  • 2. mkdir 指令
    • 2.1关于tree的拓展问题
  • 3. cd 指令
    • 3.1 直接上级路径
    • 3.2 绝对路径和相对路径
  • 4. pwd 指令
  • 5. touch 指令
  • 结语:

前言


欢迎各位伙伴来到 每天学习 5 条 Linux 指令的 第一天!!!
这也是第一篇介绍 Linux 指令的文章,包括在接下来的所有指令的文章中,我主要都会以介绍指令的作用 及其实操效果为主,有时会涉及一些使用场景,中间也可能会穿插一些额外的拓展问题等等

在讲Linux的一些基本指令之前呢,我先给大家明确一个概念。那就是,什么是指令?我们在使用各种指令,是在做什么呢??也就是我们为什么学习 Linux 指令呢??

其实,Linux刚面世的时候是并没有图形化界面,说到这里,可能有人要问啦!哎哎哎,你说的这个 ”图形化界面“ 是个啥东西?? —— 你也可以简单理解为,看得到的。就如同windows下,你一开机进入系统,你就可以看到很多图标。

而早期的 Linux 的系统是没有图形化界面的,所有操作没办法像我们现在使用windows 这样,可以双击,可以右键,Linux它都不可以!!!它都是靠命令完成去完成各种各样的操作的。

而在我们企业的工作当中,大量的服务器维护工作都是需要远端通过SSH客户端来完成的,而不是像我们平常,给你一个看得到的windows系统,让你去完成各种工作,因此,没有了图形化界面,我们就需要通过各种命令 / 指令,来进行操作我们的系统,以此来达到完成各种工作的目标!!!

有人又要说啦!那你将这么久,你还没告诉我,什么是命名 或者 指令呢???
通俗来讲,指令,它就像是我们在使用windows操作系统下 进行的 各种日常操作(包括什么双击打开文件啊,什么右键删除啊…等等)。所谓指令,也就是起着这么一个作用(Linux平台)

更多的作用,只能是大家学习完 Linux 常用的基本指令之后,再慢慢去感悟!!

好了,废话不多说,我们进入今天的指令学习!!
今天学习的是……


1. ls 指令


ls 就是用来显示当前路径的文件名

[duck@localhost linux]$ ls
base_ir  pro_address  process  README.en.md  README.md  yum_dgb

ls 我们称之为命令。ls -l 的 -l 我们称之为选项

ls -l  #用来查看路径下的文件的详细信息

ls只是显示当前路径的文件名,ls -l 是显示除文件名以外的更多的文件属性!

Linux 基础指令(一)_第1张图片

ls -a  #也是显示当前路径的文件名,只不过是所有的文件名!

在这里插入图片描述

那看到这里,有人会问啦,那这些 " . " 是什么东西啊?
windows下有隐藏文件,同理,Linux下也有!! 这些以 " . " 开头的文件名,就是Linux的隐藏文件!

ls -l -a  #那就是显示当前路径下的所有文件的详细信息

Linux 基础指令(一)_第2张图片

OK,我们总结感悟一下,ls -a到底是一种什么感觉??它就好比我们在windows下,打开或者关闭这么一个按钮

Linux 基础指令(一)_第3张图片Linux 基础指令(一)_第4张图片

到这里,可能又要有人问啦!哎哎哎,那这讲了大半天,那隐藏文件有什么用啊???
其实基本上我们也用不到,除非说,你想上传点什么小秘密,哎,对吧(斜眼笑)。
其实要说用处,那比较通常的一个,就是隐藏一些配置文件。


ls -i  #查看文件的 inode 编号

Linux 基础指令(一)_第5张图片
inode 编号呢,就是这里的数字,大家也可以理解为,inode 编号就是文件的名字。就好比,我们在学校有学号,在其他地方有名字,这样的一个概念。

上述的 ls -ial 其实就等价于 ls -a -l -i 的写法,都是一样的。其中呢,ls -l 也可以直接写成 ll,如果你愿意的话,这里就不在做过多的演示了

1.1 拓展问题

如果在磁盘上新建一个 空文件,请问,该文件要不要在磁盘上占据空间呢???
先说答案,当然要!!!

Linux 基础指令(一)_第6张图片

答案是,当然算!!!
假如,我此时往一个空文件写入 abcdefg 二十六个字母,那文件的大小,会不会发生变化呢?? -—— 当然会!
修改时间会不会发生变化呢?? —— 也会!
那这些需要记录起来吗?? —— 需要!
那上述的这些所谓的,修改时间,文件大小,文件类型这些属性,是不是也是一种数据呢??? —— 是的!
那既然是数据,需不需要空间呢?? —— 需要!
那一个空文件,需要文件名吧? 需要创建时间吧?需要文件大小吧?需要文件类型吧?那这些都是数据吧?!那既然是数据,那就需要在磁盘占据空间!!

结论:文件 = 内容数据 + 属性数据

2. mkdir 指令

mkdir 就是在当前路径下创建一个目录 / 文件夹

[outlier@localhost ~]$ mkdir test
[outlier@localhost ~]$ ls
test

那此时如果我想创建一串目录呢?
在这里插入图片描述很好,我们看到了,它不让我们创建一串目录!!!
那假设,我今天一定要创建这么一串目录呢???我一定要!

我们可以通过
[outlier@localhost test]$ mkdir -p d1/d2/d3/d4

创建完之后呢,我们就发现,欸!有了!
在这里插入图片描述
那我怎么查看,d1目录里面是否有d2这个目录呢,d2 里面是否有d3呢??
Linux 基础指令(一)_第7张图片
OK,到这里,我们先赶紧停一停,我们再来学习一个指令

# tree就是以树状结构,显示当前目录
[outlier@localhost test]$ tree      

我们确实看到了我们的目录下,有 d1 d2 d3 d4,那我还是不信,你怎么证明d4在d3里,d3在d2里,d2在d1里呢???
那我们在来验证一下。
Linux 基础指令(一)_第8张图片
我们进入d1,再进入d2.。。。最后呢,我们确实看到了,我们所在的路径,就是我们创建的一串目录当中

2.1关于tree的拓展问题

可能有些人,运行 tree 这条指令的时候,报错了,那可能是你的环境没有安装tree命名。
我们可以运行一下这条指令 yum install -y tree,这里就不给演示了


3. cd 指令

cd 就是进入某一路径的 !

[outlier@localhost ~]$ cd test
[duck@localhost process]$ cd ~
[duck@localhost ~]$ pwd
/home/duck

对于普通用户而言:/home/xxx:就叫做xxx的家目录
而对于root用户而已,家目录为 /root
而所谓的 cd ~ 就是回到用户的家目录!!


[duck@localhost pro_address]$ pwd
/home/duck/linux/pro_address
[duck@localhost pro_address]$ cd ~
[duck@localhost ~]$ pwd
/home/duck
[duck@localhost ~]$ cd -
/home/duck/linux/pro_address
[duck@localhost pro_address]$ cd -
/home/duck
[duck@localhost ~]$ cd -
/home/duck/linux/pro_address

从上述指令,我们可以看到,本来在 /home/duck/linux/pro_address 路径下,通过cd ~ 来到家目录,又通过 cd - 回到了原来的路径,再次 cd - 又回到了家目录。
所以,cd - 就是跳转至上一次我所处的路径!!!


Linux 基础指令(一)_第9张图片
那可能有人要问了,什么是直接上级路径呢??

3.1 直接上级路径

# 我们先通过pwd查看当前所在路径
[duck@localhost linux]$ pwd
/home/duck/linux
# 不是说,一个点,表示当前路径吗,那我就cd .  然后再pwd查看我当前路径变化
[duck@localhost linux]$ cd .
[duck@localhost linux]$ pwd
/home/duck/linux
# 可以看到的是,cd . 表示的就是进入当前路径,那 cd ..  呢?
[duck@localhost linux]$ cd ..
[duck@localhost ~]$ pwd
/home/duck
# OK,我们同样可以看到,我们从linux这个目录回到了 /home/duck/linux 这一串路径中 linux 的上一级目录 duck
# 所以cd .. 就是返回上一级路径, .. 就是直接上级路径

OK,那到这里,可能又要有人问了,哎哎哎,那你这一点和两点有什么用呢??
Linux 基础指令(一)_第10张图片
两个点的,就好比我们在windows平台上的返回键,这个我理解了,那… 一个点呢???

#假设当前有一个编译好的cpp可执行文程序 -- test
[duck@localhost yum_dgb]$ ls -al
total 28
drwxrwxr-x. 2 duck duck    50 Aug 16 01:31 .
drwxrwxr-x. 7 duck duck   119 Aug 20 21:30 ..
-rwxrwxr-x. 1 duck duck 19928 Aug 16 01:31 test
-rw-rw-r--. 1 duck duck   480 Aug 16 01:31 test.cpp

那么我们要指向test的时候,该怎么执行呢?
./test 就是在执行 test.cpp 编译好的 test 可执行程序
要执行一个文件,你总得告诉我,这个文件在哪吧??
. 就是告诉我,这个文件在当前路径下,直接 / 执行它,就可以了!!!

[duck@localhost linux]$ pwd
/home/duck/linux  							#这里的 / 叫做 “路径分隔符”
# 而当我们不断的 cd ..的时候,总会退回到最开始的地方
[duck@localhost linux]$ cd ..
[duck@localhost ~]$ cd ..
[duck@localhost home]$ cd ..
[duck@localhost /]$ pwd
/												# 此时,这里的 /,我们称之为根目录!

3.2 绝对路径和相对路径

其实,Linux系统中,磁盘上的文件和目录被组成一棵目录树(也被称为多叉树),每个节点都是目录或文件。而文件或者空目录即为它的叶子节点
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

Linux 基础指令(一)_第11张图片

父节点,可以有多个子节点,但是呢,一个子节点,一定只有一个父节点!!
所以从一个子节点,一直推导到 跟节点,这条路径,一定是唯一的,那么我们就称之为,路径具有唯一性!
(即,从test.c 一直到 跟目录/ ,不管是正向,还是方向,它都只有一条路径)

#这种查找方式,我们称之为 ”绝对路径“
[duck@localhost /]$ ls home/duck/linux/process/
lesson1  lesson2  lesson3
[duck@localhost /]$ cd home/duck/linux/process/
[duck@localhost process]$ pwd            
/home/duck/linux/process				#当前所处路径
#假设,我现在,想查找 linux 这个目录下的文件,那我可以采用 ”相对路径“
[duck@localhost process]$ ls ../README.en.md -al
-rw-rw-r--. 1 duck duck 868 Aug 14 20:18 ../README.en.md

OK,我们总结一下:从根目录开始,一层一层定位到文件/目录的方式,我们称之为绝对路径
而不以根目录开始,而是以当前路径为参考点,这样的定位方式,我们称之为相对路径


4. pwd 指令

pwd 就是显示当前 “我” 所处的路径

[outlier@localhost ~]$ cd test
[outlier@localhost test]$ pwd
/home/outlier/test

5. touch 指令

touch 就是在当前路径下创建一个普通文件

[outlier@localhost test]$ touch text.txt
[outlier@localhost test]$ ls
text.txt

问题一:touch除了创建一个普通文件,还有其他作用吗??
我们来看一段指令
Linux 基础指令(一)_第12张图片
touch 同名文件,还能起到另一个作用,那就是,更新文件的最近修改时间,更新为最新时间!!!


结语:

OK,本章的基本指令就讲到这。如果能给你带来一定的帮助,或者是收获,我很开心。
同时,觉得对你有帮助的伙伴们,也可以 点赞 + 收藏⭐️ + 关注➕ 支持一下!
感谢各位观看!!

你可能感兴趣的:(Linux系统,linux,服务器,bash)