- 学会如何使用
man
命令去阅读文档。学会使用apropos
去查找文档。用type 命令
来判断这个命令到底是可执行文件、shell 内置命令还是别名。 - 熟悉 Bash 中的任务管理工具:
&
,ctrl-z,ctrl-c,jobs
,fg
,bg
,kill
等。 - 在 Bash 中,可以按下 ctrl-w 删除你键入的最后一个单词,ctrl-u 可以删除行内光标所在位置之前的内容,alt-b 和 alt-f 可以以单词为单位移动光标,ctrl-a 可以将光标移至行首,ctrl-e 可以将光标移至行尾,ctrl-k 可以删除光标至行尾的所有内容,ctrl-l 可以清屏。键入
man readline
可以查看 Bash 中的默认快捷键。内容有很多,例如 alt-. 循环地移向前一个参数,而 alt-* 可以展开通配符 - 如果你输入命令的时候中途改了主意,按下 alt-# 在行首添加
#
把它当做注释再按下回车执行(或者依次按下 ctrl-a, **#**, enter)。这样做的话,之后借助命令行历史记录,你可以很方便恢复你刚才输入到一半的命令。 - 使用
xargs
( 或parallel
)。他们非常给力。注意到你可以控制每行参数个数(-L
)和最大并行数(-P
)。如果你不确定它们是否会按你想的那样工作,先使用xargs echo
查看一下。此外,使用-I{}
会很方便。例如:
1 | find . -name '*.py' | xargs grep some_function |
pstree -p
以一种优雅的方式展示进程树了解 Bash 中的“here documents”,例如
cat <<EOF ...
使用
screen
或tmux
来使用多份屏幕,当你在使用 ssh 时(保存 session 信息)将尤为有用。而byobu
可以为它们提供更多的信息和易用的管理工具。另一个轻量级的 session 持久化解决方案是dtach
使用
ag
在源代码或数据文件里检索Markdown,HTML,以及所有文档格式之间的转换,试试
pandoc
使用
jq
处理 JSON使用
shyaml
处理 YAML标准的源代码对比及合并工具是
diff
和patch
。使用diffstat
查看变更总览数据。注意到diff -r
对整个文件夹有效。使用diff -r tree1 tree2 | diffstat
查看变更的统计数据。vimdiff
用于比对并编辑文件。curl
和curl -I
可以被轻松地应用于 web 调试中,它们的好兄弟wget
也是如此,或者也可以试试更潮的httpie
Java 系统调试则是一件截然不同的事,一个可以用于 Oracle 的 JVM 或其他 JVM 上的调试的技巧是你可以运行
kill -3 <pid>
同时一个完整的栈轨迹和堆概述(包括 GC 的细节)会被保存到标准错误或是日志文件。JDK 中的jps
,jstat
,jstack
,jmap
很有用。SJK tools 更高级