Linux常用命令

curl

参考文档

选项
-I		# 向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 响应头打印出来。示例:curl -I qq.com

-x		# 指定代理IP访问(仅限HTTP请求)。示例:curl -I liminkoo.com -x 111.170.27.129:80

-L		# 让 HTTP 请求跟随服务器的重定向,curl 默认不跟随重定向

-s		# 不输出错误和进度信息。

-S		# 只输出错误信息。

-v		# 输出通信的整个过程,用于调试。

-o		# 将服务器的回应保存成文件,等同于wget命令。自定义文件名可以使用/dev/null,直接丢弃不保存,示例:curl -o /dev/null http://qq.com/2.jpg

-O		# 将服务器回应保存成文件,并将 URL 的最后部分当作文件名

-k		# 跳过 SSL 检测,不会检查服务器的 SSL 证书是否正确。

-u		# 设置服务器认证的用户名和密码。示例:curl -u 'bob:12345' https://google.com/login

-X		# 指定 HTTP 请求的方法。示例:发出POST请求:curl -X POST https://www.example.com

-d		# 发送 POST 请求的数据体。示例:curl -d'login=emma&password=123'-X POST https://google.com/login 指定-d以后实际可以省略-X参数,可使用多个-d参数:curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login

--data-urlencode	# 等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。示例:curl --data-urlencode 'comment=hello world' https://google.com/login,发送的数据hello world之间有一个空格,需要进行 URL 编码。

-G		# 用来构造 URL 的查询字符串,即GET请求。示例:curl -G -d 'q=kitties' -d 'count=20' https://google.com/search 实际请求的URL为https://google.com/search?q=kitties&count=20。如果省略-G,会发出一个POST请求。

--resolve	# HTTPS代理请求(host可以使用*通配符),示例:curl -I https://datapixxxx.cn/ --resolve datapixxxx.cn:443:111.170.27.129

--referer	# 携带referer请求,示例:curl -v  -o /dev/null 'http://sjpd12.xingmm.top/sj/2.jpg' --referer "http://h5api.jssyhdm.top:8012/"

-A		# 携带User-Agent请求,示例:curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com

-b		# 向服务器发送 Cookie,参数值为键值对形式,多个cookie用;分隔,参数值可读取文本(无需引号)。示例:curl -b 'foo=bar;foo2=bar2' https://google.com

-c		# 将服务器设置的 Cookie 写入一个文件,该文件可供-b参数使用。示例:curl -c cookies.txt https://www.google.com

-H		# 添加 HTTP 请求的标头,像UA、referer等都可以使用该参数完成,但需要特定格式,可用来补充其它请求头。示例:curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com,示例2:curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login,该命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据。示例3:curl -vo /dev/null https://vf.lcgygt.com/ -H "referer:www.baiduyun.xyz" --resolve vf.lcgygt.com:443:116.114.98.41,携带referer请求。

--limit-rate	# 用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。示例:curl --limit-rate 200k https://google.com,该命令将带宽限制在每秒 200K 字节。

telnet

用于登录远程主机(交换机)

# 格式,端口默认23
telnet IP 端口

# 登陆该交换机,会出现Username、Password让验证
telnet 106.225.229.2

# 测试该IP端口是否开放
telnet 106.225.229.31 80
# 出现类似以下提示则该端口可以连通,长时间(可等待10秒)连接不上一直处于Connecting to IP... 并自动断开报错则该端口不通
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

ping

-t     # 一直ping不中断
-n     # 指定接收包的次数,默认是发送接收4次。示例:ping -n 2 qq.com
-c     # 指定接收包的次数,有的ping命令支持-n不支持-c,有的支持-c不支持-n,可能是linux和win的区别。-n后面的值有空格,-c无空格。示例:ping -c2 qq.com
-w     # 等待每次回复的超时时间(毫秒)
-l     # 发送指定大小的到目标主机的数据包。在默认的情况下Windows的ping发送的数据包大小为32byt,最大能发送65500byt。当一次发送的数据包大于或等于65500byt时,将可能导致接收方计算机宕机。所以微软限制了这一数值;示例:ping -l 65500 192.168.30.132

dig

# centos7安装
yum install bind-utils

# 获取简短响应(A记录的IP列表)
dig 域名 +short

# 获取详细响应结果(CNAME+A记录信息)
dig 域名 +noall +answer

