常用工具¶
列出一些常用的工具,包含一些常用的实践。
kill
:
-
常用信号:
-
kill -1
kill -1
是发送 SIGHUP 使其重载,例如systemctl reload
(但不等价)nohup
是忽略 SIGHUPdisown
是从 Shell 作业列表移除,避免 SIGHUP
-
参阅
signal(7)
wget
:
bash
:
- 登陆加载:
/etc/profile
- 按顺序检索,加载最先检索到的:
~/.bash_profile
,~/.bash_login
,~/.profile
- 按顺序检索,加载最先检索到的:
- 交互加载:
~/.bashrc
- 退出钩子:
~/.bash_logout
警告
如果没在 ~/.profile
加入以下内容:
登陆 shell 下不会加载:/etc/bash.bashrc
和 ~/.bashrc
文件。
zsh
:
- 实例加载(环境变量):
/etc/zshenv
->~/.zshenv
- 登陆加载(准备环境):
/etc/zprofile
->~/.zprofile
- 交互加载(交互配置):
/etc/zshrc
->~/.zshrc
- 登陆加载(登陆任务):
/etc/zlogin
->~/.zlogin
- 退出钩子:
~/.zlogout
->/etc/zlogout
提示
按顺序加载,若前一个不加载,后续文件将不会加载。
sed
:
-
选项:
-e
:一个-e
一个命令-i
:直接修改目标文件-n
:抑制默认输出,常与p
命令结合
-
命令:
s/.../.../g
:g
表示全局替换p
:sed -n '1,3p' file.txt
打印 1 到 3 行d
:sed -i '/^$/d' file.txt
删除空行并保存
-
示例:
sed -n '/start/,/end/p' file.txt
打印区间内的所有行sed '/start/,/end/d' file.txt
删除区间内的所有行
awk
:
-
基础结构:
awk 'pattern { action }' file.txt
- 示例:执行
awk '/error/ {print}' log.txt
匹配包含"error"的行
- 示例:执行
-
常用变量:
$0
:整行$1
,$2
, ...:第1,2,...列NF
:字段数量NR
:当前行号FS
:输入字段分隔符OFS
:输出字段分隔符
vim
:
ma
设置光标位置为标注 a,`a
跳转到标注 a 的位置。:marks
列出所有标注:set fileformat=unix/dos
git
:
git init
/git clone <server>
git add .
/git commit -m "message"
git remote add origin <server>
/git push origin <branch>
git checkout -b feature_x
/git checkout master
/git checkout -- <file>
/git branch -d feature_x
git pull
/git fetch && git merge
/git fetch origin && git reset --hard origin/master
git diff <source> <target>
git tag v1.0.0 1a2c3b4d5e
/git log
git config color.ui true
/git config format.pretty oneline
tmux
:
-
Ctrl+B:
Z 、{ 、} 、Space
Ctrl+箭头 、Alt+箭头 、Alt+O
-
创建:
-
:new -s <session-name>
:attach -t <session-name>
-
C
- % 、"
-
-
关闭:
-
D
:kill-session -t <session-name>
-
&
- X
-
-
选择:
:ls
、S- N 、P 、数字
- 箭头
-
其他:
- 重命名 $
- 重命名 ,
- 看编号 Q
-
ssh-keygen
:
- SSHFP:
ssh-keygen -r hostname [-g]
- 区分:
ssh-keygen -B / -l [-E md5/sha256]
- 格式:
ssh-keygen -y / -i / -e [-m RFC4716]
- 密码:
ssh-keygen -p [-N ... ] [-P ... ]