更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux curl、cut、dc、date命令的用法及解释

Linux curl、cut、dc、date命令的用法及解释

更新时间:2022-01-22 16:04:49浏览次数:226+次

以下为你详细解释curl、cut、dc、date命令的用法。

\

Linux curl命令的用法及解释

Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

1、语法

curl(选项)(参数)

2、选项

\

3、实例

注:以下的域名可自行输入,比如hmxthome.com。

文件下载:

curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。如果系统没有curl可以使用yum install curl安装,也可以下载安装。curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用--silent选项。

curl URL --silent

这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout。

使用选项-O将下载的数据写入到文件,必须使用文件的绝对地址:

curl https://域名/text.iso --silent -O

选项-o将下载数据写入到指定名称的文件中,并使用--progress显示进度条:

curl https://域名/test.iso -o filename.iso --progress

####################### 100.0%

断点续传:

curl能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:

curl URL/File -C 偏移量

#偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C -:

curl -C -URL

使用curl设置参照页字符串:

参照页是位于HTTP头部中的一个字符串,用来表示用户是从哪个页面到达当前页面的,如果用户点击网页A中的某个连接,那么用户就会跳转到B网页,网页B头部的参照页字符串就包含网页A的URL。

使用--referer选项指定参照页字符串:

curl --referer http://www.google.com http://域名

用curl设置cookies:

使用--cookie "COKKIES"选项来指定cookie,多个cookie使用分号分隔:

curl http://域名 --cookie "user=root;pass=123456"

将cookie另存为一个文件,使用--cookie-jar选项:

curl URL --cookie-jar cookie_file

用curl设置用户代理字符串:

有些网站访问会提示只能使用IE浏览器来访问,这是因为这些网站设置了检查用户代理,可以使用curl把用户代理设置为IE,这样就可以访问了。使用--user-agent或者-A选项:

curl URL --user-agent "Mozilla/5.0"

curl URL -A "Mozilla/5.0"

其他HTTP头部信息也可以使用curl来发送,使用-H"头部信息" 传递多个头部信息,例如:

curl -H "Host:域名" -H "accept-language:zh-cn" URL

curl的带宽控制和下载配额:

使用--limit-rate限制curl的下载速度:

curl URL --limit-rate 50k

命令中用k(千字节)和m(兆字节)指定下载速度限制。

使用--max-filesize指定可下载的最大文件大小:

curl URL --max-filesize bytes

如果文件大小超出限制,命令则返回一个非0退出码,如果命令正常则返回0。

用curl进行认证:

使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:

curl -u user:pwd http://域名

curl -u user http://域名

只打印响应头部信息

通过-I或者-head可以只打印出HTTP头部信息::

[root@localhost text]# curl -I http://域名

HTTP/1.1 200 OK

Server: nginx/1.20.2

date: Mon, 10 Dec 2021 09:24:34 GMT

Content-Type: text/html; charset=UTF-8

Connection: keep-alive

Vary: Accept-Encoding

X-Pingback: https://域名/xmlrpc.php

Linux cut命令的用法及解释

Linux cut命令用来显示行中的指定部分,删除文件中指定字段。cut经常用来显示文件的内容,类似于下的type命令。

说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut fl f2 > f3将把文件fl和几的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。

当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

1、语法

cut(选项)(参数)

2、选项

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。

3、参数

文件:指定要进行内容过滤的文件。

4、实例

例如有一个学生报表信息,包含No、Name、Mark、Percent:

[root@localhost text]# cat test.txt

No Name Mark Percent

01 tom 69 91

02 jack 71 87

03 alex 68 98

使用 -f 选项提取指定字段:

[root@localhost text]# cut -f 1 test.txt

No

01

02

03

[root@localhost text]# cut -f2,3 test.txt

Name Mark

tom 69

jack 71

alex 68

--complement 选项提取指定字段之外的列(打印除了第二列之外的列):

[root@localhost text]# cut -f2 --complement test.txt

No Mark Percent

01 69 91

02 71 87

03 68 98

使用 -d 选项指定字段分隔符:

[root@localhost text]# cat test2.txt

No;Name;Mark;Percent

01;tom;69;91

02;jack;71;87

03;alex;68;98

[root@localhost text]# cut -f2 -d";" test2.txt

Name

tom

jack

alex

指定字段的字符或者字节范围。

cut命令可以将一串字符作为列来显示,字符字段的记法:

N-:从第N个字节、字符、字段到结尾;

N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;

-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。

