---
author: Adrien Brochard
category: 技术
comments_data:
- date: '2014-07-15 14:33:00'
  message: '@jia-Zz- 这个小羊挺可爱'
  postip: 37.58.100.181
  username: 微博评论
- date: '2014-07-15 14:33:00'
  message: 强烈推荐autojump，只要一个j，想去哪个地方去哪个地方
  postip: 37.58.100.181
  username: 微博评论
- date: '2014-07-15 14:33:00'
  message: 深夜福利
  postip: 37.58.100.181
  username: 微博评论
- date: '2014-07-15 14:41:56'
  message: 呵呵。。。。。
  postip: 183.250.161.73
  username: 7th
- date: '2014-07-15 15:36:07'
  message: 挺好！
  postip: 60.7.41.249
  username: 零度王爵
- date: '2014-07-15 16:03:00'
  message: 不错
  postip: 37.58.100.238
  username: 微博评论
- date: '2014-07-15 16:20:13'
  message: 用不了啊，回车之后还是在当前目录，用j时候会说j：未找到命令
  postip: 27.157.51.39
  username: ''
- date: '2014-07-15 16:31:26'
  message: 你当然得先安装 autojump 啦，这又不是默认带的。
  postip: 106.120.101.58
  username: linux
- date: '2014-07-15 17:33:01'
  message: 好腻害的样纸[熊猫]
  postip: 124.207.246.82
  username: 微博评论
- date: '2014-07-15 18:03:01'
  message: '@我的印象笔记  //@西瓜大丸子汤:强烈推荐autojump，只要一个j，想去哪个地方去哪个地方'
  postip: 124.207.246.82
  username: 微博评论
- date: '2014-07-15 19:03:00'
  message: 卧槽！！
  postip: 27.12.210.39
  username: 微博评论
- date: '2014-07-16 00:03:00'
  message: autojump  妥妥的
  postip: 118.186.140.152
  username: 微博评论
- date: '2014-07-16 11:55:23'
  message: 看着好流弊的样子.
  postip: 116.255.132.12
  username: netb2c
- date: '2014-07-16 18:09:12'
  message: autojump
  postip: 116.228.188.74
  username: wangchn
- date: '2014-07-17 14:00:18'
  message: 好方便的说
  postip: 183.63.82.194
  username: arhool
- date: '2014-10-27 16:10:22'
  message: fedora 19跳不动呢？有相同遇到的吗？
  postip: 61.181.85.194
  username: Nutall
- date: '2014-10-27 22:19:36'
  message: 居然你的头像是动态的，我都不知道支持 GIF 动态。。。哈哈
  postip: 114.253.16.232
  username: linux
- date: '2014-10-28 09:08:43'
  message: 恩，估计是bug吧。我把用yum安装的卸载了，去git上面下载的最新版本安装就ok了
  postip: 61.181.85.194
  username: Nutall
- date: '2015-02-03 16:08:47'
  message: fedora21 也跳不动
  postip: 211.162.34.162
  username: knowaeap
- date: '2015-02-07 15:34:59'
  message: 可以了，安装完后，要先source /etc/profile.d/autojump.sh后才行。在~/.bashrc里面添加了[[ -s ~/.autojump/etc/profile.d/autojump.sh
    ]] &amp;&amp; . ~/.autojump/etc/profile.d/autojump.sh 然后. .bashrc
  postip: 61.181.85.194
  username: Nutall
- date: '2015-04-21 17:51:11'
  message: 实际用了一下，一个j好爽啊～～～～
  postip: 202.136.208.134
  username: 来自 - 上海 的 Firefox/Linux 用户
- date: '2015-04-21 22:30:51'
  message: 刚开始用一定很不爽！毕竟都是根据使用频率来评判权重的。
  postip: 175.12.150.82
  username: Esteem
