V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EminemW
V2EX  ›  程序员

求分享,有没有你们认为在终端环境中能提升效率的命令或者操作

  •  1
     
  •   EminemW · 2021-12-22 21:26:08 +08:00 · 3457 次点击
    这是一个创建于 826 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 !! 可以表示上一条命令

    33 条回复    2021-12-23 20:56:32 +08:00
    rrfeng
        1
    rrfeng  
       2021-12-22 21:29:49 +08:00
    多的很

    今天只推荐一个 ctrl-x ctrl-e
    linglin0924
        2
    linglin0924  
       2021-12-22 21:32:13 +08:00
    proxychains 让命令走代理的神器 ,用来走代理下载一些包非常方便,比如

    proxychains4 npm install
    proxychains4 go get 等等
    jaredyam
        3
    jaredyam  
       2021-12-22 21:33:09 +08:00   ❤️ 1
    每次有人问这类问题的时候,底下都会有人说 ctrl + R ,然后就会有很多人说「哇,第一次见,也太好用了」。
    jaredyam
        4
    jaredyam  
       2021-12-22 21:36:38 +08:00
    不过我个人觉得要想做到提高(自己的)效率,还是需要定制化。比如围绕常用 shell snippets 或组合命令创建 alias 和 function ,命名上也不需要很简短,尽量有逻辑即可,使用时直接 zsh tab completion 。
    GM
        5
    GM  
       2021-12-22 21:38:24 +08:00
    ctrl+w
    ctrl+u
    vision1900
        6
    vision1900  
       2021-12-22 21:43:55 +08:00 via Android
    tldr
    ho121
        7
    ho121  
       2021-12-22 21:52:10 +08:00 via Android
    ctrl
    ho121
        8
    ho121  
       2021-12-22 21:52:43 +08:00 via Android
    ctrl+d
    Immortal
        9
    Immortal  
       2021-12-22 22:03:07 +08:00
    @linglin0924 #2
    这个需求直接 export http_proxy 就可以了
    Tink
        10
    Tink  
       2021-12-22 22:21:11 +08:00 via Android
    cd -
    jorneyr
        11
    jorneyr  
       2021-12-22 22:27:38 +08:00
    终端自动补全提示插件 Fig
    sutra
        12
    sutra  
       2021-12-22 22:37:57 +08:00
    上下箭头前缀匹配历史命令。
    Archeb
        13
    Archeb  
       2021-12-22 22:53:53 +08:00
    @jaredyam 哇,第一次见,也太好用了
    mlhadoop
        14
    mlhadoop  
       2021-12-22 23:01:45 +08:00
    autojump
    Volekingsg
        15
    Volekingsg  
       2021-12-22 23:17:22 +08:00 via iPhone
    可能有点点偏题,zsh 相关的。

    今年的发现,先是看到 https://github.com/marlonrichert/zsh-autocomplete 爽啊,少安了很多 tab
    然后发现作者几个包都挺好用的,znap 插件管理比之前用 zinit light 快了一倍。另外作者对 zsh 了解很深,几个插件的示例配置都给我带了不少新的认识。
    ecnelises
        16
    ecnelises  
       2021-12-22 23:26:37 +08:00   ❤️ 13
    1. Control+R 这个不多说了
    2. 设置 CDPATH 这个环境变量,当你要 cd 的目的地在当前目录下找不到时,shell 会在 CDPATH 里的目录一个一个找有没有这个子目录,如果有,就跳过去
    3. rm 202{1,2,3}的意思是 rm 2021 2022 2023
    4. 输入 fc 命令,可以让你在一个编辑器里编辑上一条命令,保存退出即是执行
    5. 命令结尾的&和 wait 命令
    6. Control+Z 和 fg
    7. 有正则基础的话,学会 sed/awk 基本的删除、替换、过滤只需要十分钟,更高级的文本操作可以用 perl/ruby 的-e 模式
    8. sort 、find 命令以及 xargs ,懂的都懂
    9. macOS 下可以用 pbcopy 和 pbpaste 操作剪贴板
    10. 会一点 Shell 脚本,哪怕只是循环,有时候生活都可以轻松很多
    11. zsh 里可以用首字母代替目录,比如 cd /U/u/C/A 按 Tab 就可以变成 cd /Users/user/Code/Android
    12. !!执行上一条命令的时候也可以玩替换,比如上一条命令是 gcc -S -O -I./,!!:s/S/c/ 就相当于 gcc -c -O -I./
    13. 除了 cd ,你还能 pushd 和 popd 来进入栈顶的目录
    14. !:n 可以表示上一条命令的第 n 个参数,比如 vim a.txt ,然后 rm !:1 就是 rm a.txt
    15. autojump
    16. ripgrep 和 fuzzyf
    piping
        17
    piping  
       2021-12-22 23:31:07 +08:00
    ^replace^text 运行命令,适合修改 typo

    !$ $_ 代表上一个命令的最后一个参数,适合加快命令输入

    ctrl-z / fg/ bg /jobs 管理后台命令

    ctrl-r 搜索命令 可以替代配置 fzf

    配置 PS1 提示符 输出合适的信息,比如上一个命令运行时间,当前目录,当前后台程序,git 分支 (参考 starship )

    ======

    最后是学会 vim ,`vim -` 可以处理其他程序的 stdout
    kidonng
        18
    kidonng  
       2021-12-22 23:38:54 +08:00 via Android
    终端环境提升效率,从三个不同的层级都可以入手:终端、Shell 、命令行程序
    - 一个功能丰富、特性完备的终端是提升效率和体验的基础,Cmder/ConEmu 、Windows Terminal 、iTerm 、kitty 都在此列(可参考 https://kidonng.notion.site/GPU-04f75ed742e042fdab6beb299f2a73bb
    - Shell 配置是一个非常私人化的东西,绝大多数插件几乎都只能从形式上提升效率,只有自己知道写什么函数能解决痛点。Shell 本身没什么好选的,御三家以外生态都不太行,选哪个更多取决于自身喜好,而非 POSIX 兼容
    - 命令行程序选择就多了,而且优秀的项目普适性一般也高。Go 和 Rust 几乎占领了所有上了年头的项目的替代品位置,比如 gdu 代替 ncdu 、ripgrep 代替 grep 。具体效率提升取决于能从 awesome list 挖多少宝🐶
    calmzhu
        19
    calmzhu  
       2021-12-22 23:42:45 +08:00
    alias
    function
    tmux
    raycool
        20
    raycool  
       2021-12-23 00:49:36 +08:00
    @jaredyam 哇,第一次见,也太好用了
    qiuyue0
        21
    qiuyue0  
       2021-12-23 01:30:59 +08:00 via Android
    oh-my-zsh 里自带的 z ,和 autojump 一样,不过省去了一步安装的步骤
    qiuyue0
        22
    qiuyue0  
       2021-12-23 01:32:23 +08:00 via Android
    @ecnelises 很实用,学到了
    noqwerty
        23
    noqwerty  
       2021-12-23 01:42:36 +08:00
    喜欢 ZSH autocomplete 的各位可以考虑一下 fish shell ,基本开箱即用,配合 starship ( https://starship.rs/) 和以下几个插件体验非常好:

    jorgebucaran/fisher
    jethrokuan/z
    laughedelic/pisces
    jhillyerd/plugin-git
    jethrokuan/fzf
    cszeus
        24
    cszeus  
       2021-12-23 09:16:01 +08:00
    @ecnelises 学会了
    Hack3rHan
        25
    Hack3rHan  
       2021-12-23 09:34:07 +08:00
    ZSH_THEME="powerlevel10k/powerlevel10k"

    plugins=(
    git
    sudo
    zsh-syntax-highlighting
    zsh-autosuggestions
    )
    类似 fish 的自动建议,语法高亮和双击 ESC 补个 sudo
    lizenghui
        26
    lizenghui  
       2021-12-23 10:37:53 +08:00   ❤️ 1
    Ctrl + a:移到行首。
    Ctrl + b:向行首移动一个字符,与左箭头作用相同。
    Ctrl + e:移到行尾。
    Ctrl + f:向行尾移动一个字符,与右箭头作用相同。
    Alt + f:移动到当前单词的词尾。
    Alt + b:移动到当前单词的词首。
    Ctrl + d:删除光标位置的字符( delete )。
    Ctrl + w:删除光标前面的单词。
    Ctrl + t:光标位置的字符与它前面一位的字符交换位置( transpose )。
    Alt + t:光标位置的词与它前面一位的词交换位置( transpose )。
    Alt + l:将光标位置至词尾转为小写( lowercase )。
    Alt + u:将光标位置至词尾转为大写( uppercase )。
    Ctrl + k:剪切光标位置到行尾的文本。
    Ctrl + u:剪切光标位置到行首的文本。
    Alt + d:剪切光标位置到词尾的文本。
    Alt + Backspace:剪切光标位置到词首的文本。
    Ctrl + y:在光标位置粘贴文本。
    jones2000
        27
    jones2000  
       2021-12-23 11:04:27 +08:00
    重启
    dayeye2006199
        28
    dayeye2006199  
       2021-12-23 11:05:36 +08:00
    如果只推荐一条命令,那一定是 Ctrl+R
    cubecube
        29
    cubecube  
       2021-12-23 11:51:47 +08:00
    @Immortal 很多应用无视系统代理的,更别说 http 代理了。
    Immortal
        30
    Immortal  
       2021-12-23 12:31:03 +08:00
    @cubecube #29
    目前没有遇到过...基本终端需要走代理的都是 http 协议相关 下载更新依赖这些
    EminemW
        31
    EminemW  
    OP
       2021-12-23 19:14:59 +08:00
    学到了
    GiantHard
        32
    GiantHard  
       2021-12-23 20:38:44 +08:00
    ```sh
    sudo pacman -S fish
    exec fish
    ```

    换成 fish shell ,极大的提高终端操作效率
    Donahue
        33
    Donahue  
       2021-12-23 20:56:32 +08:00
    screen 在一个终端中打开多个会话,远程 ssh 的时候很好用,需要后台运行的程序就不用 nohup & 了,screen 里开一个会话,然后运行就可以了。
    还可以跟串口通讯,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3161 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:31 · PVG 20:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.