跳转到内容
Go back

命令札记

更新于:

命令札记

纪录一些偶尔会需要用到的工具和命令,节约一些去搜索的时间

Powershell 设置终端代理

$Env:http_proxy="http://127.0.0.1:7890";$Env:https_proxy="http://127.0.0.1:7890"

Git

命令作用
git clean -n演习:看看会删什么,但不真删。
git clean -f强制删除未跟踪的文件
git clean -fd强制删除未跟踪的文件和目录
git clean -fdx强制删除所有未跟踪的文件和目录,包括被 .gitignore 忽略的

Jq

将所有过滤结果保存成一个完整的 JSON 数组:

jq '.params.list | [.[]]' 1.json > output.json

Tmux

最简操作流程

以当前用户身份运行

# 新建会话
tmux new -s my_session

# 在 Tmux 会话中运行所需的程序

# 按下快捷键Ctrl+b d 将会话分离

# 重新连接到会话
tmux attach-session -t my_session

以特定用户身份运行

# 以 llm 用户身份新建会话
sudo -u llm tmux new-session -s llm
sudo -u llm tmux new-session -s llm -c /home/llm


# 以 llm 用户身份附加(attach)到已存在的会话
sudo -u llm tmux attach-session -t llm
# 或简写
sudo -u llm tmux attach -t llm


# 看 llm 用户的所有 tmux 会话
sudo -u llm tmux list-sessions
# 或简写
sudo -u llm tmux ls


# 终止 llm 用户的某个会话
sudo -u llm tmux kill-session -t llm

快捷键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是 Ctrl+b,即先按下 Ctrl+b,快捷键才会生效。

举例来说,帮助命令的快捷键是 Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下 Ctrl+b,再按下 ?,就会显示帮助信息。

Ctrl+b %:划分左右两个窗格
Ctrl+b <arrow key>:光标切换到其他窗格。`<arrow key>`是指向要切换到的窗格的方向键,比如切换到下方窗格,就按方向键``

切换会话

在 tmux 中切换会话,最常用的快捷键是 Ctrl+b (前缀键) 后按 s,这会显示所有会话列表,你可以使用上下方向键选择会话,然后按回车键进入。

tmux 使用鼠标上下滚动

前缀命令

ctrl+b

全局开启鼠标

:set -g mouse on

SSH-kengen

从 SSH 的已知主机文件中移除特定主机的记录

ssh-keygen -f '/root/.ssh/known_hosts' -R '1.2.4.8'

Biome

Biome 是一个 JS 工具箱,零配置就能实现 JS 脚本的格式化和 Lint,性能出众。

# 安装
## On macOS
brew install biome
## On Windows
scoop install biome

# 格式化 js 文件
biome format index.js --files-max-size=104857600 --write
  1. 出于性能原因,超过此限制的文件将被忽略。默认为 1 MiB。
  2. 1 MiB(Mebibyte)等于 1,048,576 字节,所以 100 MiB 等于 104,857,600 字节

Rsync

rsync -avzP --exclude='Javadoc' --exclude='target' springboot/ tx:/root/

或者

rsync -avzP --exclude={'Javadoc','target'} springboot/ tx:/root/

解释:

Curl

指定 Cookie

可以使用 --cookie "COOKIES" 选项来指定 Cookie,如果有多个 Cookie,可以使用分号进行分隔:

curl http://man.linuxde.net --cookie "user=root;pass=123456"

指定 http 协议版本

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

查看公网 IP

查看公网 IP:

curl -s cip.cc | awk '/IP/{print $NF}'

作为变量使用

echo $(curl -s cip.cc | awk '/IP/{print $NF}')

合并 Yaml 文件

合并 yaml 文件

yq eval-all '. as $item ireduce ({}; . * $item)' *.yaml

Vim

使用正则表达式结合全局删除命令,快速删除三大私有网段 IP

分别删除

" 删除 10.0.0.0/8 范围
:g/\<10\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>/d

" 删除 172.16.0.0/12 范围
:g/\<172\.\(1[6-9]\|2[0-9]\|3[0-1]\)\.\d\{1,3}\.\d\{1,3}\>/d

" 删除 192.168.0.0/16 范围
:g/\<192\\.\d\{1,3}\.\d\{1,3}\>/d

单行命令全部删除

:g/\(\<10\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>\|\<172\.\(1[6-9]\|2[0-9]\|3[0-1]\)\.\d\{1,3}\.\d\{1,3}\>\|\<192\\.\d\{1,3}\.\d\{1,3}\>\)/d

说明:

注意事项:

  1. 这些正则表达式会匹配符合格式的 IP 地址,但不会验证数字范围(比如是否小于 255)
  2. 如果需要更精确的匹配,可能需要更复杂的正则表达式

使用建议:

  1. 先用 :set nu 显示行号
  2. 使用 :g/pattern/p 预览匹配结果
  3. 确认无误后再使用删除命令
  4. 可以用 u 撤销操作

查看 Linux 版本信息

lsb_release -a
hostnamectl
cat/etc/os-release

macOS 查看 Jdk 安装路径

/usr/libexec/java_home -V

Windows 包管理器更新软件

scoop 更新所有软件包

scoop update *

choco 更新所有软件包

sudo choco upgrade all

winget

winget upgrade --all --locale zh --silent --accept-package-agreements --accept-source-agreements --disable-interactivity

Pip

更新 pip

pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}

requirements.txt 生成和导入

在虚拟环境中使用 Pip 生成

(venv) $ pip freeze >requirements.txt

在虚拟环境中使用 Pip 导入

(venv) $ pip install -r requirements.txt

创建离线安装包

使用 pip download 下载包

pip download -r requirements.txt -d offline_packages

将下载好的包传输到目标环境。

在目标环境中创建一个新的 requirements.txt 文件,并将下载的包放在一起。

使用 pip install 命令进行安装:

pip install --no-index --find-links=offline_packages -r requirements.txt

假设你的 requirements.txt 内容如下:

requests==2.25.1
numpy>=1.19.0
pandas

并且下载的包在 D:\offline_packages 目录下,在目标环境中,你可以执行以下命令:

pip install --no-index --find-links=D:\offline_packages -r D:\offline_packages\requirements.txt

Sed

只删除纯空行

sed '/^\s*$/d' file

删除纯空行和由空格组成的空行

sed '/^[  ]*$/d' file

Awk

从 test.csv 中筛选包含 ” 神州行 ” 的行,提取第一列,去重排序,并在每行前后添加引号和逗号。

awk -F',' '/神州行/ {if (!seen[$1]++) print "\"" $1 "\","}' test.csv

7z 恢复 Scoop 归档

7z e "Scoop-00PackageManager-Python.zip" "00PackageManager.7z" -aoa -o"D:\00PackageManager" ; 7z x "D:\00PackageManager\00PackageManager.7z" -aoa -o"D:\00PackageManager\"

Screen

常用 Screen 命令参考

Screen 常用快捷键(在会话内部使用)

Httpx 提取 SSL 证书里的域名

信息收集之快速提取 SSL 证书里的域名

echo "https://www.vip.com" | httpx -tls-probe -json -silent | jq .tls.subject_an

Windows 查询系统启动时间

systeminfo | findstr /C:"System Boot Time" /C:"系统启动时间"

附录

参考资料


分享文章至:

Previous Post
初始化 Git
Next Post
查询最近 40 个 Commit 中 Src 目录的 Diff