Как получить полное / множественное автозаполнение SSH хоста из нескольких источников

complete -W "$( { awk '/^Host / { print $2 }' ~/.ssh/config | egrep -v '\*|,' echo $( grep '^ssh ' .bash_history | sort -u | sed 's/^ssh //' ) while IFS=' ,' read host t; do echo $host; done < ~/.ssh/known_hosts ;} )" ssh


Команда «complete -w» используется для настройки автозаполнения в командной строке. В данном конкретном случае, она настраивает автозаполнение для команды «ssh».

Аргумент «$( { … })» представляет собой список источников, из которых будет производиться автозаполнение. В данном случае, это:

1. Содержимое файла ~/.ssh/config, где извлекаются хосты, указанные после ключевого слова «host».
2. История команд в файле .bash_history, где извлекаются команды начинающиеся с «ssh».
3. Содержимое файла ~/.ssh/known_hosts, где извлекаются хосты, разделенные запятой или пробелом.

С помощью команд awk, egrep, grep, sort, sed и цикла while производится извлечение хостов из указанных источников.

Таким образом, данная команда позволяет получить список доступных хостов для подключения по SSH из нескольких источников и настроить автозаполнение для команды «ssh». Альтернативой может быть прямое указание хоста при использовании команды «ssh».

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *