LINUX.ORG.RU

Оптимизация работы с SSH с помощью bash-completion


0

0

Bash-completion это очень интересная особенность последних версий оболочки bash. Она позволяет создавать свои, настраиваемые схемы автодополнения команд.

SSH это протокол, позволяющий управлять удалённой системой и передавать файлы. Является стандартом де-факто для удалённого администрирования *nix-серверов.

Все привыкли что если в приглашении bash набрать ssh и два раза нажать клавишу - будет отображён список файлов в текущем каталоге. Однако было бы гораздо удобнее если бы вместо файлов в текущем каталоге перечислялись часто используемые хосты. Вот тут и пригодится наличие возможности программировать автодополнение в bash.

Заметка не описывает все тонкости реализации, а скорее просто даёт идею. Заодно демонстрируя основы программирования bash_completion.

>>> Подробности

★★★★

Проверено: Shaman007 ()

Re: Оптимизация работы с SSH с помощью bash-completion

MooSE, за интересные статьи респект!

anonymous ()

Re: Оптимизация работы с SSH с помощью bash-completion

это интересно

prizident ★★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

source /etc/bash_completion и не надо изобретать велосипед

swar0g ★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

баян. в zsh давно есть

Muromec ☆☆ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Скажите, а можно ли сделать так, чтобы bash по нажатии TAB подставлял варианты в том числе и из bash_history?

ogion ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

В дебе работает искаробки как и с многими другими программами

Arceny ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

> Только ресурсов zsh хавает много больше, так что, увы и ах, но в Бабруйск.

Это опять-таки случай так называемого вранья. У меня zsh ест два-три мега, а bash - больше пяти, да ещё и стартует ощутимо дольше. Вдобавок, bash-completion тормозит ощутимо сильнее zsh-completion, а умеет меньше.

ero-sennin ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

ну блин и инновация, слов нет. долой такие новости.

warl0ck ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Чем это лучше alias?

ip1981 ☆☆ ()

Re: Оптимизация работы с SSH с помощью bash-completion

В общем-то старо, практически во всех дистрибутивах bash_completion уже настроен на дополнение хостов как для ssh, так и для scp.

guitarist ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Кстати, а bash уже научился компилировать и хранить свои скрипты в каком-нить промежуточном формате, чтобы загрузка мегабайтного .profile и completions на все случаи жизни занимала не десятки секунд, а доли секунды?

execve ()

Re: Оптимизация работы с SSH с помощью bash-completion

> В общем-то старо, практически во всех дистрибутивах bash_completion уже настроен на дополнение хостов как для ssh, так и для scp.

А не подскажете, откуда он берёт список хостов?

ogion ★★ ()
Ответ на: Re: Оптимизация работы с SSH с помощью bash-completion от firsttimeuser

Re: Оптимизация работы с SSH с помощью bash-completion

> ~/.ssh/known_hosts ?

Там храняться только имена хостов. А иногда ещё нужно явно указать имя пользователя. Так что не рулит такой способ:)

MooSE ★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

класс!

anonymous ()

Re: Оптимизация работы с SSH с помощью bash-completion

[:]||||||||||||||||[:]

Ex ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Ну вот. Отличная статья.

anonymous ()

Re: Оптимизация работы с SSH с помощью bash-completion

то что у меня по умолчанию в федоре настроено не ассоциирует имя с хостом. После

ssh username@ <Tab>

bash-completion лепит все к чему я когда либо коннектился, не важно под каким юзеонеймом.

firsttimeuser ★★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

но ssh/scp это дело третье. Все строки в истории баша. Меня не обламывает поискать через <ctrl>+R. Больше интересует как список расширений ассоциированных с бинарниками редактировать. А то скудность списка для mplayer изрядно раздражает.

firsttimeuser ★★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

> А вот и жабасты подтянулись. Нет, jit тут нет. И да java-sux - недо'с' пере'bash'.

Спасибо за информацию, я почему-то и не сомневался.

А в zsh это есть.

execve ()
Ответ на: Re: Оптимизация работы с SSH с помощью bash-completion от firsttimeuser

Re: Оптимизация работы с SSH с помощью bash-completion

> но ssh/scp это дело третье. Все строки в истории баша. Меня не обламывает поискать через <ctrl>+R.

Тут немного другое.

scp host:/path/to/something/<Tab>

показывает (и позволяет подставить) список файлов в каталоге /path/to/something на хосте host. Такое никакой историей не заменишь.

execve ()

Re: Оптимизация работы с SSH с помощью bash-completion

o bozhe moj. ja eto nastroil v 1997 v zsh. s tex por rabotaet, razve toko popravil kogda na openssh pereshjol -- oni format known_hosts pomenjali :)

anonymous ()

Re: Оптимизация работы с SSH с помощью bash-completion

> > ~/.ssh/known_hosts ?

Именно,

> Там храняться только имена хостов. А иногда ещё нужно явно указать
> имя пользователя. Так что не рулит такой способ:)

Пишем ssh user@ho<tab>, bash дополняет до user@host.domain.

guitarist ★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Мдя... И как у меня баш дополнял хосты из .ssh/known_hosts ?
Правда, там были именно хосты тогда, а не хэши.

stanislav ()

Re: Оптимизация работы с SSH с помощью bash-completion

а какие стандартные способы включения есть для слаки?

cvv ★★★★★ ()

Re: Оптимизация работы с SSH с помощью bash-completion

Ну... вообще-то, как вяснилось, стандартный bash_completion вполне умеет работать с ssh http://www.caliban.org/bash/index.shtml#completion_starting Он умеет брать имена хостов и ~/.ssh/known_hosts Единсвенное что нужно в /etc/ssh/ssh_config поставить HashKnownHosts no чтобы имена хостов не хранились в хешированном виде. И вперед! Вот допилить бы его до состояния когда он берет имена из ~/.bash_history и /etc/hosts вот это было бы полезно.

shaplov ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.