Linux与bash:3.Linux终端命令之进阶命令(curl,jq,sort,uniq,wc)
Posted new nm个对象
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux与bash:3.Linux终端命令之进阶命令(curl,jq,sort,uniq,wc)相关的知识,希望对你有一定的参考价值。
1.curl讲解
(1)curl用法
格式:curl [option] [url]
常用参数:
-A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-w/--write-out [format] 什么输出完成后
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态
(2)curl命令
- curl定义:curl是向服务器发送请求的一个命令
- https://curl.haxx.se/为curl官网
安装curl
- sudo apt install curl--------:ubuntu中安装curl
获取帮助
- curl -h:获取帮助信息
获取对应网址的文本信息
-
curl url地址-------------------:获取对应网址的文本信息,常用来在Linux服务器上测试是否能访问某网站
#获取www.baidu.com的文本信息 curl www.baidu.com
-
curl -i url地址-------------:获取该网址的文本信息以及协议头部信息
curl -i www.baidu.com
使用代理
-
curl -x proxy url地址---------使用代理获取网页文本信息**(可以配合代理服务器charles使用)
#使用代理访问百度 curl -x 127.0.0.1:8080 www.baidu.com
使用post访问url
-
默认的curl都是以gei请求访问网页,使用post请求:curl -X POST url地址
curl -X POST www.baidu.com
-
携带参数以post方式访问网页:curl -d 参数 url地址
curl -d 'login=1234' https://www.baidu.com
将获取到的内容保存到文件中
-
curl -o tmp.html url地址---------:获取网页文本信息,并保存在tmp.html文件中
curl -o tmp.html www.baidu.com
-
可以使用curl的内置option:-O(大写)保存网页中的文件。要注意这里后面的url要具体到某个文件,不然抓不下来
curl -O http://www.linux.com/hello.sh
操作cookie
有些网站是使用cookie来记录session信息。对于chrome这样的浏览器,可以轻易处理cookie信息,但在curl中只要增加相关参数也是可以很容易的处理cookie
-
保存http的response里面的cookie信息。内置option:-c(小写)
curl -c cookiec.txt http://www.linux.com 执行后cookie信息就被存到了cookiec.txt里面了
-
保存http的response里面的header信息。内置option: -D
curl -D cookied.txt http://www.linux.com 执行后cookie信息就被存到了cookied.txt里面了
注意:-c(小写)产生的cookie和-D里面的cookie是不一样的。
-
使用cookie。很多网站都是通过监视你的cookie信息来判断你是否按规矩访问他们的网站的,因此我们需要使用保存的cookie信息。内置option: -b
curl -b cookiec.txt http://www.linux.com
伪造referer(盗链)
很多服务器会检查http访问的referer从而来控制访问。比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了
curl中内置option:-e可以让我们设定referer
```
curl -e "www.linux.com" http://mail.linux.com
这样就会让服务器其以为你是从www.linux.com点击某个链接过来的
```
下载文件
-
利用curl下载文件。使用内置option:-o(小写)
curl -o dodo1.jpg http:www.linux.com/dodo1.JPG
-
使用内置option:-O(大写)
curl -O http://www.linux.com/dodo1.JPG 这样就会以服务器上的名称保存文件到本地
-
循环下载
有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样curl -O http://www.linux.com/dodo[1-5].JPG 这样就会把dodo1,dodo2,dodo3,dodo4,dodo5全部保存下来
-
分块下载
有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置option:-rcurl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG cat dodo1_part* > dodo1.JPG 这样就可以查看dodo1.JPG的内容了
-
通过ftp下载文件
curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG
-
显示下载进度条
curl -# -O http://www.linux.com/dodo1.JPG
-
不会显示下载进度信息
curl -s -O http://www.linux.com/dodo1.JPG
-
上传文件
curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/ 这样就向ftp服务器上传了文件dodo1.JPG
2.jq讲解
jq是用户对json数据进行优化的命令
3.sort讲解
(1)sort排序
练习:
4.uniq讲解
注意:因为uniq只会对相邻的行进行比较,所以我们往往先使用sort排序后,再使用uniq来去重
练习:
5.wc统计文本
练习:
注意:空白行也会算成一行,空格,换行符,空行会被算成一个字符
以上是关于Linux与bash:3.Linux终端命令之进阶命令(curl,jq,sort,uniq,wc)的主要内容,如果未能解决你的问题,请参考以下文章