本文将陈述 常用50+条 Linux命令的含义及其应用场景
吞吐率(Requests per second)
并发连接数(The number of concurrent connections)
并发用户数(Concurrency Level)
用户平均请求等待时间(Time per request)
服务器平均请求等待时间(Time per request:across all concurrent requests)
-c:指定一次向服务器发出请求数[并发连接数]
-n:指定测试会话使用的请求数[并发用户数]
ab -c 100 -n 1000 web网页地址
In github
压测工具,可用于流量回放、预发环境上线前自行压测
wrk
使用支持多线程并发,比ab
的单线程要快。
-c, --connections: 总的http并发数
-d, --duration: 持续压测时间, 比如: 2s, 2m, 2h
-t, --threads: 总线程数
-s, --script: luajit脚本,使用方法往下看
-H, --header: 添加http header, 比如. "User-Agent: wrk"
--latency: 在控制台打印出延迟统计情况
--timeout: http超时时间
可以把 curl
请求粘贴上来,进行压测
示例curl
curl 'http://puppeteer.hlzblog.top/api/comic/list?page=1' \
-H 'Accept: */*' \
-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
-H 'Origin: http://comic.pre.hlzblog.top' \
-H 'Proxy-Connection: keep-alive' \
-H 'Referer: http://comic.pre.hlzblog.top/' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33' \
--compressed \
--insecure
把 --compressed
、 --insecure
这种附加参数删除掉
对应 wrk 压测
请注意!!!用来模拟的这个curl
接口是我漫画服务的,请不要压太高
示例使用 8
线程 ; 发起50
个客户端连接 ; 持续压测30
秒
wrk -t8 -c50 -d30s \
'http://puppeteer.hlzblog.top/api/comic/list?page=1' \
-H 'Accept: */*' \
-H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
-H 'Origin: http://comic.pre.hlzblog.top' \
-H 'Proxy-Connection: keep-alive' \
-H 'Referer: http://comic.pre.hlzblog.top/' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33'
外网压测结果,(被压测的是 2C/4G
服务器, 8Mbps 带宽)
Running 30s test @ http://puppeteer.hlzblog.top/api/comic/list?page=1
8 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 392.98ms 272.68ms 1.95s 71.40%
Req/Sec 17.01 12.72 120.00 81.58%
3774 requests in 30.10s, 30.19MB read
Socket errors: connect 0, read 0, write 0, timeout 11
Requests/sec: 125.37
Transfer/sec: 1.00MB
请注意,QPS急剧下降说明已到压测瓶颈
用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况
-a或--all:显示所有连线中的Socket
-l或--listening:显示监控中的服务器的Socket
-t或--tcp:显示TCP传输协议的连线状况
-u或--udp:显示UDP传输协议的连线状况
-n或--numeric:直接使用ip地址,而不通过域名服务器
查看当前已监听的socket服务:一般配合iptables 查看端口是否被监听,防火墙是否开放了对应端口
netstat -al | more
Linux下,常用的压缩、解压指令 之一
tar -zxvf 待解压的gzip文件名
如果gzip
添加的压缩文件用的绝对路径
那么请需要以在末尾添加 -C ./
参数使其落到当前相对路径下
tar zxvf 20191201.tar.gz -C ./
注意:添加的如果是添加的绝对路径的文件
请使用刚刚gzip
解压的命令操作
tar -zcvf 待生成的gzip压缩文件名 待压缩的文件或者目录名
bz2 与
gzip` 的命令与功能 几乎一致, -z变成 -j 即可
Linux下,常用的压缩、解压指令 之二
zip 待生成的gzip压缩文件名 待压缩的文件或者目录名 -R
unzip 待生成的gzip压缩文件名
这些工具基本都是: 工具名 + url 的方式,直接能获取到对应网站输出的页面内容
它是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具
curl http://www.hlzblog.top/ -o blog_index.html --progress
curl -I http://www.hlzblog.top/
如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕
如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下
-c, –continue 接着下载没下载完的文件
wget -c http://www.hlzblog.top/
创建文本
touch access.log
创建目录
mkdir haleyleozhang
显示对应目录相关信息
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出)
-l:所有输出信息用单列格式输出,不输出为多列
\<directory_name> 目录名,默认,当前目录
ls -al /var/www
查看当前所在目录
显示对应文本内容
cat access.log
定位指令的二进制程序、源代码文件和man手册页等相关文件的路径
whereis php
查看使用空间
-h或--human-readable 以K,M,G为单位,提高信息的可读性
du -h 文件名或者目录名
检查linux服务器的文件系统的磁盘空间占用情况
-h 方便阅读方式显示
df -h
用来在指定目录下查找文件
-maxdepth<目录层级>:设置最大目录层级
-mindepth<目录层级>:设置最小目录层级
-name<文件名>:查找对应文件或目录,可用*模糊匹配
-print 只显示结果,不显示过程
find / -name nginx* -maxdepth 8 -mindepth 3 -print
以全屏幕的方式按页显示文本文件的内容
Space键:显示文本的下一屏内容
Enier键:只显示文本的下一行内容
B键:显示上一屏内容
Q键:退出
less命令允许用户向前或向后浏览文件,而more命令只能向前浏览
PageUp键 向上翻页
PageDown键 向下翻页
Q键:退出
显示文件的开头的内容
-n <数字>:指定显示头部内容的行数;
head -n 10 access.log
显示文件的结尾的内容
-n <数字>:指定显示头部内容的行数
tail -n 10 access.log
-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化
tail -f access.log
文本编辑器vim 是vi的升级版本
进入编辑器
vim access.log
下述命令在进入编辑器后操作
i 键 进入可编辑状态
esc键 退出可编辑状态(未进入可编辑状态)
:set nu 显示文本侧边的行数
:q 退出
:q! 强制退出
:数字 跳到对应行号
:w 保存
/字符串 查询对应字符串 -> 回车后 -> n下一个匹配字符串,N上一个匹配字符串
dd (连续按两次d)删除单号
u键 撤销上一次的操作,比如刚刚 dd 删除了一行,我现在按u键会恢复文本状态到操作之前
v键 选择区间开始 ,再次按v 取消选中操作
y键 复制选中区域。连按两次,复制单行内容
p键 粘贴刚刚复制过的内容,或者粘贴刚刚被删除的内容【剪切操作】
^ (即shift+6) 跳到行首
$ (即shift+4) 跳到行尾
]] (连续按两次 ] 键)跳到文末
[[(连续按两次 ] 键)跳到文首
是一个列出当前系统打开文件的工具
在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件
查看 4040
端口运行的情况
lsof -i:4040
查看所属 root
用户进程所打开的文件类型为 txt
的文件
lsof -a -u root -d txt
以周期性的方式执行给定的指令,指令输出以全屏方式显示
-n 指定指令执行的间隔时间(秒)
-d 高亮显示指令输出信息不同之处
watch -n 1 -d '需要周期性执行的指令'
示例:监控访问日志的变化:实现类似 tail -f
watch -n 1 -d 'tail -n 10 access.log'
示例:监控当前用户 后台进程的变化
显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
uptime
实时动态地查看系统的整体运行情况
top
结果如下
显示目前登入系统的用户信息
awk '/正则/{print 单行匹配出来的第几项,可以用在这里}' 文件名
它是按行进行匹配,所以搜索出来的结果是一行一行的
匹配,最常见的方案就是使用正则提取信息
通过正则匹配,匹配出示例日志中的 spider
数据
awk '/.*?spider.*/{print $0}' 20180326.log
然后可以通过管道
输出最后五条数据到命令行上显示出来
awk '/.*?spider.*/{print $0}' 20180326.log | tail -5
示例写入到文本中,后续可以再跑脚本,进行一些数据的统计
awk '/.*?(spider.*)/{print $1}' 20180326.log > daily_spider.log
输入的命令历史记录,都存在 ~/.bash_history 文件中,你可以通过 vim 等 编译器 或 下述方法操作它
-c 清空当前历史命令
history -c
n 打印最近的n条历史命令 ,示例显示最近20条
history 20
防火墙,详情点击链接 CSDN iptalbes 相关
设置系统的主机名称
root@VM_5_63_centos
root@online
用户通过 logout 退出,重新登录即可看到效果
tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件 查看详情
yum install tmux
tmux new -s <name>
tmux attach
tmux kill-session -t <name>
d 退出
n 切标签页
s 切窗口
c 新建窗口
, 给窗口取别名
[ 看前面的内容 ,右上角会出现 类似 [0/654] 这样的东西,表明你现在的位置
ctrl + v 往下翻
alt + v 往上翻
ctrl +c 退出
它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。可单独使用,也可使用管道符、重定位符等与其他命令配合使用
root@dev:/data/www/www/blog_v3# cat test.txt
a b c d e f g
h i j k l m n
o p q
r s t
u v w x y z
-n 选项多行输出:
root@dev:/data/www/www/blog_v3# cat test.txt | xargs -n3
a b c
d e f
g h i
j k l
m n o
p q r
s t u
v w x
y z
示例,删除所有test开头的git中的tag
# tag 一览
root@dev:/data/www/www/blog_v3# git tag -l
# - 结果
alphy_20190220_0013
alphy_20190222_1558
alphy_20190225_2307
alphy_20190315_1439
alphy_20190316_1703
alphy_20190322_1117
alphy_20190325_1748
alphy_20190326_0930
test_20190324_0120
test_20190324_0124
test_20190324_0134
# 实现删除含有test的分支
root@dev:/data/www/www/blog_v3# git tag -l | grep test | xargs -n 1 git push origin :
# - 结果
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:HaleyLeoZhang/blog_v3.git
* [new tag] test_20190324_0120 -> test_20190324_0120
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:HaleyLeoZhang/blog_v3.git
* [new tag] test_20190324_0124 -> test_20190324_0124
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:HaleyLeoZhang/blog_v3.git
* [new tag] test_20190324_0134 -> test_20190324_0134
评论列表点此评论