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:灰色