From 8e2060d2aab84d7afaebe8c1be4105a536941654 Mon Sep 17 00:00:00 2001 From: feilong Date: Thu, 27 Jan 2022 16:51:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E7=BB=84=E5=AE=9E?= =?UTF-8?q?=E7=94=A8=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config.json" | 11 ++- .../exercise_01.json" | 7 ++ .../exercise_01.md" | 29 ++++++++ .../exercise_01.md" | 2 +- .../exercise_01.md" | 6 +- .../3.sed\345\221\275\344\273\244/1.txt" | 9 +++ .../config.json" | 10 +++ .../exercise_01.json" | 7 ++ .../exercise_01.md" | 68 +++++++++++++++++++ .../config.json" | 10 +++ .../exercise_01.json" | 7 ++ .../exercise_01.md" | 68 +++++++++++++++++++ .../config.json" | 10 +++ .../exercise_01.json" | 7 ++ .../exercise_01.md" | 63 +++++++++++++++++ .../config.json" | 10 +++ .../exercise_01.json" | 7 ++ .../exercise_01.md" | 62 +++++++++++++++++ .../config.json" | 10 +++ .../exercise_01.json" | 7 ++ .../exercise_01.md" | 49 +++++++++++++ .../config.json" | 2 +- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- .../config.json" | 6 -- 32 files changed, 454 insertions(+), 67 deletions(-) create mode 100644 "data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.json" create mode 100644 "data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.md" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/1.txt" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/config.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.md" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/config.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.md" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/config.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.md" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/config.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.md" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/config.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.json" create mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.md" rename "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/config.json" => "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/config.json" (72%) delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/1.grep\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/10.httpie\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/2.awk\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/3.sed\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/4.xargs\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/5.lsof\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/6.df\345\222\214du\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/7.tcpdump\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/8.netstat\345\221\275\344\273\244/config.json" delete mode 100644 "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/9.cURL\345\222\214wget\345\221\275\344\273\244/config.json" diff --git "a/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/config.json" "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/config.json" index 4e4c6b3..6f16a24 100644 --- "a/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/config.json" +++ "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/config.json" @@ -1,6 +1,13 @@ { "node_id": "gml-21ff39f056a142a4988e5717b93569d2", - "keywords": [], + "keywords": [ + "安装Ubuntu", + "安装CentOS" + ], + "keywords_must": ["Linux安装"], + "keywords_forbid": [], "children": [], - "export": [] + "export": [ + "exercise_01.json" + ] } \ No newline at end of file diff --git "a/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.json" "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.json" new file mode 100644 index 0000000..318b44c --- /dev/null +++ "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "csdn.net", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.md" "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.md" new file mode 100644 index 0000000..01d3f0e --- /dev/null +++ "b/data/1.gml\345\210\235\351\230\266/3.Linux\345\205\245\351\227\250/21.Linux\345\256\211\350\243\205/exercise_01.md" @@ -0,0 +1,29 @@ +# 安装Linux + +Linux 有很多不同的发行版。例如,Redhat, Debian, Ubuntu, CentOS, Gentoo, SUSE Linux, Mandriva, Slackware 等。不同的发行版侧重的重点不同。以下描述错误的是? + +## 答案 + +```bash +FreeBSD 也是一个基于Linux内核的操作系统,其性能强劲,适合做服务端Linux操作系统。 +``` + +## 选项 + +### A + +```bash +桌面系统一般选 Ubuntu Linux 系统,它的包管理软件是 apt-get,例如安装 wget: `apt-get install wget` +``` + +### B + +```bash +CentOS是常见的服务端Linux发行版,它的包管理软件是 yum, 例如安装 wget: `yum install wget` +``` + +### C + +```bash +Android 底层也是基于 Linux 操作系统内核,也算一种Linux发行版。 +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" index 4bf9f38..b67f20a 100644 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/1.grep\345\221\275\344\273\244/exercise_01.md" @@ -1,4 +1,4 @@ -# 实用Linux命令掌握20%:grep +# 实用Linux命令掌握20%: grep Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/2.awk\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/2.awk\345\221\275\344\273\244/exercise_01.md" index 7e9a76c..c96595e 100644 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/2.awk\345\221\275\344\273\244/exercise_01.md" +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/2.awk\345\221\275\344\273\244/exercise_01.md" @@ -1,4 +1,4 @@ -# 实用Linux命令掌握20%:awk +# 实用Linux命令掌握20%: awk Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 @@ -42,8 +42,8 @@ awk 'BEGIN{ commands } pattern{ commands } END{ commands }' file **本节任务**: -1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`grep`命令。 -2. 以下对命令`grep`描述错误的是? +1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`awk`命令。 +2. 以下对命令`awk`描述错误的是? ## 答案 diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/1.txt" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/1.txt" new file mode 100644 index 0000000..c1dc17e --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/1.txt" @@ -0,0 +1,9 @@ +1. hello hello world +2. wold hello hello +3. nothing is important +4. i like movie movie +hello hello world + +wold hello hello +nothing is important +i like movie movie \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000..4c6fd07 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-950dfde5ccf94f15a5316cabdfa72da4", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000..0021d0f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000..06d4621 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/3.sed\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,68 @@ +# 实用Linux命令掌握20%: sed + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +**本节知识**: + +假设文件`1.txt`的文本如下(可以利用`touch`命令和`vi`命令组合创建): + +```bash +1. hello hello world +2. wold hello hello +3. nothing is important +4. i like movie movie + +hello hello world +wold hello hello + +nothing is important +i like movie movie +``` + +`sed` 命令可以用来替换文本行、删除文本行,例子如下: + +* 查找并替换每行第一个`"hello"`为`"你好"`: `sed 's/hello/你好/' 1.txt` +* 查找替换每行中所有的`"hello"`为`"你好"`: `sed 's/hello/你好/g' 1.txt` +* 删除含有`"hello"`的行:`sed '/hello/d' 1.txt` +* 删除第2行:`sed '2d' 1.txt` +* 删除第最后一行:`sed '$d' 1.txt` +* 删除第2行到最后一行:`sed '2,$d' 1.txt` + +**本节任务**: + +1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`sed`命令。 +2. 以下对命令`sed`描述错误的是? + +## 答案 + +```bash +查找并替换每行所有"world"为"世界" +`sed '/world/世界/g' 1.txt` +``` + +## 选项 + +### A + +```bash +删除第3行到第5行的命令是: +`sed 3,5d 1.txt` +``` + +### B + +```bash +正则表达式里:'^' 表示行开头 +正则表达式里:'\s' 表示空格 +正则表达式里:'$' 表示行末 + +那么,删除空行命令是: +`sed '/^\s*$/d' 1.txt` +``` + +### C + +```bash +查找并替换每行所有"world"为"世界" +`sed 's/world/世界/g' 1.txt` +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000..4219467 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-eb27985ee6c444259e95f2ef7551908c", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000..0021d0f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000..32b3e02 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/5.df\345\222\214du\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,68 @@ +# 实用Linux命令掌握20%: df + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +**本节知识**: + +命令`df`和`du`配合用来查看空间占用情况。 + +* `df` 命令用来查看磁盘的空间占用情况 + * 其中选项`-h`表示以K,M,G为单位,提高信息的可读性 +* `du` 命令用来查看目录的空间占用情况,默认会统计到所有子目录 + * 其中选项`-h`表示以K,M,G为单位,提高信息的可读性 + * 其中选项`-s`表示只显示统计汇总信息 + +这两个命令都有很多选项,常用的例子是: + +* 查看系统磁盘的空间占用情况:`df -h` +* 查看指定目录的空间占用情况:`du /var/ -h` +* 查看指定目录的空间占用情况,只显示汇总信息:`du /var/ -sh` +* 查询指定目录下的直接子目录空间占用情况,只显示汇总信息:`du /var/*/ -sh` + +**本节任务**: + +1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`df`和`du`命令。 +2. 以下对命令`du`和`df`描述错误的是? + +假设当前目录是`/home/csdn/`,下层目录结构是: + +```bash +. +├── Code +├── doc +│ └── 3.txt +└── test + ├── 1.txt + └── test + └── 2.txt +``` + +## 答案 + +```bash +查看`/home/csdn/`目录下的所有直接子文件夹的空间占用命令是: +`du -h /home/csdn/*/` +``` + +## 选项 + +### A + +```bash +查看`/home/csdn/`目录下的所有直接子文件夹的空间占用命令是: +`du -sh /home/csdn/*/` +``` + +### B + +```bash +查看`/home/csdn/`目录下的所有子文件夹的空间占用命令是: +`du -h /home/csdn` +``` + +### C + +```bash +查看`/home/csdn/`所在磁盘的空间命令是: +`df -h /home/csdn` +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000..2e9008a --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-cf0d7a4a97c34c3ba01732646fcb0617", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000..0021d0f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000..0de86d6 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/6.tcpdump\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,63 @@ +# 实用Linux命令掌握20%: tcpdump + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +请准备一个Linux主机,如果你本机是Linux环境,或者你的虚拟机是Linux环境都可以。前提准备: + +* 安装`tcpdump`命令:`sudo yum install tcpdump` +* 安装`nc`命令:`sudo yum install nc` + +**例子1,监听指定域名TCP协议数据包**: + +操作一,开始监听指定域名的ip包流量:`tcpdump host csdn.net`。 +操作二,打开浏览器,访问 csdn.net +此时,命令行下可以看到客户端和CSDN服务之间的TCP协议IP包,学习网络协议的时候,配合使用很方便。 + +**例子2,监听来自指定域名的TCP协议包数据包**: +操作一,开始监听指定域名的ip包流量:`tcpdump src host csdn.net`。 +操作二,打开浏览器,访问 csdn.net +此时,命令行下可以看到客户端和CSDN服务之间的TCP协议IP包,学习网络协议的时候,配合使用很方便。 + +**例子3,监听发送到指定域名的TCP协议包数据包**: +操作一,开始监听指定域名的ip包流量:`tcpdump dst host csdn.net`。 +操作二,打开浏览器,访问 csdn.net +此时,命令行下可以看到客户端和CSDN服务之间的TCP协议IP包,学习网络协议的时候,配合使用很方便。 + +**例子4,监听指定端口的tcp包**: +操作一,开始监听:`tcpdump tcp port 80`。 +操作二,打开另外一个终端,使用`nc 192.168.1.1 80`命令访问80端口。 +此时,tcpdump监听终端下可以看到请求和返回的ip包。同理,如果要监听udp包可以用:`tcpdump udp port 9999` + +**例子5,使用 and 组合逻辑**: +操作一,开始监听指定域名的ip包流量:`tcpdump tcp port 80 and src host 192.168.1.1`。 +操作二,打开另外一个终端,使用`nc 192.168.1.1 80`命令访问80端口。 +此时,可以看到只输出请求包。 + +**问题**:以下对命令`tcpdump`描述错误的是? + +## 答案 + +```bash +tcpdump 只能监听 tcp 网络包,不能监听 udp 包 +``` + +## 选项 + +### A + +```bash +使用 tcpdump 可以监听来自指定域名的IP包 +使用 tcpdump 可以监听发往指定域名的IP包 +``` + +### B + +```bash +使用 tcpdump 可以通过`and`来组合指定监听条件 +``` + +### C + +```bash +使用 tcpdump 可以监听某个端口的tcp或者udp包 +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000..609e519 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-260d46ea06e641b68ad7161513dc7be0", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000..0021d0f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000..0ec1c41 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/7.netstat\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,62 @@ +# 实用Linux命令掌握20%: netstat + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +请准备一个Linux主机,如果你本机是Linux环境,或者你的虚拟机是Linux环境都可以。前提准备: + +* 安装`netstat`命令:`sudo yum install netstat` + +**本节知识**: + +命令`netstat`用来查看网络状态,选项很多,但是拆开成两个维度后就可以方便组合。 + +首先,指定查看的范围选项: + +* `-a`选项表示查看所有连线中的socket +* `-l`选项表示查看监听中的socket + +其次,指定查看的协议类型: + +* `-t`选项表示tcp +* `-u`选项表示udp + +Linux的大多数命令行选项可以组合,上述两个维度组合后有多种可能: + +* 查看所有 socket 状态:`netstat -a` +* 查看所有 tcp socket 状态:`netstat -at` +* 查看所有 udp socket 状态:`netstat -au` +* 查看所有监听中的 socket 状态:`netstat -l` +* 查看所有监听中的 tcp socket 状态:`netstat -lt` +* 查看所有监听中的 udp socket 状态:`netstat -lu` + +**问题**:以下对命令`netstat`描述错误的是? + +## 答案 + +```bash +执行命令:`netstat -at` +可以查看所有的 udp socket状态 +``` + +## 选项 + +### A + +```bash +执行命令:`netstat -au` +可以查看所有的 udp socket状态 +``` + +### B + +```bash +执行命令:`netstat -lu` +可以查看监听中的 udp socket状态 +``` + +### C + +```bash +执行命令:`netstat -lt` +可以查看监听中的 tcp socket状态 +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/config.json" new file mode 100644 index 0000000..0038306 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "gml-74f056c07abb4af6819b096e2680c6b5", + "keywords": [], + "keywords_must": ["Linux命令"], + "keywords_forbid": [], + "children": [], + "export": [ + "exercise_01.json" + ] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.json" new file mode 100644 index 0000000..0021d0f --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "幻灰龙", + "source": "exercise_01.md", + "notebook_enable": false, + "depends": [] +} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.md" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.md" new file mode 100644 index 0000000..1604233 --- /dev/null +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/8.cURL\345\222\214wget\345\221\275\344\273\244/exercise_01.md" @@ -0,0 +1,49 @@ +# 实用Linux命令掌握20%: curl和wget + +Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 + +**本节知识**: + +curl 和 wget 命令都可以用来下载文件和在命令行下发起 http 请求。 + +wget 常用来下载文件,下载命令用例: + +* 下载文件:`wget https://img-home.csdnimg.cn/images/20211024040633.png` +* 在文本文件`1.txt`里配置url列表,每行一个url地址,然后下载:`wget -i 1.txt ` +* 文件比较大时,下载中断后要重新下载很麻烦,wget支持断点续传:`wget -c https://img-home.csdnimg.cn/images/20211024040633.png` + +curl 常用来测试HTTP请求,用例: + +* 执行HTTP Get请求:`curl "https://cn.bing.com"` +* 假设有一个网络API是一个HTTP POST接口,请求的参数和返回的参数都指定为JSON格式,请求的JSON必须指定'user'和'password'字段,那么执行HTTP POST请求登陆,命令格式为:`curl -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{"user":"xxx","password":"..."}' https://example.net/login`,两个`-H`参数指定HTTP请求头。 `-X POST` 指定了请求方法为POST,`-d`指定了POST请求的参数,这里是一个JSON字符串。 + +**本节任务**: + +1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`df`和`du`命令。 +2. 以下对命令`curl`和`wget`描述错误的是? + +## 答案 + +```bash +wget 命令不能用来执行 HTTP GET 请求 +``` + +## 选项 + +### A + +```bash +wget 可以通过选项`-c`指定断点续传 +``` + +### B + +```bash +curl 可以通过选项`-d`指定请求参数 +``` + +### C + +```bash +curl 可以通过选项`-H `设置请求头字段 +``` diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/config.json" similarity index 72% rename from "data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/config.json" rename to "data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/config.json" index e0ec922..8cd9761 100644 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/config.json" +++ "b/data/3.gml\351\253\230\351\230\266/1.Linux\345\256\236\347\224\250\345\221\275\344\273\244/config.json" @@ -1,6 +1,6 @@ { "node_id": "gml-18e8d5ee32d843b6a6ad32b311b271ff", "keywords": [], - "keywords_must": [], + "keywords_must": ["Linux命令"], "keywords_forbid": [] } \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/1.grep\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/1.grep\345\221\275\344\273\244/config.json" deleted file mode 100644 index a354184..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/1.grep\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-66baba204f5042a79ebc82bc2a26ae32", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/10.httpie\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/10.httpie\345\221\275\344\273\244/config.json" deleted file mode 100644 index f9d406a..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/10.httpie\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-82b1b4c005714ab68205ed3a76fb2f49", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/2.awk\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/2.awk\345\221\275\344\273\244/config.json" deleted file mode 100644 index b7f0232..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/2.awk\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-d6688990de744b7fa45a0b473dbeff83", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/3.sed\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/3.sed\345\221\275\344\273\244/config.json" deleted file mode 100644 index 2728cfb..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/3.sed\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-950dfde5ccf94f15a5316cabdfa72da4", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/4.xargs\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/4.xargs\345\221\275\344\273\244/config.json" deleted file mode 100644 index 47678fc..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/4.xargs\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-cd4fae0abe2640fda93c91ad58fe7bc5", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/5.lsof\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/5.lsof\345\221\275\344\273\244/config.json" deleted file mode 100644 index 375599a..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/5.lsof\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-df258842dc7544c599464bc3b4dd69fb", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/6.df\345\222\214du\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/6.df\345\222\214du\345\221\275\344\273\244/config.json" deleted file mode 100644 index 3e782c4..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/6.df\345\222\214du\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-eb27985ee6c444259e95f2ef7551908c", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/7.tcpdump\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/7.tcpdump\345\221\275\344\273\244/config.json" deleted file mode 100644 index bc9272a..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/7.tcpdump\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-cf0d7a4a97c34c3ba01732646fcb0617", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/8.netstat\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/8.netstat\345\221\275\344\273\244/config.json" deleted file mode 100644 index 41f3289..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/8.netstat\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-260d46ea06e641b68ad7161513dc7be0", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file diff --git "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/9.cURL\345\222\214wget\345\221\275\344\273\244/config.json" "b/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/9.cURL\345\222\214wget\345\221\275\344\273\244/config.json" deleted file mode 100644 index 1328fed..0000000 --- "a/data/3.gml\351\253\230\351\230\266/1.Linux\351\253\230\351\230\266/9.cURL\345\222\214wget\345\221\275\344\273\244/config.json" +++ /dev/null @@ -1,6 +0,0 @@ -{ - "node_id": "gml-74f056c07abb4af6819b096e2680c6b5", - "keywords": [], - "children": [], - "export": [] -} \ No newline at end of file -- GitLab