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 4e4c6b3659f4c36872b0b33f34888c7896c8d67a..6f16a24161bb35228af15f431a4ef8100342a272 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 0000000000000000000000000000000000000000..318b44c4a7b965f364fcd4cfb559da16abbe1c7b --- /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 0000000000000000000000000000000000000000..01d3f0ea40df8b79c633358c2cec34f656dd18b5 --- /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 4bf9f38a8ff9b934d020474d86d9a15214474848..b67f20af9906f3b07cc3f359164241018ebd7b6b 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 7e9a76c13f931dd5c82ae5664a79273858ba4ce8..c96595ebf763fc3986ff9d1643b5033602fb942e 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 0000000000000000000000000000000000000000..c1dc17e8eba38c5e7d88a4448538702c5db1d23d --- /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 0000000000000000000000000000000000000000..4c6fd079c3de896aee9733e541e41bd48d71c5cf --- /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 0000000000000000000000000000000000000000..0021d0f823fd7d171b0d8006d9a33432c5c9ea07 --- /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 0000000000000000000000000000000000000000..06d462111d6d93f21a7af67b883687c4d2a0382c --- /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 0000000000000000000000000000000000000000..421946709dab8e03661b99ffb19a09acc5d3a7ff --- /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 0000000000000000000000000000000000000000..0021d0f823fd7d171b0d8006d9a33432c5c9ea07 --- /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 0000000000000000000000000000000000000000..32b3e024e3588255c4c8f4d8c1092c76bae8440f --- /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 0000000000000000000000000000000000000000..2e9008a02cd54f671b546431bdf80d995e801bf2 --- /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 0000000000000000000000000000000000000000..0021d0f823fd7d171b0d8006d9a33432c5c9ea07 --- /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 0000000000000000000000000000000000000000..0de86d65a7e714e95d90792b77ac3056261913d7 --- /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 0000000000000000000000000000000000000000..609e519c53d016aa6005b4029763165899868943 --- /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 0000000000000000000000000000000000000000..0021d0f823fd7d171b0d8006d9a33432c5c9ea07 --- /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 0000000000000000000000000000000000000000..0ec1c41f44271753df51c270d26881ba90e8a405 --- /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 0000000000000000000000000000000000000000..0038306a6692414778d20711c0a8e7399172b5a6 --- /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 0000000000000000000000000000000000000000..0021d0f823fd7d171b0d8006d9a33432c5c9ea07 --- /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 0000000000000000000000000000000000000000..1604233a065e7be806c69285d4d73ccb82fbec47 --- /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 e0ec922e2c9acab2be9c5b86aa723d1b65f10007..8cd976192f1bded018a9274020ed86acb2da3a97 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 a35418418cdc6bcf010bffb353da9bd87bf5c626..0000000000000000000000000000000000000000 --- "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 f9d406a9c7f7c265280b8313128a726c48e1ac2d..0000000000000000000000000000000000000000 --- "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 b7f0232fb8becd9f05ed70d35ece44ddac531811..0000000000000000000000000000000000000000 --- "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 2728cfb1aa239be00fbb55fa02872439bdaaecb5..0000000000000000000000000000000000000000 --- "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 47678fc7d2c25425e784d58033ac299cc03285ce..0000000000000000000000000000000000000000 --- "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 375599a121f390df069484ea0b6cc877a4429ea9..0000000000000000000000000000000000000000 --- "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 3e782c4095fc2af2a5ae7d8ba99073ece0a8f097..0000000000000000000000000000000000000000 --- "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 bc9272a65f6e42ba1dcfbc78d307c7aa9fb890b2..0000000000000000000000000000000000000000 --- "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 41f3289c4ac989f7e450a0b3ce73ecd042e0d2aa..0000000000000000000000000000000000000000 --- "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 1328fed931f0b2430341c11d41692d4423d0f212..0000000000000000000000000000000000000000 --- "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