那些主要通过控制台/终端使用Linux命令行的Linux用户会感受到Linux的真正强大。然而,有时候在Linux分层文件系统中导航可能会很痛苦,尤其是对于Linux新手来说。
目前有一个名为Autojump的Linux命令行实用程序,它是由Joël Schaerer用Python编写的,现在由+William Ting维护,它是cd命令的高级版本。
Autojump是一个命令行工具,通过保留用户经常访问的目录数据库,提供了一种更快的方式来导航Linux文件系统。它的工作原理是密切关注用户导航的目录,然后根据用户访问的频率为每个目录分配重要性。这允许用户快速跳转到经常访问的目录。与传统的cd命令相比,Autojump可以更快地导航到所需的目录。
Autojump特点
- 免费开源应用程序并根据GPL V3分发。
- 它是一种自学习实用程序,可以学习用户的导航习惯。
- 更快的导航,无需包含子目录的名称。
- 大多数标准Linux发行版(包括Debian、Ubuntu、Mint、Arch、Gentoo、Slackware、CentOS、RedHat和Fedora)均可在存储库中下载。
- 也适用于其它平台,例如OS X(使用Homebrew)和Windows(由Clink支持)
- 使用自动跳转,你可以跳转到任何特定目录或子目录。此外,你还可以打开文件管理器到目录并查看有关您花费的时间以及在哪个目录中的统计信息。
第1步:进行完整的系统更新
以root用户身份进行系统更新/升级,以确保你安装了最新版本的Python,命令如下:
# apt-get update && apt-get Upgrade && apt-get dist-upgrade [基于APT系统] # yum update && yum update [基于YUM系统] # dnf update && dnf upgrade [基于DNF系统]
需要注意的是,与基于APT的系统不同,在基于YUM或DNF的系统上,更新和升级执行相同的操作,并且大多数时候可以互换 。
第2步:下载并安装Autojump
如上所述,大多数Linux发行版的存储库中都已经提供了Autojump,你可以使用包管理器安装它。在基于RedHat的发行版上,需要通过运行yum install epel-release
命令来启用EPEL存储库。
从存储库安装Autojump:
$ sudo apt install autojump [Debian、Ubuntu和Mint] $ sudo yum install autojump [RHEL/CentOS/Fedora和Rocky/AlmaLinux] $ sudo emerge -a autojump [Gentoo Linux] $ sudo apk add autojump [Alpine Linux] $ sudo pacman -S autojump [Arch Linux] $ sudo zypper install autojump [OpenSUSE]
但是,如果想从源安装autojump,则需要克隆源代码并执行Python脚本,如下所示:
注意:安装git(如果未安装),这是克隆autojump git存储库所必需的。
$ sudo apt install git [Debian、Ubuntu和Mint] $ sudo yum install git [RHEL/CentOS/Fedora和Rocky/AlmaLinux] $ sudo emerge -a git [Gentoo Linux] $ sudo apk add git [Alpine Linux] $ sudo pacman -S git [Arch Linux] $ sudo zypper install git [OpenSUSE]
安装git后,以普通用户身份登录,然后将autojump克隆为:
$ git clone git://github.com/joelthelion/autojump.git
接下来,使用cd命令切换到下载的目录。
$ cd autojump
现在,使脚本文件可执行并以root用户身份运行安装脚本:
# chmod 755 install.py # ./install.py
第3步:自动跳转配置
在Debian及其衍生版本(Ubuntu、Mint等)上,激活autojump实用程序非常重要。要临时激活自动跳转实用程序,即在关闭当前会话或打开新会话之前一直有效,需要以普通用户身份运行以下命令:
$ source /usr/share/autojump/autojump.sh on startup 或者 $ source /usr/share/autojump/autojump.bash on startup
要永久添加激活到BASH shell,需要运行以下命令:
$ echo '. /usr/share/autojump/autojump.sh' >> ~/.bashrc 或者 $ echo '. /usr/share/autojump/autojump.bash' >> ~/.bashrc
第4步:使用Autojump快速更改Linux目录
如前所述,autojump将仅跳转到那些先前已cd
的目录。因此,在开始测试之前,我们将“ cd ”一些目录并创建一些目录:
$ cd $ cd $ cd Desktop/ $ cd $ cd Documents/ $ cd $ cd Downloads/ $ cd $ cd Music/ $ cd $ cd Pictures/ $ cd $ cd Public/ $ cd $ cd Templates $ cd $ cd /var/www/ $ cd $ mkdir autojump-test/ $ cd $ mkdir autojump-test/a/ && cd autojump-test/a/ $ cd $ mkdir autojump-test/b/ && cd autojump-test/b/ $ cd $ mkdir autojump-test/c/ && cd autojump-test/c/ $ cd
现在我们已经cd到上述目录并创建了一些用于测试的目录。j
的用法是自动跳转的wrapper。你可以使用j代替autojump命令,反之亦然。
首先,使用-v
选项检查已安装的autojump的版本。
$ j -v 或者 $ autojump -v
跳转到之前访问过的目录’/var/www ‘:
$ j www
跳转到之前访问过的父/子目录“/home/avi/autojump-test/b”,无需输入子目录名称:
$ jc b
另外,你可以从命令行打开一个显示GNOME Nautilus的文件管理器,而不是使用以下命令跳到目录:
$ jo www
此外,还可以在文件管理器中打开子目录:
$ jco c
检查每个文件夹密钥权重和总体密钥权重以及总目录权重的统计信息,文件夹键权重表示在该文件夹中花费的总时间。目录权重是列表中目录的数量。
$ j --stat
提示: autojump文件夹中~/.local/share/autojump/
存放运行日志和错误日志文件的文件。不要覆盖这些文件,否则你可能会丢失所有统计数据。
$ ls -l ~/.local/share/autojump/
如果需要,可以通过以下方式寻求帮助:
$ j --help
Autojump工作原理
- autojump允许你仅跳转到你已经cd到的目录。一旦你cd到一个特定的目录,它就会被记录到自动跳转数据库中,然后自动跳转就可以工作了。设置自动跳转后,无论如何都无法跳转到未通过cd进入的目录。
- 你无法跳转到名称以破折号开头的目录
(-)
。 - 在BASH Shell中,Autojump通过修改$PROMPT_COMMAND来跟踪目录。强烈建议不要覆盖$PROMPT_COMMAND。如果你必须向现有$PROMPT_COMMAND添加其它Linux命令,请将其附加到现有$APPEND_PROMPT的最后。
总结
如果你是命令行用户, Autojump是必须的实用程序,它减轻了很多事情。它是一个很棒的实用程序,可以在命令行中快速浏览Linux目录,感兴趣的朋友可以体验看看。