选项
今天在Bash Hackers上看到的一个bash选项列表,有一些对我来说还是很方便的,用shopt -s
开启,shopt -u
关闭。
globstar
开启之后,用**
就可以递归目录,我再也不羡慕zsh的**
了。
histappend
开启之后,命令历史会追加到$HISTFILE(默认~/.bash_history
)后面而不是覆盖。没开启的时候,最后关闭的一个bash会把它的历史记录写到~/.bash_history
,之前的其他bash的历史记录就没了。所以开了多个bash的时候,又想保留全部的记录的时候就很有用。
checkhash
因为我的PATH里的可执行文件经常增删和覆盖,所以时不时我要hash -r
一下,开了这个选项之后,会先检查文件是否存在,然后再执行。
autocd
输入目录路径后直接cd
过去,其实不是特别常用,我的cd
是个alias:
alias cd=cdls
function cdls() {
if [[ -z "$1" ]]; then
command cd /tmp/workspace && ls
else
command cd "$*" && ls
fi
}
cd
之后会直接ls
。输入目录路径直接cd
是不会触发这个alias的。
no_empty_cmd_completion
纯强迫症。
变量
HISTCONTROL
设成erasedups
,保存历史记录时会清除之前相同的记录。设成ignoreboth
,不保存空白开头的命令,不保存和前一条历史记录相同的命令。我是设成ignoreboth
,erasedups
的话会看不出上下文。
HISTTIMEFORMAT
设置之后历史记录会保存timestamp,history
会按指定的格式显示时间和命令。我用'%F %T '
。
...
480 2013-08-09 22:33:01 source /tmp/oldu/projects/server.alias
481 2013-08-09 22:33:03 ssh
482 2013-08-09 22:49:28 ls
...
快捷键
从bash的man page,Readline部分看到的,有很多。
快捷建 | 功能 |
---|---|
C-x * | 展开* 和** |
M-/ | 补全文件名 |
M-! | 补全命令 |