hello~ 很高兴见到大家! 这次带来的是C++中关于Linux基本指令这部分的一些知识点,如果对你有所帮助的话,可否留下你宝贵的三连呢?
个 人 主 页 : 默|笙
一、认识Linux Linux 本身是一个强大、稳定、安全、开源且免费 的操作系统内核。而我们通常所说的Linux是基于Linux这个操作系统内核构建的完整操作系统。 为什么要学习Linux? 因为它很牛:它在服务器领域是绝对的霸主,又在超级计算、嵌入式设备和开发领域占据主导地位。在桌面系统这块,虽然市场份额不如windows和macOS,但它也是一个非常不错可供替代的选择。(我们平常电脑上看到的桌面就是桌面系统)。
为什么这么牛? 因为它开源且免费->安全->强大与稳定 。基石是它的开源与免费,任何人都能瞧见它的底层代码,像windows这样的不开源的商用系统,微软搞点小动作我们是完全不知道的,而且一旦发现问题也能够及时解决,修复速度是远超闭源系统的。开源与免费能保证它的安全,同时又能吸引全球各种大佬为其贡献代码,久而久之,Linux变得强大与稳定。
Linux 的名字来源于其创始人 林纳斯・托瓦兹(Linus Torvalds) 的名字与 “Unix” 的结合,关于Unix:它是一切现代操作系统的思想源头和技术基础,当然它和Linux没有继承关系,Linux不是它的直系后代。也有人认为Linux名字的由来是 Linux是 Linux is not Unix 的缩写(这是为了讽刺Unix的商业化即收费而有的幽默调侃)。
Linux分为技术版本和商业版本:
技术版本 :操作系统源代码版本即内核版本。由开发者社区主导,免费开源,技术更新快,适合学习、开发和个人使用。
商业版本:在社区版(技术版本)基础上进行企业级加固(如安全合规、热补丁、长周期支持),通过付费订阅提供SLA(技术保险合同)保障的技术支持与稳定性承诺。
二、操作系统(OS) 操作系统是管理计算机硬件与软件资源的系统软件,扮演用户/应用与硬件之间的桥梁角色 。它基于操作系统内核。
它就像我们人体的大脑一样,大脑可以协调各个器官,它可以协调管理各个系统(设备驱动、文件管理、内存管理)。因为有它,我们才可以正常使用计算机。正如没有大脑的躯体只是肉体,没有操作系统的计算机只是一堆硅片与金属,是它让计算机“活”了起来。 三、基本指令 先来了解一些基本指令:
ls:罗列该目录下的所有子目录与文件。
pwd:查看用户当前所在绝对路径。
whoami:显示当前谁在访问Linux系统。
mkdir:创建一个子目录。
cd:改变工作目录。将当前工作目录改变到指定的目录下。
touch:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建⼀个不存在的文件。
rmdir:删除空目录,不是空的它还删不了。
rm:
1. 目录与普通文件 1.1 目录 我们先来认识一下什么是目录:
目录(Directory) 是计算机文件系统中用于分类存储文件和其他目录的容器,也就是文件夹。
根目录 :符号 ‘/ ‘,它是整个Linux文件系统的起点(就像树的根部,这个系统的结构就像一棵多叉树,tree命令会讲到)。家目录 :符号 ‘~ ’,这是用户的私人空间。 普通用户:家目录在 /home/用户名(如 /home/alice),我是alice这个普通用户。
管理员(root):家目录是 /root(您当前所在位置),我是root这个管理员。
1.2 普通文件 普通文件是存储数据的基础单元(文本/图片/程序等),在windows系统中就是名字带有后缀的文件(如.h、.cpp等)。
文件 = 文件的内容 + 文件的属性 。文件的属性也会占用内存,比如我在windows系统中创造一个空文件,它没有内容,但是也会占据磁盘空间。有隐藏文件的存在 。Linux系统里的隐藏文件往往以.开头。(之后会讲)2. pwd 与 whoami 语法: pwd
作用:查看用户当前所在绝对路径。
它的意思是:我目前在根目录下的root子目录。 语法: whoami
作用:显示当前谁在访问Linux系统,我是谁。
我当前是root管理员。 3. mkdir 与 touch 3.1 mkdir
语法: mkdir [-p] [文件] 作用:创造一个子目录。 在root目录下创建一个test子目录。
加上选项 -p,我们可以创建一系列的目录。 3.2 touch
语法:touch [选项] [文件] 作用:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建⼀个不存在的文件。 在test目录下,创造一个test.c的普通文件。 4. ls
语法:ls [选项] [目录或文件] 作用:罗列该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 选项 :选项(Options) 是用于修改命令行为的特殊参数,通常以 - 或 – 开头。它们像“开关”一样,让用户精细控制命令的执行方式。 常用选项有:
-a: 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d:将目录像文件⼀样显示,而不是显示其下的文件。如:ls -d 指定目录。 -l:列出文件的详细信息。ls -l 写法等同于 ll。 选项可以组合使用。
我在root目录下面用mkdir指令创建了一个 test普通子目录和一个 .youcanseeme的隐藏子目录:
补充:这里的 . 的意思是当前目录,ls -d -l 显示的是当前目录以及它的属性。 5. 绝对路径和相对路径 绝对路径:是从根目录(/)开始的完整路径。参照点与起点固定唯一。
相对路径:是从当前目录开始的路径。参照点与起点随当前所在位置改变而改变。
绝对路径的唯一性 :无论你当前在文件系统的哪个位置(哪个工作目录),同一个文件或目录的绝对路径永远不变。 相对路径的相对性 :路径是否有效要取决于当前所在目录 。一旦自己所处目录改变,原来的相对路径很可能会失效,没有失效往往也会指向完全不同的地方。 绝对路径其实也能算是相对路径以root为参照点的一种情况。 相对路径依赖特殊符号:
‘ . ’ : 代表当前目录。’ .. ' :代表上一级目录。’ ~ ‘ :代表家目录。之前有提到过,Linux下的文件系统的结构就像一棵多叉树,事实也确实如此。其中,目录是树形结构的基础。 其中每一个目录都有着不同的功能和职责,比如/bin存放二进制文件,/usr存放安装程序。
结论1:这棵多叉树,叶子节点一定是空的目录或者普通文件。 结论2:路上的非叶子节点,本质上是目录。 无论是绝对路径还是相对路径,它们标识文件都是具有唯一性的(一个全局唯一,一个上下唯一),所以才能根据路径来找到文件。而这依赖于每个目录都只有一个父节点(从后往前推只有一条路到起点,这是因为只有一个父节点,那么反推回来也是如此)。 Linux的任何目录下,都要隐藏存在 . 和 .. ,可以把目录理解为一个节点,而这两个是两个节点自带的指针,一个指向它自己,一个指向自己的父节点。根节点的 .. 也指向自己。 6. tree 与 cd 6.1 tree 默认系统下,tree是没有安装的,安装需要一条指令,输入指令,它会自动为你安装:
centos: yum install -y tree
ubuntu: apt install -y tree
输入指令,它就会以当前目录为起点,为你生成一棵数来显示结构。 6.2 cd
语法:cd [指定目录路径或相对路径依赖的特殊符号] 作用:改变工作目录。将当前工作目录改变到指定的目录下。 第一个切换到家目录,第二个切换到根目录,第三个切换到test目录,使用绝对路径和相对路径都可以。 还有一个:cd - ,这个是切换到上一次所处路径。比如我现在 /root/test这里,我用 cd / 切换到根目录,之后我使用 cd - 就能切换回去到 /root/test。 7. rmdir 与 rm 7.1 rmdir 语法:rmdir [-p] [dirName]
作用:删除空目录,不是空的它还删不了。不太好用,主要了解rm。
7.2 rm 语法:rm [-f-i-r-v] [dirName/dir]
作用:删除文件或目录。
常用选项: -f:即使文件属性为只读(即写保护),亦直接删除。不会询问你是否要删除。
-i:删除前逐⼀询问确认。
-r:删除目录及其下所有文件。它的本质是递归删除,如果一个目录不为空,它会进入这个目录,若这个目录中有子目录,再查看这个子目录是否为空然后根据情况再进入,一直到叶子节点(空目录或文件),再开始删除,然后回归,然后删除,直到删完为止。
可以试试删除根目录,不过之后需要重装一遍系统。一般只有root管理员账户才有这个权利。 8. 关于类型 与 file 在Linux系统里面,文件的类型与后缀是没有关系的。但是一些Linux里的工具比如gcc编译器就要看后缀,所以一般都会加上后缀。
我们可以通过属性来查看它的类型,看它是目录还是普通文件。 要查看一个文件的具体类型,需要file指令。
今天的分享就到此结束啦,如果对读者朋友们有所帮助的话,可否留下宝贵的三连呢~~
如果可以, 那就让我们共同努力, 一起走下去!