请教一个 Linux 下快捷键的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
BIAOXYZ
V2EX    Linux

请教一个 Linux 下快捷键的问题

  •   BIAOXYZ 2020-03-22 15:53:45 +08:00 3012 次点击
    这是一个创建于 2032 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以如下命令片段为例:

    [root@c4-infra02 ~]# kubectl get all -n 1234 | grep mq No resources found. [root@c4-infra02 ~]# echo 1 1 [root@c4-infra02 ~]# echo 2 2 [root@c4-infra02 ~]# echo 3 3 [root@c4-infra02 ~]# kubectl get all -n 1234 No resources found. [root@c4-infra02 ~]# [root@c4-infra02 ~]# [root@c4-infra02 ~]# [root@c4-infra02 ~]# kubectl get all -n 1 # 按 PageUp 

    假设已经执行了五条命令,现在我想简单快速地跳转到第一条命令kubectl get all -n 1234 | grep mq,我在我个人的 Window 本上( ssh 客户端软件用的 MobaXterm ),我通常是这么做的:

    1. 输入kubectl get all -n 1(其实可以更短一些,本文中的例子只是跳过三条 echo 的话甚至只打一个k就行)
    2. PgUp直接以kubectl get all -n 1开头的命令进行自动补全,从而跳过那几个 echo 命令,很快到达kubectl get all -n 1234 | grep mq(实际上此时的PgUpCRTL+R已经很像了)。

    首先排除CRTL+Rhistory+grep,因为我的核心目的是想知道下述叙述中PgUp的代替是什么(如果确实有这种代替的话)。然后CRTL+P或者等价的键盘是无法跳过那三条 echo 的,所以也不算。

    问此问题的原因:我忘了单位的 Mac 是没有PgUp还是按了PgUp不管用,反正肯定是达不到跟我个人的这个 Windows 本一样的效果(用CRTL+R达到该效果除外)。另外不确定是不是 ssh 客户端自带的属性,因为 Mac 下无法用 MobaXterm,我用的是原生的和 FinalShell 。

    感谢回答先~

    9 条回复    2020-03-24 19:52:57 +08:00
    000o000
        1
    000o000  
       2020-03-23 00:32:13 +08:00 via Android
    zsh 有这个功能
    Judoon
        2
    Judoon  
       2020-03-23 10:52:10 +08:00
    这个快捷键和 linux 没关系,是终端模拟器和 shell 的

    oh-my-zsh + zsh-autosuggestions
    Judoon
        3
    Judoon  
       2020-03-23 10:52:37 +08:00
    这个快捷键和 linux 没关系,是终端模拟器和 shell 的

    oh-my-zsh + zsh-autosuggestions
    直接根据历史命令补全
    julyclyde
        4
    julyclyde  
       2020-03-23 14:50:38 +08:00
    ctrl+R 是 readline 快捷键吧
    BIAOXYZ
        5
    BIAOXYZ  
    OP
       2020-03-23 22:05:49 +08:00
    @Judoon #3 但是我没有用 zsh 啊。我也觉得不是 linux 原生的,看来除了 ctrl+r 或者换其他终端,应该没别的办法。
    BIAOXYZ
        6
    BIAOXYZ  
    OP
       2020-03-23 22:46:23 +08:00
    @julyclyde #4 我其实以前一直不知道是 readline 提供的~后来搜了下还发现了这个: https://readline.kablamo.org/emacs.html
    有个`Alt-p Search backward through history for a given string.`,看起来有点像我要的功能,但是试了试还是不太一样。谢谢了哈
    aloxaf
        7
    aloxaf  
       2020-03-24 13:11:57 +08:00   1
    zsh 和 bash 都支持 history expansion
    你可以输入 `!n` 执行第 n 条命令、`!-n` 执行倒数第 n 条命令,或者太难数行数的话也可以用 `!?str` 执行最近的包含 str 的命令
    你图中的例子只需要执行 `!?grep` 就能定位到第一条命令了。

    参考: https://www.gnu.org/software/bash/manual/html_node/Event-Designators.html#Event-Designators
    aloxaf
        8
    aloxaf  
       2020-03-24 13:26:51 +08:00
    顺便 PageUp 不管用可能是因为不同 Terminal Emulator 发送的转义序列不同,你可以重新绑定一下

    bind '"转义序列": history-search-backward'

    转义序列通过先按 C-v 再按对应的按键得到
    BIAOXYZ
        9
    BIAOXYZ  
    OP
       2020-03-24 19:52:57 +08:00
    @aloxaf #7 啊,经你一提醒才想起来还有叹号可以用。这个发帖时候没想起来,不过以前也用过,尤其是`!!`。谢谢提示哈~ #8 这个没太清楚,我先查查~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5302 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 08:55 PVG 16:55 LAX 01:55 JFK 04:55
    Do have faith in what you're doing.
    ubao 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