Что делает! # (Восклицательный знак хэш),! $: R: r (восклицательный знак доллара д),! #: T (восклицательный знак хэша) означает в нижних командах bash?

Я пытался установить пакет Nagios и наткнулся на эти странные расширения bash в руководстве здесь . Может ли кто-нибудь помочь мне понять, что означают расширения? Ссылка на wiki также будет полезна для будущих ссылок.

root@z:~> wget http://mathias-kettner.de/download/check_mk-1.1.7i5.tar.gz root@z:~> tar zxvf !#:t root@z:~> chown -R root:root !$:r:r && chmod -R ow !$:r:r && cd !$:r:r root@z:~/check_mk-1.1.7i5> ./setup.sh 

  • Как прервать fc без выполнения команды?
  • Временно приостановить bash_history на данной оболочке?
  • HISTTIMEFORMAT не показывает правильную дату и время для истории
  • История поиска из нескольких сеансов bash только при использовании Ctrl + R, а не при использовании клавиш со стрелками
  • Команды, запущенные при открытии терминала, не отображаются в истории
  • Способы избежать регистрации журнала bash?
  • Использовать предыдущий «путь» в команде
  • Поиск истории в Bash вперед после назад?
  • One Solution collect form web for “Что делает! # (Восклицательный знак хэш),! $: R: r (восклицательный знак доллара д),! #: T (восклицательный знак хэша) означает в нижних командах bash?”

    Это ключевые слова расширения истории bash . Они выбирают строку из истории оболочки и повторно вставляют (ее части), возможно после модификации. Сайт, с которым вы связались, делает разумную работу, объясняя их, но он не описывает их всех.

     tar zxvf !#:t 

    на самом деле не имеет смысла !# выбирает строку, напечатанную до сих пор, но это tar zxvf и мы не хотим повторно использовать это. Должен быть

     tar zxvf !$:t 

    который выбирает последнюю часть предыдущей строки ( !$ ), которая является URL-адресом, заданным для wget , и принимает часть имени файла ( :t , для хвоста – строго говоря, это то, что осталось после последнего разделителя каталога / , что происходит с работать с URL-адресами).

    затем

     chown -R root:root !$:r:r 

    выбирает последнюю часть предыдущей строки, отбрасывает расширение файла ( :r – строго говоря, он удаляет все после последнего . , включая . ) дважды, что дает имя каталога (при условии, что tarball содержит каталог с тем же именем, что и базовое имя tarball). Команды chmod и cd действуют аналогичным образом.

    Interesting Posts

    Как добавить язык во FreeBSD?

    Не удалось настроить eth1

    Предотвращение доступа SIGINT к дочерним процессам

    Как активировать текущий сеанс в ConsoleKit?

    Можно ли сделать загрузочное устройство с несколькими дистрибутивами Linux?

    После установки oh-my-zsh: … /.zshrc:source:34: нет такого файла или каталога … /.oh-my-zsh/oh-my-zsh.sh

    gnupg 2.1.16 блоки, ожидающие энтропии

    Запустить debian графический установщик изнутри debian?

    Я хочу, чтобы несколько подсказок расшифровывали несколько жестких дисков, которые содержат корневую файловую систему

    SSHFS в fstab запрашивает пароль, даже если пользователь подключается нормально, используя keyfile

    Ошибка dvgrab: драйвер получил неполный кадр

    непрерывное тестирование проекта C ++ на github с разными дистрибутивами Linux

    почему linux повторно использует порт «time_wait»?

    как регистратор доменов обновляет корневые DNS-серверы

    Способ автоматической замены исходного файла на выход?

    Linux и Unix - лучшая ОС в мире.