列出当前监听的所有端口 1 sudo lsof -Pn -i4 | grep LISTEN
并发执行shell 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 $ cat command_groups.sh #!/bin/sh command() { echo $1 start sleep $(( $1 & 03 )) # keep the seconds value within 0-3 echo $1 complete } echo First Group: command 1 & command 2 & command 3 & wait echo Second Group: command 4 & command 5 & command 6 & wait echo Third Group: command 7 & command 8 & command 9 & wait echo Not really a group, no need for background/wait: command 10
统计 TCP 连接情况 1 2 3 4 5 $ ss -nat | awk 'NR>1 {d[$1]++} END {for (i in d) print d[i],i}' # NR>1 去除第一行 # {d[$1]++} 对第一列元素进行累加计数 # {for (i in d) print d[i],i} 打印出数组的元素和出现的次数
xargs 1 ps -ef | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9
批量删除文件 1 2 3 4 5 6 7 # Use find: find . -name "*.bak" -type f -delete # But use it with precaution. Run first: find . -name "*.bak" -type f
查看prometheus的日志 1 curl localhost:36425/metrics | grep orm
Go pprof 1 2 # 查看堆栈信息 go tool pprof -alloc_space http://localhost:4321/debug/pprof/heap
循环 1 2 3 4 5 6 7 8 9 10 # i 取值为1 2 3 for i in {1..3}; do echo 192.168.1.1$i ; done # i 取值为 1 3 5 7 9 for i in {1..9..2} ; do echo $i ; done for ((i=1;i<=10;i++)) do echo $i done
条件判断 || 和 &&
||前面执行不通过才执行后面的,也就是或啦, && 是与,前面执行通过会接着执行后面的
匹配 IPv4 地址 1 $ egrep --only-matching -E '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}'
获取本机 IP 1 2 3 4 $ ip r get 1 | awk 'NR==1 {print $NF}' $ ip r get 1 | sed "s/uid.*//g" | awk 'NR==1 {print $NF}' $ curl cip.cc # 查看公网ip
ipcalc 工作中遇到这样的子网ip和掩码:192.168.20.0/24,得在脑海中用二进制去算IP范围是多少,子网掩码是多少;有时还得在纸上画一画,耗时费力。 后来发现ipcalc这个神器,麻麻再也不用担心我算不动了。
一条命令,搞定网络类型、广播地址、子网IP范围等的计算,也很方便给小伙伴演示。
Mac OS
Linux
执行
结果示例
1 2 3 4 5 6 7 8 9 Address: 192.168.20.0 11000000.10101000.00010100. 00000000 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 192.168.20.0/24 11000000.10101000.00010100. 00000000 HostMin: 192.168.20.1 11000000.10101000.00010100. 00000001 HostMax: 192.168.20.254 11000000.10101000.00010100. 11111110 Broadcast: 192.168.20.255 11000000.10101000.00010100. 11111111 Hosts/Net: 254 Class C, Private Internet
文件的交集并集差集 1 2 3 4 5 cat a b | sort | uniq > c # c is a union b 并集 cat a b | sort | uniq -d > c # c is a intersect b 交集 cat a b b | sort | uniq -u > c # c is set difference a - b 差集
lsof
lsof - list open files
lsof 列出打开的文件。绝对是个排查故障的利器,在一切皆文件的 Linux 世界里,lsof 可以查看打开的文件是:
普通文件
目录
网络文件系统的文件
字符或设备文件
(函数)共享库
管道、命名管道
符号链接
网络文件(例如:NFS file、网络 socket,unix 域名 socket)
还有其它类型的文件,等等 另外 lsof 命令也是有着最多选项的 Linux/Unix 命令之一,另一个 nc 命令也是如此 😂。
判断VPS虚拟化类别 VPS(虚拟专用服务器)的虚拟技术有很多种,VPS就是通过某种虚拟技术把一台服务器分成多个虚拟服务器。VPS常用的虚拟技术有OpenVZ、Xen、KVM三种。 在配置ikve2时,需要选择vps类型(OpenVZ还是Xen、KVM),选错将无法成功连接,请务必核实服务器的类型。
vitr-what是RedHat开发的一款检测VPS虚拟化技术的脚本工具,支持检测KVM、Xen、QEMU、VirtualBox等常见的虚拟化技术。 在以下多种发行版上都可以找到二进制安装包:Debian、Ubuntu、CentOS、Fedora (13+)、Red Hat Enterprise Linux (5.7+ and 6.1+)、ArchLinux and Gentoo。
如何判断VPS虚拟化类别,命令如下:
1 2 3 $ sudo apt-get install virt-what -y $ sudo virt-what kvm