常用工具¶
列出一些常用的工具,包含一些常用的实践。
kill:
-
常用信号:
-
kill -1
kill -1是发送 SIGHUP 使其重载,例如systemctl reload(但不等价)nohup是忽略 SIGHUPdisown是从 Shell 作业列表移除,避免 SIGHUP
-
参阅
signal(7)
wget:
curl:
curl -fsSL https://example.com/path/to/filename -o /path/to/newfilename
curl -LO https://example.com/path/to/filename
nc:
sudo:
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_xgit pull/git fetch && git merge/git fetch origin && git reset --hard origin/mastergit diff <source> <target>git tag v1.0.0 1a2c3b4d5e/git loggit 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 ... ]