Получить предыдущие команды в терминале, которые соответствуют введенной в настоящее время команде [duplicate]

Если вы наберете:

cd ~/

и нажмите TAB, команда должна перейти к фактическому пути к вашей домашней папке. Насколько я знаю, это работает практически с любой командой, которая принимает путь в качестве аргумента.

1
задан 16 April 2015 в 11:45

3 ответа

Я всегда использую history, для меня просто удобнее видеть все команды, которые я печатаю, например:

history

перечисляет все команды, которые вы набрали некоторое время

history | grep nmap

перечисляет только команды с nmap

history | grep nmap | tail -10

history | grep nmap | head -10

содержит список последних и первых 10 команд с nmap

, а затем просто скопируйте и вставьте его снова.

5
ответ дан 23 May 2018 в 21:22
  • 1
    Это очень полезно, не совсем то, что я искал, но спасибо за обмен! – Ryan Stull 16 April 2015 в 03:25
  • 2
    добро пожаловать, удачи :) – JoKeR 16 April 2015 в 03:30

То, что я предпочитаю использовать для достижения этой цели, - перегруппировка клавиш Up и Down для поиска истории Bash. Это можно сделать, добавив следующее к .inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

После перезагрузки вашей оболочки нажатие Up или Down в пустой строке будет перемещаться по всем командам , и нажмите Вниз или Вниз после ввода, например nmap будет перемещаться по всем командам, которые начинаются с того, что вы набрали.

5
ответ дан 23 May 2018 в 21:22

Если вы находитесь в режиме vi в bash (set -o vi), вы можете перейти в командный режим (нажмите Esc), а затем введите /whatever_you_want, а затем Enter. Он будет искать все, что вы хотите, и вы можете прокручивать клавиши j и k. Нажмите Enter, когда вы найдете нужную команду.

Возврат к «нормальному» режиму оболочки выполняется с помощью set -o emacs.

Для того чтобы иметь возможность вводить команды, когда вы нажали Esc, вам нужно нажать i (это vi).

]

2
ответ дан 23 May 2018 в 21:22
  • 1
    Это не обязательно ответ, каждый пользователь Linux знает, как использовать редактор vi , вопрос не имеет ничего общего с do vi – Faizan Akram Dar 16 April 2015 в 11:34
  • 2
    @Faizan bash и многие другие оболочки, имеют vi keybindings, где вы можете нажать Esc, а затем vi-like ключи, чтобы что-то делать. – muru 16 April 2015 в 11:36
  • 3
    @muru я знаю это, но как он отвечает на вопрос? – Faizan Akram Dar 16 April 2015 в 11:41
  • 4
    @Faizan Поиск с использованием / - альтернатива Ctrl-R, указанная в принятом ответе. – muru 16 April 2015 в 11:42
  • 5
    /, а затем nmap в текущем сценарии. – Faizan Akram Dar 16 April 2015 в 11:43

Другие вопросы по тегам:

Похожие вопросы: