LINUX.ORG.RU
решено ФорумAdmin

можно ли сделать автокомплит в баше для ssh?

 


0

1

собственно, реально ли следующее:

В ~/.ssh/config у меня прописано много записей типа:

Host test
Hostname xx.xx.xx.xx
User root

Благодаря чему, я могу входить на сервак по ssh командой «ssh test»

1. пишу в консоли ssh te
2. жму два раза Tab
3. он делает ls/автокомплит для имени подключения по примеру обычного ls

Т.е. либо дописывает «te» до «test», либо выводит ниже список хостов, которые начинаются на «te»

Возможно ли такое реализовать?
Как вариант, можно скриптом распарсить .ssh/config и создать директорию, которая будет содержать файлы с именами хостов

а для автокомплита использовать уже эту директорию




★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

так вроде и так умеет
bash-completion 2.1
могу выложить completions для ssh
но лучше, наверн, пакет найти

ii343hbka ★★★
()
Последнее исправление: ii343hbka (всего исправлений: 1)

Ты что-то делаешь не так, bash-completion из коробки так и работает.

c0@c13 ~$ ssh gr<TAB><TAB>
grcx    gric    grmain  groot

cx ★★
()

Кактус надо грызть дальше

i47.tinypic.com/2qtwxnn.gif

zolden ★★★★★
()

В Debian/Ubuntu у меня всегда подефолту работало.

observer ★★★
()

Это надо умудрится сделать чтобы не работало.

baverman ★★★
()
Ответ на: комментарий от sergey-novikov

Ковыряй bash-completion, чо. Наверняка арч его поломал. Вродь на их вики статья неплохая на тему башей была.

Ну или юзай zsh какой, да.

cx ★★
()
Ответ на: комментарий от cx

а вы точно ничего не путаете?
комплит не для удаленных файлов должен быть, а для имен серверов, заданных в ~/.ssh/config

sergey-novikov ★★★
() автор топика
Ответ на: комментарий от sergey-novikov

Что я путаю? Да, сервера заданы в ~/.ssh/config. За комплит хостов по конфигу отвечает bash-completion, в этом можно убедиться глянув парсилку в /usr/share/bash-completion/bash_completion, или где там в арчах лежит.

cx ★★
()
Ответ на: комментарий от sergey-novikov

может мне тогда не хватает там файлов?

Возможно. По крайней мере в выхлопе не видно «ssh».

Предлагаю погуглить дополнительные пакеты bash-completion. Например в убунте часто новые дополнялки ставятся вместе с пакетами.

В крайнем случае — написать самому не так уж сложно. А потом выложить в AUR.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)

Т.е. либо дописывает «te» до «test», либо выводит ниже список хостов, которые начинаются на «te»

Возможно ли такое реализовать?

в Slackware это работает. Искароппки.

emulek
()
Ответ на: комментарий от emulek

круто!
поставил пакет bash-completions и все заработало
в дефолтном арче его не было

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