本文收集一些有用的命令。
ssh
基本命令
包含跳板机
1 2
| ssh -J jumper_user@jumper_host:jumper_port user@host -p port ssh -o "ProxyJump jumper_username@jumper_ip:jumper_port" user@host -p port
|
authorized_keys
在服务器 ~/.ssh/authorized_keys
中存放客户端公钥,则客户可免密登录。
config
~/.ssh/config
是配置文件,可配置常用连接的属性。
scp
1 2 3
| scp -P port username@host1:file1 username@host2:file2 # 包含跳板机 scp -P port -o 'ProxyJump jumper_username@jumper_ip:jumper_port' username@host1:file1 username@host2:file2
|
wake on lan
1
| wolcmd [mac address] [ip address] [subnet mask] [port number]
|
git
列出 git 的所有 blob 对象,按从小到大排序(参考资料):
1 2 3 4 5 6
| git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | sed -n 's/^blob //p' | sort --numeric-sort --key=2 | cut -c 1-12,41- | $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
|
注:macOS 没有 numfmt
,可以去掉最后一行或者 brew install coreutils
.
screen
1 2 3 4 5 6 7 8
| # 创建新的 screen 会话 screen -S session_name # 显示当前所有的 screen 会话 screen -ls # attach 指定 screen 会话 screen -r session_name # detach 指定 screen 会话 screen -d session_name
|
Ctrl+a
系列:先按 Ctrl+a
,松开后按以下按键:
d
:detach 当前对话
k
:kill 当前对话
tmux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 开启新 session(并命名) tmux tmux new -s <session-name> # 显示所有session tmux ls # 使用 session 编号或名称接入 tmux attach -t 0 tmux attach -t <session-name> tmux a -t <session-name> # 使用 session 编号或名称 kill tmux kill-session -t 0 tmux kill-session -t <session-name> # 使用 session 编号或名称切换 tmux switch -t 0 tmux switch -t <session-name> # 重命名 session tmux rename-session -t <old-name> <new-name>
|
Ctrl+b
系列:先按 Ctrl+b
,松开后按以下按键:
s
:选择需要跳转的 session 会话
$
:重命名当前会话
d
:断开当前 session
c
:在当前 session 中多加一个 window
w
:在一个 session 中的多个 window 中作出选择
x
:关闭当前 session 中的当前 window
[
:进入 tmux 翻屏模式, 实现上下翻页;进入翻屏模式后 PgUp
PgDn
实现上下翻页(mac 可以用 fn
+ ↑ ↓
实现上下翻页);q
退出翻屏模式
!
:关闭一个 session 中所有窗口
%
:将当前窗口分成左右两分
"
:将当前窗口分成上下两分
方向键 :让光标在不同的窗口中跳转
按住 Ctrl+b
不放,同时按住方向键,可以调节光标所在窗口的大小