Linux操作系统的基本指令

基本指令

1、初识

指令,是控制Linux操作系统的基本方法。

但是,我们只学习指令,可能会一头雾水。所以我们在学习指令的同时,也要学习Linux的一些基本知识,来帮助我们更好地使用指令。

2、ls指令

ls,意为list ,有罗列的意思。

ls的作用是:罗列当前路径下所有文件。

那么在这里,文件指的是什么?

2.1、对于文件的理解

文件并不等于文件的内容,文件是文件内容,和文件属性的结合。

(Linux中提及的)文件 == 文件的内容 + 文件的属性

其中,文件的属性,包括文件的名称、日期、类型、大小,等等,这些文件的属性数据 ,又叫作元信息

和文件的内容数据一样,文件的属性数据,也有大小,也需要占据磁盘的空间。所以电脑就可以通过文件的属性数据,找到对应的文件。

我们学习文件的本质,就是两点:

学习对文件内容的操作

学习对文件属性的操作

所以,我们结合上面的图片,明白ls罗列的本质是:罗列文件的属性。

当然,我们只使用ls,只能看到文件名,使用ls -l可以看到更多属性:

我们在讲解ls作用的时候,提及了当前路径,那么,什么是路径?

2.2、路径

为什么系统要有路径?

我们要想访问一个文件,必须知道这个文件在哪;而路径是具有唯一性的,所以我们知道了文件所处的路径,就能顺着路径,访问文件。

比如,我们访问路径/root/project1,找到了project1目录下的part1文件夹。

路径具有唯一性。

当前路径:系统此时默认所处的环境。

2.3、隐藏文件

在Linux系统中,以.(英文句号)开头的文件,被称为隐藏文件

我们做一件事:新建一个**.hello**文件,然后访问当前目录。

我们发现,我们找不到.hello文件。

这时,我们用一个指令ls -a

.hello文件显示了。

所以指令ls -a的作用是:显示当前目录下的所有文件名,包括隐藏文件的文件名。

其实,诸如-l、-a,这些选项,可以组合使用,使指令的编写更灵活:

3、pwd指令

pwd,print working directory,意为打印当前目录的绝对路径

这里我们来对比一下windows系统和Linux系统中,路径分隔符的区别:

whidows: (反斜杠)

Linux: /(斜杠)

4、cd指令

cd,change directory,意为路径的切换

使用指令cd,可以使用绝对路径:

也可以使用相对路径:

相对路径的使用中,我们用到了我们在学习隐藏文件时出现的. 文件、. .文件。

. 文件:当前目录

. .文件:当前目录的上一级目录

所以cd ..的作用是返回上一级目录。

我们来不断进行cd ..pwd操作:

当我们不断返回上一级目录时,我们发现,最后一直停在==/==上不动了。

我们把这个/叫做根目录。我们把从根目录开始的路径,叫做绝对路径。

这时我们补充了解Linux管理文件时使用的树状结构

4.1、树状结构

Linux管理文件,使用的是树状结构。

树,有叶子节点路上节点

叶子节点,一般是普通文件、空目录

路上节点,一定是一个目录

我们能够很自然的想到,Linux中的目录 ,很像windows中的文件夹

我们知道,对于树,每一个既不是叶子节点也不是根目录的节点,其子节点可能有很多,然而其父节点只有一个。

所以在这种树状结构中,正向、逆向的路径都是唯一的,所以路径具有唯一性

相对路径,通常用来进行命令行操作。

二进制可执行文件,从磁盘加载到内存中运行,前提是:先得找到这个可执行文件。

此时的可执行文件在当前目录,那么,我们就可以使用相对路径,快速定位文件的位置。
绝对路径,通常会在配置文件中使用。

绝对路径,是一种特殊的相对路径。每一个相对路径都是唯一的,只不过相对路径有很多种。

绝对路径,是一种特殊的相对路径。所以下面两个划线指令,效果是相同的:

4.2、剩余指令,和家目录

cd指令中,还有cd /,这个指令是用来直接返回到根目录的

还有cd -这个指令是用来返回到上一个路径的

由于只能返回到最近一次操作之前的路径,所以我们不停使用cd -,就会导致循环:

还有一个指令cd ~,要想了解这个指令,我们先来了解家目录

