Linux 常用命令
1、wget
wget命令的使用
语法格式
wget [options] [url]
- 使用 -O 选项以其他名称保存下载的文件
wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.8.tar.gz
- 使用 -P 选项将文件下载到指定目录
wget -P /usr/software https://download.redis.io/releases/redis-6.0.8.tar.gz
- 使用 -c 选项断点续传
当我们下载一个大文件时,如果中途网络断开导致没有下载完成,我们就可以使用命令的-c选项恢复下载,让下载从断点续传,无需从头下载。
wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz
- 使用 -b 选项在后台下载
我们可以使用-b选项在后台下载文件:
wget -b https://download.redis.io/releases/redis-6.0.8.tar.gz
- 使用 -i 选项下载多个文件
如果先要一次下载多个文件,首先需要创建一个文本文件,并将所有的url添加到该文件中,每个url都必须是单独的一行。
vim download_list.txt
然后使用-i选项,后跟该文本文件:
wget -i download_list.txt
- 使用 --tries 选项增加重试次数
如果网络有问题或下载一个大文件有可能会下载失败,wget默认重试20次,我们可以使用-tries选项来增加重试次数。
wget --tries=40 https://download.redis.io/releases/redis-6.0.8.tar.gz
- 通过FTP下载如果要从受密码保护的FTP服务器下载文件,需要指定用户名和密码,格式如下:
wget --ftp-user=<username> --ftp-password=<password> url
2、tar
命令格式
tar[OPTIONS][FILE]...
-c,--create 建立新的档案 -C,--directory=DIR 将 tar 的工作目录从当前目录改为指定目录。该选项对顺序敏感,即影响其后的所有选项 -f,--file=ARCHIVE 指定存档文件 -x,--extract,--get 从档案提取文件 -z,--gzip,--gunzip,--ungzip 通过 gzip 命令压缩或解压档案 -v,--verbose 显示指令执行过程
-j, --bzip2 通过 bzip2 命令压缩或解压缩档案
-c和-x是对立的
- 将目录 /home/stud/wang 打包成 lvlv.tgz,同时使用 gzip 进行压缩
tar –czvf lvlv.tgz /home/stud/wang
- 将目录 /home/stud/wang 打包成 lvlv.tbz2,同时使用 bzip2 进行压缩。
tar –cjvf lvlv.tgz2 /home/stud/wang
- 将指定目录下的目录或文件进行打包。
tar –czvf wang.tar.gz -C /home/stud/wang
- 将档案 lvlv.tbz2 还原为原目录,同时使用 bzip2 进行解压缩
tar -xjvf lvlv.tbz2
- 将 lvlv.tgz 解包到指定目录,同时使用 gzip 进行解压缩
tar -xzvf lvlv.tgz -C DIR
- 只查看档案的文件列表,不进行解包
tar -tzvf wang.tar.gz
3、du
- 查看当前命令下的所有隐藏目录空间各个大小总和
du -sh .[^.]* */
4、curl
- 下载文件到指定的文件小写
-o
,大写-O
保存文件和它的原始文件名
curl https://rumenz.com/1.html -o 2.html
- 只打印响应头
curl -I https://rumenz.com HTTP/1.1 200 OK Server: openresty/1.19.3.1 Date: Wed, 02 Jun 2021 13:37:41 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive
- 显示请求头和网页内容
curl -i https://json.im/1.txt HTTP/1.1 200 OK Server: openresty Date: Wed, 02 Jun 2021 14:02:30 GMT Content-Type: text/plain Content-Length: 8 Last-Modified: Wed, 02 Jun 2021 14:00:57 GMT Connection: keep-alive ETag: "60b78f19-8" Accept-Ranges: bytes 123 456
- 直接显示网页内容
curl -l https://json.im/1.txt
-L
参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
curl -L -d 'rumenz=123' https://json.im/
-
使用curl模拟post请求,
--data-urlencode
参数等同于-d
,发送POST
请求的数据体,区别在于会自动将发送的数据进行 URL 编码.
curl -d 'login=rumenz' -d 'password=123' -X POST https://json.im/login
5、tcmdump
- 参数
-A 只使用 ASCII 打印报文的全部数据,不要和 -X 一起使用,获取 http 可以用 tcpdump-nSA port80 -b 在数据链路层上选择协议,包括 ip, arp, rarp, ipx 等 -c 指定要抓取包的数量 -D 列出操作系统所有可以用于抓包的接口 -i 指定监听的网卡, -i any 显示所有网卡 -n 表示不解析主机名,直接用 IP 显示,默认是用 hostname 显示 -nn 表示不解析主机名和端口,直接用端口号显示,默认显示是端口号对应的服务名 -p 关闭接口的混杂模式 -P 指定抓取的包是流入的包还是流出的,可以指定参数 in, out, inout 等,默认是 inout -q 快速打印输出,即只输出少量的协议相关信息 -s len 设置要抓取数据包长度为 len,默认只会截取前 96bytes 的内容, -s0 的话,会截取全部内容。 -S 将 TCP 的序列号以绝对值形式输出,而不是相对值 -t 不要打印时间戳 -vv 输出详细信息(比如 tos、ttl、checksum等) -X 同时用 hex 和 ascii 显示报文内容 -XX 同 -X,但同时显示以太网头部
1、抓取端口是80的包
tcpdump -nnvA -i any -s 0 port 80
2、抓取 9856或9857或9855 端口的 HTTP 有效数据包,排除 TCP 连接建立过程的数据包(SYN / FIN / ACK)
tcpdump -nnvA -i any -s 0 '(port 9856 or port 9857 or port 9855)' and '(((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
3、读取tmp.pcap文件并过滤
tcpdump -nnvAr tmp.pcap | grep 0013