别再用 CD 切换目录了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seabornlee
V2EX    分享发现

别再用 CD 切换目录了

  •  
  •   seabornlee 2016-01-01 09:21:42 +08:00 17803 次点击
    这是一个创建于 3577 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引言

    有一次我在培训时说「程序员要善于使用 Terminl 以提高开发效率」,一位程序员反驳道:「这是 21 世纪,我们为什么要用落后的命令行,而不是先进的 GUI ?」

    是的,在一些人眼里,这个黑黑的终端窗口代表着确实代表着落后,装 B 。
    而在另一些人手里,它却是一个高效的工具。

    其实很多人觉得 Terminal 难用,他们认为:

    • 命令很多,难记
    • 敲命令很麻烦
    • 界面黑黑的,难看
    • ...

    可能这些印象都来自于「未经任何武装」的 Terminal ,实际上始终有一部分人是 Terminal 忠实用户,他们也在推动着 Terminal 与日俱增。
    所以,接下来我准备分享一系列使用 Terminal 的技巧。

    目录

    有了 tldr ,妈妈再也不用担心我记不住命令了
    「 What the fuck 」妈妈再也不用担心我敲错命令了

    正文

    我看到很多使用 Terminal 的同学,还在使用cd命令切换目录,每次打开一个新的窗口都要一连串的cd才能进入自己工作的目录。
    今天我要介绍的工具叫 Autojump ,它就是来解决这个问题的。

    打开 Autojump 的 Github 主页,可以看到它的介绍。

    主要有几点:

    • 它可以让你快速跳转到想去的目录
    • 它记录你进入过的目录,然后根据进入频率来推测你想去的目录
    • 刚安装的时候,它没有作用(因为你还没进入过任何目录)

    安装很简单,主页上有 Linux , Windows 和 Mac OS 上的安装方法。
    以 Mac OS 为例,使用 Homebrew :

    brew install autojump



    取决于你使用 Zsh 或 Fish ,根据提示将一行代码添加到配置文件即可。
    测试一下,先使用cd切换到某个目录xxx,再打开一个新窗口,这次就不用再一级一级cd进去了,直接j xxx即可。

    有任何问题,欢迎留言。

    94 条回复    2019-08-15 15:24:07 +08:00
    aheadlead
        1
    aheadlead  
       2016-01-01 09:40:01 +08:00
    loading
        2
    loading  
       2016-01-01 09:40:41 +08:00 via Android
    建议看看 zsh
    aheadlead
        3
    aheadlead  
       2016-01-01 09:40:53 +08:00
    写 java 的日子觉得目录比较麻烦,就写上面的代码到了 .bash_profile
    ryd994
        4
    ryd994  
       2016-01-01 09:44:30 +08:00   3
    1 Tab 补全
    2 良好的目录结构实际上是高效的索引
    just1
        5
    just1  
       2016-01-01 09:49:37 +08:00 via Android
    输目录其实并没有不好
    Explorare
        6
    Explorare  
       2016-01-01 09:59:21 +08:00
    图床挂了。另外请使用支持 https 的图床
    lxy42
        7
    lxy42  
       2016-01-01 10:01:49 +08:00
    GUI 还不是要一级一级目录点击,终端用 tab 补全也挺快的,常用目录可以用 alias
    nozama
        8
    nozama  
       2016-01-01 10:11:12 +08:00 via iPhone
    好像 iterm 自带此功能
    azuginnen
        9
    azuginnen  
       2016-01-01 10:11:34 +08:00   3
    预感楼主要打我了

    我就 po 两张图



    rashawn
        10
    rashawn  
       2016-01-01 10:12:44 +08:00
    这个难道不是大家都在用的东西吗..
    azuginnen
        11
    azuginnen  
       2016-01-01 10:13:32 +08:00
    进目录是如此高效,支持 fuzzy 名字
    tokki
        12
    tokki  
       2016-01-01 10:21:26 +08:00 via iPhone
    用了好多年了 你现在才知道
    congeec
        13
    congeec  
       2016-01-01 10:21:58 +08:00
    看来 V2EX 社区用户总体 shell 水平不高
    ryd994
        14
    ryd994  
       2016-01-01 10:46:18 +08:00   7
    昨天见个不用 if 的
    今天见个不用 cd 的
    V2EX 上牛人真是越来越多了,呵呵
    nazhao
        15
    nazhao  
       2016-01-01 10:46:55 +08:00
    azuginnen ,能告诉我用的是啥么
    phoneli
        16
    phoneli  
       2016-01-01 10:59:13 +08:00
    @nazhao 我自己也写了一个类似的,但是很简单却实用。不过,后来我发觉,我同事很多都写了类似的东西。例如这个: https://github.com/dacez/dcd
    matrix67
        17
    matrix67  
       2016-01-01 11:02:34 +08:00 via Android
    @nazhao fzf fasd
    azuginnen
        18
    azuginnen  
       2016-01-01 11:03:51 +08:00
    zonghua
        19
    zonghua  
       2016-01-01 11:08:25 +08:00
    @aheadlead 你在终端写 Java?
    Andiry
        20
    Andiry  
       2016-01-01 11:09:05 +08:00
    这玩意有啥用处?多窗口+永不关机已经可以解决所有问题了。
    westup
        21
    westup  
       2016-01-01 11:14:12 +08:00
    @azuginnen 这是啥工具
    wwek
        22
    wwek  
       2016-01-01 11:14:50 +08:00
    感谢分享
    4everLoveU
        23
    4everLoveU  
       2016-01-01 11:23:20 +08:00
    华而不实
    enotx
        24
    enotx  
       2016-01-01 11:27:49 +08:00   1
    我还以为要来推 pushd&popd
    latyas
        25
    latyas  
       2016-01-01 11:46:09 +08:00
    我一直 cd+tab+history
    fxxkgw
        26
    fxxkgw  
       2016-01-01 11:55:01 +08:00
    @enotx 同感 特使是很长的 shell 脚本 这两个命令特别好用
    slixurd
        27
    slixurd  
       2016-01-01 12:02:26 +08:00
    autojump 会越用越卡,尤其是在文件数量特别大的情况下。
    还不如自己手敲路径然后 tab 补全。
    Quaintjade
        28
    Quaintjade  
       2016-01-01 12:03:14 +08:00 via Android   7
    明天会不会发一篇“别再用浏览器逛论坛了,来 telnetBBS 玩吧”。。。
    firefox12
        29
    firefox12  
       2016-01-01 12:06:25 +08:00
    shell 类最大的好处是 可以自动化批处理文件。
    aec4d
        30
    aec4d  
       2016-01-01 12:10:09 +08:00
    文笔不错。。。。可是-_-典型的装逼不成反被草 用命令行的多了去了
    br00k
        31
    br00k  
       2016-01-01 12:47:51 +08:00
    城会玩
    noahlee
        32
    noahlee  
       2016-01-01 12:57:57 +08:00
    alias 重命名 cd 目录!
    k9982874
        33
    k9982874  
       2016-01-01 13:03:43 +08:00 via iPhone
    服务器上一般不会有这么花哨的玩意,当然自己摆弄摆弄还是极好的。

    @azuginnen z 命令是查看服务区负载的你造么
    tracyone
        34
    tracyone  
       2016-01-01 13:04:14 +08:00   1
    文本三巨头: vim 、 zsh 和 tmux ,有了这三个让你远离鼠标,高效操作文本和命令。
    azuginnen
        35
    azuginnen  
       2016-01-01 13:10:09 +08:00
    @k9982874 不知道,求普及~

    服务器上缺失,什么 tmux , htop 都没有
    meunicorn
        36
    meunicorn  
       2016-01-01 13:10:45 +08:00
    win 下。。我都是先输入 cd 然后空格,再把那个文件夹拖进去的。。。
    azuginnen
        37
    azuginnen  
       2016-01-01 13:26:37 +08:00
    p.s


    azuginnen
        38
    azuginnen  
       2016-01-01 13:28:08 +08:00   1
    这个 history 的自带电池也是好用到爆啊!!!
    vietor
        39
    vietor  
       2016-01-01 13:31:40 +08:00 via Android   1
    楼主是来钓鱼的,哈哈
    kikyous
        40
    kikyous  
       2016-01-01 13:37:19 +08:00
    别再用电脑了
    2owe
        41
    2owe  
       2016-01-01 13:50:33 +08:00 via iPhone
    嗯 用过都说好!
    kn007
        42
    kn007  
       2016-01-01 14:17:35 +08:00
    老生常谈的东西了。。
    redsonic
        43
    redsonic  
       2016-01-01 14:38:50 +08:00
    popd , pushd
    slfmessi
        44
    slfmessi  
       2016-01-01 15:00:00 +08:00
    @azuginnen 之前好像看到过自带电池指代什么,但忘记,请不吝赐教
    SonicY
        45
    SonicY  
       2016-01-01 15:36:52 +08:00 via Android
    @k9982874 z 不是 ohmyzsh 自带的插件吗,跟 Autojump 一样。
    qian19876025
        46
    qian19876025  
       2016-01-01 15:41:25 +08:00
    额 不都是用 tab 么?
    EzVoodoo
        47
    EzVoodoo  
       2016-01-01 16:01:25 +08:00
    Fish terminal 路过
    azuginnen
        48
    azuginnen  
       2016-01-01 16:21:17 +08:00   1
    ykqmain
        49
    ykqmain  
       2016-01-01 17:20:06 +08:00   1
    我觉得终端是神器
    BOYPT
        50
    BOYPT  
       2016-01-01 17:28:19 +08:00   1
    没人吐槽 CD 是切换不了目录的?必须 cd
    tuimaochang
        51
    tuimaochang  
       2016-01-01 17:51:21 +08:00
    @Quaintjade 哈哈哈,这台词抢得好啊
    guoziyan
        52
    guoziyan  
       2016-01-01 18:00:53 +08:00   1
    什么? 大清亡了
    nsa
        53
    nsa  
       2016-01-01 18:28:00 +08:00 via iPad   1
    楼主脸肿了
    wxm4ever
        54
    wxm4ever  
       2016-01-01 18:41:18 +08:00
    @azuginnen 你用的那两个图里的工具是什么,分享下。。。 thx
    wizardforcel
        55
    wizardforcel  
       2016-01-01 18:51:08 +08:00 via Android
    wtf 真心好用。
    s12j
        56
    s12j  
       2016-01-01 18:57:02 +08:00   1
    用 terminal 来贬低 GUI 的基本都是刚入行的菜鸟,有本事工作机用纯命令行。
    把 terminal 和脚本混为一谈到也是透换概念,谁说 GUI 下就不能用脚本了?
    举个例子,你有几十台 linux 要经常 ssh 过去,两个方案:
    1. GUI 的: 一台 windows 做跳板机,通过 SecureCRT 管理
    2. 无 GUI 的:一台 linux 做跳板机。。。;
    Lonely
        57
    Lonely  
       2016-01-01 18:58:04 +08:00
    目前未见楼主回复
    azuginnen
        58
    azuginnen  
       2016-01-01 19:01:13 +08:00 via Android
    @wxm4ever 分享了,就在我留的帖子里
    wxm4ever
        59
    wxm4ever  
       2016-01-01 19:02:29 +08:00
    @azuginnen 收到。多谢多谢
    CheungKe
        60
    CheungKe  
       2016-01-01 19:53:25 +08:00
    @seabornlee http://www.codingstyle.cn 很多东西加载不到
    kingwkb
        61
    kingwkb  
       2016-01-01 20:04:47 +08:00
    @azuginnen 这个就是 autojump 么? 看着不像哈
    TangMonk
        62
    TangMonk  
       2016-01-01 20:14:37 +08:00
    fasd 完爆 autojump
    seabornlee
        63
    seabornlee  
    OP
       2016-01-01 21:01:56 +08:00
    @azuginnen 出来就是交流的,抛砖引玉,请问这个是什么工具啊?
    seabornlee
        64
    seabornlee  
    OP
       2016-01-01 21:02:40 +08:00
    @loading 以前用 zsh 的,现在用 fish 了。
    seabornlee
        65
    seabornlee  
    OP
       2016-01-01 21:04:37 +08:00
    @aheadlead 挺有趣的。
    armysheng
        66
    armysheng  
       2016-01-01 21:05:08 +08:00
    @azuginnen 大师又来安利了,看来猪厂学到了不少啊。
    seabornlee
        67
    seabornlee  
    OP
       2016-01-01 21:05:11 +08:00
    @lxy42 Alias 也是一种方法。
    seabornlee
        68
    seabornlee  
    OP
       2016-01-01 21:06:26 +08:00
    @Andiry 我尽量避免多窗口,多 Tab ,多应用...因为每次切换的成本太高,很难一次找到自己想要的。请教你有什么好的解决办法吗?
    seabornlee
        69
    seabornlee  
    OP
       2016-01-01 21:07:44 +08:00
    @aec4d 多接触的很多传统企业的程序员用命令行的不多哦。
    seabornlee
        70
    seabornlee  
    OP
       2016-01-01 21:08:54 +08:00
    @tokki 我是去年才知道的。您知道就知道了,我只是分享给不知道的人而已,也希望您多分享一些好用的工具。
    seabornlee
        71
    seabornlee  
    OP
       2016-01-01 21:20:29 +08:00   2
    ```
    pushd&popd
    fzf
    fasd
    battery included
    ```
    谢谢推荐工具的朋友们!回头我研究一下。
    个人认为社区就是要鼓励积极分享,那些讽刺的朋友我都点开看了,好多一个主题帖都没有...
    如果分享的东西对你没用你不要看就好了,世界上信息量这么大,不是什么都对你有用的。而我分享的东西,总会对一些人有用。
    那些谩骂与讽刺的同学我都一一发送了感谢。还请你们千万不要来我的社区!
    springz
        72
    springz  
       2016-01-01 21:27:36 +08:00
    @azuginnen 这是啥
    ferock
        73
    ferock  
    PRO
       2016-01-01 21:32:48 +08:00
    zsh 好东西
    TJT
        74
    TJT  
       2016-01-01 21:34:37 +08:00 via Android
    从来不觉得按 tab 有多麻烦,常用路径设置成环境变量。
    pushd 和 popd 很好用~ 不过频繁切换还不如开多几个窗口。
    就像当初自己在 Windows 了弄了一堆插件和主题,最后还是回归简洁一样。
    seabornlee
        75
    seabornlee  
    OP
       2016-01-01 21:43:54 +08:00
    @TJT 我在 浏览器, iTerm 里都习惯保持在 4 个 Tab 以内,这样就可以用 CMD + number 进行切换。常常见到很多人开几十个 Tab ,切换的时候要找很久。我发现这样做的原因通常是「打开成本太高」,所以我会用各种手段降低打开成本。用完立刻销毁。
    mcfog
        76
    mcfog  
       2016-01-01 21:46:41 +08:00   1
    这种帖子下面难道不应该是大家各自贴各自的 dotfiles 么?

    https://github.com/mcfog/dotfiles-fish

    改用 fish 一个多月,感觉良好
    seabornlee
        77
    seabornlee  
    OP
       2016-01-01 21:57:34 +08:00
    @s12j 并无贬低之意。只是想帮一些同学纠正 「 shell 是落后的」这种观念。
    tabris17
        78
    tabris17  
       2016-01-01 21:59:36 +08:00
    好吧,又是个命令
    xianglifei
        79
    xianglifei  
       2016-01-01 22:06:10 +08:00
    点赞。评论区收获不少。
    TJT
        80
    TJT  
       2016-01-01 22:18:16 +08:00 via Android
    @seabornlee 我之前也是这么干的,是挺方便的。但是忙的时候 4 5 个 tab 根本不够用,所以用上了 Vimium ,然后就变成习惯了。

    说到底只是工具而已,主要目的是大部分人适用和提高工作效率。
    seabornlee
        81
    seabornlee  
    OP
       2016-01-01 22:43:40 +08:00
    @TJT 我马上发一篇,再讨论 : )
    imdoge
        82
    imdoge  
       2016-01-01 22:44:55 +08:00
    @meunicorn win 下我弄好几个 cmd ,然后分别修改起始位置为那几个常用目录的路径(也就 4,5 个),是不是很蠢!可是我觉得很方便诶~
    seabornlee
        83
    seabornlee  
    OP
       2016-01-01 22:47:00 +08:00
    @imdoge 方便了就行了,结果最重要。
    ffffwh
        84
    ffffwh  
       2016-01-01 23:41:23 +08:00   1
    gui/cli 各有好处,结合就更好了,比方说 spotlight 搜索式的 cd 、方向键导航的 cd
    Tetsuchou
        85
    Tetsuchou  
       2016-01-01 23:57:53 +08:00   1
    嘛,我觉得任何一个工具,要是学习成本太高,都会被其他易用性更好的同类产品替代掉。总之什么时候 cli 好用就用 cli , gui 好用就用 gui 咯
    seabornlee
        86
    seabornlee  
    OP
       2016-01-02 08:21:45 +08:00
    @azuginnen 谢谢!我记下来了,回头再写一篇分享给更多人。
    seabornlee
        87
    seabornlee  
    OP
       2016-01-02 08:22:25 +08:00
    @Tetsuchou 工具都是手段,只要自己的目的达到了就成。
    Devin
        88
    Devin  
       2016-01-02 08:58:27 +08:00 via iPhone
    @azuginnen 请问这种动图怎么弄的?
    seabornlee
        89
    seabornlee  
    OP
       2016-01-02 09:04:17 +08:00   1
    @Devin 不知道他用的什么,我用的是 LICEapp 。
    azuginnen
        90
    azuginnen  
       2016-01-02 10:42:45 +08:00 via Android
    @Devin 就是楼上这个
    likebeta
        91
    likebeta  
       2016-01-02 14:50:39 +08:00
    敲 cd 命令会成为工作的瓶颈么
    hualuogeng
        92
    hualuogeng  
       2016-01-05 10:47:44 +08:00   1
    @imdoge 推荐试试 cmder
    clino
        93
    clino  
       2016-01-12 13:03:28 +08:00
    装了几天这个 autojump 觉得并没有什么 luan 用...
    chen2019
        94
    chen2019  
       2019-08-15 15:24:07 +08:00
    @hualuogeng cmder 也可以设置提示吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2626 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 14:20 PVG 22:20 LAX 07:20 JFK 10:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86