上面是记法,结合下面选项将摸个范围的字节、字符指定为字段:

-b 表示字节;

-c 表示字符;

-f 表示定义字段。

以下是示例:

[root@localhost text]# cat test.txt

abcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz

打印第1个到第3个字符:

[root@localhost text]# cut -c1-3 test.txt

abc

abc

abc

abc

abc

打印前2个字符:

[root@localhost text]# cut -c-2 test.txt

ab

ab

ab

ab

ab

打印从第5个字符开始到结尾:

[root@localhost text]# cut -c5- test.txt

efghijklmnopqrstuvwxyz

efghijklmnopqrstuvwxyz

efghijklmnopqrstuvwxyz

efghijklmnopqrstuvwxyz

efghijklmnopqrstuvwxyz

Linux dc命令的用法及解释

Linux dc命令是一个reverse-polish桌面计算器,它支持无限制精度算法。通常情况下,dc命令从标准输入读取数据,如果指定了文件名的命令行谙熟,那么命令将从指定的文件中读取数据,而不是从标准输入读取数据。结果将输出到标准输出,所有的错误信息将输出到标准输出中。

以下是实例:

[root@redhat ~]# dc

会相应的返回一些数据。

Linux date命令的用法及解释

Linux date命令是显示或设置系统时间与日期。

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

1、语法

date(选项)(参数)

2、选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

--help:在线帮助;

--version:显示版本信息。

3、参数

<+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表:

%H 小时,24小时制(00~23)

%I 小时,12小时制(01~12)

%k 小时,24小时制(0~23)

%l 小时,12小时制(1~12)

%M 分钟(00~59)

%p 显示出AM或PM

%r 显示时间,12小时制(hh:mm:ss %p)

%s 从1970年1月1日00:00:00到目前经历的秒数

%S 显示秒(00~59)

%T 显示时间,24小时制(hh:mm:ss)

%X 显示时间的格式(%H:%M:%S)

%Z 显示时区,日期域(CST)

%a 星期的简称(Sun~Sat)

%A 星期的全称(Sunday~Saturday)

%h,%b 月的简称(Jan~Dec)

%B 月的全称(January~December)

%c 日期和时间(Tue Nov 20 14:12:58 2021)

%d 一个月的第几天(01~31)

%x,%D 日期(mm/dd/yy)

%j 一年的第几天(001~366)

%m 月份(01~12)

%w 一个星期的第几天(0代表星期天)

%W 一年的第几个星期(00~53,星期一为第一天)

%y 年的最后两个数字(1999则是99)

4、实例

格式化输出:

date +"%Y-%m-%d"

2021-12-07

输出昨天日期:

date -d "1 day ago" +"%Y-%m-%d"

2021-11-19

2秒后输出:

date -d "2 second" +"%Y-%m-%d %H:%M.%S"

2021-11-20 14:21.31

传说中的 1234567890 秒:

date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"

2021-02-13 23:02:30

普通转格式:

date -d "2021-12-12" +"%Y/%m/%d %H:%M.%S"

2021/12/12 00:00.00

apache格式转换:

date -d "Dec 5, 2021 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"

2021-12-05 00:00.37

格式转换后时间游走:

date -d "Dec 5, 2021 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"

2021-12-05 00:00.37

加减操作:

date +%Y%m%d                   //显示前天年月日

date -d "+1 day" +%Y%m%d       //显示前一天的日期

date -d "-1 day" +%Y%m%d       //显示后一天的日期

date -d "-1 month" +%Y%m%d     //显示上一月的日期

date -d "+1 month" +%Y%m%d     //显示下一月的日期

date -d "-1 year" +%Y%m%d      //显示前一年的日期

date -d "+1 year" +%Y%m%d      //显示下一年的日期

设定时间:

date -s                        //设置当前时间,只有root权限才能设置,其他只能查看

date -s 20210210               //设置成20210210,这样会把具体时间设置成空00:00:00

date -s 01:01:01               //设置具体时间,不会对日期做更改

date -s "01:01:01 2021-02-10"  //这样可以设置全部时间

date -s "01:01:01 20210210"    //这样可以设置全部时间

date -s "2021-02-10 01:01:01"  //这样可以设置全部时间

date -s "20210210 01:01:01"    //这样可以设置全部时间

有时需要检查一组命令花费的时间,举例:

#!/bin/bash

start=$(date +%s)

nmap hmxthome &> /dev/null

end=$(date +%s)

difference=$(( end - start ))

echo $difference seconds.