
bash 可以用 ctrl + r 来搜索历史命令,但是有时候匹配不够好,所以有时候会用 history | grep xxx,来找,找到以后 鼠标选择然后复制,挺麻烦的。可以看到 history 有个 line num 信息,是否能快速利用起来?
1 liwufan 2019 年 2 月 12 日 1. 为何不用 history | vim - 然后 /搜索内容 快速上下翻 2. vim 里面找到命令 然后 :行号 w !bash 就行了 |
2 mattx OP @liwufan #1 不行吧? history 输出是这样的格式 2 [2019-02-12 18:51:46] xxxx,“:行号 w !bash ” 会提取 2 开始的作为命令 |
3 xfspace 2019 年 2 月 12 日 via Android h | egrep '^行号空格' | bash |
4 Augix 2019 年 2 月 12 日 via Android |
5 tsl0922 2019 年 2 月 12 日 via iPhone fish 在这方面做的比较好,输入命令的时候默认会搜索历史显示自动补全,但坏处是 fish 和 bash 语法不兼容。 zsh 有类似 fish 的补全插件,兼容 bash 语法(未测试,我用的是 fish )。 |
7 liwufan 2019 年 2 月 12 日 @mattx history 的输出格式是自定义的,比如你这个时间戳就是 HISTTIMEFORMAT="[%F %T] " , 开头序号直接 history | cut -c 8- | vim - 不就行了? man history 里面都写着,嫌麻烦可以不用 bash, zsh fish 这些也都可以 |
9 0xABCD 2019 年 2 月 12 日 via Android |
11 mattx OP 比较方便的是 bash 可以执行 !xxx , 比如输入 history 里面 855 行是 ps , 那么 !855 会执行 ps ,算是比较方便的. |