Оптимизация работы с SSH с помощью bash-completion
Bash-completion это очень интересная особенность последних версий оболочки bash. Она позволяет создавать свои, настраиваемые схемы автодополнения команд.
SSH - это протокол, позволяющий управлять удалённой системой и передавать файлы. Является стандартом де-факто для удалённого администрирования *nix-серверов.
В этой заметке я постараюсь кратко рассказать (скорее даже просто показать направление движения) об оптимизации работы с SSH с помощью использования bash-completion.
Итак. Все привыкли что если в приглашении bash набрать ssh и два раза нажать клавишу TAB - будет отображён список файлов в текущем каталоге. Однако было бы гораздо удобнее если бы вместо файлов в текущем каталоге перечислялись часто используемые хосты. Вот тут и пригодиться наличие возможности программировать автодополнение в bash.
Для программирования автодополнения используется команда complete. Об её использовании можно прочитать набрав команду:
help complete
Команда достаточно функциональна, но мы будем рассматривать самый простой случай. Поэтому нам достаточно ключа -W, который отвечает за список слов, используемых при автодополнении. Типичное использование complete выглядит так:
complete -W 'слово1 слово2 слово3' команда
Теперь если набрать в терминале команда и два раза нажать TAB - будет показан список слов, перечисленных после ключа -W. Этим мы и воспользуемся. Выполним примерно вот такую команду:
complete -W 'host1.com host2.com user1@host3.com' ssh
Чтобы это команда выполнялась автоматически - её нужно поместить в файл ~/.bashrc.
Теперь особо ленивые админы могут ещё настроить авторизацию с помощью пар ключей? и работа превратится в удовольствие :).
Источник заметки: Yellow Leaf


December 12th, 2007 at 19:30 Quote
На Ubuntu Gutsy Баш автоматом делает комплишен для хостов прописаных в ~/.ssh/config