每天在命令行下,一大部分的工作都是一遍又一遍的输入/usr/lib/python2.7/dist-packages这样来切换目录,现在利用一个简单的配置可以实现如下效果:
root@controller230:/usr/lib/python2.7/dist-packages# cd ~root@controller230:~# root@controller230:~# cd /usr/lib/python2.7/dist-packagesroot@controller230:/usr/lib/python2.7/dist-packages# mark distroot@controller230:/usr/lib/python2.7/dist-packages# cd ~root@controller230:~# g distroot@controller230:/usr/lib/python2.7/dist-packages# gsdist -> /usr/lib/python2.7/dist-packagesroot@controller230:/usr/lib/python2.7/dist-packages#
实现原理:
在/etc/profile末尾增加以下内容后保存:
# markexport MARKPATH=$HOME/.marksexport MARKDEFAULT=tagfunction g { local m=$1 if [ "$m" = "" ]; then m=$MARKDEFAULT; fi cd -P "$MARKPATH/$m" 2>/dev/null || echo "No such mark: $m"}function mark { mkdir -p "$MARKPATH" local m=$1 if [ "$m" = "" ]; then m=$MARKDEFAULT; fi rm -f "$MARKPATH/$m" ln -s "$(pwd)" "$MARKPATH/$m"}function unmark { local m=$1 if [ "$m" = "" ]; then m=$MARKDEFAULT; fi rm -f "$MARKPATH/$m"}function gs { ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 10-}_completemarks() { local curw=${COMP_WORDS[COMP_CWORD]} local wordlist=$(ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 10) COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw")) return 0}complete -F _completemarks g unmark
以上脚本在Ubuntu下测试通过。其他系统中可能ls -l的输出会不太一样。
旅游,放松心情,用眼睛享受风景。