日常应用
在 Bash 中,可以经由过程按 Tab 键实现主动补全参数,应用 ctrl-r 搜刮敕令行汗青记录(按下按键之后,输入关键字便可以搜刮,反复按下 ctrl-r 会向后查找匹配项,按下 Enter 键会履行当前匹配的敕令,而按下右偏向键会将匹配项放入当前行中,不会直接履行,以便做出修改)。
在 Bash 中,可以按下 ctrl-w 删除你键入的最后一个悼?船ctrl-u 可以删除行内光标地点地位之前的内容,alt-b 和 alt-f 可以以单词为单位移动光标,ctrl-a 可以将光标移至行首,ctrl-e 可以将光标移至行尾,ctrl-k 可以删除光标至行尾的所有内容,ctrl-l 可以清屏。键入 man readline 可以查看 Bash 中的默认快捷键。内容有很多,例如 alt-. 轮回地移向前一个参数,而 alt-* 可以展开通配符。
你爱好的话,可以履行 set -o vi 来应用 vi 风格的快捷键,而履行 set -o emacs 可以把它改回来。
cd 敕令可以切换工作路径,输入 cd ~ 可以进入 home 目次。要拜访你的 home 目次中的文件,可以应用前缀 ~ (例如 ~/.bashrc )。在 sh 脚本里则用情况变量 $HOME 指代 home 目次的路径。
要想在几台电脑中同步你的设备文件(例如 .bashrc 和 .bash_profile ),可以借助 Git。
为了便于编辑龟龄令,在设置你的默认编辑器后(例如 export EDITOR=vim ),ctrl-x ctrl-e 会打开一个编辑器来编辑当前输入的敕令。在 vi 风格下快捷键则是 escape-v。
回到前一个工作路径: cd - 。
如不雅你输入敕令的时刻半途改了主意,按下 alt-# 在行首添加 # 把它当做注释再按下回车履行(或者依次按下 ctrl-a, #, enter)。如许做的话,之后借助敕令行汗青记录,你可以很便利恢复你刚才输入到一半的敕令。
应用 xargs ( 或 parallel )。他们异常给力。留意到你可以控制每行参数个数( -L )和最大年夜并行数( -P )。如不雅你不肯定它们是否会按你想的那样工作,先应用 xargs echo 查看一下。此外,应用 -I{} 会很便利。例如:
- find . -name '*.py' | xargs grep some_function
- cat hosts | xargs -I{} ssh root@{} hostname
以下是 仅限于 OS X 体系的技能。
- 用 brew (Homebrew)或者 port (MacPorts)进行担保理。这些可以用来在 OS X 体系上安装以上的大年夜多半敕令。
- 用 pbcopy 复制任何敕令的输出到桌面应用,用 pbpaste 粘贴输入。
- 若要在 OS X 终端中将 Option 键视为 alt 键(例如在膳绫擎介绍的 alt-b、alt-f 等敕令顶用到),打开 偏好设置 -> 描述文件 -> 键盘 并勾选“应用 Option 键作为 Meta 键”。
- 用 open 或者 open -a /Applications/Whatever.app 应用桌面应用打开文件。
- Spotlight:用 mdfind 搜刮文件,用 mdls 列出元数据(例如照片的 EXIF 信息)。
- 留意 OS X 体系是基于 BSD UNIX 的,很多敕令(例如 ps , ls , tail , awk , sed )都和 Linux 中有奥妙的不合( Linux 很大年夜程度上受到了 System V-style Unix 和 GNU 对象影响)。你可以经由过程标题为 "BSD General Commands Manual" 的 man 页面发明这些不合。在有些情况下 GNU 版本的敕令也可能被安装(例如 gawk 和 gsed 对应 GNU 中的 awk 和 sed )。如不雅要写跨平台的 Bash 脚本,避免应用这些敕令(例如,推敲 Python 或者 perl )或者经由细心的测试。
- 用 sw_vers 获取 OS X 的版本信息。
pstree -p 以一种优雅的方法展示过程树。
应用 pgrep 和 pkill 根据名字查找过程或发送旌旗灯号( -f 参数平日有效)。
懂得你可以发往过程的旌旗灯号的种类。比如,应用 kill -STOP [pid] 停指荷琐过程。应用 man 7 signal 查看具体列表。
应用 nohup 或 disown 矢荷琐后台过程持续运行。
lsof 来查看开启的套接字和文件。
应用 uptime 或 w 来查看体系已经运行多长时光。
应用 alias 来创建常用敕令的快捷情势。例如: alias ll='ls -latr' 创建了一个新的敕令别号 ll 。
可以把别号、shell 选项和常用函数保存在 ~/.bashrc ,具体看下这篇 文┞仿 。如许做的话你就可以在所有 shell 会话中应用你的设定。
把情况变量的设定以及上岸时要履行的敕令保存在 ~/.bash_profile 。而对于大年夜图形界面启动的 shell 和 cron 启动的 shell,则须要零丁设备文件。
当变量和文件名中包含空格的时刻要非分特别当心。Bash 变量要用引号括起来,比如 "$FOO" 。尽量应用 -0 或 -print0 选项以便用 NULL 来分隔文件名,例如 locate -0 pattern | xargs -0 ls -al 或 find / -print0 -type d | xargs -0 ls -al 。如不雅 for 轮回中轮回拜访的文件名含有空字符(空格、tab 等字符),只需用 IFS=$'\n' 把内部字段分隔符设为换行符。
在 Bash 脚本中,应用 set -x 去调试输出(或者应用它的变体 set -v ,它会记录原始输入,包含多余的参数和注释)。尽可能地使悠揭捉?格模式:应用 set -e 令脚本在产生缺点时退出而不是持续运行;应用 set -u 来检查是否应用了未赋值的变量;尝尝 set -o pipefail ,它可以监测管道中的缺点。当牵扯到很多脚本时,应用 trap 来检测 ERR 和 EXIT。一个好的习惯是裹足本文件开首如许写,这会使它可以或许检测一些缺点,并在缺点产生时中断法度榜样并输出信息:
碰到问题的话,请测验测验应用 Explainshell 去获取相干敕令、参数、管道等内容的解释。