Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - [124]

Шрифт
Интервал

Не выключайте ничего в этом списке; вам нужно только установить флажок в пункте Windows Subsystem for Linux (Beta) (Подсистема Linux в Windows (Beta)) и затем щелкнуть на кнопке OK.

Ваша система 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

>····newname=$(echo $i |

sed "s/$match/$replace/")

>····mv $i $newname

>····&& echo "Renamed file $i to $newname"

>··done

Как это работает

Первой идет функция printHelp()

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

Затем сценарий проверяет наличие значений для дальнейшего использования. Если переменная replace

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

Убедившись в наличии значений в переменных match и replace, сценарий приступает к обработке остальных аргументов

, в которых должны передаваться имена файлов для переименования. Мы использовали sed


Рекомендуем почитать
Виртуальные  машины: несколько компьютеров в  одном

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.


Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.


Тонкости реестра Windows Vista. Трюки и эффекты

Реестр Windows является важной частью операционной системы, во многом определяющей ее работу. Изучив приведенный в этой книге материал, вы научитесь редактировать реестр Windows Vista по своему усмотрению, а также освоите многочисленные приемы оптимизации содержащихся в нем настроек операционной системы.


Отладка систем реального времени

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


Iptables Tutorial 1.1.19

Iptables Tutorial 1.1.19Автор: (C) Oskar AndreassonCopyright (C) 2001-2002 by Oskar AndreassonПеревод: (C) Андрей КиселевПоследнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.netfb2-документ отформатирован с использованием большого количества тегов и . Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)


Свободные программы и системы в школе

Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)