免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1929 | 回复: 0

[Linux] 分享一个有趣的.bashrc设置 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-21 06:20:00
发表于 2015-05-26 11:37 |显示全部楼层
在使用Mac与Linux的命令行终端时,经常会在一些目录之间频繁的切换,于是我参考了一些资料,在.bashrc中写了几个小函数,来方便这样的操作。

操作示例:
1.进入某个目录并通过mark命令创建一个链接
[dong@Dong-MacBookPro ~]$ cd Downloads/Pictures/
[dong@Dong-MacBookPro Pictures]$ mark pictures

2.执行jump命令,在敲Tab键后的自动完成列表中选择想要进入的链接
[dong@Dong-MacBookPro Pictures]$ cd
[dong@Dong-MacBookPro ~]$ jump
chrome github pictures tmp
[dong@Dong-MacBookPro ~]$ jump pictures
[dong@Dong-MacBookPro Pictures]$ pwd
/Users/dong/Downloads/Pictures

3.执行unmark命令,在敲Tab键后的自动完成列表中选择想要删除的链接
[dong@Dong-MacBookPro Pictures]$ cd
[dong@Dong-MacBookPro ~]$ unmark
chrome github pictures tmp
[dong@Dong-MacBookPro ~]$ unmark pictures
remove /Users/dong/.marks/pictures? y
[dong@Dong-MacBookPro ~]$ jump
chrome github tmp
  1. # Filesystem Markers & Jump
  2. 02
  3. export MARKPATH=$HOME/.marks
  4. 03
  5. function jump(){
  6. 04
  7.   cd -P $MARKPATH/$1 2>/dev/null || echo "No such mark: $1"
  8. 05
  9. }
  10. 06
  11. function mark(){
  12. 07
  13.   mkdir -p $MARKPATH; ln -s $(pwd) $MARKPATH/$1
  14. 08
  15. }
  16. 09
  17. function unmark(){
  18. 10
  19.   rm -i $MARKPATH/$1
  20. 11
  21. }
  22. 12

  23. 13
  24. function _marks(){
  25. 14
  26.   COMPREPLY=()
  27. 15
  28.   local cur=${COMP_WORDS[COMP_CWORD]};
  29. 16
  30.   local com=${COMP_WORDS[COMP_CWORD-1]};
  31. 17
  32.   case $com in
  33. 18
  34.     'jump')
  35. 19
  36.       local marks=($(ls ${MARKPATH}))
  37. 20
  38.       COMPREPLY=($(compgen -W '${marks[@]}' -- $cur))
  39. 21
  40.       ;;
  41. 22
  42.     'unmark')
  43. 23
  44.       local marks=($(ls ${MARKPATH}))
  45. 24
  46.       COMPREPLY=($(compgen -W '${marks[@]}' -- $cur))
  47. 25
  48.       ;;
  49. 26
  50.   esac
  51. 27
  52. }
  53. 28
  54. complete -F _marks jump
  55. 29
  56. complete -F _marks unmark
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP