Linux相关概念和重要知识点(1)(交互方式、存储结构、定位方式)

1.Linux是什么?

Linux是一款继Unix之后开发的一款开源操作系统

操作系统是基础性系统软件,是人机交互的一个媒介 ,我们日常使用的Windows、iOS、Android都是操作系统,用户都是和操作系统打交道的。像Windows、iOS是闭源的,我们要付费才能使用。但是像Android就是开源的,开源我们可以简单理解为源代码对外开放,我们可以随时修改它,也可以借助它来写一个新的系统。国产手机的系统大多都是在Android的基础上再搭建起来的。

**Linux的源码对外开放,用户能够随意改造它,在Linux之上做出自己的系统,**Linux的开源也为它迎来了很多用户。Linux开源几十年的发展中不断壮大,如今Linux已经嵌入到我们生活的方方面面,无论是日常使用的软件还是服务器都能遇见它。

2.Linux交互方式

下面就是我们经常打交道的Linux

这和我们之前的Windows等图形化界面完全不同,这是命令行交互Shell ,我们需要通过指令来和操作系统交流。图形界面和命令行是并行的交互方式,图形界面并不是建立在命令行之上的,它是独立运行的。Windows操作系统就同时拥有两种交互方式,可以在图形界面下打开终端使用命令行。

图形化界面是另一层应用程序,我们可以选择安装,但Linux大多还是采用命令行的方式交互。

无论是图形化(GUI)还是命令行交互(Shell),它们都是建立在系统内核之上的,它们都会和系统内核沟通,内核再负责调取相对应的硬件资源。

我们简化理解为操作系统 = 内核+外壳程序(GUI或Shell) 。我们日常管理文件就是在外壳程序进行的,它确保了用户能够看见文件并管理文件 ,但文件的实际存储和操作是内核负责的。简单来说我们能看见并能和它交互的都叫外壳程序,其余的都是系统内核。

这样做的原因在于用户不擅长访问内核,内核是要直接和硬件打交道的,因此外壳程序相当于一个翻译者 ,我们输入我们的需求,内核处理后再和硬件沟通,最后将结果返回到外壳程序,让我们看见。由此可见,外壳程序非常关键 ,只有拥有这个翻译官,我们才能随心操作计算机。所以外壳程序的安全性很重要 ,因此我们的**每一次指令或操作,外壳程序都会创建子进程,子进程帮我们进行解释,保证外壳自身安全。**就像公司的几乎每次任务都是派员工解决,就算有一两个任务没完成,也不会影响整个公司。如果每次都是CEO出行解决,任务失败一两次可能就会导致公司信誉降低,影响其安全性。

3.Linux文件的结构

在Linux上,一切都是建立在文件上的,包括系统的内核的内容都是以文件的形式存储的, 文件以多叉树的形式存储这颗多叉树有一个根目录,写作"/",一切数据都是在根目录下存储的,维持系统运作的相关文件也都在里面,这也是为什么我们一安装Linux里面就会有很多目录和文件

Linux根目录之上再无任何其它数据,就像一棵树的根一样,往更深的地方挖不出东西来。Linux的一且系统文件和个人数据都存放在根目录下,如果我们将根目录删除,就意味着整个Linux系统,包括所有的个人数据都会删除。

文件既然是以多叉树的形式存储,那么如何定位它们呢?这就要用到多叉树的性质了。我们学二叉树时就知道树有一个规则,即不能成环,也就是说我们可以用父子关系来讲述树中上下结点的关系。 多叉树中,一个父节点可以有多个子节点,但一个子节点有且只能有一个父节点 。在Linux中,根目录/是一切文件的父亲,子文件不断向它当前唯一的父节点走,最终能找到根节点。那么我们记录找寻根节点过程,再逆过程就能定位文件了。

4.Linux定位的写法

(1)工作目录

我们使用Linux系统时,一切都是在根目录下,用户本身也是身处是在某一个目录下进行操作的。当我们使用pwd查看我们的工作目录时,就会看到我们所处的目录

可以看到我现在是在root目录里面,cd就是将自己的工作目录切换到指定的目录里面。我们发现上面的路径都是以/开头,这叫绝对路径。

(2)绝对路径和相对路径

绝对路径都是以斜杠/开头,相对路径一定不以斜杠开头。第一根斜杠/叫做根目录,后续的斜杠都叫路径分隔符。 我们可以发现,根目录的写法起到了绝对路径标志、根目录下、路径分隔符三层含义 ,很值得我们品味。绝对路径在任何工作目录下都可以精准定位同一个文件或目录,只要是在该系统下就不会产生任何歧义。

目录是可以嵌套的,所有的目录都是嵌在根目录以下的。那么目录也有层级之分,如果我想要回到上级目录应该怎么做呢。Linux中,每当我们新建目录后都会默认带有两个隐藏目录,.和..

.目录就是当前目录的意思 ,当我们cd .之后工作目录不会变,它存在的意义一是为了系统逻辑,二是可以看到当前目录的属性

..目录是回退到上级目录 ,在根目录下,上级目录也是根目录,我们同样可以看到上级目录的属性。

借助上级目录和当前目录的操作,我们就可以使用相对路径来定位了 ,如../test就是指当前工作目录的上级目录下的test文件或目录。相对路径要把握好文件的结构,了解清楚当前的工作目录和要定位的文件目录在哪。

(3)路径结尾带/和不带的区别/

/root/和/root有区别吗?几乎没有区别,/root和/root/都意味着选中该目录,在不同指令下起到不同作用,cd就是切换工作目录到已选中的目录,mv /root /dst和mv /root/ /dst中都是移动选中的目录到指定目录,如果没有该目录就创建(可利用它来改名字),cp -r /root /dst和cp -r /root/ /dst也是复制选中的目录到指定目录。

唯一的区别在于**/root这种写法标志root可以是一个目录,但也不排除是一个文件,而/root/一定是一个目录**,如果是文件的话末尾加/是识别不了这个定位的。

pwd显示的/root标志着当前工作目录为/root这个所选目录。

使用不同指令配上同一个目录路径可以有很多解释,pwd和cd就是在该目录里面,mv和cp就是选中该目录。我们可以统一理解为选中目录。pwd就解释为工作在选择的目录,cd就是切换到选择的目录。

相关推荐
jz_ddk20 小时前
[LVGL] 从0开始,学LVGL:进阶应用与项目实战(上)
linux·信息可视化·嵌入式·gui·lvgl·界面设计
望获linux20 小时前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
MC丶科20 小时前
【SpringBoot常见报错与解决方案】端口被占用?Spring Boot 修改端口号的 3 种方法,第 3 种 90% 的人不知道!
java·linux·spring boot
江公望21 小时前
ubuntu kylin(优麒麟)和标准ubuntu的区别浅谈
linux·服务器·ubuntu·kylin
Lynnxiaowen21 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习
生态笔记21 小时前
PPT宏代码
linux·服务器·powerpoint
mucheni21 小时前
迅为RK3588开发板Ubuntu 系统开发ubuntu终端密码登录
linux·运维·ubuntu
skywoodsky21 小时前
Ubuntu 24.04环境下的挂起转休眠
linux
小云数据库服务专线21 小时前
GaussDB 应用侧报Read timed out解决方法
linux·服务器·gaussdb
资源补给站1 天前
服务器高效操作指南:Python 环境退出与 Linux 终端快捷键全解析
linux·服务器·python