• 命令行里打 cd 简直是浪费生命


    简评:作为工程师,你在命令行下最常打的命令无非就是 cd 与 ls。这些年你浪费了多少时间?
    作为一个程序员或者在 shell 中花费大量时间的人,你可能会经常以一种低效率的方式在目录中来回移动,特别是每天经常访问相同目录。

    比如像这样:

    https://segmentfault.com/img/bV9eFt?w=677&h=276

    当然你可能用的稍微熟练点了,用 Tab 能省不少事,像这样:

    https://segmentfault.com/img/bV9eFv?w=677&h=204

    不错!你大约节省了 20 次的输入,值得称赞。你也会使用 mkdir 创建新目录并直接进入新建目录(cd !$),你也能记住 project 的目录,你就不用老 ls 来寻找文件。不过现实问题,人不是电脑,我们能记住一两个,但不可能记住全部,我们的效率不够高。

    有没有想过这种方式?

    https://segmentfault.com/img/bV9eFF?w=668&h=169

    现在只需要 j d(或者 j dev、j develop)就可以跳转到 ~/Develop 目录,j p 就可以跳转单 ~/Develop/project。效率大幅提高。

    看看对比:

    https://segmentfault.com/img/bV9eFK?w=680&h=132

    这是如何实现的?

    用 AutoJump 可以做到。(GitHub 地址:wting/autojump)

    根据官方介绍,它能以更快的方式浏览系统文件,这并不准确,或者说很谦虚。据我完全估计,用 AutoJump 至少让我省了 100 个小时,最起码省了这么多。

    Autojump 是如何工作的?

    看看这两个命令:

    https://segmentfault.com/img/bV9eF0?w=672&h=73eee92ddf9_hd.jpg

    https://segmentfault.com/img/bV9eF6?w=672&h=73

    它们的作用相同。AutoJump 会记住 cd 命令并用 j 来进入所有的目录。更重要的是 AutoJump 可以模糊匹配。意味着只需要提供一个字母,就可以匹配到之前访问过的该首字母的目录。

    如果有两个以 p 为开头的目录怎么办?

    这就是有趣的地方。

    当你第一次输入 cd directory_name,AutoJump 会记录该目录并成为绝对路径,并将其指定权重为 10.0 分。

    举个例子:

    https://segmentfault.com/img/bV9eF9?w=670&h=53

    然后输入 j -s 命令可以看到(s 代表统计信息):

    https://segmentfault.com/img/bV9eGb?w=667&h=46

    如果你再次 cd/var 后,j -s,看看会发生什么?

    https://segmentfault.com/img/bV9eGm?w=670&h=51

    对,这个路径的权重增加了。比如看看我电脑上的 j -s,我平时都在干什么你就会一目了然:

    https://segmentfault.com/img/bV9eGq?w=673&h=363

    我第一个campus 和第四个 SodeSchool 都包含字母 c,那么 AutoJump 应该县跳转到哪个目录呢?

    由于 campus 权重低,所以会 j c 会跳到 CodeSchool 目录,如果重复 j c 命令,就会跳转到 campus 目录。

    https://segmentfault.com/img/bV9eGF?w=670&h=123

    如果你不喜欢 AutoJump 自动设置的路径,你可以自己设置匹配:

    https://segmentfault.com/img/bV9eGQ?w=671&h=222

    你可以设置后面的数字, j c _4 就是 j c 跳转到第四个目录。

    高级功能

    jc(注意没空格 不是上面的 j c)仅在子目录下跳转,非常适合寻找被嵌套的 log
    jo 会在操作系统下打开匹配的目录。
    j-i 增加当前目录权重
    j-d 减少当前目录权重
    j--purge 消除所有的权重
    安装 AutoJump

    AutoJump 支持:

    Python v2.6+(除了 3.2 版本)
    支持的 shell:
    bash v4.0+
    zsh
    fish
    tcsh (experimental)
    clink (Windows, experimental)
    你可以通过许多 Linux 软件包安装器来安装。对于 MacOS 我推荐 Homebrew 的 brew install autojump,真的超简单方便。

    把 Autojump 放在.bash_profile 或者 .szhrc 下,输入命令行:

    [ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
    它会自动检查脚本是否可用并加载到 shell 中。

    你也可以克隆 git 仓库,手动安装。不管怎么说,它都是一个非常简单的、稳定的工具。

    我用了它的这些年里,从来没有后悔过。

    下载地址:wting/autojump(GitHub)

  • 相关阅读:
    n皇后问题
    POJ2155 Matrix二维线段树经典题
    hiho一下 第六十六周
    hdu1754 I hate it线段树模板 区间最值查询
    hdu5481 Desiderium
    自增运算符
    hdu-1823 Luck and Love
    Oracle 函数大全
    对前台传过来的实体是否为空 进行为空校验的N种方法
    IOC和DI的区别详解
  • 原文地址:https://www.cnblogs.com/jpush88/p/8926342.html
Copyright © 2020-2023  润新知