Zdalne uzupełnianie nazw w bash-u...
2009-02-26 kategorie: praca
Używam różnych Uniksów i Linuksów, a w nich shella bash, już tyle lat, a okazuje się, że wciąż ma on jakieś ukryte możliwości, o których nie wiem... :)
Chyba każdy używający bash-a docenia wygodną funkcjonalność zwaną po angielsku filename completion, czyli automatyczne uzupełnianie nazw plików we wpisywanych komendach. Wystarczy wpisać początek nazwy, wcisnąć TAB i bash automatycznie uzupełni resztę. Nie miałem jednak do tej pory pojęcia, ze działa to również na zdalnych serwerach, przy kopiowaniu plików komendą 'scp'! Odkryłem to zupełnie niedawno. Wpisałem pewnego razu początek komendy "scp nazwa_pliku user@host:kat" i zupełnie mimowolnie wcisnąłem TAB. Po krótkiej chwili w linii komend pojawiła się nazwa katalogu... na zdalnej maszynie, na którą chciałem plik skopiować!
Zaintrygowany, wypróbowałem to jeszcze kilka razy, i faktycznie, działa! - przynajmniej w Ubuntu... Warunkiem jest oczywiście skonfigurowana i uruchomiona autoryzacja ssh poprzez klucze, gdyż kod uzupełniający nazwy plików musi przecież jakoś zalogować się na zdalny serwer...
Okazuje się, że w sieci jest bardzo niewiele informacji o tej funkcjonalności, niezwykle użytecznej dla osób często pracujących na kilku maszynach i kopiujących między nimi pliki! Z jednej z nielicznych stron na ten temat, jakie udało mi się znaleźć, dowiedziałem się iż jest to jedno z wielu możliwych rozszerzeń funkcjonalności filename completion w bash-u, i istotnie Ubuntu i Debian standardowo "przychodzą" z takim rozszerzeniem już skonfigurowanym. Nie wiem, jak jest w innych systemach, ale zawsze można sobie "pożyczyć" rozwiązanie Debianowe, gdyż niewątpliwie warto z tej wygodnej możliwości korzystać!