Comments 43
Будет весьма и весьма полезно
Мне давно было интересно, как это реализуется. Приятно что так просто, но скрипт на 10к строк это жесть, конечно.
давно хотел попробывать это сделать, но не доходили руки. valgrind'у например это очень нужно, у него куча длинных опций. жду продолжения
в CentOS 5.3 такое не нашел, yum search тоже ничего такого не выдает,
как подключить?
как подключить?
Возможно, стоит посмотреть тут:
www.caliban.org/bash/#completion
центоса, чтобы сказать точнее, под рукой нет :(
www.caliban.org/bash/#completion
центоса, чтобы сказать точнее, под рукой нет :(
Вот эта тема, думаю, сможет вам помочь:
forums.fedoraforum.org/showthread.php?t=27863
forums.fedoraforum.org/showthread.php?t=27863
унёс в закладки
Спасибо вам большое, а то у меня на убунте это работает, а в дебиане — нет. Я всю голову изломал как включить…
Очень хорошая статья!
Сейчас напишу для себя автодополнение для команды invoke-rc.d, а то лениво каждый раз писать /etc/init.d/
Сейчас напишу для себя автодополнение для команды invoke-rc.d, а то лениво каждый раз писать /etc/init.d/
Обычно он есть из коробки.
Не нужно. Если требуется настраеваемое автодополнение — привет, zsh. bash должен быть по возможности более ванильный, ибо работать с ним приходится практически везде, в том числе там, куда свои конфиги не утянешь.
Конкретно для ssh удобней использовать .ssh/config если у вас фиксированный набор машин. Опять же алиасы можно делать любые.
Чем это удобнее?
Конкретно в моем случае, в known_hosts сохраняются айпишники, причем они из одной сети. Автодополнение до последнего октета адреса делает мало погоды. В конфиг же я кладу человеческие названия аля db, web1, web2 и т.д.
Кроме того в конфиг можно положить еще много чего вкусного, например юзернейм.
Кроме того в конфиг можно положить еще много чего вкусного, например юзернейм.
В моем случае количество серверов несколько больше, чем то, что можно запомнить по ip-адресам. При этом я вполне знаю на какой хост по имени надо попасть.
Конфиг, к тому-же надо поддерживать руками в актуальном состоянии, а машина в known_hosts попадает сама, после первой попытки логина на нее.
>В конфиг же я кладу человеческие названия аля db, web1, web2 и т.д.
А у вас не поднята даже локальная DNS зона для ваших машин?
Конфиг, к тому-же надо поддерживать руками в актуальном состоянии, а машина в known_hosts попадает сама, после первой попытки логина на нее.
>В конфиг же я кладу человеческие названия аля db, web1, web2 и т.д.
А у вас не поднята даже локальная DNS зона для ваших машин?
Поэтому я и писал про фиксированный набор машин.
У нас далеко не локальная зона. Куча vpn-ов к заказчикам, на всех не наподымаешься :)
Кроме того, у нас часто используются виртуальные адреса балансера, за которым живет несколько реальных машин, в этом случае ssh сильно огорчается, когда видит в known_hosts другой хэш машины. Я не проверял еще решает ли ваше предложение эту проблему.
У нас далеко не локальная зона. Куча vpn-ов к заказчикам, на всех не наподымаешься :)
Кроме того, у нас часто используются виртуальные адреса балансера, за которым живет несколько реальных машин, в этом случае ssh сильно огорчается, когда видит в known_hosts другой хэш машины. Я не проверял еще решает ли ваше предложение эту проблему.
>в этом случае ssh сильно огорчается, когда видит в known_hosts другой хэш машины
Он огорчится в любом случае :-)
>часто используются виртуальные адреса балансера, за которым живет несколько реальных машин
вы балансируете все соединения на балансер, а не только на некоторый выбранный(80, к примеру) порт?
Он огорчится в любом случае :-)
>часто используются виртуальные адреса балансера, за которым живет несколько реальных машин
вы балансируете все соединения на балансер, а не только на некоторый выбранный(80, к примеру) порт?
Да. Виртуальный адрес висит на полноценном интерфейсе.
В общем, мы не можем предугадать какая физическая машина обслужит нас по этому виртуальному адресу в конкретный момент.
known_hosts при коллизии приходится чистить
В общем, мы не можем предугадать какая физическая машина обслужит нас по этому виртуальному адресу в конкретный момент.
known_hosts при коллизии приходится чистить
Забавно.
Я сталкивался с системами, когда баласер балансирует (oops) соединения на выбранном порту к определенным машинам. При этом доступ к машинам сохраняется по их «исходным» адресам.
Я сталкивался с системами, когда баласер балансирует (oops) соединения на выбранном порту к определенным машинам. При этом доступ к машинам сохраняется по их «исходным» адресам.
А зачем чистить? В плане что можно выставить StrictHostKeyChecking в no, и тогда ssh будет ругаться, но прилежно коннектится к удаленным хостам.
прекрасно! я давно думал что надо найти комплешн для имён хостов — где-то видел что так работает — но всё время забывал. Мерси огромное!
друг, рассказывай о автодополнении для собсвеноручных скриптов!
Обещанного продолжения не было уже полтора года, потому его попробовал написать я. Но, увы, кармы не хватает на публикацию. Помогите кто чем можете =\
Sign up to leave a comment.
Использование bash completion в командной строке, собственных скриптах и приложениях. Часть 1