CentOS常用命令

awk根据列过滤内容

netstat -nap | awk '{if($4~":6443" && $(NF-1)=="LISTEN") print $0}'

if() :括号里面条件满足,则执行 print $0
$4 : 第四列内容包含有 :6443 的字眼
$(NF-1):倒数第二列等于 LISTEN 的值
&& 两个条件都满足才输出, || 任意一个条件满足则输出
{print $0} 显示满足匹配条件的整行内容

ping指定数据包大小

# 发 4 次 1472 数据的icmp报文,【默认】可拆包
ping -c 4 -s 1472 IP地址

# 发 4 次 1472 数据的icmp报文,数据不拆包。
ping -c 4 -s 1472 -M do IP地址

说明
当MTU为1500时,数据载荷可以封装1480字节,其中IP报文头固定20字节。
上述数的1480字节是指ICMP报文。其中ICMP报文的Type字段需要占用8字节,所以ping实际可以封装1472字节数。

gc 相关

# 显示Java堆详细信息
jmap -heap [PID]

# 统计gc信息统计, 多少毫秒输出一次
jstat -gcutil [PID] [millisecond]

# 导出堆信息
jmap -dump:format=b,file=./dump.bin [PID]

过滤两个时间点之间的日志

awk '/221031 17:30/, /221031 18/ {print $0}' /tmp/mysql-bin.000538.log

查看pod状态

输出四列,分别是 PodNamePodIPImageHostIP 信息

kubectl get pod -l name=nginx -ojsonpath='{range .items[*]}{.metadata.name} {.status.podIP} {.spec.containers[0].image} {.status.hostIP}{"\n"}'
nginx-69bc7d7bbd-8rf7b 172.26.173.33 192.168.32.188:8021/cloud/nginx:latest 192.168.32.146
nginx-69bc7d7bbd-jvdtv 172.26.68.172 192.168.32.188:8021/cloud/nginx:latest 192.168.32.148
nginx-69bc7d7bbd-n5mkt 172.26.175.39 192.168.32.188:8021/cloud/nginx:latest 192.168.32.144
nginx-69bc7d7bbd-tbrzz 172.26.68.148 192.168.32.188:8021/cloud/nginx:latest 192.168.32.147

获取容器工作目录

docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'

查看软件包所有版本

yum list telnet --showduplicates | sort -n

统计:各种连接的数量

ss -nat | awk '{++S[$1]} END {for(a in S) print a, S[a]}' | grep -v State
netstat -an | awk '/^tcp/ {++s[$NF]} END {for(a in s) print a',' s[a]}'

清理本地的镜像

$ docker image prune -a
或者
$ docker images | grep -v IMAGE | awk '{print $3}' | xargs -i docker rmi -f {}
  • 删除所有悬空图像。虚悬镜像(dangling image):tag 和 REPOSITORY为 <none>
  • 如果 -a 指定,还将删除任何容器未引用的所有图像。

容器inspect

# 非退出状态的容器ID
for i in `docker ps -q`;do docker inspect $i -f {{.ID}} | cut -c 1-12 ;done
# 非退出状态的镜像ID
for i in `docker ps -q`;do docker inspect $i -f {{.Image}} | awk -F: '{print $2}'|cut -c 1-12 ;done

# 列出非退出状态容器ID和镜像ID
echo -e "ContainerID\t  ImageID" && for i in `docker ps -aq`;do docker inspect $i -f {{.ID}} | cut -c 1-12 | tr "\n" "\t" && docker inspect $i -f {{.Image}} | awk -F: '{print $2}'|cut -c 1-12 ;done 

设置用户sudo免密

useradd ops
echo 123456 | passwd --stdin ops

echo "ops    ALL=(ALL)       NOPASSWD: ALL" | sudo tee /etc/sudoers.d/ops
sudo chmod 0440 /etc/sudoers.d/ops

生成复杂密码

# 生成12位密码
openssl rand -base64 9

# 生成16位密码
openssl rand -base64 12

tar分割大文件

# 分割文件
tar czvf - [待分割的文件名称] | split -b 2048m - [待分割的文件名称]_

# 分割后合并文件
cat [待分割的文件名称]_* > [待分割的文件名称]

ssh免密登录

ssh-keygen -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub ops@ceph01

加密文件(openssl)

# 原文件(明文)
$ cat passwd 
123456abc

# 加密passwd文件 (cat 明文文件 | sudo openssl enc -aes-256-cbc -md md5 -out 密文文件)
$ cat passwd | sudo openssl enc -aes-256-cbc -md md5 -out /etc/.passwd.enc 
enter aes-256-cbc encryption password:               # 设置密码
Verifying - enter aes-256-cbc encryption password:   # 再次输入密码

# 验证(解密) (openssl enc -aes-256-cbc -md md5 -d -in 密文文件)
$ openssl enc -aes-256-cbc -md md5 -d -in /etc/.paaswd.enc 
enter aes-256-cbc decryption password:               # 输入密码
123456abc

# 删除源文件
$ rm -rf passwd 

查看主机类型

sudo dmidecode -s system-product-name

查看网卡速率

sudo ethtool eno3

查看线程数

ps -Lf PID
posted @   jiaxzeng  阅读(121)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示