воскресенье, 20 марта 2016 г.

AQA: tools: bash: Переносим функциональность bash в cmd.exe

Переносим функциональность bash в cmd.exe

Мне, как и многим из вас, работать с bash и стандартными утилитами Linux гораздо удобнее и приятнее, чем с cmd.exe. Однако, к сожалению, порой обстоятельства складываются так, что операционную систему выбирать не приходится. Например, в моём случае корпоративным стандартом является Windows 7. К счастью есть способ сделать жизнь линуксоида в командной строке Windows комфортнее, о нём и пойдет речь ниже.


Прежде всего, при переходе из bash в cmd.exe доставляет неудобства ограниченность самой командной оболочки. Чтоб вставить текст из буфера обмена нужно тянуться к мышке, не хватает возможностей автодополнения, история хранится только в пределах одной сессии, к тому же не работает Ctrl+R и другие возможности работы с историей команд в bash.

Исправить ситуацию нам поможет clink. Это Open Source утилита расширяющая возможности cmd.exe. Вот некоторые ее фичи:

  • Автодополнение по нажатию Tab. Возможности автодополнения могут быть расширены за счет пользовательских скриптов на Lua
  • Вставка текста из буфера по нажатию Ctrl-V (к сожалению Shift+Insert не работает)
  • Продвинутая работа с историей команд. Поиск по истории (Ctrl-R and Ctrl-S). Поддержка таких выражений как !!, !<string> и !$
  • Сохранение предыдущих сессий


Авторы говорят, что clink протестирован только на Windows XP SP3, но я пользуюсь им уже год на Windows 7 и всё работает нормально.

Скачали. Установили. Стало лучше, теперь cmd себя ведет почти как bash. Но кое-чего по прежнему не хватает. А именно привычных unix-утилит. Таких как cat, ls, tail, diff, grep, less, sort, wget и т.д. Некоторые утилиты имеют свои Windows-аналоги, например, вместо grep можно использовать findstr, но к ним придется привыкать заново, другие же аналогов вообще не имеют.

Эту проблему нам поможет решить готовый набор программ UnxUtils. Набор включает в себя множество популярных в Unix и Linux инструментов командной строки (полный список можно посмотреть по этой ссылке) а так же несколько дополнительных программ.

В частности, к дополнительным программам относятся pclip.exe и gclip.exe предназначенные для работы с буфером обмена Windows. Например вот так: pclip | sed "s/string1/string2/g" | gclip можно заменить все вхождения string1 на string2 в тексте хранящемся в буфере обмена.

Для того чтоб получить всё это на свою Windows-машину нужно скачать архив UnxUtils.zip, распаковать его содержимое в какой-то каталог и добавить в переменную среды PATH путь к usr\local\wbin\, т.к. именно там хранятся исполняемые файлы.

Для самых ленивых есть способ еще проще: скопируйте содержимое каталога usr\local\wbin\ из архива в каталог %WINDIR%\system32\ на вашей машине.
Внимание! Если вы решили поступить именно так, то я не рекомендую заменять системные файлы на одноименные файлы из архива без четкого понимания того, что вы делаете.

Всё! Осталось только запустить cmd и эффективно работать используя свой linux-опыт. Конечно есть и другие способы добиться того же самого результата, я описал тот, который нахожу максимально простым и удовлетворяющим все мои потребности.
 Альтернативный терминал для Windows
Обновление с Bash интерпретатором 
 см. практические подходы

Bash скрипт перезагрузки оборудования через telnet 
Bash-скрипт для проверки, запущены ли apache, nginx, mysql и ssh на сервере 
SSH — передача файлов и выполнение команд

   Копирование файлов через SSH
   SSH аутентификация по открытому ключу
   Подключения по SSH без ввода пароля
   Запуск команд на удаленном Linux-сервере через SSH
   Отключение проверки ключа хоста в SSH

пятница, 18 марта 2016 г.

Bash Scripting

 Оригинал статьи

Последнее время, я очень увлекся автоматизацией процессов при помощи скриптов написанных на bash, perl и немного php для работы с MySQL и естественно, стал глубже изучать все эти языки. Так я работа не только с Linux серверами но и с Windows,  и в системе присутствует Active Directory, то в основном скрипты были написаны с использование LDAP протокола, как пример, сегодня потратил почти весь день что бы автоматизировать добавление и удаление пользователей в Mailman рассылки. В ближайшее время я постараюсь выложить все то что сделал, с подробным описанием, а сейчас хочу представить вам три книги которые стали для меня буквально настольными, это Bash Guide for Beginners, Linux Shell Scripting with Bash и Advanced Bash-Scripting Guide . Первые две достаточно подробно описывают команды и возможности bash, третья, в примерах показывает что можно сделать. Все три книги вы можете скачать
Bash Guide for Beginners
Advanced Bash-Scripting Guide
Linux Shell Scripting with Bash

SEO: Эксперимент: как Яндекс и Google учитывают ключевые слова в URL

Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Дата пу...