Ok, kurz und schmerzlos:
. /etc/bash_completion
Fertig. Wer es dauerhaft haben möchte das hier in die ~/.bashrc:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Netterweise funktioniert dann die Tab-Completion auch für viele andere Dinge, wie z.B. bei Debian/Ubuntu für apt-get. Wer keine /etc/bash_completion hat, kann sie hier bekommen.
Einen grossen Haken hat die Hostname-Completion: Sie basiert auf der known_hosts von ssh, wo seit geraumer Zeit der Hostname ge-hashed wird. Möchte man die Completion trotzdem haben muss man das Hashen in der ~/.ssh/config abstellen:
HashKnownHosts off
Remote Autocomplete bei SCP. Ach Du Scheiße.
wenn man das ganze für die zsh will, muss man dieses in die .zshrc paken:
local _myhosts_myhosts=( ${${${${(f)"$(< $HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*} )
zstyle ':completion:*' hosts $_myhosts
argh, wieso wird hier was weggeschnibbelt?
habs mal hier hinterlegt: http://nopaste.info/9094e0618e.html
das geht so gar bei den mplayer-optionen :))
Problem ist oft aber, dass sich die Zeit des Logins drastisch erhöht, je nach Geschwindigkeit des Rechners. Auf “moderneren” Workstations sicher passabel, aber schon auf nem 1200 Celeron oder so dauerts teilweise bei jedem Login 1-2sec länger. Auf nem P2-350 als lokalem Server, wo man täglich mehrere Male per ssh drauf geht, wars sehr nervig.
Das mit dem Hostnamen ist ja schön und praktisch, aber es gibt leider auch ein Sicherheitsrisiko:
verwendet man ssh-keys (am Ende gleich noch einen nicht passwort-geschützten), dann ist nicht nur der eigene Rechner gehackt, sondern der Angreifer kennt auch mit hoher Wahrscheinlichkeit alle Rechner, auf die er ohne Passwort zugreifen kann.
Nur der Vollständigkeit halber ;)
Merci für den Tipp mit den gehasheten Hostnames. allerdings hats bei mir mit:
HashKnownHosts no
besser funktioniert :-)