【Linux】Linux了解与基本指令(1)
hello~ 很高兴见到大家! 这次带来的是C++中关于Linux基本指令这部分的一些知识点,如果对你有所帮助的话,可否留下你宝贵的三连呢?
个 人 主 页: 默|笙
文章目录
- 一、认识Linux
- 二、操作系统(OS)
- 三、基本指令
- 1. 目录与普通文件
- 1.1 目录
- 1.2 普通文件
- 2. pwd 与 whoami
- 3. mkdir 与 touch
- 3.1 mkdir
- 3.2 touch
- 4. ls
- 5. 绝对路径和相对路径
- 6. tree 与 cd
- 6.1 tree
- 6.2 cd
- 7. rmdir 与 rm
- 7.1 rmdir
- 7.2 rm
- 8. 关于类型 与 file
一、认识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指令。
今天的分享就到此结束啦,如果对读者朋友们有所帮助的话,可否留下宝贵的三连呢~~
如果可以, 那就让我们共同努力, 一起走下去!