Выбрать главу

Ваша система Windows предложить выполнить перезагрузку, чтобы полностью активировать подсистему Linux и новые инструменты разработчика. Сделайте это.

Рис. A.2. Диалог включения и отключения компонентов Windows

Установка bash

Теперь можно приступать к установке bash из командной строки! Старая школа, это точно. В меню Start (Пуск) введите в форму поиска «command prompt» («командная строка») и откройте окно командной строки. Затем просто введите bash, и вам будет предложено установить программное обеспечение bash, как показано на рис. A.3. Введите y, и начнется загрузка bash.

Загрузка, компиляция и установка займет определенное время, поэтому наберитесь терпения. Как только процесс завершится, вам будет предложено ввести имя пользователя Unix и пароль. Вы можете выбрать любое имя и пароль, какие пожелаете; они не обязательно должны совпадать с вашими именем пользователя и паролем в Windows.

Рис. A.3. Установка bash в командной строке системы Windows 10

Теперь в вашем распоряжении полноценная командная оболочка bash внутри системы Windows 10, как показано на рис. A.4. Открыв окно командной строки в следующий раз, вы сможете просто ввести команду bash, и оболочка bash будет готова к использованию.

Рис. A.4. Да, мы запустили оболочку bash внутри командной строки в Windows 10!

Командная оболочка bash от Microsoft в сравнении с Linux

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

Если вы серьезно относитесь к Linux, вам лучше подойдет вариант с установкой Linux в качестве второй операционной системы или запуск Linux в виртуальной машине (попробуйте решение виртуализации от компании VMware).

И тем не менее поблагодарим Microsoft за добавление bash в Windows 10. Это очень круто.

Приложение Б. Дополнительные сценарии

Мы не могли утаить от вас эти сокровища! Работая над вторым изданием книги, мы написали несколько дополнительных сценариев на всякий случай. В итоге они нам не понадобились, но нам не хотелось хранить их в секрете от наших читателей.

Первые два дополнительных сценария предназначены для системных администраторов, которым приходится управлять перемещением или обработкой большого количества файлов. Последний сценарий предназначен для пользователей Интернета, ищущих веб-службы, которые так и просят преобразовать их в сценарий командной оболочки. На этот раз мы использовали сайт, помогающий следить за фазами Луны!

№ 102. Массовое переименование файлов

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

Код

Простой сценарий в листинге Б.1 принимает два аргумента с текстом для поиска и замены и список файлов, которые требуется переименовать (может также включать шаблонные символы).

Листинг Б.1. Сценарий bulkrename

··#!/bin/bash

··# bulkrename — переименовывает указанные файлы, замещая текст в их именах.

··printHelp()

··{

····echo "Usage: $0 −f find −r replace FILES_TO_RENAME*"

····echo −e "\t-f The text to find in the filename"

····echo −e "\t-r The replacement text for the new filename"

····exit 1

··}

··while getopts "f: r: " opt

··do

····case "$opt" in

······r) replace="$OPTARG";;

······f) match="$OPTARG"··;;

······?) printHelp········;;

····esac

··done

··shift $(($OPTIND — 1))

··if [-z $replace] || [-z $match]

··then

····echo "You need to supply a string to find and a string to replace";

····printHelp

··fi

··for i in $@

··do