Skip to main content
  1. Posts/

Awesome Command Line

416 words·2 mins
command
Table of Contents

View Listening Ports
#

ss -tulnp | grep <port_number>

Format Json
#

Unformatted json data

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

Performs formatting JSON content and reads a specific field

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

# output
{
  "state": "active"
}

Multi-computer synchronous operation
#

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进程

aux | grep | wak | xargs
#

ps aux | grep .vscode-server | awk '{print $2}' | xargs kill 

ps aux: 这个命令列出系统上所有正在运行的进程。选项 a 显示所有用户的进程,u 以用户友好的格式显示进程信息,x 显示没有控制终端的进程。

grep .vscode-server: 这个命令从 ps aux 的输出中筛选出包含 .vscode-server 字符串的行。.vscode-server 通常是 VS Code 远程服务器相关的进程。

awk ‘{print $2}’: 这个命令处理 grep 的输出。awk 是一个文本处理工具,’{print $2}’ 表示打印每行的第二列内容。在 ps aux 的输出中,第二列通常是进程 ID (PID)。

xargs kill: 这个命令将 awk 输出的进程 ID 列表作为参数传递给 kill 命令。kill 用于终止指定的进程。

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

Related

Supervisor Description
121 words·1 min
command
Supervisor管理 # 在linux服务器上部署了node项目,使用supervisor进行管理 要使更新的配置得以应用,需要重新启动supervisor服务。具体操作如下: 二、更新新的配置到supervisord 配置文件: /etc/supervisord.
Linux 基础配置及命令行操作
585 words·3 mins
Linux
免密登录配置 # 生成公钥、私钥
MySQL Error
45 words·1 min
MySQL
utf8mb4 # XShelll 数据库查询,中文变成问号
Running pip as the 'root' user can result in broken permissions
194 words·1 min
Python
The warning you’re seeing is advising against using pip as the ‘root’ user.
Setting up SSH tunnel
60 words·1 min
ssh
Error 提示 # VSCode remote ssh 连接服务器,卡在> Setting up SSH Host xx;:Setting up SSH tunnel