diff --git a/.github/workflows/deploy-action.yml b/.github/workflows/deploy-action.yml new file mode 100644 index 0000000..7025373 --- /dev/null +++ b/.github/workflows/deploy-action.yml @@ -0,0 +1,26 @@ +name: Page Deploy +on: [push, pull_request] +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + - name: Install peotry + run: | + python -m pip install --upgrade pip + pip install poetry + - name: Install dependencies + run: | + poetry install + - name: Build site + run: | + poetry run mkdocs build --clean + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site \ No newline at end of file diff --git a/index.md b/docs/index.md similarity index 100% rename from index.md rename to docs/index.md diff --git "a/docs/\345\210\235\347\272\247\347\257\207/1.\345\274\225\350\250\200.md" "b/docs/\345\210\235\347\272\247\347\257\207/1.\345\274\225\350\250\200.md" new file mode 100644 index 0000000..2bf4865 --- /dev/null +++ "b/docs/\345\210\235\347\272\247\347\257\207/1.\345\274\225\350\250\200.md" @@ -0,0 +1 @@ +# 引言 \ No newline at end of file diff --git "a/\345\210\235\347\272\247\347\257\207/2.\344\273\200\344\271\210\346\230\257shell.md" "b/docs/\345\210\235\347\272\247\347\257\207/2.\344\273\200\344\271\210\346\230\257shell.md" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/2.\344\273\200\344\271\210\346\230\257shell.md" rename to "docs/\345\210\235\347\272\247\347\257\207/2.\344\273\200\344\271\210\346\230\257shell.md" diff --git "a/\345\210\235\347\272\247\347\257\207/3.\346\234\200\345\274\200\345\247\213\347\232\204shell\345\221\275\344\273\244\344\270\216shell\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234.md" "b/docs/\345\210\235\347\272\247\347\257\207/3.\346\234\200\345\274\200\345\247\213\347\232\204shell\345\221\275\344\273\244\344\270\216shell\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234.md" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/3.\346\234\200\345\274\200\345\247\213\347\232\204shell\345\221\275\344\273\244\344\270\216shell\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234.md" rename to "docs/\345\210\235\347\272\247\347\257\207/3.\346\234\200\345\274\200\345\247\213\347\232\204shell\345\221\275\344\273\244\344\270\216shell\347\232\204\345\237\272\346\234\254\346\223\215\344\275\234.md" diff --git "a/\345\210\235\347\272\247\347\257\207/4.\346\223\215\344\275\234\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204shell\345\221\275\344\273\244.md" "b/docs/\345\210\235\347\272\247\347\257\207/4.\346\223\215\344\275\234\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204shell\345\221\275\344\273\244.md" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/4.\346\223\215\344\275\234\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204shell\345\221\275\344\273\244.md" rename to "docs/\345\210\235\347\272\247\347\257\207/4.\346\223\215\344\275\234\346\226\207\344\273\266\347\263\273\347\273\237\347\232\204shell\345\221\275\344\273\244.md" diff --git "a/\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" "b/docs/\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" similarity index 87% rename from "\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" rename to "docs/\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" index 81e8e3b..82d2e34 100644 --- "a/\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" +++ "b/docs/\345\210\235\347\272\247\347\257\207/5.\346\226\207\344\273\266\350\267\257\345\276\204\345\222\214\345\275\223\345\211\215\345\267\245\344\275\234\347\233\256\345\275\225.md" @@ -1,103 +1,113 @@ -# 文件路径和当前工作目录 - -上一章我们学习了一部分操作文件系统的`shell`命令.在学习过程我们不止一次遇到这样的问题,如何表示一个文件或文件夹在文件系统的位置?同时,我们在上一章中提到,linux的文件系统被组织成一个类似树状的结构。因此,很自然地,我们想到可以使用从根节点开始的一个路径表示文件系统中的一个位置。这就是文件路径。另外,`shell`为了表示目前我们在文件夹中的位置,引入了当前工作目录这个概念。 - -## 文件路径 - -### 绝对路径 - -因为linux文件系统一定是**一棵**树,所以linux文件系统一定只有一个根。这个根节点是一个特殊的目录,它是linux文件系统的源头,一般被我们称为根目录,使用符号`/`表示。 - -从根目录开始,进入一系列文件夹之后,一定可以到达我们的目标文件或者文件夹。把这个路径上经过的所有文件夹的名称,和目标本身的名称按顺序记录下来,就形成了linux系统下文件的绝对路径。linux系统使用`/`作为路径上每个名称的分隔符。这个记号和根目录是同一个符号,但是含义完全不同。如果你的目标是一个文件夹,那么结尾有没有`/`都可以。但是在有些时候,结尾加上`/`可以暗示你这个目标是一个文件夹而不是一个文件。 - -使用文件的绝对路径已经可以表示linux文件系统所有的文件和文件夹的位置了。你现在可以使用`ls`和`cd`命令探索一下linux的文件系统了。 -> 注意:如果你现在拥有root权限(也就是linux系统的最高权限),那么请你在探索linux的文件系统的时候不要随意修改那些你不知道作用的文件和文件夹。可以用命令行提示符中显示的用户名来判断,如果你的用户名是root,那么你拥有root权限。 - -### 相对路径 - -在你进行探索的时候,可能会发现,总是使用绝对路径相当不方便。例如:现在我的根目录下有一个叫做`tmp`的文件夹,它的绝对路径是`/tmp`。我进入这个文件夹我需要使用 -```bash -cd /tmp -``` -还可以,对吗?进入文件夹之后使用`ls`发现`tmp`文件夹下面有一个叫做`kissshot`的文件夹。我对这文件夹感兴趣,我现在进入这个文件夹需要使用 -```bash -cd /tmp/kissshot -``` -还行,可以接受。这个文件夹下面又有一个叫做`acerolaorion`的文件夹,我对这个文件夹感兴趣,决定进入这个文件夹。我需要使用 -```bash -cd /tmp/kissshot/acerolaorion -``` -嗯,稍微有点长了。这个文件夹下面又有一个叫做`heartunderblade`的文件夹,现在想要进入这个文件夹要使用什么命令呢? -```bash -cd /tmp/kissshot/acerolaorion/heartunderblade -``` -是不是感觉有点开始红温了呢? - -总是使用绝对路径实在是太繁琐太麻烦了,在刚才那个例子中,相同的路径部分被重复写了很多遍。作为学习计算机的同学,我们应该有这样的想法,当一件事需要反复做很多遍的时候,我们就应当尝试使用计算机和程序来解决这个问题。 - -因此linux系统提供了相对路径的概念。相对路径相当于是从当前你所在的位置开始,沿着树到达目标的路径,当你的位置和目标距离比较近的时候,这个路径可能会比从根节点开始更短。另外,如果你在一个文件夹的内部使用相对路径,当这个文件夹整体在文件系统中的位置发生变化的时候,这个相对路径是不会发生变化的,也就是相对路径仍然可以用。 - -为了表示相对路径,我们需要额外拥有两种能力,一个是表示当前文件夹的能力,一个是在树状结构中表示上一层的能力。这两个在linux文件系统的相对路径中分别表示为`.`和`..`,其中`.`表示当前文件夹,`..`表示上一级文件夹。这两个记号既可以看做是路径中的特殊符号,从上一章`ls -a`的结果中也能看到,它们也可以被看做是每个文件夹都拥有的两个特殊的文件夹(硬链接)。 - -因为相对路径是从当前所在位置开始的路径,因此和绝对路径不同,相对路径的起点总是`.`,也就是相对路径总是`./`开头的。继续用上面我的那个例子,现在我所在的位置是`/tmp/kissshot/acerolaorion`,我现在想要进入`tmp/kissshot/acerolaorion/heartunderblade`。如果使用相对路径的话,命令是这样的 -```bash -cd ./heartunderblade -``` -也就是我要进入的文件夹是当前文件夹下的`heartunderblade`文件夹,这里的`.`表示当前文件夹,`/`是文件夹之间的间隔符。 - -那么如果我要从`/tmp/kissshot/acerolaorion`进入`/tmp/kissshot/42`呢?可以使用这个这个命令 -```bash -cd ./../42 -``` -也就是进入当前文件夹的上一级文件夹下的`42`这个文件夹。 - -但是即使是这样,人们还是觉得路径有一些冗余,因为相对路径使用的太频繁了,所以每次都以`./`开头还是让人觉得有点麻烦。因此我们可以省略`./`,linux文件系统会默认我们使用的相对路径,除非我们的路径是以`/`或者`~`开头的。(`~`是什么后面马上会讲到) - -也就是上面的两条指令分别可以省略为 -```bash -cd heartunderblade -``` -和 -```bash -cd ../42 -``` - -最后,我们有这样一个问题,如果想要从`/tmp/kissshot/acerolaorion/heartunderblade`回到`/tmp`,使用相对路径应该怎么做呢?其实很简单,我相信大家应该都能想到 -```bash -cd ../../.. -``` -看上去有些奇怪,但是没问题。 - -### 文件系统中一个特殊的位置——主目录(home) - -在这一章的最开始,我们已经介绍了一个文件系统中的特殊位置,根目录(`/`)。现在我们要介绍linux文件系统中的另一个特殊位置,主目录。linux系统上,每个用户都有一个自己的主目录,如果你是`root`用户,那么主目录的路径是`/root`,如果你是其他用户并且你的文件名是`xxx`,那么主目录的路径是`/home/xxx`。在linux系统下,所有用户数据都应该放在这个用户的主目录下,这样可以保证不同用户的数据之间不会互相干扰。 - -许多软件软件的配置文件都存在于用户的主目录中,它们通常都是隐藏文件。例如:上一章在使用`ls -a`的时候,文件夹下面可能还出现了名为`.bashrc`的文件,这是`bash`的配置文件。这样不同用户对同一个软件可以拥有不同的配置。 - -因为主目录的特殊地位,所以主目录也可以作为相对路径的起点,使用`~`表示。这是linux系统的文件路径中的一个特殊记号。 - -## 当前工作目录 - -**当前工作目录**(pwd, **p**resent **w**orking **d**irectory)是`shell`当中的一个概念。一句话来说,当前工作目录就是当前所在的文件夹。因为linux文件系统中支持相对路径,因此`shell`命令中使用相对路径的时候需要有一个当前位置。这个当前位置就是当前工作目录。 - -### 查看当前工作目录 - -一般有三种方式可以查看当前工作目录。 - -第一种方式是通过命令行提示符。 - -默认的命令行提示符中包含当前工作目录,因为我们在使用命令的时候经常需要观察当前我们所在的位置。如果你选择使用自己配置的命令行提示符,一般也建议在命令行提示符中包含当前工作目录(也可以是当前工作目录的缩写)。这是最简单的一种查看当前工作目录的方式。 -> 自己配置命令行提示符的方式会在[第20章]()中讲到。 - -第二种方式是通过`pwd`命令。 - -这个命令是GNU coreutils中的一个软件。这个命令的用法也很简单,就是输入`pwd`然后回车就会返回当前工作目录。 - -第三种方式是通过查看环境变量。如果你不知道什么是环境变量,跳过这里也没关系,环境变量的具体内容会在[第20章]()中讲解。环境变量中有一项`PWD`记录当`pwd`路径。可以使用命令`printenv PWD`来查看环境变量中`PWD`的值。 -> 环境变量`PWD`中的值可能与`pwd`输出的值不完全相同,这是因为linux文件系统中存在链接,导致文件系统中从根目录开始到某个节点的路径不一定唯一。更具体的内容会在[第13章]()中讲到。 - -## 小结 - -这一章的内容比较简单,但是十分常用。这一章介绍了linux系统中文件路径的表示方式,包括绝对路径和相对路径。在相对路径中会使用三个特殊记号: `.`表示当前目录,`..`表示当前目录的上一级目录,`~`表示用户的主目录。为了在`shell`中表示当前位置,`shell`中引入了当前工作目录这个概念。有了这些基础知识之后,我们就能更方便地操作文件系统了。 - +# 文件路径和当前工作目录 + +上一章我们学习了一部分操作文件系统的`shell`命令.在学习过程我们不止一次遇到这样的问题,如何表示一个文件或文件夹在文件系统的位置?同时,我们在上一章中提到,linux的文件系统被组织成一个类似树状的结构。因此,很自然地,我们想到可以使用从根节点开始的一个路径表示文件系统中的一个位置。这就是文件路径。另外,`shell`为了表示目前我们在文件夹中的位置,引入了当前工作目录这个概念。 + +## 文件路径 + +### 绝对路径 + +因为linux文件系统一定是**一棵**树,所以linux文件系统一定只有一个根。这个根节点是一个特殊的目录,它是linux文件系统的源头,一般被我们称为根目录,使用符号`/`表示。 + +从根目录开始,进入一系列文件夹之后,一定可以到达我们的目标文件或者文件夹。把这个路径上经过的所有文件夹的名称,和目标本身的名称按顺序记录下来,就形成了linux系统下文件的绝对路径。linux系统使用`/`作为路径上每个名称的分隔符。这个记号和根目录是同一个符号,但是含义完全不同。如果你的目标是一个文件夹,那么结尾有没有`/`都可以。但是在有些时候,结尾加上`/`可以暗示你这个目标是一个文件夹而不是一个文件。 + +使用文件的绝对路径已经可以表示linux文件系统所有的文件和文件夹的位置了。你现在可以使用`ls`和`cd`命令探索一下linux的文件系统了。 +> 注意:如果你现在拥有root权限(也就是linux系统的最高权限),那么请你在探索linux的文件系统的时候不要随意修改那些你不知道作用的文件和文件夹。可以用命令行提示符中显示的用户名来判断,如果你的用户名是root,那么你拥有root权限。 + +### 相对路径 + +在你进行探索的时候,可能会发现,总是使用绝对路径相当不方便。例如:现在我的根目录下有一个叫做`tmp`的文件夹,它的绝对路径是`/tmp`。我进入这个文件夹我需要使用 +```bash +cd /tmp +``` +还可以,对吗?进入文件夹之后使用`ls`发现`tmp`文件夹下面有一个叫做`kissshot`的文件夹。我对这文件夹感兴趣,我现在进入这个文件夹需要使用 +```bash +cd /tmp/kissshot +``` +还行,可以接受。这个文件夹下面又有一个叫做`acerolaorion`的文件夹,我对这个文件夹感兴趣,决定进入这个文件夹。我需要使用 +```bash +cd /tmp/kissshot/acerolaorion +``` +嗯,稍微有点长了。这个文件夹下面又有一个叫做`heartunderblade`的文件夹,现在想要进入这个文件夹要使用什么命令呢? +```bash +cd /tmp/kissshot/acerolaorion/heartunderblade +``` +是不是感觉有点开始红温了呢? + +总是使用绝对路径实在是太繁琐太麻烦了,在刚才那个例子中,相同的路径部分被重复写了很多遍。作为学习计算机的同学,我们应该有这样的想法,当一件事需要反复做很多遍的时候,我们就应当尝试使用计算机和程序来解决这个问题。 + +因此linux系统提供了相对路径的概念。相对路径相当于是从当前你所在的位置开始,沿着树到达目标的路径,当你的位置和目标距离比较近的时候,这个路径可能会比从根节点开始更短。另外,如果你在一个文件夹的内部使用相对路径,当这个文件夹整体在文件系统中的位置发生变化的时候,这个相对路径是不会发生变化的,也就是相对路径仍然可以用。 + +为了表示相对路径,我们需要额外拥有两种能力,一个是表示当前文件夹的能力,一个是在树状结构中表示上一层的能力。这两个在linux文件系统的相对路径中分别表示为`.`和`..`,其中`.`表示当前文件夹,`..`表示上一级文件夹。这两个记号既可以看做是路径中的特殊符号,从上一章`ls -a`的结果中也能看到,它们也可以被看做是每个文件夹都拥有的两个特殊的文件夹(硬链接)。 + +因为相对路径是从当前所在位置开始的路径,因此和绝对路径不同,相对路径的起点总是`.`,也就是相对路径总是`./`开头的。继续用上面我的那个例子,现在我所在的位置是`/tmp/kissshot/acerolaorion`,我现在想要进入`tmp/kissshot/acerolaorion/heartunderblade`。如果使用相对路径的话,命令是这样的 +```bash +cd ./heartunderblade +``` +也就是我要进入的文件夹是当前文件夹下的`heartunderblade`文件夹,这里的`.`表示当前文件夹,`/`是文件夹之间的间隔符。 + +那么如果我要从`/tmp/kissshot/acerolaorion`进入`/tmp/kissshot/42`呢?可以使用这个这个命令 +```bash +cd ./../42 +``` +也就是进入当前文件夹的上一级文件夹下的`42`这个文件夹。 + +但是即使是这样,人们还是觉得路径有一些冗余,因为相对路径使用的太频繁了,所以每次都以`./`开头还是让人觉得有点麻烦。因此我们可以省略`./`,linux文件系统会默认我们使用的相对路径,除非我们的路径是以`/`或者`~`开头的。(`~`是什么后面马上会讲到) + +也就是上面的两条指令分别可以省略为 +```bash +cd heartunderblade +``` +和 +```bash +cd ../42 +``` + +最后,我们有这样一个问题,如果想要从`/tmp/kissshot/acerolaorion/heartunderblade`回到`/tmp`,使用相对路径应该怎么做呢?其实很简单,我相信大家应该都能想到 +```bash +cd ../../.. +``` +看上去有些奇怪,但是没问题。 + +### 文件系统中一个特殊的位置——主目录(home) + +在这一章的最开始,我们已经介绍了一个文件系统中的特殊位置,根目录(`/`)。现在我们要介绍linux文件系统中的另一个特殊位置,主目录。linux系统上,每个用户都有一个自己的主目录,如果你是`root`用户,那么主目录的路径是`/root`,如果你是其他用户并且你的文件名是`xxx`,那么主目录的路径是`/home/xxx`。在linux系统下,所有用户数据都应该放在这个用户的主目录下,这样可以保证不同用户的数据之间不会互相干扰。 + +许多软件软件的配置文件都存在于用户的主目录中,它们通常都是隐藏文件。例如:上一章在使用`ls -a`的时候,文件夹下面可能还出现了名为`.bashrc`的文件,这是`bash`的配置文件。这样不同用户对同一个软件可以拥有不同的配置。 + +因为主目录的特殊地位,所以主目录也可以作为相对路径的起点,使用`~`表示。这是linux系统的文件路径中的一个特殊记号。 + +需要注意的是,`~`跟`.`和`..`不完全相同。`~`并不是不是一个文件,它是一个特殊记号,这个记号在`shell`解析命令行参数的时候就会被展开。你可以尝试输入一下命令。 +```bash +echo ~ +``` +根据我们所学的`echo`的功能,这条命令应该输出`~`这个符号才对。但是我们发现,`echo`却输出了我们自己的主目录的绝对路径。这就是因为`~`这个符号被`bash`展开成主目录的绝对路径之后才被当做参数传入`echo`的。 + +`bash`的展开是一个有点复杂但是很有用的功能,具体内容会在[第20章]()中讲解。这里我们只要知道,有的时候一些特殊的符号或者符号组合会在`shell`中被替换成另外的东西。如果一个命令的运行结果出乎你的意料,可能要考虑你的参数中是否有特殊符号被展开了。通常避免展开的方式就是使用引号把你的参数包裹起来,就像我们对待参数中出现空格的时候做的那样。 + +最后,`bash`(其他`shell`应该也差不多),还提供一个关于主目录的展开,`~xxx`如果`xxx`是一个有效的用户名,那么这个东西会被展开成`xxx`这个用户的主目录绝对路径。 + +## 当前工作目录 + +**当前工作目录**(pwd, **p**resent **w**orking **d**irectory)是`shell`当中的一个概念。一句话来说,当前工作目录就是当前所在的文件夹。因为linux文件系统中支持相对路径,因此`shell`命令中使用相对路径的时候需要有一个当前位置。这个当前位置就是当前工作目录。 + +### 查看当前工作目录 + +一般有三种方式可以查看当前工作目录。 + +第一种方式是通过命令行提示符。 + +默认的命令行提示符中包含当前工作目录,因为我们在使用命令的时候经常需要观察当前我们所在的位置。如果你选择使用自己配置的命令行提示符,一般也建议在命令行提示符中包含当前工作目录(也可以是当前工作目录的缩写)。这是最简单的一种查看当前工作目录的方式。 +> 自己配置命令行提示符的方式会在[第20章]()中讲到。 + +第二种方式是通过`pwd`命令。 + +这个命令是GNU coreutils中的一个软件。这个命令的用法也很简单,就是输入`pwd`然后回车就会返回当前工作目录。 + +第三种方式是通过查看环境变量。如果你不知道什么是环境变量,跳过这里也没关系,环境变量的具体内容会在[第20章]()中讲解。环境变量中有一项`PWD`记录当`pwd`路径。可以使用命令`printenv PWD`来查看环境变量中`PWD`的值。 +> 环境变量`PWD`中的值可能与`pwd`输出的值不完全相同,这是因为linux文件系统中存在链接,导致文件系统中从根目录开始到某个节点的路径不一定唯一。更具体的内容会在[第13章]()中讲到。 + +## 小结 + +这一章的内容比较简单,但是十分常用。这一章介绍了linux系统中文件路径的表示方式,包括绝对路径和相对路径。在相对路径中会使用三个特殊记号: `.`表示当前目录,`..`表示当前目录的上一级目录,`~`表示用户的主目录。为了在`shell`中表示当前位置,`shell`中引入了当前工作目录这个概念。有了这些基础知识之后,我们就能更方便地操作文件系统了。 + 当然,`shell`当中还有更多的和文件系统相关的命令,我们将在下一章介绍它们。 \ No newline at end of file diff --git "a/docs/\345\210\235\347\272\247\347\257\207/6.\346\233\264\345\244\232\347\232\204\346\226\207\344\273\266\346\223\215\344\275\234shell\345\221\275\344\273\244.md" "b/docs/\345\210\235\347\272\247\347\257\207/6.\346\233\264\345\244\232\347\232\204\346\226\207\344\273\266\346\223\215\344\275\234shell\345\221\275\344\273\244.md" new file mode 100755 index 0000000..51e5594 --- /dev/null +++ "b/docs/\345\210\235\347\272\247\347\257\207/6.\346\233\264\345\244\232\347\232\204\346\226\207\344\273\266\346\223\215\344\275\234shell\345\221\275\344\273\244.md" @@ -0,0 +1,9 @@ +# 更多的文件操作shell命令 + +上一章我们介绍了linux文件系统下如何表示文件路径,然后介绍了什么时候pwd。这一章我将介绍更多的文件系统的`shell`命令。这些命令一般都有很多的参数,但是其中很多参数的功能并不常用而且理解起来也完全不困难,我在这里一一介绍的话就太无聊了。因此这里我只会介绍这些命令的常用功能,其他的命令行参数大家可以自己去搜索相关资料。 + +## 复制文件——cp + +文件系统关于文件操作的一个很重要的能力就是复制和移动文件。在有图形界面的文件系统中,我们可以很方便地使用拖动或者一些快捷键移动和复制文件。但是在`shell`当中,当然是使用指令。这里我们先介绍用于复制文件的指令`cp`(**c**o**p**y)。 + +### 基础用法 \ No newline at end of file diff --git "a/\345\210\235\347\272\247\347\257\207/index.md" "b/docs/\345\210\235\347\272\247\347\257\207/index.md" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/index.md" rename to "docs/\345\210\235\347\272\247\347\257\207/index.md" diff --git "a/\345\210\235\347\272\247\347\257\207/resource/2-1.shell-cli.png" "b/docs/\345\210\235\347\272\247\347\257\207/resource/2-1.shell-cli.png" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/resource/2-1.shell-cli.png" rename to "docs/\345\210\235\347\272\247\347\257\207/resource/2-1.shell-cli.png" diff --git "a/\345\210\235\347\272\247\347\257\207/resource/2-2.fish-pred.png" "b/docs/\345\210\235\347\272\247\347\257\207/resource/2-2.fish-pred.png" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/resource/2-2.fish-pred.png" rename to "docs/\345\210\235\347\272\247\347\257\207/resource/2-2.fish-pred.png" diff --git "a/\345\210\235\347\272\247\347\257\207/resource/2-3.fish-bash.png" "b/docs/\345\210\235\347\272\247\347\257\207/resource/2-3.fish-bash.png" similarity index 100% rename from "\345\210\235\347\272\247\347\257\207/resource/2-3.fish-bash.png" rename to "docs/\345\210\235\347\272\247\347\257\207/resource/2-3.fish-bash.png" diff --git "a/docs/\345\210\235\347\272\247\347\257\207/resource/2-4.kernel-and-shell.jpg" "b/docs/\345\210\235\347\272\247\347\257\207/resource/2-4.kernel-and-shell.jpg" new file mode 100755 index 0000000..be8943e Binary files /dev/null and "b/docs/\345\210\235\347\272\247\347\257\207/resource/2-4.kernel-and-shell.jpg" differ diff --git "a/\351\231\204\345\275\225/A.\345\256\211\350\243\205WSL2.md" "b/docs/\351\231\204\345\275\225/A.\345\256\211\350\243\205WSL2.md" similarity index 100% rename from "\351\231\204\345\275\225/A.\345\256\211\350\243\205WSL2.md" rename to "docs/\351\231\204\345\275\225/A.\345\256\211\350\243\205WSL2.md" diff --git "a/\351\231\204\345\275\225/B.\345\256\211\350\243\205\350\231\232\346\213\237\346\234\272.md" "b/docs/\351\231\204\345\275\225/B.\345\256\211\350\243\205\350\231\232\346\213\237\346\234\272.md" similarity index 100% rename from "\351\231\204\345\275\225/B.\345\256\211\350\243\205\350\231\232\346\213\237\346\234\272.md" rename to "docs/\351\231\204\345\275\225/B.\345\256\211\350\243\205\350\231\232\346\213\237\346\234\272.md" diff --git "a/\351\231\204\345\275\225/index.md" "b/docs/\351\231\204\345\275\225/index.md" similarity index 100% rename from "\351\231\204\345\275\225/index.md" rename to "docs/\351\231\204\345\275\225/index.md" diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..1b69cd6 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,3 @@ +site_name: Linux shell Tutorial +nav: + - Home: index.md \ No newline at end of file diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..309e4dd --- /dev/null +++ b/poetry.lock @@ -0,0 +1,388 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +description = "Copy your docs directly to the gh-pages branch." +optional = false +python-versions = "*" +files = [ + {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, + {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, +] + +[package.dependencies] +python-dateutil = ">=2.8.1" + +[package.extras] +dev = ["flake8", "markdown", "twine", "wheel"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markdown" +version = "3.7" +description = "Python implementation of John Gruber's Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, + {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, +] + +[package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] +testing = ["coverage", "pyyaml"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +description = "A deep merge function for 🐍." +optional = false +python-versions = ">=3.6" +files = [ + {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, + {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +description = "Project documentation with Markdown." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e"}, + {file = "mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} +ghp-import = ">=1.0" +jinja2 = ">=2.11.1" +markdown = ">=3.3.6" +markupsafe = ">=2.0.1" +mergedeep = ">=1.3.4" +mkdocs-get-deps = ">=0.2.0" +packaging = ">=20.5" +pathspec = ">=0.11.1" +pyyaml = ">=5.1" +pyyaml-env-tag = ">=0.1" +watchdog = ">=2.0" + +[package.extras] +i18n = ["babel (>=2.9.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +description = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134"}, + {file = "mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c"}, +] + +[package.dependencies] +mergedeep = ">=1.3.4" +platformdirs = ">=2.2.0" +pyyaml = ">=5.1" + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +description = "A custom YAML tag for referencing environment variables in YAML files. " +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, + {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, +] + +[package.dependencies] +pyyaml = "*" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "watchdog" +version = "5.0.3" +description = "Filesystem events monitoring" +optional = false +python-versions = ">=3.9" +files = [ + {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:85527b882f3facda0579bce9d743ff7f10c3e1e0db0a0d0e28170a7d0e5ce2ea"}, + {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:53adf73dcdc0ef04f7735066b4a57a4cd3e49ef135daae41d77395f0b5b692cb"}, + {file = "watchdog-5.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e25adddab85f674acac303cf1f5835951345a56c5f7f582987d266679979c75b"}, + {file = "watchdog-5.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f01f4a3565a387080dc49bdd1fefe4ecc77f894991b88ef927edbfa45eb10818"}, + {file = "watchdog-5.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:91b522adc25614cdeaf91f7897800b82c13b4b8ac68a42ca959f992f6990c490"}, + {file = "watchdog-5.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d52db5beb5e476e6853da2e2d24dbbbed6797b449c8bf7ea118a4ee0d2c9040e"}, + {file = "watchdog-5.0.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:94d11b07c64f63f49876e0ab8042ae034674c8653bfcdaa8c4b32e71cfff87e8"}, + {file = "watchdog-5.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:349c9488e1d85d0a58e8cb14222d2c51cbc801ce11ac3936ab4c3af986536926"}, + {file = "watchdog-5.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:53a3f10b62c2d569e260f96e8d966463dec1a50fa4f1b22aec69e3f91025060e"}, + {file = "watchdog-5.0.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:950f531ec6e03696a2414b6308f5c6ff9dab7821a768c9d5788b1314e9a46ca7"}, + {file = "watchdog-5.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae6deb336cba5d71476caa029ceb6e88047fc1dc74b62b7c4012639c0b563906"}, + {file = "watchdog-5.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1021223c08ba8d2d38d71ec1704496471ffd7be42cfb26b87cd5059323a389a1"}, + {file = "watchdog-5.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:752fb40efc7cc8d88ebc332b8f4bcbe2b5cc7e881bccfeb8e25054c00c994ee3"}, + {file = "watchdog-5.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a2e8f3f955d68471fa37b0e3add18500790d129cc7efe89971b8a4cc6fdeb0b2"}, + {file = "watchdog-5.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b8ca4d854adcf480bdfd80f46fdd6fb49f91dd020ae11c89b3a79e19454ec627"}, + {file = "watchdog-5.0.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:90a67d7857adb1d985aca232cc9905dd5bc4803ed85cfcdcfcf707e52049eda7"}, + {file = "watchdog-5.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:720ef9d3a4f9ca575a780af283c8fd3a0674b307651c1976714745090da5a9e8"}, + {file = "watchdog-5.0.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:223160bb359281bb8e31c8f1068bf71a6b16a8ad3d9524ca6f523ac666bb6a1e"}, + {file = "watchdog-5.0.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:560135542c91eaa74247a2e8430cf83c4342b29e8ad4f520ae14f0c8a19cfb5b"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dd021efa85970bd4824acacbb922066159d0f9e546389a4743d56919b6758b91"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_armv7l.whl", hash = "sha256:78864cc8f23dbee55be34cc1494632a7ba30263951b5b2e8fc8286b95845f82c"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_i686.whl", hash = "sha256:1e9679245e3ea6498494b3028b90c7b25dbb2abe65c7d07423ecfc2d6218ff7c"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_ppc64.whl", hash = "sha256:9413384f26b5d050b6978e6fcd0c1e7f0539be7a4f1a885061473c5deaa57221"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:294b7a598974b8e2c6123d19ef15de9abcd282b0fbbdbc4d23dfa812959a9e05"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_s390x.whl", hash = "sha256:26dd201857d702bdf9d78c273cafcab5871dd29343748524695cecffa44a8d97"}, + {file = "watchdog-5.0.3-py3-none-manylinux2014_x86_64.whl", hash = "sha256:0f9332243355643d567697c3e3fa07330a1d1abf981611654a1f2bf2175612b7"}, + {file = "watchdog-5.0.3-py3-none-win32.whl", hash = "sha256:c66f80ee5b602a9c7ab66e3c9f36026590a0902db3aea414d59a2f55188c1f49"}, + {file = "watchdog-5.0.3-py3-none-win_amd64.whl", hash = "sha256:f00b4cf737f568be9665563347a910f8bdc76f88c2970121c86243c8cfdf90e9"}, + {file = "watchdog-5.0.3-py3-none-win_ia64.whl", hash = "sha256:49f4d36cb315c25ea0d946e018c01bb028048023b9e103d3d3943f58e109dd45"}, + {file = "watchdog-5.0.3.tar.gz", hash = "sha256:108f42a7f0345042a854d4d0ad0834b741d421330d5f575b81cb27b883500176"}, +] + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "726616fdc3604045ac28992ea7b4adb70eedbdc306aa02856f52ecc114737ca6" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..2d197f4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,11 @@ +[tool.poetry] +name = "Linux-shell-Tutorial" +version = "0.1.0" +description = "Linux shell tutorial" +authors = ["Crimmy "] + +[tool.poetry.dependencies] +python = "^3.10" + +[tool.poetry.dev-dependencies] +mkdocs = "^1.2.3" diff --git "a/\345\210\235\347\272\247\347\257\207/1.\345\274\225\350\250\200.md" "b/\345\210\235\347\272\247\347\257\207/1.\345\274\225\350\250\200.md" deleted file mode 100644 index e69de29..0000000