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

bash shell history search

  •  
  •   mattx · 2019-02-12 17:37:54 +08:00 · 7389 次点击
    这是一个创建于 2114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    bash 可以用 ctrl + r 来搜索历史命令,但是有时候匹配不够好,所以有时候会用 history | grep xxx,来找,找到以后 鼠标选择然后复制,挺麻烦的。可以看到 history 有个 line num 信息,是否能快速利用起来?

    1. 求 快速搜索历史命令的方法,可以快速往上往下翻
    2. 求 history 高级用法,快速找到某条历史命令,并自动生成在 shell 终端
    11 条回复    2019-04-23 16:34:50 +08:00
    liwufan
        1
    liwufan  
       2019-02-12 17:56:36 +08:00
    1. 为何不用 history | vim -
    然后 /搜索内容 快速上下翻
    2. vim 里面找到命令 然后
    :行号 w !bash
    就行了
    mattx
        2
    mattx  
    OP
       2019-02-12 18:52:40 +08:00
    @liwufan #1 不行吧? history 输出是这样的格式 2 [2019-02-12 18:51:46] xxxx,“:行号 w !bash ” 会提取 2 开始的作为命令
    xfspace
        3
    xfspace  
       2019-02-12 19:04:06 +08:00 via Android
    h | egrep '^行号空格' | bash
    Augix
        4
    Augix  
       2019-02-12 19:08:07 +08:00 via Android
    tsl0922
        5
    tsl0922  
       2019-02-12 19:21:59 +08:00 via iPhone
    fish 在这方面做的比较好,输入命令的时候默认会搜索历史显示自动补全,但坏处是 fish 和 bash 语法不兼容。

    zsh 有类似 fish 的补全插件,兼容 bash 语法(未测试,我用的是 fish )。
    mattx
        6
    mattx  
    OP
       2019-02-12 19:36:56 +08:00
    @tsl0922 #5 fish 和 zsh 好像在 gbk 编码支持上 比较差对吧?
    liwufan
        7
    liwufan  
       2019-02-12 19:38:28 +08:00
    @mattx history 的输出格式是自定义的,比如你这个时间戳就是 HISTTIMEFORMAT="[%F %T] " , 开头序号直接 history | cut -c 8- | vim - 不就行了?

    man history 里面都写着,嫌麻烦可以不用 bash, zsh fish 这些也都可以
    tsl0922
        8
    tsl0922  
       2019-02-12 19:44:07 +08:00 via iPhone
    @mattx 没有吧,没遇到过这个问题
    0xABCD
        9
    0xABCD  
       2019-02-12 20:12:43 +08:00 via Android
    mattx
        10
    mattx  
    OP
       2019-02-12 20:15:25 +08:00
    @0xABCD #9
    @Augix #4
    @xfspace #3
    @liwufan #7 thx
    mattx
        11
    mattx  
    OP
       2019-04-23 16:34:50 +08:00
    比较方便的是 bash 可以执行 !xxx , 比如输入 history 里面 855 行是 ps , 那么 !855 会执行 ps ,算是比较方便的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5931 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:36 · PVG 10:36 · LAX 18:36 · JFK 21:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.