Yellow Leaf

Yellow Leaf


Поиск по сайту


Вход
Правила портала
Регистрация
Забыли пароль?
О команде проекта
Справка по оформлению постов


Последние комментарии к новостям и статьям
Re: С днём системного администратора!
Re: Вышел новый номер v10.07(2) компьютерного журнала UserAndLINUX.
Re: Отчет о первом "Runtu InstallFest" в Екатеринбурге
Re: OpenVPN сервер для офисного шлюза на FreeBSD
Re: Релиз Runtu LXDE 10.04!
Ещё комментарии >>>


Новые файлы
Debian: cue2tracks_0.2.11_all (Дополнение для CUE 2 Tracks v0.2.11)
Gentoo: cue2tracks-0.2.11 (Дополнение для CUE 2 Tracks v0.2.11)
CUE 2 Tracks v0.2.11
Jabber-Shell 20090303
EasySoft AutoRun 0.4.1


Новое на форуме
Движок сайта. версия 2.0
Нужен логопед, срочно
Словить процесс
проблемы с разделом жесткого диска
планировщик, веб интерфейс


Проекты
Jabber-Shell
Qmmp
QStarDict
PHPSAAdmin


 
   


Друзья сайта
 Open Kazan - Казанское сообщество пользователей OpenSource 


Посетителей с 08.09.2006

4671844


Внешний вид портала


RSS-Ленты
Новости
Файлы


 

   
  Яндекс цитирования  

«Жёлтый Лист» - cайт о мире юникс
Новости Форум Статьи Файлы Пользователи
   

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

MooSE 2007-12-07 13:51:15

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

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

В этой заметке я постараюсь кратко рассказать (скорее даже просто показать направление движения) об оптимизации работы с SSH с помощью использования bash-completion.

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

Для программирования автодополнения используется команда complete. Об её использовании можно прочитать набрав команду:

help complete

Команда достаточно функциональна, но мы будем рассматривать самый простой случай. Поэтому нам достаточно ключа -W, который отвечает за список слов, используемых при автодополнении. Типичное использование complete выглядит так:

complete -W '<слово1> <слово2> <слово3>' <команда>

Теперь если набрать в терминале <команда> и два раза нажать <TAB> - будет показан список слов, перечисленных после ключа -W. Этим мы и воспользуемся. Выполним примерно вот такую команду:

complete -W 'host1.com host2.com user1@host3.com' ssh

Чтобы это команда выполнялась автоматически - её нужно поместить в файл ~/.bashrc. Например в моём ~/.bashrc команда вызывается примерно так (большую часть хостов я само собой пропустил:)):

complete -W 'nextrim.ru \
             ftp.nextrim.ru \
             post.hq.telecet.com \
             ghost.hq.telecet.com' ssh

Теперь особо ленивые админы могут ещё настроить авторизацию с помощью DSA-ключей, как это описано, например, здесь и работа превратится в удовольствие:)

Ссылки:

Ключевые слова: ssh bash bash_completion

Версия для печати

Возможно вас заинтересуют следующие товары:


Комментарии:

quadrik 2007-12-07 20:10:15 (*)

Вадим, ты просто энерджайзер!
Кстати, а почему телесетовские хосты? Ты же вроде в ТНПКО?

[Ответить]


MooSE 2007-12-07 21:21:01 (*)

гыгы. за отличную службу меня забрали в лучший мир:) в телесет. работа чуть проще, зарплата чуть больше.

тнпко же собственность телесета и такие рокировки легко сейчас делаются. итак уже работаем как одна большая компания.

а про идеи - я давно плевался что не хватает дополнения хостов и собирался написать автодополнение. вот сегодня в обед минутка выдалась - сделал. реально удобнее работать стало:)

[Ответить]


quadrik 2007-12-08 10:04:24 (*)

И какие ОСи используют Казанские провайдеры?

[Ответить]


MooSE 2007-12-08 12:27:02 (*)

quadrik, не ужели не в курсе?:)

На рабочих станциях преобладает Windows (не считая админов). А так - Linux и FreeBSD. В ТНПКО есть два сервера под Sun Solaris. Но вообще такого мало.

В основном всё же Linux и FreeBSD.:)

[Ответить]


quadrik 2007-12-08 18:24:34 (*)

А что конкретно и для чего?

[Ответить]


MooSE 2007-12-08 20:38:07 (*)

ну солярка под бд биллинга. линухи - преимущественно красная шапка и клоны. тоже назначение - любой:) фряха она и в африке фряха. и тоже под самые разные цели. кроме пожалуй биллинга. ибо оракла на фряхе пока нет (в эмуляции линуха не всчёт), а биллинга если не всех, то почти всех операторов татарстана завязаны на оракл:)

[Ответить]


shaplov 2007-12-11 17:48:51 (*)

Ну... вообще-то, как вяснилось, стандартный 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 вот это было бы полезно.

[Ответить]


MooSE 2007-12-11 22:11:32 (*)

Мне эта вещь не понравилась тем, что она не учитывает имён пользователей.

Просто я в этой жизни много куда логинился, но реально нужных мне хостов - штук десять-пятнадцать.

:)

[Ответить]


mj 2008-03-17 16:04:06 (*)

Это ладно.
А zsh умеет делать дополнение имен _удаленных_ файлов при использовании scp и наличия ключика на удаленном хосте.

[Ответить]


Содержание*:
=

При копировании материалов с этого сайта ссылка на источник обязательна! Уважайте труд авторов!


Если материалы с этого сайта оказались вам полезны - Вы можете поддержать этот проект переведя на его счёт любую сумму, какую сочтёте нужным.

рублей


Обратная связь


© 2006-2010 Вадим Калинников aka MooSE