From 1a2ef0adaa07625f6fe67af27cc35511fdd94a1c Mon Sep 17 00:00:00 2001 From: cxykevin Date: Thu, 4 Jul 2024 20:46:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E8=B0=83=E7=BB=93=E6=9E=84=20(#8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://git.hmtsai.cn/study-area-cn/study-area-cn/pulls/8 Co-authored-by: cxykevin Co-committed-by: cxykevin --- src/SUMMARY.md | 18 +-- src/file_and_path/file_and_path.md | 42 ++++++ src/learn_linux_basic/file_and_path.md | 139 -------------------- src/learn_linux_basic/linux_common_sense.md | 124 +++++++++++++++++ src/learn_linux_basic/rocky_first_met.md | 5 +- 5 files changed, 179 insertions(+), 149 deletions(-) create mode 100644 src/file_and_path/file_and_path.md delete mode 100644 src/learn_linux_basic/file_and_path.md create mode 100644 src/learn_linux_basic/linux_common_sense.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 5ce713e..6d87aee 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -22,20 +22,22 @@ - [主板](./learn_computer_basic/motherboard.md) - [操作系统](./learn_computer_basic/operating_system.md) -# 学习Linux基础 +# 学习 Linux 基础 -- [初识Linux](./learn_linux_basic/the_linux_learning_path.md) - - [漫谈Linux学习之路](./learn_linux_basic/the_linux_learning_path.md) - - [Linux的发展历程](./learn_linux_basic/the_history_of_linux.md) - - [Linux发行版](./learn_linux_basic/linux_distro.md) - - [Rocky Linux初见](./learn_linux_basic/rocky_first_met.md) +- [初识 Linux](./learn_linux_basic/the_linux_learning_path.md) + - [漫谈 Linux 学习之路](./learn_linux_basic/the_linux_learning_path.md) + - [Linux 的发展历程](./learn_linux_basic/the_history_of_linux.md) + - [Linux 发行版](./learn_linux_basic/linux_distro.md) + - [Linux 常识](./learn_linux_basic/linux_common_sense.md) + - [Rocky Linux 安装](./learn_linux_basic/rocky_first_met.md) - [在 VMWare Workstation 上安装](./learn_linux_basic/install_rocky_linux/install_in_vmware.md) - [在 VirtualBox 上安装](./learn_linux_basic/install_rocky_linux/install_in_vbox.md) - [在你的电脑(实体机)上安装](./learn_linux_basic/install_rocky_linux/install_in_your_pc.md) - [安装 Rocky Linux](./learn_linux_basic/install_rocky_linux/install_rocky_linux.md) -- [文件与路径](./learn_linux_basic/file_and_path.md) - - [文件权限管理]() + - [Rocky Linux 初见]() +- [文件与路径](./file_and_path/file_and_path.md) - [文件目录管理]() + - [文件权限管理]() - [磁盘分区以及文件系统]() - [gzip与xz]() - [tar打包软件]() diff --git a/src/file_and_path/file_and_path.md b/src/file_and_path/file_and_path.md new file mode 100644 index 0000000..ec69e7c --- /dev/null +++ b/src/file_and_path/file_and_path.md @@ -0,0 +1,42 @@ +# 文件与路径 + +## Linux的文件结构 + +按照前文,我们所说的C盘就是 `/` 了。那么,我们的D盘和E盘等等呢?它们则被系统放到了别的地方,你甚至可以自定义这些地方(其实Windows也可以,不过放得很深),不过一般被放在了 `/mnt`,`/run/mount` 或者 `/media/你的用户名` 下。(根据发行版和桌面环境的不同有所区别。如果你是安装上文安装的,那么应该在 `/media/你的用户名` 里面) + +我们可以使用自带的文件管理器管理文件,就像Windows一样。 + +## 磁盘与挂载 + +你可能会发现一个东西:就是在根目录里,怎么还会有其它的磁盘呢?这是因为,在Linux系统下,所有的磁盘都需要挂载才能访问。而其它的磁盘必须挂载在根目录下。 + +之前我们说到了Linux“一切皆文件”。我们的硬盘其实也是一个文件。其中,通常 `/dev/sd+一个小写a-z字母`是你的硬盘(也有可能是 `/dev/nvmeX`(X是任意的数字) 或者 `/dev/mmcblkX`)。而分区是 `/dev/sd+一个小写a-z字母+X` (nvme比较不同),如 `/dev/sdc3`。 + +我们可以使用 `lsblk` 命令查看所有的硬盘和分区。 + +但是,磁盘文件并不能直接访问,这时候我们需要挂载了。 + +如果你有一个桌面或者文件管理器,那么它就会自动帮你执行操作。点击一下你的磁盘就可以挂载了。 + +关于挂载的内容,这里就不过多讲述了,后面会提到。 + +### Linux下的重要文件夹 + +刚装完Linux,你会看到根目录下面有一些目录:(都不要删!) + +* `/boot` 存放系统启动信息 +* `/dev` 大部分设备对应的文件,上文中提到了 +* `/proc` 所有的进程信息(Linux中“一切皆文件”的思想) +* `/lib` 存放所有重要的被软件调用的以来。有时会有`lib64` +* `/etc` 存放软件配置文件(其实很乱,相当于杂项) +* `/opt` 扩展软件目录,少部分软件会装到这里 +* `/tmp` 存放一些临时文件,通常被挂载到了内存 +* `/usr` 包含系统核心文件,其中的`bin`目录包含的上述除`cd`外的所有命令,`sbin`也是(仅限root的命令),这两个文件夹还被映射到了根目录同名文件夹。 +* `/var` 经常变动的一些重要的文件,也包含日志 +* `/sys` 也是一个重要的设备目录 +* `/home` 用户目录,相当于 `C:\Users`(MacOS:`/Users`) + +到这里,相信你已经掌握了Linux文件系统的简单结构。 + +--- +> study-area-cn diff --git a/src/learn_linux_basic/file_and_path.md b/src/learn_linux_basic/file_and_path.md deleted file mode 100644 index 71af5d1..0000000 --- a/src/learn_linux_basic/file_and_path.md +++ /dev/null @@ -1,139 +0,0 @@ -# 文件与路径 - -当你终于按照上面的教程安装好Linux,并激动地打开文件管理器的时候,你会惊叹:`我C盘呢?` - -## Linux的文件结构 - -当你第一次打开文件管理器的时候,你可能会看见“主文件夹”这样的字样,但是就是找不到C盘和D盘。 - -其实,Linux的文件管理结构还是和Windows有较大差别的。 - -> Windows的文件系统中的“路径分隔符”(就是你单机路径在文件夹之间的斜杠)是 `\` (右斜线),而Linux和MacOS(准确来说是任何POSIX标准的计算机系统)是 `/` (左斜线),Windows中左斜线被当成了参数的前缀符号(Linux中是`-`)。下文不再提及。 - -不过不要担心,我们所说的C盘就是 `/` 了(叫做根目录,真的只有一个斜杠)。那么,我们的D盘和E盘等等呢?它们则被系统放到了别的地方,你甚至可以自定义这些地方(其实Windows也可以,不过放得很深),不过一般被放在了 `/mnt`,`/run/mount` 或者 `/media/你的用户名` 下。(根据发行版和桌面环境的不同有所区别。如果你是安装上文安装的,那么应该在 `/media/你的用户名` 里面) - -而你所看到主文件夹(或者是用户目录),位于 `/home/你的用户名`(Linux中root用户比较特殊,就是`/root`),相当于 `C:\Users\你的用户名`(MacOS:`/Users/你的用户名`)。在这里你可以放置你的个人文件和代码。 - -另外,还有几个特殊的文件夹: - -1. `.` 代表当前所在的文件夹 -2. `..` 代表上一级文件夹,而 `/` 的上级文件夹就是它自己。 - -> 注:在Windows下也有一个隐藏的根目录,不过我们几乎访问不到也访问不了 - -## 基本命令行 - -上面的一切都是在图形界面下的操作。如果只有一个黑框框终端,我们该怎么办呢? - -首先,在终端中,记住:我们输入任何命令后都要接一个回车,让终端知道你打完了一行命令。 - -### `pwd` 查看当前目录 - -如何知道我们现在在哪?我们可以键入 - -```bash -pwd -``` - -就可以看到看下面立刻出现了一行文字(如果是一个刚打开的终端,那么通常在主文件夹里)。 - -### `ls` 列出所有文件和文件夹 - -但是只有这行命令,终端又不能像图形界面一样直观看到所有的文件。如果看不到文件夹下有什么文件,我们就相当于瞎子。 - -那么就要请出下面的命令了: - -```bash -ls -``` - -我们可以看到当前目录下有什么文件和文件夹。你应该还能看见颜色,不同颜色就代表了文件(夹)的不同类型。 - -`ls` 还有一些其它的参数,比如输入 `ls -al` 就可以看见纵向排列的文件详细信息了,输入文件名就可以筛选出那个文件夹内/文件本身。 - -### `cd` 切换目录 - -接下来,我们还要在文件系统中切换目录。那么,我们可以: - -```bash -cd <你想切换的目录> -``` - -如果你的目录以 `/` 开头,那么它就会从根目录去寻找,否则就会从当前目录去寻找。`cd ..` 就是返回上级目录。 - -这三个命令也是命令行中最常用的命令。如果你是第一次见到命令行,你是不是感觉自己很像个黑客? - -### `mv` 移动文件 - -那我们的重命名,剪切,复制,粘贴去哪了呢?在Linux命令行中,其实没有剪切。 - -```bash -mv <你想移动的目录> <目标或新的名字> -``` - -我们可以使用上面的命令移动或者重命名一个目录(是的,它们是一个命令)。 - -> 在同一磁盘内移动速度很快,但是跨磁盘就不一定了 - -### `cp` 复制文件 - -而复制也是一个道理: - -```bash -cp <你想复制的文件或目录> <新文件或目录的名字> -``` - -### `rm` 删除文件 - -都有复制了,怎么能没有删除呢? - -> 删除危险性较高,不要删除根目录或者其它重要目录!回车前再三确认! - -```bash -rm <你想删除的文件> -``` - -另外,删除文件夹的操作有点不一样: - -```bash -rm -r <你想删除的文件夹> -``` - -在`r`后面加上`f`就是强制删除了,而`rm -rf /*` 就是强制删除根目录下所有的文件。以后看到这串命令不要被骗了! - -> 如果你就是想尝试,那么请一定在虚拟机下,并且你就需要重装系统了。 - -## 磁盘与挂载 - -你可能会发现一个东西:就是在根目录里,怎么还会有其它的磁盘呢?这是因为,在Linux系统下,所有的磁盘都需要挂载才能访问。而其它的磁盘必须挂载在根目录下。 - -之前我们说到了Linux“一切皆文件”。我们的硬盘其实也是一个文件。其中,通常 `/dev/sd+一个小写a-z字母`是你的硬盘(也有可能是 `/dev/nvmeX`(X是任意的数字) 或者 `/dev/mmcblkX`)。而分区是 `/dev/sd+一个小写a-z字母+X` (nvme比较不同),如 `/dev/sdc3`。 - -我们可以使用 `lsblk` 命令查看所有的硬盘和分区。 - -但是,磁盘文件并不能直接访问,这时候我们需要挂载了。 - -如果你有一个桌面或者文件管理器,那么它就会自动帮你执行操作。点击一下你的磁盘就可以挂载了。 - -关于挂载的内容,这里就不过多讲述了,后面会提到。 - -### Linux下的重要文件夹 - -刚装完Linux,你会看到根目录下面有一些目录:(都不要删!) - -* `/boot` 存放系统启动信息 -* `/dev` 大部分设备对应的文件,上文中提到了 -* `/proc` 所有的进程信息(Linux中“一切皆文件”的思想) -* `/lib` 存放所有重要的被软件调用的以来。有时会有`lib64` -* `/etc` 存放软件配置文件(其实很乱,相当于杂项) -* `/opt` 扩展软件目录,少部分软件会装到这里 -* `/tmp` 存放一些临时文件,通常被挂载到了内存 -* `/usr` 包含系统核心文件,其中的`bin`目录包含的上述除`cd`外的所有命令,`sbin`也是(仅限root的命令),这两个文件夹还被映射到了根目录同名文件夹。 -* `/var` 经常变动的一些重要的文件,也包含日志 -* `/sys` 也是一个重要的设备目录 -* `/home` 用户目录,相当于 `C:\Users`(MacOS:`/Users`) - -到这里,相信你已经掌握了Linux文件系统的简单使用。 - ---- -> study-area-cn diff --git a/src/learn_linux_basic/linux_common_sense.md b/src/learn_linux_basic/linux_common_sense.md new file mode 100644 index 0000000..f0a5d8a --- /dev/null +++ b/src/learn_linux_basic/linux_common_sense.md @@ -0,0 +1,124 @@ +# Linux 常识 + +当你照着上面的教程,费尽千辛万苦,历经千难万险,终于安装上Rocky Linux后,你肯定会有一个问题:我C盘呢? + +其实,Linux的很多逻辑以及文件的组织结构都是与Windows大不相同的,接下来,我们就一起了解一下。 + +> 注意,以下操作,若无特殊说明,输入命令均在终端(Terminal)下操作,可以按下Ctrl-Alt-T呼出。 + +## Linux路径的格式 + +> 注:文件夹(Folder)和目录(directory)实际上是一个东西。只不过,我们在图形界面下更习惯叫文件夹,终端命令行下更喜欢叫目录。 + +Linux中目录的分隔符是`/`,而非Windows中的`\\`。 + +Linux中,每个文件夹下,都有两个特殊的目录,就是`.`和`..` + +1. `.` 代表当前所在的文件夹 +2. `..` 代表上一级文件夹,而 `/` 的上级文件夹就是它自己 + +> 这块似乎有一点不太好懂,我们通过实际的例子解释一下: + +假设我们当现在目录`/foo/bar`下,那么`/foo/bar/.`就等同于`/foo/bar`,`/foo/bar/..`,就等同于`/foo` + +如果一个路径以`/`开头,那代表这个目录是从根目录开始的,根目录就相当于Windows上的C盘,是存放系统的位置。 + +> 注:在Windows下也有一个隐藏的根目录,不过我们几乎访问不到也访问不了 + +而你所看到的主文件夹(或者是用户目录),位于 `/home/你的用户名`(Linux中root用户比较特殊,就是`/root`),相当于 `C:\Users\你的用户名`(MacOS:`/Users/你的用户名`)。在这里你可以放置你的个人文件和代码。 + +> 实际上,`/`只是一块硬盘的挂载点,后面会讲到 + +## 文件与目录的基本操作 + +### `ls` 列出文件 + +`ls`,顾名思义,就是list,列出当前目录下的文件,他的基本使用方法也很简单: + +```bash +ls <目录> +``` + +这个命令就会列出那个目录下的文件。如果没有参数,ls默认列出当前目录下的文件。你应该还能看见颜色,不同颜色就代表了文件(夹)的不同类型。 + +`ls` 还有一些其它的参数,比如输入 `ls -al` 就可以看见纵向排列的文件详细信息了,输入文件名就可以筛选出那个文件夹内/文件本身。 + +### `pwd` 打印工作目录 + +`pwd`,名字拆解出来,就是print work directory。也就是打印工作目录,这个命令可以让我们快速了解到我们当前所在的目录。 + +> 工作目录(work directory),可以简单的理解为用户当前所在的目录,在以后讲解shell的时候会进一步讲解这些概念。 + +使用方法也很简单: + +```bash +pwd +``` + +这样就会输出当前的工作目录。 + +### `cd` 切换目录 + +cd,更好理解了,就是change directory,切换目录的意思。 + +使用方法更简单了: + +```bash +cd <目录> +``` + +这样,就会把当前的工作目录切换到指定的目录了。 + +### `mkdir` 新建文件夹 + +我们刚学习使用Windows时,除了开机,第一件事应该就是新建文件夹了。 + +这个命令的意思就是字面上的,make directory,新建文件夹。 + +你可以使用下面的命令: + +```bash +mkdir <目录名> +``` + +另外,如果你想一次性创建多层目录,那么可以使用 `mkdir -p <多层目录>`,例如 `mkdir -p learn/linux/study`。 + +### `mv` 移动文件 + +那我们的重命名,剪切,复制,粘贴去哪了呢?在Linux命令行中,其实没有剪切。 + +```bash +mv <你想移动的目录> <目标或新的名字> +``` + +我们可以使用上面的命令移动或者重命名一个目录(是的,它们是一个命令)。 + +> 在同一磁盘内移动速度很快,但是跨磁盘就不一定了 + +### `cp` 复制文件 + +而复制也是一个道理: + +```bash +cp <你想复制的文件或目录> <新文件或目录的名字> +``` + +### `rm` 删除文件 + +都有复制了,怎么能没有删除呢? + +> 删除危险性较高,不要删除根目录或者其它重要目录!回车前再三确认! + +```bash +rm <你想删除的文件> +``` + +另外,删除文件夹的操作有点不一样: + +```bash +rm -r <你想删除的文件夹> +``` + +在`r`后面加上`f`就是强制删除了,而 `rm -rf /*` 就是强制删除根目录下所有的文件。以后看到这串命令不要被骗了! + +> 如果你真的想尝试,那么请一定在虚拟机下!搞坏系统作者可不负责! diff --git a/src/learn_linux_basic/rocky_first_met.md b/src/learn_linux_basic/rocky_first_met.md index 6e083fa..f777730 100644 --- a/src/learn_linux_basic/rocky_first_met.md +++ b/src/learn_linux_basic/rocky_first_met.md @@ -1,6 +1,6 @@ -# Rocky Linux 初见 +# Rocky Linux 安装 -既然我们的标题是`Rocky Linux 初见`,那么我们肯定要亲自动手安一遍系统。 +既然我们要学习Linux,那么我们肯定要亲自动手安一遍系统。 不过安系统并不是一个难事,有了前面的铺垫,其实自己也是可以搞明白的。 @@ -87,5 +87,6 @@ OS 2: Windows 11 * **[在 VMWare WS 上安装](./install_rocky_linux/install_in_vmware.md)** * **[在 VirtualBox 上安装](./install_rocky_linux/install_in_vbox.md)** * **[在你的电脑(实体机)安装](./install_rocky_linux/install_in_your_pc.md)** + --- > study-area-cn