Я действительно рекомендую использовать grub2 и UUID здесь.
Можно получить UUID
ls -l /dev/disk/by-uuid
Zsh
завершение работает с так называемыми закладками ssh. Это на конфигурации хоста в ~/.ssh/config
.
Например,
host baz
hostname 192.168.1.2
port 22
user warrick
host bar
hostname example.com
port 2200
user kevin
identityfile /home/warrick/.ssh/ec2.pem
man ssh_config
видеть полный список опций.
Править
Я использую сценарий завершения от ohmyzsh:
https://raw.github.com/robbyrussell/oh-my-zsh/master/lib/completion.zsh
В подобном стиле к ohmyzsh
, Я поместил вышеупомянутый сценарий в ~/.zsh/libs/completion.zsh
и добавил это к ~/.zshrc
.
# ~/.zshrc
for f in ~/.zsh/libs/*; do
source $f
done
Пакет завершения удара включает завершения для ssh
команды, включая:
ssh
ssh-add
ssh-copy-id
sshfs
Можно просмотреть источник здесь: https://alioth.debian.org/scm/browser.php? group_id=100114
Чтобы это работало, поместил любые хосты, которые Вы хотите завершить в Вашем /etc/hosts
файл.
Вам нужно также bash-completion
пакет (содержащий файл/etc/bash_completion и каталог,/etc/bash_completion.d)
и источник это в ~/.bashrc (. /etc/bash_completion
- иногда это комментируется в/etc/bash.bashrc или в ~/.bashrc).
man ssh_config
для получения дополнительной информации, но это - намного больше универсального разрешения Вам указать несколько псевдонимов, имени пользователя, порта, и очень намного больше.
– kwarrick
05.10.2012, 23:52
/etc/ssh/ssh_config
, У меня нет завершения, работающего на настроенные хосты.
– Gilles Quenot
05.10.2012, 23:56
known_hosts
а также другие файлы конфигурации, например, ~/.ssh/config
– jasonwryan
06.10.2012, 00:21
скопирован из Мое собственный ответ на Unix.Se :
:
Если вы находитесь на хосте Ubuntu, то вы должны знать, что в Ubuntu записи в ~ / .ssh / sevaly_hosts
хешированы , поэтому SSH завершение не может их прочитать. Это особенность, а не ошибка. Даже добавив hashknownhosts no
на - ~ / .ssh / config
и / etc / ssh / ssh_config
Я не смог предотвратить хост хеширования.
Однако вы можете прочитать настроенные записи из ~ / .ssh / config
, которые не хешированы. Вот скрипт для завершения Bash, который читает записи из этого файла:
_ssh()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(grep '^Host' ~/.ssh/config | awk '{print $2}')
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
return 0
}
complete -F _ssh ssh
Положите этот скрипт в /etc/bash_completion.d/ssh
, а затем источнив его со следующей командой:
$ . /etc/bash_completion.d/ssh
Я нашел Это руководство Invaluable, и я бы не смогли бы сценарию это без него. Спасибо Стива Кемп для написания этого потрясающего гида!