Skip to main content

awesome tool

command
KIGA
Author
KIGA
This is a personal blog, intended for sharing.
Table of Contents

Format Json
#

未进行格式化存储的json数据

[[{"id": "1fd40f50-73ac-43f6-a7d5-2c2e0f8e4887","status": {"state": "active"},"updatedAt": "2024-01-04T03:07:00.809Z","matchers": [],"startsAt": "2024-01-04T03:07:00.809Z"}]]

进行格式化JSON内容,并读取某个特定字段

cat t.json | json_pp | jq '.[][].status'

# output
{
  "state": "active"
}

多机同步操作
#

root@vmTest:~# for i in 2 3 4
> do
> scp test.json  root@192.168.8.$i:/root
> done

僵尸进程查询
#

kill -9无法杀死一般因为是僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'

-A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为 stat(状态),ppid(进程父id), pid(进程id),cmd(命令),这四个参数因为状态为 z或者Z的进程为僵尸进程,所以使用grep抓取stat状态为zZ进程

Find file
#

列出所有文件的绝对路径

find  $PWD | xargs ls -ld | grep ^- | awk -F' ' '{print $9}' | grep .md
find $PWD:搜索当前目录及其子目录中的所有文件和目录。
|:管道符,将 find 命令的输出结果传递给下一个命令。
xargs ls -ld:将 find 命令找到的所有文件和目录名作为参数传递给 ls -ld 命令。ls -ld 命令会列出这些文件的详细信息。
|:管道符,将 ls -ld 命令的输出结果传递给下一个命令。
grep ^-:过滤出所有类型为普通文件的行。在 ls -ld 命令的输出中,类型为普通文件的行以 - 开头。
|:管道符,将 grep 命令的输出结果传递给下一个命令。
awk -F' ' '{print $9}':使用空格作为分隔符,提取每个文件名并将其输出。
|:管道符,将 awk 命令的输出结果传递给下一个命令。
grep .md:过滤出所有扩展名为 .md 的行。

Query process for using multiple swap memory
#

for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10

# 81667 371.781M
# 81818 371.703M
# 1849767 281.137M

# ps aux | grep ${pid}
cd /proc:将当前目录更改为 /proc 目录。
ls:列出当前目录中的所有文件和目录。
grep "^[0-9]":过滤掉所有不以数字开头的文件和目录。
awk ' $0 >100':过滤掉数字小于 100 的文件和目录。
for i in $(...) ;do ... ; done:循环处理每个符合前面条件的文件或目录。
awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null:对于每个文件或目录,使用 awk 在 /proc/$i/smaps 文件中搜索包含 "Swap:" 的行。然后将匹配行的第二列值相加,并输出进程 ID ($i) 和该进程使用的总交换内存大小(以兆字节为单位)。
2>/dev/null:将任何错误消息重定向到 /dev/null(一个特殊的文件,可以丢弃所有输出)。
sort -k2nr:按第二列的值以逆数值顺序排序输出。
head -10:仅显示输出的前 10 行(即使用交换内存最多的前 10 个进程)。
ps aux:列出当前正在运行的所有进程的详细信息。
|:管道符,将 ps aux 命令的输出结果传递给 grep 命令。
grep ${pid}:过滤出包含指定 ${pid} 的行。

Vim paste content
#

:set paste

Linux | 生成指定大小的文件
#

参数 作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个块的大小
count 设置要复制块的个数

/dev/zero 为数据源,来复制一个文件。

# 生成一个内容随机的文件
dd if=/dev/zero of=test_1G.txt count=1 bs=1G

查看本地DNS服务器地址
#

# systemd-resolve --status | grep 'DNS Servers'

Windows ping IP Address
#

PS C:\WINDOWS\system32> Test-NetConnection xx.yy.com

查询指定域名
#

# nslookup www.baidu.com

逃逸分析
#

go build -gcflags="-m -l" main.go

有关内存消耗最大进程的更多信息
#

ps aux --sort -rss | head
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head
ps -eo pid,ppid,%mem,%cpu,comm --sort=-%mem | head

top -c -b -o +%MEM | head -n 20 | tail -15
top -b -o +%MEM | head -n 20 | tail -15