提交 8e2060d2 编写于 作者: F feilong

增加一组实用命令

上级 06ac494e
{ {
"node_id": "gml-21ff39f056a142a4988e5717b93569d2", "node_id": "gml-21ff39f056a142a4988e5717b93569d2",
"keywords": [], "keywords": [
"安装Ubuntu",
"安装CentOS"
],
"keywords_must": ["Linux安装"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "csdn.net",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 安装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发行版。
```
# 实用Linux命令掌握20%grep # 实用Linux命令掌握20%: grep
Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。
......
# 实用Linux命令掌握20%awk # 实用Linux命令掌握20%: awk
Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。 Linux 命令很多,掌握最实用的一批命令,对于每个实用命令,又只需掌握20%最高频操作。
...@@ -42,8 +42,8 @@ awk 'BEGIN{ commands } pattern{ commands } END{ commands }' file ...@@ -42,8 +42,8 @@ awk 'BEGIN{ commands } pattern{ commands } END{ commands }' file
**本节任务** **本节任务**
1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`grep`命令。 1. 请在[线上Linux环境](https://edu.csdn.net/lab/36675?targetLesson=2692)里练习上述`awk`命令。
2. 以下对命令`grep`描述错误的是? 2. 以下对命令`awk`描述错误的是?
## 答案 ## 答案
......
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
{ {
"node_id": "gml-950dfde5ccf94f15a5316cabdfa72da4", "node_id": "gml-950dfde5ccf94f15a5316cabdfa72da4",
"keywords": [], "keywords": [],
"keywords_must": ["Linux命令"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 实用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`
```
{ {
"node_id": "gml-eb27985ee6c444259e95f2ef7551908c", "node_id": "gml-eb27985ee6c444259e95f2ef7551908c",
"keywords": [], "keywords": [],
"keywords_must": ["Linux命令"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 实用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`
```
{ {
"node_id": "gml-cf0d7a4a97c34c3ba01732646fcb0617", "node_id": "gml-cf0d7a4a97c34c3ba01732646fcb0617",
"keywords": [], "keywords": [],
"keywords_must": ["Linux命令"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 实用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包
```
{ {
"node_id": "gml-260d46ea06e641b68ad7161513dc7be0", "node_id": "gml-260d46ea06e641b68ad7161513dc7be0",
"keywords": [], "keywords": [],
"keywords_must": ["Linux命令"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 实用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状态
```
{ {
"node_id": "gml-74f056c07abb4af6819b096e2680c6b5", "node_id": "gml-74f056c07abb4af6819b096e2680c6b5",
"keywords": [], "keywords": [],
"keywords_must": ["Linux命令"],
"keywords_forbid": [],
"children": [], "children": [],
"export": [] "export": [
"exercise_01.json"
]
} }
\ No newline at end of file
{
"type": "code_options",
"author": "幻灰龙",
"source": "exercise_01.md",
"notebook_enable": false,
"depends": []
}
\ No newline at end of file
# 实用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 `设置请求头字段
```
{ {
"node_id": "gml-18e8d5ee32d843b6a6ad32b311b271ff", "node_id": "gml-18e8d5ee32d843b6a6ad32b311b271ff",
"keywords": [], "keywords": [],
"keywords_must": [], "keywords_must": ["Linux命令"],
"keywords_forbid": [] "keywords_forbid": []
} }
\ No newline at end of file
{
"node_id": "gml-66baba204f5042a79ebc82bc2a26ae32",
"keywords": [],
"children": [],
"export": []
}
\ No newline at end of file
{
"node_id": "gml-82b1b4c005714ab68205ed3a76fb2f49",
"keywords": [],
"children": [],
"export": []
}
\ No newline at end of file
{
"node_id": "gml-d6688990de744b7fa45a0b473dbeff83",
"keywords": [],
"children": [],
"export": []
}
\ No newline at end of file
{
"node_id": "gml-cd4fae0abe2640fda93c91ad58fe7bc5",
"keywords": [],
"children": [],
"export": []
}
\ No newline at end of file
{
"node_id": "gml-df258842dc7544c599464bc3b4dd69fb",
"keywords": [],
"children": [],
"export": []
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册