Autojump:一个可以在 Linux 文件系统快速导航的高级 cd 命令
相关博客:https://linux.cn/article-3401-1.html
对于那些主要通过控制台或终端使用 Linux 命令行来工作的 Linux 用户来说,他们真切地感受到了 Linux 的强大。 然而在 Linux 的分层文件系统中进行导航有时或许是一件头疼的事,尤其是对于那些新手来说。
现在,有一个用 Python 写的名为 autojump
的 Linux 命令行实用程序,它是 Linux ‘cd’命令的高级版本。
Autojump – Linux 文件系统导航的最快方式
这个应用原本由 Joël Schaerer 编写,现在由 +William Ting 维护。
Autojump 应用可以从用户那里学习并帮助用户在 Linux 命令行中进行更轻松的目录导航。与传统的 cd
命令相比,autojump 能够更加快速地导航至目的目录。
autojump 的特色
- 自由开源的应用,在 GPL V3 协议下发布。
- 自主学习的应用,从用户的导航习惯中学习。
- 更快速地导航。不必包含子目录的名称。
- 对于大多数的标准 Linux 发行版本,能够在软件仓库中下载得到,它们包括 Debian (testing/unstable), Ubuntu, Mint, Arch, Gentoo, Slackware, CentOS, RedHat 和 Fedora。
- 也能在其他平台中使用,例如 OS X(使用 Homebrew) 和 Windows (通过 Clink 来实现)
- 使用 autojump 你可以跳至任何特定的目录或一个子目录。你还可以用文件管理器打开某个目录,并查看你在某个目录中所待时间的统计数据。
前提
- 版本号不低于 2.6 的 Python
第 1 步: 做一次完整的系统升级
1、 以 root 用户的身份,做一次系统更新或升级,以此保证你安装有最新版本的 Python。
# apt-get update && apt-get upgrade && apt-get dist-upgrade [基于 APT 的系统]
# yum update && yum upgrade [基于 YUM 的系统]
# dnf update && dnf upgrade [基于 DNF 的系统]
注 : 这里特别提醒,在基于 YUM 或 DNF 的系统中,更新和升级执行相同的行动,大多数时间里它们是通用的,这点与基于 APT 的系统不同。
第 2 步: 下载和安装 Autojump
2、 正如前面所言,在大多数的 Linux 发行版本的软件仓库中, autojump 都可获取到。通过包管理器你就可以安装它。但若你想从源代码开始来安装它,你需要克隆源代码并执行 python 脚本,如下面所示:
从源代码安装
若没有安装 git,请安装它。我们需要使用它来克隆 git 仓库。
# apt-get install git [基于 APT 的系统]
# yum install git [基于 YUM 的系统]
# dnf install git [基于 DNF 的系统]
一旦安装完 git,以普通用户身份登录,然后像下面那样来克隆 autojump:
$ git clone git://github.com/joelthelion/autojump.git
接着,使用 cd
命令切换到下载目录。
$ cd autojump
下载,赋予安装脚本文件可执行权限,并以 root 用户身份来运行安装脚本。
# chmod 755 install.py
# ./install.py
从软件仓库中安装
3、 假如你不想麻烦,你可以以 root 用户身份从软件仓库中直接安装它:
在 Debian, Ubuntu, Mint 及类似系统中安装 autojump :
# apt-get install autojump
为了在 Fedora, CentOS, RedHat 及类似系统中安装 autojump, 你需要启用 EPEL 软件仓库。http://www.linuxidc.com/Linux/2013-12/93433.htm
# yum install epel-release
# yum install autojump
或
# dnf install autojump
第 3 步: 安装后的配置
4、 在 Debian 及其衍生系统 (Ubuntu, Mint,…) 中, 激活 autojump 应用是非常重要的。
为了暂时激活 autojump 应用,即直到你关闭当前会话或打开一个新的会话之前让 autojump 均有效,你需要以常规用户身份运行下面的命令:
$ source /usr/share/autojump/autojump.sh on startup
为了使得 autojump 在 BASH shell 中永久有效,你需要运行下面的命令。
$ echo '. /usr/share/autojump/autojump.sh'>>~/.bashrc
第 4 步: Autojump 的预测试和使用
5、 如先前所言, 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
现在,我们已经切换到过上面所列的目录,并为了测试创建了一些目录,一切准备就绪,让我们开始吧。
需要记住的一点 : j
是 autojump 的一个封装,你可以使用 j
来代替 autojump, 相反亦可。
6、 使用 -v 选项查看安装的 autojump 的版本。
$ j -v
或
$ autojump -v
查看 Autojump 的版本
7、 跳到先前到过的目录 ‘/var/www‘。
$ j www
跳到目录
8、 跳到先前到过的子目录‘/home/avi/autojump-test/b‘ 而不键入子目录的全名。
$ jc b
跳到子目录
9、 使用下面的命令,你就可以从命令行打开一个文件管理器,例如 GNOME Nautilus ,而不是跳到一个目录。
$ jo www
打开目录
在文件管理器中打开目录
你也可以在一个文件管理器中打开一个子目录。
$ jco c
打开子目录
在文件管理器中打开子目录
10、 查看每个文件夹的权重和全部文件夹计算得出的总权重的统计数据。文件夹的权重代表在这个文件夹中所花的总时间。 文件夹权重是该列表中目录的数字。(LCTT 译注: 在这一句中,我觉得原文中的 if 应该为 is)
$ j --stat
查看文件夹统计数据
提醒 : autojump 存储其运行日志和错误日志的地方是文件夹 ~/.local/share/autojump/
。千万不要重写这些文件,否则你将失去你所有的统计状态结果。
$ ls -l ~/.local/share/autojump/
Autojump 的日志
11、 假如需要,你只需运行下面的命令就可以查看帮助 :
$ j --help
Autojump 的帮助和选项
功能需求和已知的冲突
- autojump 只能让你跳到那些你已经用
cd
到过的目录。一旦你用cd
切换到一个特定的目录,这个行为就会被记录到 autojump 的数据库中,这样 autojump 才能工作。不管怎样,在你设定了 autojump 后,你不能跳到那些你没有用cd
到过的目录。 - 你不能跳到名称以破折号 (-) 开头的目录。或许你可以考虑阅读我的有关操作文件或目录 的文章,尤其是有关操作那些以‘-‘ 或其他特殊字符开头的文件和目录的内容。
- 在 BASH shell 中,autojump 通过修改
$PROMPT_COMMAND
环境变量来跟踪目录的行为,所以强烈建议不要去重写$PROMPT_COMMAND
这个环境变量。若你需要添加其他的命令到现存的$PROMPT_COMMAND
环境变量中,请添加到$PROMPT_COMMAND
环境变量的最后。
结论:
假如你是一个命令行用户, autojump 是你必备的实用程序。它可以简化许多事情。它是一个在命令行中导航 Linux 目录的绝佳的程序。请自行尝试它,并在下面的评论框中让我知晓你宝贵的反馈。保持联系,保持分享。喜爱并分享,帮助我们更好地传播。
Autojump:一个可以在 Linux 文件系统快速导航的高级 cd 命令的更多相关文章
- Linux文件系统属性权限chattr与lsattr命令
有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...
- linux系列(二):cd命令
1.命令格式: cd [目录名] 2.命令功能: 切换当前目录至目录名目录 3.常用实例 (1).进入系统根目录 命令: cd / 输出: felix@felix-computer:~/软件$ cd ...
- Ceph:一个开源的 Linux PB 级分布式文件系统
探索 Ceph 文件系统和生态系统 M. Tim Jones , 自由作家 简介: Linux®持续不断进军可扩展计算空间,特别是可扩展存储空间.Ceph 最近才加入到 Linux 中令人印象深刻的 ...
- 通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离
一.docker的三个重要概念 1.镜像:打包项目带上环境,即镜像 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的配置参数.镜像 ...
- [apue] linux 文件系统那些事儿
前言 说到 linux 的文件系统,好多人第一印象是 ext2/ext3/ext4 等具体的文件系统,本文不涉及这些,因为研究具体的文件系统难免会陷入细节,甚至拉大段的源码做分析,反而不能从宏观的角度 ...
- Linux文件系统知识记录——ext2描述
最近完成了一个编程作业,大致功能是给定一个文件名,给出该文件所在目录和其本身所占用的簇号等信息.笔者选用了Linux的ext系列文件系统作为实验对象,通过实验对ext2文件系统的存储和索引有了一个较为 ...
- 带你快速了解Linux文件系统
http://www.embeddedlinux.org.cn/emb-linux/file-system/201807/03-8197.html 这篇教程将帮你快速了解 Linux 文件系统. 早在 ...
- Linux文件系统_每一个的意义
2017年1月10日, 星期二 Linux文件系统_每一个的意义 rootfs: 根文件系统 FHS:Linux /boot: 系统启动相关的文件,如内核.initrd,以及grub(bootload ...
- linux文件系统之loop环设备--新建一个文件系统并挂载
1. /dev目录下有所有已经连接到操作系统上的设备,他们能在/dev里出现就表示他们在硬件层面和系统核心层面被识别了.对于stdin.stdout.zero等设备是可以直接用> <这些 ...
随机推荐
- u3d udp服务器
using UnityEngine; using System.Collections; using System.Net; using System.Net.Sockets; using Syste ...
- 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志
配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...
- Android检查设备是否可以访问互联网,判断Internet连接,测试网络请求,解析域名
安卓SDK提供了ConnectivityManager类,那么我们就可以轻松的获取设备的网络状态以及联网方式等信息. 但是要想知道安卓设备连接的网络能不能访问到Internet,就要费一番周折了. 本 ...
- Mybatis最入门---数据库的下载与安装
[一步是咫尺,一步即天涯] 近期.因为工作进度调整,之前的Spring教程就先临时告一段落了,兴许找个时间继续更新,假设有那位看官想了解某个内容的,敬请留言,大家一起学习. 作为数据库工具的使用开篇. ...
- UNIX环境编程学习笔记(3)——文件I/O之内核 I/O 数据结构
lienhua342014-08-27 内核使用三种数据结构表示打开的文件,分别是文件描述符表.文件表和 V 节点表. (1) 每个进程在进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,每 ...
- scp 链接文件的问题 + tar
将本地的文件上传到服务器上,希望保持相对链接关系.(链接文件和被链接文件都在同一的目录下) 使用scp进行传输时,链接关系不会保存,所以需要解决下.(当然可以使用rsync或tar解决,但是rsync ...
- 小程序navigator跳转路径url写法
小程序navigator跳转路径url要写 要跳转的的页面文件夹相对于当前页面的页面文件夹的位置,即相对路径. 比如我当前页面跳转到同级目录下的另一个页面如下: <navigator url= ...
- Ubuntu下PHP动态编译出现Cannot find autoconf的解决方法
执行phpize时出现Cannot find autoconf 错误 Ubuntu下解决方法 sudo apt-get install autoconf
- gcc和g++头文件和库路径的寻找和添加
对所有用户有效修改/etc/profile文件 对个人有效则修改~/.bashrc文件 #在PATH中找到可执行文件程序的路径. export PATH =$PATH:$HOME/bin (可一次指定 ...
- c++const关键字---15
原创博文,转载请标明出处--周学伟 http://www.cnblogs.com/zxouxuewei/ const是一个C++语言的限定符,它限定一个变量不允许被改变.使用const在一定程度上可以 ...