我们一开始进入Linux系统的时候,所处的目录,就是家目录:

对于windows系统,也有一个类似家目录的东西。

windows桌面显示的快捷方式、默认的下载位置,全部放在了C盘的"用户"文件夹下。

所以,指令cd ~的作用是:返回到家目录

补充一个指令:whoami

这条指令,会打印当前用户的用户名。

5、touch指令

touch指令,可以用来创建普通文件。

补充一个命令:stat

这个命令,会展开更详细的属性。

这里有三个时间:

Access Time:内容被读取的最后时间。

Modify Time:内容被修改的最后时间。

Change Time:元数据被修改的最后时间。

touch用来创建普通文件,而mkdir用来创建目录。

6、指令mkdir

学习mkdir指令之前,我们先来补充一点知识------Linux的文件类型的讨论。

Linux系统区分文件类型,并不关心文件的后缀。

我们来论证这一点:

这里准备了一个源文件、一个可执行文件。

给这个可执行文件改名,再运行:

正常运行了,所以Linux不关心文件的后缀。

但是,Linux不关心,不代表其他东西不关心,比如gcc编译器。所以我们改了源文件的后缀,就无法编译:

话说回来,Linux区分文件的方法,是利用文件的属性。

首先一提,指令ll,相当于指令ls -l

我们发现,第一列字符中,有d和**-**,其中:

d开头的是目录

-开头的是普通文件,可以是可执行文件、文本文件、动态库静态库等

说回mkdir。

要想创建一个目录,直接使用mkdir:

而要想创建一串目录,使用mkdir -p

查看一串目录的生成,除了依次进入查看,还可以使用tree

指令tree需要手动安装。

centOS版本下的安装指令:yum install -y tree

Ubuntu版本下的安装指令:apt install -y tree

7、rmdir&&rm

它们都是删除指令。

7.1、指令rmdir

rmdir,只能用来删除空目录。

这肯定是不方便的,所以我们看向rm

7.2、指令rm

rm可以用来删除普通文件

rm删除不了有内容有分支的目录,因为在一个树形结构中,需要递归删除。

所以指令rm -r派上了用场。

如果是超级用户,那么使用rm -r指令时会在递归的每一步,进行询问。

但是指令rm -rf就不询问了,直接删除。

这里涉及到一个非常危险的问题。

Linux整体结构是一个多叉的树形结构。

如果我们直接删除根目录,也就是执行语句:rm -rf /,整个操作系统就被删除了。

所以我们使用rm -rf语句,删除一些绝对路径下的目录,要格外小心。

万一不小心执行了这条语句,建议直接全部删除,重新编写语句。要知道,即使执行了删除整个操作系统的语句,有些内容是不会被删除的,比如正在运行的内容。但是,已经被删除的地方,会造成潜在的漏洞。所以,不小心执行了这条语句,直接全部删除。

还有一个指令rm -i,使用了-i,就可以弹出询问:

询问对话中,y就是yes,n就是no。

所以我们进行删除操作时,可以按照以下思路进行:

删除普通文件,用rm

删除目录,用rm -ri,必要时用rm -rf

相关推荐
松涛和鸣1 小时前
DAY49 DS18B20 Single-Wire Digital Temperature Acquisition
linux·服务器·网络·数据库·html
Physicist in Geophy.1 小时前
服务器vs个人主机
服务器
匀泪2 小时前
CE(防火墙)
服务器
BIBI20492 小时前
通过 Studio 3T 远程连接 CentOS 7 上的 MongoDB
linux·mongodb·centos·nosql·配置·问题解决·环境搭建
小小ken2 小时前
ubuntu添加新网卡时,无法自动获取IP原因及解决办法
linux·网络·tcp/ip·ubuntu·dhcp
Xの哲學2 小时前
Linux 软中断深度剖析: 从设计思想到实战调试
linux·网络·算法·架构·边缘计算
林鸿风采2 小时前
在Alpine Linux上部署docker,并配置开机自启
linux·docker·eureka·alpine
专注数据的痴汉3 小时前
「数据获取」全国民用运输机场吞吐量排名(2006-2024)
java·大数据·服务器·数据库·信息可视化
l1t3 小时前
在arm64 Linux系统上编译tdoku-lib的问题和解决
linux·运维·服务器·c语言·cmake