как я могу вспомнить аргументы предыдущих команд? (в csh и в bash?)

Я обычно использую csh (на самом деле мой / bin / csh связан с tcsh, улучшенной версией csh) и часто использую !$ для ссылки на последний аргумент последней команды.
Но иногда я хотел бы использовать последний two аргументы предыдущей команды. Как я могу это сделать? и я думаю, что мог бы получить доступ к аргументам любых предыдущих команд.

Я прочитал Как я могу вспомнить аргумент предыдущую команду bash?, но не смогли найти ответ. Как мы можем ссылаться на предпоследний аргумент предыдущей команды?

Например, если я дал echo tiger rabbit, как я могу указать тигра для следующей команды? Лучше всего было бы ответить для csh, но мне тоже интересно узнать о случае с bash.


person Chan Kim    schedule 10.11.2017    source источник


Ответы (1)


Используя раскрытие истории, вы можете выбрать конкретную команду из истории, выполнить ее как есть или изменить и выполнить в зависимости от ваших потребностей. ! запускает расширение истории.

  • !! Повторяет предыдущую команду.
  • ! 10 Повторите 10-ю команду из истории
  • ! -2 Повторите вторую команду (с последней) из истории
  • ! строка Повторите команду, которая начинается со слова «строка» из истории.
  • !? строка Повторите команду, содержащую слово «строка» из истории
  • ^ str1 ^ str2 ^ Замените str1 в предыдущей команде на str2 и выполните ее.
  • !!: $ Получает последний аргумент предыдущей команды.
  • ! string: n Получает n-й аргумент команды, которая начинается со строки из истории.

  • ! ^ первый аргумент предыдущей команды

  • ! $ последний аргумент предыдущей команды
  • ! * все аргументы предыдущей команды
  • !: 2 второй аргумент предыдущей команды
  • !: 2-3 со второго по третий аргументы предыдущей команды
  • !: 2- $ предпоследние аргументы предыдущей команды
  • !: 2 * предпоследний аргумент предыдущей команды
  • !: 2- предпоследний аргумент предыдущей команды
  • !: 0 сама команда

И последнее, но не менее важное: я также рекомендую вам нажать Alt + ., чтобы получить доступ к последнему аргументу любой из предыдущих команд, которые вы ввели.

person Allan    schedule 10.11.2017
comment
Вау, спасибо, я помню, что видел некоторые из них, но это полный список! - person Chan Kim; 10.11.2017