Skip to content

Instantly share code, notes, and snippets.

@stdrc
Last active September 19, 2022 02:46
Show Gist options
  • Save stdrc/6d0e8a163b905a64b66fb97446380128 to your computer and use it in GitHub Desktop.
Save stdrc/6d0e8a163b905a64b66fb97446380128 to your computer and use it in GitHub Desktop.
常用命令

常用小命令

SSH 相关

打开 sock5 代理:

ssh -D 1337 -q -C -N remote-hostname
# -D sock5 代理端口
# -q 不输出任何内容
# -N 不执行远程命令(只转发端口)
# -C 压缩数据

本地端口转发:

ssh -L 8080:127.0.0.1:80 -N remote-hostname

Linux 用户相关

sudo 免密码:

su - # 进入 root shell
visudo
# 添加 user-name ALL=(ALL) NOPASSWD:ALL

Git 相关

开一个空分支:

git switch --orphan <branch-name>

GPG 相关

列出所有 key:

gpg --list-secret-keys --keyid-format=long

编辑 key:

gpg --edit-key <key>

网络相关

查看端口占用:

lsof -i
lsof -i:8000

修复 Git 报错 server certificate verification failed

sudo apt-get update
sudo apt-get install --reinstall ca-certificates
sudo mkdir /usr/local/share/ca-certificates/cacert.org
sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
sudo update-ca-certificates
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

字符串处理

根据分隔符分割字符串并取其中第 n 个:

cut -d '_' -f 2 <<< 'one_two_three_four_five'
awk -F '_' '{print $2}' <<< 'one_two_three_four_five'

使用 awk 获取最后一列:

echo "a b c" | awk '{print $(NF)}'

包管理

HomeBrew 导出和安装 Brewfile,可以用来删除不再被任何包依赖的包:

brew bundle dump
# brew remove --force $(brew list --formula)
brew bundle install

VS Code 打开远程文件夹

code --folder-uri "vscode-remote://ssh-remote+remote_server_goes_here/folder/on/remote/host/here

调试相关

objdump -S --start-address 0x400100 a.out | less

GDB 相关

gdb -x .gdbinit -n -tui

单步调试时禁用 thread 切换

set scheduler-locking step

切换到特定 thread

thread 2

打印 AArch64 系统寄存器

需要使用全大写:

i r VBAR_EL2

输出所有数字为 16 进制

set output-radix 16

VMWare Linux 虚拟机 HGFS 共享文件夹

共享文件夹不显示的解决办法:

sudo vmware-config-tools.pl -d --clobber-kernel-modules=vmhgfs

XTerm HiDPI 支持

~/.Xresources

XTerm*renderFont: true
XTerm*faceName: Monospace
XTerm*faceSize: 9

立即生效:

xrdb -merge ~/.Xresources

文件相关

# 查找当前目录下的 .txt 文件
find . -type f -name "*.txt"

# 查找并对每个项执行命令
find . -type d -name "__pycache__" | xargs rm -rf

# 显示某文件的大小
stat --format=%s filename

# 拷贝文件,对符号链接拷贝其指向的文件
cp -r -L dir1/* dir2/

Docker 相关

# 杀死正在运行的容器
docker kill <id>

# 删除容器
docker rm <id>

# 删除所有 stop 的容器
docker rm $(docker ps -a -q)

# 删除 my-image 所有镜像
docker rmi $(docker images | grep 'my-image' | awk {'print $3'})

# 删除除 my-image 之外的所有镜像
docker rmi $(docker images | grep -v 'my-image' | awk {'print $3'})

# 删除所有标签为 none 的镜像
docker rmi $(images | grep '^<none>' | awk {'print $3'})

FFmpeg 相关

# FLV 转 MP3
ffmpeg -i input.flv -q:a 5 out.mp3

# 视频使用 H.265 编码
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4

压缩/解压缩/打包

macOS 上分卷压缩 ZIP:

# 分卷压缩文件夹
zip -s 100m -x "*.DS_Store" -r split-foo.zip foo/
# -s 切分单元的大小,可选的单位有 k(kB), m(MB), g(GB), t(TB), 默认为 m
# -r 或者 --recurse-paths 递归目录
# -x 或者 --exclude 忽略文件

# 切分已有 ZIP 文件
zip existing.zip --out new.zip -s 50m

# 解压分卷压缩文件
zip -s 0 split.zip --out single.zip # -s 0 表示合并
unzip single.zip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment