Поэтому я использую upв своей оболочке (в основном, Bash на OSX или Ubuntu), но иногда я знаю, что мне нужно содержимое после текущего положения курсора. Есть ли какой-нибудь способ получить линию, на которой я нахожусь в комплекте с линией выше? Удар, upа потом leftраздражает.
Любые другие трюки тоже были бы классными, кроме тех tab, о которых мы все сейчас говорим :)
Вот пример (по запросу кряка):
Я печатаю, mkdir /where/the/hell/is/that/thing
а затем я хочу перейти в тот же каталог. Но теперь я знаю о мета-б :)
keyboard-shortcuts
bash
Дэн Розенстарк
источник
источник
Ответы:
Попробуй это:
затем нажмите alt+.
в зависимости от вашей операционной системы и терминала, возможно , придется ввести escзатем.
Вы также можете нажать alt+ 1+, .чтобы выбрать конкретный предыдущий аргумент.
Это намного лучше чем !! или! $, потому что вы можете увидеть, что вы собираетесь запустить, и в любом случае это займет меньше нажатий клавиш.
edit: строго говоря, это metaне altтак, поэтому он также может работать с клавишей «windows» в зависимости от того, как настроена ваша клавиатура.
источник
Вы должны прочитать man bash в вашей системе, особенно раздел Readline , так как это интерактивный механизм ввода bash. В руководстве по Bash на gnu.org есть хороший раздел о редактировании командной строки , который поможет заполнить некоторые пробелы.
По умолчанию вы можете использовать их для перемещения по командной строке (просто перечислите несколько здесь; см. Ссылку для полного списка):
Вы можете использовать их, чтобы «убить» (иначе «вырезать») текст из строки:
Таким образом, вы можете объединить их, чтобы выбрать фрагмент какой-то командной строки, которую вы хотите повторить, убить ее, а затем вставить в конец следующей команды.
Теперь, чтобы сделать его еще более увлекательным, давайте рассмотрим расширение истории bash . Это то,
!!
что упоминает ответ Студера . Брейки расширения Истории вниз в десигнатор события , слова десигнаторов и модификаторы .Обозначения событий выглядят следующим образом (снова см. Ссылки для полного списка):
!
- начинается подмена истории!n
- n-я команда в списке истории bash, для некоторого целого числа n (работает и для негативов)!!
- предыдущая команда; эквивалентно!-1
!string
- самая последняя команда, начинающаяся со строкиОбозначения слов выбирают определенные части из события. Используйте
:
для отделения события от обозначения слова. Слова нумеруются от 0, начиная с начала строки, и вставляются в текущую строку, разделенные пробелами.$
- обозначает последний аргумент (например,!!:$
является последним аргументом последней команды; может быть сокращен до!$
)n
- обозначает n-е слово (например,!str:2
2-й аргумент самой последней команды, начинающейся с str ;!!:0
это команда последней команды)Итак, чтобы продолжить ваш пример, если ваша последняя команда
mkdir /some/really/long/path
, просто запуск!!
снова запустит эту команду. Но вы хотите пойти поcd
этому пути:Теперь предположим, что вы выполняете некоторые другие команды, а затем хотите снова вернуться к этому пути. Если это была последняя команда mkdir, которую вы выполнили, вы можете использовать это, чтобы повторить этот путь:
источник
bind -p
илиbind -P
распечатаете ваши текущие сочетания клавиш; это окончательная ссылка на то, что использует ваш bash .Если вы пользователь vi, вы можете перевести оболочку в режим vi, набрав
set -o vi
.После этого вы можете делать все что угодно в командной строке после ввода
Esc + k
.Один я использую больше всего,
Esc+K
то/
любой текст , набранный после косая черта будет использоваться для поиска по истории командной строки.Например
Esc + k
/smbclient
, даст последнюю введенную вами команду smbclient. Вы можете прокручивать все поиски, используя стандартные клавиши vi (j
иk
для вверх и вниз, но я думаю, что стрелки вверх и вниз будут работать тоже).Дополнительная помощь здесь , есть также некоторые встроенные вещи bash по этой ссылке, которые могут быть больше, чем вы ищете.
Ура, стю
источник
Вы можете использовать,
!!
который представляет последнюю команду:источник
!!
является синонимом для!-1
: gnu.org/software/bash/manual/bashref.html#Event-DesignatorsВ приведенном вами примере используйте! $ Для представления последнего параметра предыдущей команды:
Вы также можете использовать пронумерованные варианты, чтобы получить конкретные параметры предыдущих команд.
источник
Недавно я нашел этот шпаргалку очень полезной. Много чего я не знал. Я использовал
!$
все время, пока не узнал о Alt+ ., который я сейчас использую все время. :)источник