# 使用指定的DNS服务器
dig 域名 @8.8.8.8

# 查询 A 记录
dig +nocmd 域名 a +noall +answer

# 查询 CNAME 记录(多层cname只返回第一层)
dig +nocmd 域名 cname +noall +answer

# 查询 TXT 记录
dig +nocmd 域名 txt +noall +answer

# 查询 MX 记录
dig +nocmd 域名 mx +noall +answer

# 查询 NS 记录
dig +nocmd 域名 ns +noall +answer

# 批量 DNS 查询,可以将其全部写入到一个文本文件中(一行一个),然后使用 -f 参数指定文件名查询
dig -f domains.txt +short

history

显示命令操作历史记录,自带编号

# 选项
-N            # 显示历史记录中最近的N个记录,示例,查看最后5条历史命令:history 5
-c            # 清空当前历史命令
-d<offset>    # 删除历史记录中第offset个命令,示例,删除第1008条历史记录:history -d1008

# 执行历史记录命令
!!            # 使用双叹号执行上一条历史记录命令
!1000         # 执行第1000条历史记录命令

关机和重启

# 关机
shutdown -h now    # 立即关机
shutdown -h 10     # 10分钟后关机
shutdown -r now    # 重启
shutdown -c        # 取消正在运行的关机命令

# 重启
reboot             # 重启
reboot -f          # 强制重启

hostname

主机名查询与修改

hostname                               # 查询
hostname host_name                     # 临时修改
hostnamectl set-hostname host_name     # 永久修改

date

查看系统时间

# 格式化输出时间,使用+号连接,+号可写在引号内
date +"%Y-%m-%d"        	# 当前年月日:2022-11-18
date +"%Y-%m-%d %H:%M:%S"    	# 当前年月日时分秒:2022-11-18 22:47:42
date +"%s"                      # 获取当前时间戳:1668783015
date '+%R'                      # 当前时分:22:53
date '+%r'                      # 当前时分秒,12小时制:10:53:48 PM
date '+%T'                      # 当前时分秒,等同于%H:%M:%S:23:02:00
date '+%D'                      # 当前日期月/日/年:11/18/22
date '+%a'                      # 星期的英文简写:Fri
date '+%w'                      # 一周中的第几天,0-6,0代表周日,1代表周一


# 选项
-s                              # 临时修改系统时间日期(root才有权限),示例:date -s "2022/11/08 22:30"
                        
-d                              # 计算时间,示例:
date +"%Y-%m-%d %H:%M:%S" -d "-3 year"        # 3年前的日期 时分秒:2019-11-18 22:43:09
date +"%Y-%m-%d" -d "+3 month"                # 3个月后的日期:2023-02-18
date +"%Y-%m-%d" -d "+3 day"                  # 3天后的日期:2022-11-21
date +"%Y-%m-%d" -d "+1 week"                 # 一周后的日期:2022-11-25

uptime

top命令第一行

# 选项
-p     # 人性化显示系统运行时间
-s     # 系统开始的运行时间和日期
# 结果:1.当前时间;2.系统运行时间;3.当前登录用户数4.系统1,5,15分钟负载
# 如果服务器的CPU为1核心,则load average中的数值>=3则判断负载过高,应该主要观察15分钟系统负载

查看硬盘类型,0为ssd,1为机械

lsblk -d -o name,rota

清理内存缓存 buff/cache

echo 3 > /proc/sys/vm/drop_caches

查看内核版本

uname -r

echo命令输出带颜色字体

选项:
-n    # 不换行
-e    # 不转义

# 使用echo输出带颜色字体
# 其中两个是\033[是固定字符,31m是控制字符输出颜色,中间是需要改变颜色的文字,最后的0m是字体(不推荐使用,会连同命令行的主机名命令提示符一起改变。)
echo -e "\033[31m变色\033[0m"
echo -e "\033[32m`ip -4 a`\033[0m"

# 字符颜色
30:黑色
31:红色
32:绿色
33:黄色
34:蓝色
35:紫色
36:浅蓝色
37:灰色
# 可在31m前增加一个色号,代表同时输出背景色
echo -e "\033[43;31mhello\033[0m"
# 背景色
40:黑色
41:红色
42:绿色
43:黄色
44:蓝色
45:紫色
46:浅蓝色
47:灰色
posted @ 2022-12-23 22:09  待满茶杯  阅读(55)  评论(0编辑  收藏  举报