自动补完不算什么,一键直达目录才是终极神器!

Adrien Brochard 的头像

·

·

·

59,629 次阅读

在命令行中切换目录是最常用的操作,不过很少有比一遍又一遍重复“cd ls cd ls cd ls ……”更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字,那么你不得不使用ls来确认,然后使用cd来进入你想要进的那一个。所幸的是,现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是,你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰,你一定会对autojump感到惊喜。

autojump是一个命令行工具,它允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处。

在Linux上安装autojump

在Ubuntu或Debian上安装autojump:

$ sudo apt-get install autojump

要在CentOS或Fedora上安装autojump,请使用yum命令。在CentOS上,你需要先启用EPEL仓库才行。

$ sudo yum install autojump

在Archlinux上安装autojump:

$ sudo pacman -S autojump

如果你找不到适合你的版本的包,你可以从GitHub上下载源码包来编译。

autojump的基本用法

autojump的工作方式很简单:它会在你每次启动命令时记录你当前位置,并把它添加进它自身的数据库中。这样,某些目录比其它一些目录添加的次数多,这些目录一般就代表你最重要的目录,而它们的“权重”也会增大。

现在不管你在哪个目录,你都可以使用下面的语法来直接跳转到这些目录:

autojump [目录的名字或名字的一部分]

注意,你不需要输入完整的名称,因为autojump会检索它的数据库,并返回最可能的结果。

例如,假定我们正在下面的目录结构中工作。

那么下面的命令将直接让你跳到/root/home/doc下,不管你当前位置在哪里。

$ autojump do

如果你也很讨厌打字,那么我推荐你为autojump起个别名,或者使用默认的别名。

$ j [目录的名字或名字的一部分]

另外一个引人注目的功能是,autojump支持zsh和自动补完。如果你不确认哪里是不是你要跳转的地方,敲击TAB键就会列出完整路径。

还是同样的例子,输入:

$ autojump d

然后敲击tab键,将会返回/root/home/doc或者/root/home/ddl。

最后,对于高级用户,你可以访问目录数据库,并修改它的内容。可以使用下面的命令来手动添加一个目录:

$ autojump -a [目录]

如果你突然想要把当前目录变成你的最爱和使用最频繁的文件夹,你可以在该目录通过命令的参数 i 来手工增加它的权重

$ autojump -i [权重]

这将使得该目录更可能被选择跳转。相反的例子是在该目录使用参数 d 来减少权重:

$ autojump -d [权重]

要跟踪所有这些改变,输入:

$ autojump -s

这会显示数据库中的统计数据。而以下:

$ autojump --purge

命令将会把不再存在的目录从数据库中移除。

简言之,autojump将会受到所有命令行高级用户的欢迎。不管你是在ssh进一台服务器,还是仅仅想要追随复古潮流,敲更少的键来减少导航时间总是件好事。如果你真的热衷于此类工具,你也肯定也想看看Fasd,它应该会给你一个惊喜——我们下次再介绍它。

你觉得autojump怎么样?你会经常用它么?发表一下你的评论吧。


via: http://xmodulo.com/2014/06/speed-up-directory-navigation-linux-terminal.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

27 条回复

  1. 微博评论 的头像
    微博评论

    @jia-Zz- 这个小羊挺可爱

  2. 微博评论 的头像
    微博评论

    强烈推荐autojump,只要一个j,想去哪个地方去哪个地方

  3. 微博评论 的头像
    微博评论

    深夜福利

  4. 7th 的头像
    7th

    呵呵。。。。。

    来自厦门
  5. 零度王爵 的头像
    零度王爵

    挺好!

    来自秦皇岛
  6. 微博评论 的头像
    微博评论

    不错

  7.  的头像
    匿名

    用不了啊,回车之后还是在当前目录,用j时候会说j:未找到命令

    来自漳州
  8. linux 的头像
    linux

    你当然得先安装 autojump 啦,这又不是默认带的。

    来自北京
  9. 微博评论 的头像
    微博评论

    好腻害的样纸[熊猫]

    来自北京
  10. 微博评论 的头像
    微博评论

    @我的印象笔记 //@西瓜大丸子汤:强烈推荐autojump,只要一个j,想去哪个地方去哪个地方

    来自北京
  11. 微博评论 的头像
    微博评论

    卧槽!!

    来自重庆
  12. 微博评论 的头像
    微博评论

    autojump 妥妥的

    来自北京
  13. netb2c 的头像
    netb2c

    看着好流弊的样子.

    来自郑州
  14. wangchn 的头像
    wangchn

    autojump

    来自上海
  15. arhool 的头像
    arhool

    好方便的说

    来自广州
  16. Nutall 的头像
    Nutall

    fedora 19跳不动呢?有相同遇到的吗?

    来自天津
  17. linux 的头像
    linux

    居然你的头像是动态的,我都不知道支持 GIF 动态。。。哈哈

    来自北京
  18. Nutall 的头像
    Nutall

    恩,估计是bug吧。我把用yum安装的卸载了,去git上面下载的最新版本安装就ok了

    来自天津
  19. knowaeap 的头像
    knowaeap

    fedora21 也跳不动

    来自厦门
  20. Nutall 的头像
    Nutall

    可以了,安装完后,要先source /etc/profile.d/autojump.sh后才行。在~/.bashrc里面添加了[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh 然后. .bashrc

    来自天津
  21. 来自 - 上海 的 Firefox/Linux 用户 的头像
    来自 – 上海 的 Firefox/Linux 用户

    实际用了一下,一个j好爽啊~~~~

    来自上海
  22. Esteem 的头像
    Esteem

    刚开始用一定很不爽!毕竟都是根据使用频率来评判权重的。

    来自益阳
  23. 来自北京的 Chrome 44.0|Mac 10.11 用户 的头像
    来自北京的 Chrome 44.0|Mac 10.11 用户

    如果 log 下面也有一个 doc 文件夹呢?如何进入这个 log/doc?

    来自北京
  24. 来自广东深圳的 Chrome 50.0|Mac 10.11 用户 的头像
    来自广东深圳的 Chrome 50.0|Mac 10.11 用户

    因为给 autojump 提 PR 加测试和修 bug 很久都没有收到回应
    所以我自己用 Go 重写了一个:github.com/suzaku/shonenjump
    因为是用 Go 写的,直接编译成可执行文件, 所以可以说安装的时候更简便了,直接下载到 PATH 中的某个目录就可以

    来自深圳
  25. linux [Chrome 50.0|Mac 10.11] 的头像
    linux [Chrome 50.0|Mac 10.11]

    给你10000个赞!

    来自北京
  26. linux [Chrome 50.0|Mac 10.11] 的头像
    linux [Chrome 50.0|Mac 10.11]

    写个介绍性质的文章呗?我们来宣传。这就是开源和极客精神啊!

    来自北京
  27. kuroko [Chrome 50.0|Mac 10.11] 的头像
    kuroko [Chrome 50.0|Mac 10.11]

    对于我来说,的确是好东西,能省不少时间

    来自上海

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注