- date: '2015-10-29 11:10:49'
  message: 如果 log 下面也有一个 doc 文件夹呢？如何进入这个 log/doc?
  postip: 203.100.81.167
  username: 来自北京的 Chrome 44.0|Mac 10.11 用户
- date: '2016-05-11 12:10:42'
  message: "因为给 autojump 提 PR 加测试和修 bug 很久都没有收到回应<br />\r\n所以我自己用 Go 重写了一个：github.com/suzaku/shonenjump<br
    />\r\n因为是用 Go 写的，直接编译成可执行文件， 所以可以说安装的时候更简便了，直接下载到 PATH 中的某个目录就可以"
  postip: 218.18.170.80
  username: 来自广东深圳的 Chrome 50.0|Mac 10.11 用户
- date: '2016-05-11 19:58:07'
  message: 给你10000个赞！
  postip: 114.245.14.172
  username: linux [Chrome 50.0|Mac 10.11]
- date: '2016-05-11 19:58:44'
  message: 写个介绍性质的文章呗？我们来宣传。这就是开源和极客精神啊！
  postip: 114.245.14.172
  username: linux [Chrome 50.0|Mac 10.11]
- date: '2016-06-02 23:43:45'
  message: 对于我来说，的确是好东西，能省不少时间
  postip: 116.231.175.82
  username: kuroko [Chrome 50.0|Mac 10.11]
count:
  commentnum: 27
  favtimes: 9
  likes: 0
  sharetimes: 8
  viewnum: 59369
date: '2014-07-15 14:00:38'
editorchoice: false
excerpt: 在命令行中切换目录是最常用的操作，不过很少有比一遍又一遍重复cd ls cd ls cd ls 更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字，那么你不得不使用ls来确认，然后使用cd来进入你想要进的那一个。所幸的是，现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是，你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰，你一定会对autojump感到惊喜。
  autojump是一个命令行工具，它允许你可以直接跳转到你喜爱的目录，而不用管你现在身在何处。  在Linux上安装autojump 在Ubuntu或Debia
fromurl: http://xmodulo.com/2014/06/speed-up-directory-navigation-linux-terminal.html
id: 3401
islctt: true
largepic: /images/p/201407/15/140041munmwl5w237uwv99.png
permalink: /article-3401-1.html
pic: /images/p/201407/15/140041munmwl5w237uwv99.png.thumb.jpg
related:
- displayorder: 0
  raid: 3422
reviewer: ''
selector: ''
summary: 在命令行中切换目录是最常用的操作，不过很少有比一遍又一遍重复cd ls cd ls cd ls 更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字，那么你不得不使用ls来确认，然后使用cd来进入你想要进的那一个。所幸的是，现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是，你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰，你一定会对autojump感到惊喜。
  autojump是一个命令行工具，它允许你可以直接跳转到你喜爱的目录，而不用管你现在身在何处。  在Linux上安装autojump 在Ubuntu或Debia
tags:
- autojump
- 命令行
thumb: false
title: 自动补完不算什么，一键直达目录才是终极神器！
titlepic: false
translator: GOLinux
updated: '2014-07-15 14:00:38'
---

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


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


![](/images/p/201407/15/140041munmwl5w237uwv99.png)


### 在Linux上安装autojump


在Ubuntu或Debian上安装autojump：



```
$ sudo apt-get install autojump

```

要在CentOS或Fedora上安装autojump，请使用yum命令。在CentOS上，你需要先[启用EPEL仓库](http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html)才行。



```
$ sudo yum install autojump

```

在Archlinux上安装autojump：



```
$ sudo pacman -S autojump

```

如果你找不到适合你的版本的包，你可以从[GitHub](https://github.com/joelthelion/autojump)上下载源码包来编译。


### autojump的基本用法


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


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



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

```

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


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


![](/images/p/201407/15/140043jbr5bwr2n1znj87c.jpg)


那么下面的命令将直接让你跳到/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](https://github.com/clvv/fasd)，它应该会给你一个惊喜——我们下次再介绍它。


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




---


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


译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出