文档章节

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

极光推送
 极光推送
发布于 2018/04/24 09:53
字数 918
阅读 69
收藏 3

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

比如像这样:

输入图片说明

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

v2-ef9ea2b812f12cc33461f35214954b69_hd.jpg

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

有没有想过这种方式?

v2-27aa1130f6a716da867cdbbfef5757f1_hd.jpg

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

看看对比:

v2-ba332fb79fb918ec4c17be4485b4d6d1_hd.jpg

这是如何实现的?

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

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

Autojump 是如何工作的?

看看这两个命令:

v2-27f646dbc12cf8b5ac05c7feee92ddf9_hd.jpg
v2-5623f0ae99c273b73d3c018a197370b2_hd.jpg

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

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

这就是有趣的地方。

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

举个例子:

v2-29363ba6c2438561f720fb5c98fed464_hd.jpg

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

v2-7228c22c50f5bbe82445a2168287f3f6_hd.jpg

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

v2-5c1ee7429059b505a55329aa8beb8e4b_hd.jpg

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

v2-1b06450840e1c02033153d153a4646fe_hd.jpg

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

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

v2-c9b9d705e6a5eea14e966718b25be595_hd.jpg

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

v2-bfd83513c20c279292c2a1b2e4347dc8_hd.jpg

你可以设置后面的数字, 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)

© 著作权归作者所有

极光推送
粉丝 42
博文 226
码字总数 243319
作品 1
深圳
个人站长
私信 提问
90% 的人不知道使用 CTRL + F

本文是从 Crazy: 90 Percent of People Don't Know How to Use CTRL+F 这篇文章翻译而来。 这周,我跟Dan Russell进 行了一次交谈,他是Google公司研究搜索的人类学家,目前他的研究对象是随...

红薯
2011/09/02
3.3K
35
北京尚学堂:程序员浪费生命的几种方式

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。 程序猿的兄弟,你们要写文档(参与测试)吗?我觉得文档就是浪费生命,完全是错误的流程!! 做业务的兄弟,你们要开会扯皮吗?我觉得开...

SXTkaifa
2016/11/06
2
0
mac+maven+intellij=web项目开发小窍门

1、使用命令行启动web项目 摒弃IDE的原因是 配置项目启动太浪费时间,浪费时间就是浪费生命。 ①使用命令行启动项目的优势: ②前提条件: ③启动过程:

杨春炼
2016/04/23
126
0
很赞的开源小工具

最近整理了一些在用的,感觉还不错的开源小工具,有的仅适用MacOS,但多数跨平台。原文见很赞的开源小工具 - yongle。 Homebrew Homebrew — The missing package manager for macOS,Mac上非...

米乐乐果
2017/09/24
0
0
python轻量框架--Flask(入门教程)

1.环境: windows10系统 python2.7(之所以是2.7而不是3.x,因为大多数库只支持2.x,装3.x简直就是作死。) 已安装pip(Python包管理工具) 2.安装 1.建立: F:Pythonflask文件夹路径 2.安装...

可汗爷爷
2017/12/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式架构 共享session的常见解决方案

在使用分布式架构时,会遇到分布式架构常见的几个问题: 分布式事务、接口幂等性、分布式锁和分布式 session。 分布式session 一、什么是session 浏览器在访问一个web服务的时候,会在浏览器...

太猪-YJ
27分钟前
2
0
Android java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion解决方案

这是GooglePlay Services方面的一个bug,在修复之前,可以通过将此添加到AndroidManifest.xml内部<application>标签: <uses-library android:name="org.apache.http.legacy" android:requir......

醉雨
32分钟前
0
0
蚂蚁金服 Service Mesh 落地实践与挑战 | GIAC 实录

本文整理自 GIAC(GLOBAL INTERNET ARCHITECTURE CONFERENCE)全球互联网架构大会,蚂蚁金服平台数据技术事业群技术专家石建伟(花名:卓与)的分享。分享基于 Service Mesh 的理念,结合蚂蚁...

SOFAStack
38分钟前
1
0
Java跨平台原理

此篇博文主要源自网络xiaozhen的天空的博客:http://xiaozhen1900.blog.163.com/blog/static/1741732572011325111945246/   1、是么是平台 Java是可以跨平台的编程语言,那我们首先得知道什...

vinci321
38分钟前
1
0
分享 KubeCon 2019 (上海)关于 Serverless 及 Knative 相关演讲会议

有幸参加了 KubeCon 2019 上海大会,并参加了 Knative 及 Serverless 相关的几场分享会,收获满满。这里简单介绍一下各个演讲主题的主要内容。详细的演讲主题文档可以在KubeCon官方获取:htt...

阿里云官方博客
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部