Первые шаги в освоении BASH. Книга bash


Основы BASH | Самоучитель LINUX

.

Цель  статьи — познакомить поближе  с bash, рассказать про синтаксис, основные приемы и фишки языка, для того чтобы даже обычный пользователь смог быстренько написать простой скрипт для выполнения ежедневной (-недельной, -месячной) рутинной работы или, скажем, «на коленке» наваять скриптик для бэкапа директории.

Введение

BASH — Bourne-Again SHell (что может переводится как «перерожденный шел», или «Снова шел Борна(создатель sh)»), самый популярный командный интерпретатор в юниксоподобных системах, в особенности в GNU/Linux. Ниже приведу ряд встроенных команд, которые мы будем использовать для создания своих скриптов.

break выход из цикла for, while или untilcontinue выполнение следующей итерации цикла for, while или untilecho вывод аргументов, разделенных пробелами, на стандартное устройство выводаexit выход из оболочкиexport отмечает аргументы как переменные для передачи в дочерние процессы в средеhash запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращенииkill посылает сигнал завершения процессуpwd выводит текущий рабочий каталогread читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.\return заставляет функцию оболочки выйти с указанным значениемshift перемещает позиционные параметры налевоtest вычисляет условное выражениеtimes выводит имя пользователя и системное время, использованное оболочкой и ее потомкамиtrap указывает команды, которые должны выполняться при получении оболочкой сигналаunset вызывает уничтожение переменных оболочкиwait ждет выхода из дочернего процесса и сообщает выходное состояние.

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

Что необходимо знать с самого начала

1. Любой bash-скрипт должен начинаться со строки:

#!/bin/bash

в этой строке после #! указывается путь к bash-интерпретатору, поэтому если он у вас установлен в другом месте(где, вы можете узнать набрав whereis bash) поменяйте её на ваш путь.

2. Коментарии начинаются с символа # (кроме первой строки).3. В bash переменные не имеют типа(о них речь пойдет ниже)

Переменные и параметры скрипта

Приведу как пример небольшой пример, который мы разберем:

#!/bin/bash #указываем где у нас хранится bash-интерпретатор parametr1=$1 #присваиваем переменной parametr1 значение первого параметра скрипта script_name=$0 #присваиваем переменной script_name значение имени скрипта echo "Вы запустили скрипт с именем $script_name и параметром $parametr1" # команда echo выводит определенную строку, обращение к переменным осуществляется через $имя_переменной. echo `Вы запустили скрипт с именем $script_name и параметром $parametr1` # здесь мы видим другие кавычки, разница в том, что в одинарных кавычках не происходит подстановки переменных. exit 0 #Выход с кодом 0 (удачное завершение работы скрипта)

Результат выполнения скрипта:

[email protected]:~$ ./test.sh qwerty

Вы запустили скрипт с именем ./test.sh и параметром qwertyВы запустили скрипт с именем $script_name и параметром $parametr1

После того как мы познакомились как использовать переменные и передавать скрипту параметры, время познакомиться с зарезервированными переменными:

$DIRSTACK — содержимое вершины стека каталогов$EDITOR — текстовый редактор по умолчанию$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя, в то время как…$UID — …содержит реальный идентификатор, который устанавливается только при логине.$FUNCNAME — имя текущей функции в скрипте.$GROUPS — массив групп к которым принадлежит текущий пользователь$HOME — домашний каталог пользователя$HOSTNAME — ваш hostname$HOSTTYPE — архитектура машины.$LC_CTYPE — внутренняя переменная, котороя определяет кодировку символов$OLDPWD — прежний рабочий каталог$OSTYPE — тип ОС$PATH — путь поиска программ$PPID — идентификатор родительского процесса$SECONDS — время работы скрипта(в сек.)$# — общее количество параметров переданных скрипту$* — все аргументы переданыне скрипту(выводятся в строку)[email protected] — тоже самое, что и предыдущий, но параметры выводятся в столбик$! — PID последнего запущенного в фоне процесса$$ — PID самого скрипта

Условия

Условные операторы, думаю, знакомы практически каждому, кто хоть раз пытался на чем-то писать программы. В bash условия пишутся след. образом (как обычно на примере):

#!/bin/bash source=$1 #в переменную source засовываем первый параметр скрипта dest=$2 #в переменную dest засовываем второй параметр скрипта if [[ "$source" -eq "$dest" ]] # в ковычках указываем имена переменных для сравнения. -eq - логическое сравнение обозначающие "равны" then # если они действительно равны, то echo "Применик $dest и источник $source один и тот же файл!" #выводим сообщение об ошибке, т.к. $source и $dest у нас равны exit 1 # выходим с ошибкой (1 - код ошибки) else # если же они не равны cp $source $dest # то выполняем команду cp: копируем источник в приемник echo "Удачное копирование!" fi #обозначаем окончание условия.

Результат выполнения скрипта:

[email protected]:~$ ./primer2.sh 1 1 Применик 1 и источник 1 один и тот же файл! [email protected]:~$ ./primer2.sh 1 2 Удачное копирование!

Таким образом оператогр условия имеют следующий вид:if [[ «что-то» <оператор логического сравнения «с чем-то»]]thenкакое-то действие, если сравнение выполнено успешноelseдействие если сравнение выполнено не успешноfiВ некоторых случаях оператор else может быть опущен.

Условия. Множественный выбор

Если необходимо сравнивать какоую-то одну переменную с большим количеством параметров, то целесообразней использовать оператор case.

#!/bin/bash echo "Выберите редатор для запуска:" echo "1 Запуск программы nano" echo "2 Запуск программы vi" echo "3 Запуск программы emacs" echo "4 Выход" read doing #здесь мы читаем в переменную $doing со стандартного ввода case $doing in 1) /usr/bin/nano # если $doing содержит 1, то запустить nano ;; 2) /usr/bin/vi # если $doing содержит 2, то запустить vi ;; 3) /usr/bin/emacs # если $doing содержит 3, то запустить emacs ;; 4) exit 0 ;; *) #если введено с клавиатуры то, что в case не описывается, выполнять следующее: echo "Введено неправильное действие" esac #окончание оператора case.

Результат работы:

[email protected]:~$ ./menu2.sh Выберите редатор для запуска: 1 Запуск программы nano 2 Запуск программы vi 3 Запуск программы emacs 4 Выход

После выбор цифры и нажатия Enter запуститься тот редактор, который вы выбрали(если конечно все пути указаны правильно, и у вас установлены эти редакторы 🙂 )Прведу список логических операторв, которые используются для конструкции if-then-else-fi:

-z # строка пуста-n # строка не пуста=, (==) # строки равны!= # строки неравны-eq # равно-ne # неравно-lt,(< ) # меньше-le,(<=) # меньше или равно-gt,(>) #больше-ge,(>=) #больше или равно! #отрицание логического выражения-a,(&&) #логическое «И»-o,(//) # логическое «ИЛИ»

С основами языка и условиями мы разобрались,

https://studylinux.ru/osnovy-bash.html2016-01-12T09:50:59+00:00adminC чего начать?ЛитератураОбзорыРуководстваСправочники командСтатьиbash,Linux,программирование,Программы,Руководства,скрипты,Справочник команд

  Цель  статьи - познакомить поближе  с bash, рассказать про синтаксис, основные приемы и фишки языка, для того чтобы даже обычный пользователь смог быстренько написать простой скрипт для выполнения ежедневной (-недельной, -месячной) рутинной работы или, скажем, 'на коленке' наваять скриптик для бэкапа директории. Введение BASH - Bourne-Again SHell (что может переводится как...

[email protected]Самоучитель LINUX

studylinux.ru

Книга Chris F.A. Johnson «Pro Bash Programming»

Ерунда этот ваш английский — там половина слов из C++.Программерская мудрость.

Поближе познакомиться с bash я собирался уже давно, все-таки использовать Линукс и не уметь пользоваться одним из основных его инструментов — странно (хотя это говорит о том, что Линукс стал совсем дружелюбным к пользователю). Сначала я начал читать перевод Advanced Bash-Scripting Guide, но все-таки хотелось найти что-то в более удобном формате для чтения по дороге на работу. Русскоязычных книг по bash мне так и не попались (не считая книг, где ему посвящены только отдельные главы), но зато наткнулся в электронном виде на книгу Chris F.A. Johnson «Pro Bash Programming. Scripting the GNU/Linux Shell». Чтением этой книги решил убить двух зайцев — и про (pro 🙂 ) bash получше узнать, и английский потренировать, благо в Pocketbook 902, на котором я читал эту книгу, есть словари, куда можно при случае заглянуть.

Сама книга оказалась довольно неплохой, правда, местами этой книге не хватает въедливости, как у той же Advanced Bash-Scripting Guide, про некоторые конструкции и команды хотелось бы почитать поподробнее, не заглядывая в документацию, но для начала Pro Bash Programming вполне сойдет. Ее структура — от простого к сложному, в приведенных примерах используются только те конструкции, которые уже были описаны раньше (использование неописанных конструкций раздражало в Advanced Bash-Scripting Guide, из-за чего он читался как справочник), а последние главы посвящены практическому применению того, что было изучено в первой половине книги. Приятно, что автор пишет, какая конструкция в какой версии bash появилась, а какие команды не входят в стандарт POSIX, чтобы можно было оценить требования к среде, где будет выполняться тот или иной скрипт.

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

Первая глава посвящена, разумеется, скрипту «Hello, World». Описывается, как можно создавать и запускать скрипты bash, рассказывается про некоторые стандартные программы Linux вроде type, mkdir, pwd и т.п. Кстати, приятной особенностью книги является то, что в конце каждой главы перечисляются термины, команды и инструменты, о которых рассказывается в этой главе. При желании потом можно сделать себе шпаргалку из команд. Правда, основной упор в книге сделан именно на команды bash, автор старался не злоупотреблять сторонними консольными программами (может быть и зря), которые обычно входят в дистрибутивы Линуксов. Хотя, разумеется, без некоторых команд вроде cat, grep и уже перечисленных выше не обошлось. Где возможно, автор пишет, какие операции можно делать и с помощью команд bash, и с помощью «сторонних» программ, перечисляя плюсы и минусы обоих случаев.

Вторая глава посвящена вводу, выводу и передаче информации. Здесь рассказывается про то, как скриптам и командам можно передавать параметры, как их обрабатывать, какие бывают стандартные переменные для работы с переданными параметрами (вроде $*, $$, [email protected] и $#). Здесь же рассказывается, как переданная скрипту строка разбивается на отдельные параметры, какие бывают перенаправления ввода/вывода (>, >>, <, |), что такое stdin, stdout и stderr, как к ним обращаться и перенаправлять.

Третья глава посвящена управляющим конструкциям — проверке условий и циклы. Здесь рассказывается про команду test и операции проверки условий […] и [[…]], операторы && , ||, if. case, while, until, for, break и continue, ну то есть обязательный набор любого уважающего себя языка программирования.

Две главы посвящены развертыванию и подстановке переменных. Это с одной стороны важная часть языка, и в то же время самая трудно запоминающаяся тема из-за особенностей синтаксиса, когда надо различать команды $(( … )), ${var%…},${var%%…}, ${var#…}, ${var?…} и еще кучу подобных. До этого я думал, что у Perl тяжелый синтаксис…

Завершают «теоретическую» часть книги главы про функции и массивы, после чего начинается вторая, практическая, половина книги, где описываются различные приемы использования bash. Начинается все с главы про строковые операции. Честно говоря, не ожидал, что некоторые простые в других языках операции вызывают такие трудности в bash.

Отдельная глава посвящена операциям с файлами. Здесь рассказывается, какие существуют способы чтения файлов построчно, какие существуют стандартные программы для работы с ними (вроде head, tail, grep, sed). Про grep и регулярные выражения толком ничего не сказано — им отведена всего одна страничка. Говорится, что есть такая утилита (язык) как awk для обработки текста, приводятся некоторые примеры, но толком про него тоже ничего не говорится. Еще одна глава посвящена способам отладки скриптов.

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

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

Завершается книга описанием стандартных переменных оболочки (shell variables).

В целом целом книга оказалась полезной, с нее вполне можно начать изучение bash, хотя у меня все-таки осталось желание почитать что-нибудь еще на эту тему. Читается книга легко, там нет каких-то пространных предложений в стиле Толстого на английском, поэтому даже мне, изучавшему английский язык по MSDN и тому подобной документации, особых проблем с пониманием не было, в словарь приходилось заглядывать не часто (в среднем — один раз на страницу). А сама книжка небольшая — чуть больше 250 страниц.

jenyay.net

Основы BASH. Часть 1 / Хабр

Безусловно, все те кто общается с ОС Linux хоть раз да имели дело(во всяком случае слышали точно) с командной оболочкой BASH. Но BASH не только командная оболочка, это еще и превосходный скриптовый язык программирования. Цель этой статьи — познакомить поближе юзеров с bash, рассказать про синтаксис, основные приемы и фишки языка, для того чтобы даже обычный пользователь смог быстренько написать простой скрипт для выполнения ежедневной(-недельной, -месячной) рутинной работы или, скажем, «на коленке» наваять скриптик для бэкапа директории.

Введение

BASH — Bourne-Again SHell (что может переводится как «перерожденный шел», или «Снова шел Борна(создатель sh)»), самый популярный командный интерпретатор в юниксоподобных системах, в особенности в GNU/Linux. Ниже приведу ряд встроенных команд, которые мы будем использовать для создания своих скриптов.

break выход из цикла for, while или until continue выполнение следующей итерации цикла for, while или until echo вывод аргументов, разделенных пробелами, на стандартное устройство вывода exit выход из оболочки export отмечает аргументы как переменные для передачи в дочерние процессы в среде hash запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращении kill посылает сигнал завершения процессу pwd выводит текущий рабочий каталог read читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.\ return заставляет функцию оболочки выйти с указанным значением shift перемещает позиционные параметры налево test вычисляет условное выражение times выводит имя пользователя и системное время, использованное оболочкой и ее потомками trap указывает команды, которые должны выполняться при получении оболочкой сигнала unset вызывает уничтожение переменных оболочки wait ждет выхода из дочернего процесса и сообщает выходное состояние. И конечно же кроме встроенных команд мы будем использовать целую кучу внешних, отдельных команд-программ, с которыми мы познакомимся уже в процессе

Что необходимо знать с самого начала

1. Любой bash-скрипт должен начинаться со строки:

#!/bin/bash в этой строке после #! указывается путь к bash-интерпретатору, поэтому если он у вас установлен в другом месте(где, вы можете узнать набрав whereis bash) поменяйте её на ваш путь. 2. Коментарии начинаются с символа # (кроме первой строки). 3. В bash переменные не имеют типа(о них речь пойдет ниже)

Переменные и параметры скрипта

Приведу как пример небольшой пример, который мы разберем:

#!/bin/bash #указываем где у нас хранится bash-интерпретатор parametr1=$1 #присваиваем переменной parametr1 значение первого параметра скрипта script_name=$0 #присваиваем переменной script_name значение имени скрипта echo "Вы запустили скрипт с именем $script_name и параметром $parametr1" # команда echo выводит определенную строку, обращение к переменным осуществляется через $имя_переменной. echo 'Вы запустили скрипт с именем $script_name и параметром $parametr1' # здесь мы видим другие кавычки, разница в том, что в одинарных кавычках не происходит подстановки переменных. exit 0 #Выход с кодом 0 (удачное завершение работы скрипта)

Результат выполнения скрипта:

[email protected]:~$ ./test.sh qwerty Вы запустили скрипт с именем ./test.sh и параметром qwerty Вы запустили скрипт с именем $script_name и параметром $parametr1

После того как мы познакомились как использовать переменные и передавать скрипту параметры, время познакомиться с зарезервированными переменными:

$DIRSTACK - содержимое вершины стека каталогов $EDITOR - текстовый редактор по умолчанию $EUID - Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя, в то время как... $UID - ...содержит реальный идентификатор, который устанавливается только при логине. $FUNCNAME - имя текущей функции в скрипте. $GROUPS - массив групп к которым принадлежит текущий пользователь $HOME - домашний каталог пользователя $HOSTNAME - ваш hostname $HOSTTYPE - архитектура машины. $LC_CTYPE - внутренняя переменная, котороя определяет кодировку символов $OLDPWD - прежний рабочий каталог $OSTYPE - тип ОС $PATH - путь поиска программ $PPID - идентификатор родительского процесса $SECONDS - время работы скрипта(в сек.) $# - общее количество параметров переданных скрипту $* - все аргументы переданыне скрипту(выводятся в строку) [email protected] - тоже самое, что и предыдущий, но параметры выводятся в столбик $! - PID последнего запущенного в фоне процесса $$ - PID самого скрипта

Условия

Условные операторы, думаю, знакомы практически каждому, кто хоть раз пытался на чем-то писать программы. В bash условия пишутся след. образом (как обычно на примере): #!/bin/bash source=$1 #в переменную source засовываем первый параметр скрипта dest=$2 #в переменную dest засовываем второй параметр скрипта

if [[ "$source" -eq "$dest" ]] # в ковычках указываем имена переменных для сравнения. -eq - логическое сравнение обозначающие "равны" then # если они действительно равны, то echo "Применик $dest и источник $source один и тот же файл!" #выводим сообщение об ошибке, т.к. $source и $dest у нас равны exit 1 # выходим с ошибкой (1 - код ошибки) else # если же они не равны cp $source $dest # то выполняем команду cp: копируем источник в приемник echo "Удачное копирование!" fi #обозначаем окончание условия. Результат выполнения скрипта:[email protected]:~$ ./primer2.sh 1 1 Применик 1 и источник 1 один и тот же файл! [email protected]:~$ ./primer2.sh 1 2 Удачное копирование! Структура if-then-else используется следующим образом: if <команда или набор команд возвращающих код возврата(0 или 1)> then <если выражение после if истино, то выполняется этот блок> else <если выражение после if ложно, тот этот> В качестве команд возвращающих код возврата могут выступать структуры [[ , [ , test, (( )) или любая другая(или несколько) linux-команда. test - используется для логического сравнения. после выражения, неоьбходима закрывающая скобка "]" [ - синоним команды test [[ - расширенная версия "[" (начиная с версии 2.02)(как в примере), внутри которой могут быть использованы || (или), & (и). Долна иметь закрывающуб скобку "]]" (( )) - математическое сравнение. для построения многоярусных условий вида:if ... then .... else if .... then.... else .... для краткости и читаемости кода, можно использовать структуру:if .. then ... elif ... then ... elif ...

Условия. Множественный выбор

Если необходимо сравнивать какоую-то одну переменную с большим количеством параметров, то целесообразней использовать оператор case.#!/bin/bash echo "Выберите редатор для запуска:" echo "1 Запуск программы nano" echo "2 Запуск программы vi" echo "3 Запуск программы emacs" echo "4 Выход" read doing #здесь мы читаем в переменную $doing со стандартного ввода

case $doing in 1) /usr/bin/nano # если $doing содержит 1, то запустить nano ;; 2) /usr/bin/vi # если $doing содержит 2, то запустить vi ;; 3) /usr/bin/emacs # если $doing содержит 3, то запустить emacs ;; 4) exit 0 ;; *) #если введено с клавиатуры то, что в case не описывается, выполнять следующее: echo "Введено неправильное действие"

esac #окончание оператора case.

Результат работы:[email protected]:~$ ./menu2.sh Выберите редатор для запуска: 1 Запуск программы nano 2 Запуск программы vi 3 Запуск программы emacs 4 Выход После выбор цифры и нажатия Enter запуститься тот редактор, который вы выбрали(если конечно все пути указаны правильно, и у вас установлены эти редакторы :) ) Прведу список логических операторв, которые используются для конструкции if-then-else-fi:-z # строка пуста -n # строка не пуста =, (==) # строки равны != # строки неравны -eq # равно -ne # неравно -lt,(< ) # меньше -le,(<=) # меньше или равно -gt,(>) #больше -ge,(>=) #больше или равно ! #отрицание логического выражения -a,(&&) #логическое «И» -o,(||) # логическое «ИЛИ» С основами языка и условиями мы разобрались, чтобы не перегружать статью, разобью её на несколько частей(допустим на 3). Во второй части разберем операторы цикла и выполнение математических операций.

UPD: Исправил некоторые ошибкиUPD: Обновил часть про условия if-then-else

Статьи на unix-admin.su

habr.com

Первые шаги в освоении BASH

Рано или поздно вам как разработчикам придется осваивать администрирование linux-серверов. Это довольно непростая задача. Вам придется писать скрипты для интрепритатора BASH и применять массу команд. Если вы всю жизнь работали в операционной системе windows, то вам придётся не легко. Управление в операционках виндовс осуществляется через окошки, а в операционках линукс через командную строку. Если сравнивать виндовс и линкс с точки зрения надёжности, то выигрывает с большим отрывом linux. В linux есть командный язык shell (в переводе - раковина, скорлупа). Shell фактически язык программирования очень высокого уровня. Вам придется писать скрипты на shell для BASH.

Что же такое баш? Bash — это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и директорий (клавиша tab при наборе), подстановку вывода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Именно так написано в википедии. Вам не нужно всё знать! Необходимо знать базовый минимум для администрирования системы.

Базовый минимум BASH

  1. команды sh для управления операционной системой
  2. поиск файлов
  3. установка атрибутов файлов
  4. вызов мануалов для определённой команды
  5. задания для планировщика
  6. установка программ

Хочу предложить вам свой путь для изучения BASH. Я прошёл его сам и не жалею о потраченном времени. Тут подробно описаны первые шаги по освоению bash

  1. серия видеоуроков: SHELL BASH Основы работы в командном процессоре
  2. онлайн курс: Bash: Основы командной строки
  3. статьи с моей категории BASH
  4. любая книга для начинающих программистов BASH. Советую прочитать Advanced-Bash-Scripting-Guide в pdf на русском языке

Схема обучения BASH

Эта схема разбита по шагам. Если вы сразу броситесь писать скрипты, то у вас может ничего не выйти. Не бросайтесь на сложное задание! Читать умные книги сразу не советую. Для начала посмотрите на видео. Пройдите онлайн курс: Bash: Основы командной строки. Только потом читайте книги. Так хоть представление будет о среде linux. Ниже основа без которой сложно будет работать.

  1. Перемещение по файловой системе Linux cd , mc (Midnight Commander)
  2. Вывод папок и файлов: ls
  3. Поиск текста в файлах: grep
  4. Создание текстовых файлов: touch, vim
  5. Смена прав у файлов: chmod
  6. Чтение и редактирование файлов в редакторах: Vim, nano
Практические задания BASH

После того как ваш багаж знаний пополнится, советую приступить к написанию скриптов. Практика в освоении языков очень много значит. Постарайтесь написать несколько скриптов. У меня получилось выполнить 5 скриптов и они успешно работают. Выберите любой пункт из списка скриптов и постарайтесь написать скрипт. Этот эксперимент закрепит ваши знания.

  1. Скрипт для вывода списка файлов и запись данных в файл.
  2. Простейшее логирование
  3. Скрипт для архивации файлов
  4. Скрипт для последовательного запуска sh – скриптов
  5. Бекап базы данных
  6. Скрипт для создания шаблона сайта
  7. Создание alias
  8. Скрипты для CRON с установкой задания

Скажу напоследок небольшое напутствие. Какие бы языки вы не изучали без BASH не обойтись. Программирование на среде windows хорошо для программистов 1C. Если вы веб разработчик, то изучение Linux обязательно. Сила BASH скриптов в хорошей скорости. Вы можете написать короткий скрипт sh в одну строку или написать большой PHP скрипт для одной и той же задачи. Скрипт PHP для обработки больших данных будет долго работать и может зависнуть, а sh скрипт для подобных задач быстро отработает. Как бы я не хвалил BASH у него есть недостатки:

  • Сложно выполнять арифметические операции с числами
  • Немного запутанный синтаксис. К нему непросто привыкнуть
  • Нет синтаксического сахара
  • Нет многомерных ассоциативных массивов. Можно собрать только простой индексированный массив.
  • Нет ООП

Я до сих по не знаю как относиться к этому языку. Он похож на набор команд для консоли и в нем есть функции для работы с данными. Есть условия if-else как у любого другого языка. Плюсов у языка shell много:

  • Установка любимых серверов при помощи команд sh. Например Nginx, Apache
  • sh - язык высокого уровня. Минимум кода даёт максимум результата
  • Синхронизация между папками
  • Быстрое массовое удаление файлов и папок
  • Удобная работа с ключами команд. Например команда ls -1 и ls -al даст разный результат.
  • Настройка окружения для работы вашего веб приложения. Что может быть важнее ))

просмотры: 3393, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-02-13 09:26:51

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

trainingweb.ru

Bash. Карманный справочник. - Unix, Linux FreeBSD и пр. - Учебники

Bash. Карманный справочник.

Автор - Арнольд Роббинс

Чтобы научиться искусно взаимодействовать с Мае OS Х, Liпux и прочими Uпiх-подобными операционными системами, нужно овладеть навыками работы с оболочкой Bash. И этот краткий справочник, написанный Арнольдом Роббинсом, позволит вам иметь под рукой самые основные сведения о Bash. В нем вы сможете быстро найти ответы на насущные вопросы, которые зачастую возникают при написании сценариев оболочки, включая следующие: какие символы следует заключать в кавычки, как выполнять подстановку переменных и правильно пользоваться массивами? Настоящее издание, обновленное по версии Bash 4.4, в удобной и краткой форме дает ответы на эти и многие другие вопросы. В этом карманном справочнике вкратце описывается оболочка Bash и, в частности, ее версия 4.4 для GNU/Linux и Мас OS Х. Оболочка Bash имеется также для Solaris и различных систем BSD. Ее можно скомпилировать практически для любой другой системы Unix и даже для OpenVMS! В этом справочнике рассматриваются следующие вопросы: История развития оболочки; Краткий обзор функциональных средств; Вызов оболочки; Код завершения команды; Синтаксис; Функции; Переменные; Арифметические выражения; Предыстория выполнения команд; Автозавершение вводимых команд; Управление заданиями; Параметры оболочки; Выполнение команд; Сопроцессы; Ограниченные оболочки; Встроенные команды; Дополнительные источники информации.

Издательство – Диалектика

Год издания – 2017

Формат книги - PDF

Размер - 49,3 Мб

СКАЧАТЬ с depositfiles.com

Или

СКАЧАТЬ с turbobit.net

Или

СКАЧАТЬ с hitfile.net

Любители печатных изданий могут заказать бумажный экземпляр этой же книги здесь:

it-ebooks.ru

Издана книга «Bash. Карманный справочник системного администратора», Арнольд Роббинс, 2-е издание, бумага офсетная-белая, мягкий переплет, 152 стр., ISBN 978-5-9909445-4-1, «ДИАЛЕКТИКА», 2017

Bash. Карманный справочник системного администратораАрнольд Роббинс 2-е издание
Издана книга «Bash. Карманный справочник системного администратора», Арнольд Роббинс, 2-е издание, бумага офсетная-белая, мягкий переплет, 152 стр., ISBN 978-5-9909445-4-1, «ДИАЛЕКТИКА», 2017 - заказать-купить книгу «Bash. Карманный справочник системного администратора» в интернет-магазине ComBook.ru

Чтобы научиться искусно взаимодействовать с Mac OS X, Linux и прочими Unix-подобными операционными системами, нужно овладеть навыками работы с оболочкой Bash. И этот краткий справочник - позволит вам иметь под рукой самые основные сведения о Bash

В книге «Bash. Карманный справочник системного администратора» Вы сможете быстро найти ответы на насущные вопросы, которые зачастую возникают при написании сценариев оболочки, включая следующие: какие символы следует заключать в кавычки, как выполнять подстановку переменных и правильно пользоваться массивами?

Настоящее издание, обновленное по версии Bash 4.4, в удобной и краткой форме дает ответы на эти и многие другие вопросы. Основные темы книги «Bash. Карманный справочник системного администратора»:

- Вызов командной оболочки- Синтаксис языка оболочки- Функции и переменные- Предыстория команд- Автозавершение вводимых команд- Управление заданиями- Выполнение команд- Сопроцессы- Ограниченные оболочки- Встроенные команды

Оригинал книги: «Bash Pocket Reference. Help for Power Users and Sys Admins», Arnold Robbins, 2nd Edition, 156 pages, ISBN 9781491941591, February 2016

(книгу можно заказать-купить в Библио-Глобус)(заказать-купить книгу «Bash. Карманный справочник системного администратора» в интернет-магазине biblio-globus.ru)

(книгу можно заказать-купить в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Bash. Карманный справочник системного администратора» в интернет-магазине ComBook.ru)

(книгу можно заказать-купить в интернет-мегамаркете ОЗОН)(заказать-купить книгу «Bash. Карманный справочник системного администратора» в интернет-магазине ozon.ru)

(книгу можно заказать-купить в DiaMail Украина)(заказать-купить книгу «Bash. Карманный справочник системного администратора» в интернет-магазине diamail.com.ua)

На русском языке книга вышла в августе 2017 года в издательстве «ДИАЛЕКТИКА» и издана ограниченным тиражом______________________________________________Об АВТОРЕ КНИГИ «Bash. Карманный справочник системного администратора»______________________________________________Арнольд Роббинс, профессиональный программист и автор технической литературы, работающий с системами Unix с 1980 года. Кроме того, он является одним из авторов второго издания книги Classic Shell Scripting, а также автором четвертого издания книги Effective awk Programming и ряда других книг, вышедших в издательстве O’Reilly. В настоящее время Арнольд занимается сопровождением версии GNU языка Awk (gawk) и документации на него

Практика системного и сетевогоадминистрирования Томас Лимончелли Кристина Хоган Страта Р. Чейлап 3-е издание
В продаже уникальная книга «Практика системного и сетевого администрирования», Томас Лимончелли, Кристина Хоган, Страта Р. Чейлап, 3-е издание, бумага офсетная-белая, твердый переплет, 1104 стр., ISBN 978-5-6040043-1-9, «ДИАЛЕКТИКА», 2018 - заказать-купить книгу «Практика системного и сетевого администрирования» в интернет-магазине ozon.ru

Третье издание легендарной книги «Практика системного и сетевого администрирования», дополненное 28 новыми главами, содержит огромное количество новой информации! Авторы учли тысячи уточнений и замечаний, полученных от читателей, а также попытались описать новую стратегию DevOps

В новом издании книги «Практика системного и сетевого администрирования» изложены важные сведения, которые раньше можно было получить только непосредственно от наставника, независимо от того, какую операционную систему вы используете — Linux, Unix или Windows. Это замечательно ясная, часто забавная и очень обширная информация будет полезной как новичкам, так и опытным специалистам

В книге «Практика системного и сетевого администрирования» показано, как максимизировать эффективность работы администратора, обеспечив простоту, ясность, общность, автоматизацию и взаимодействие

В книге рассмотрены современные проблемы администрирования включая технологию BYOD и последние парадигмы безопасности. Книга написана всемирно известными IT-администраторами, в частности лауреатами легендарной премии SAGE Outstanding Achievement Award - Кристиной Хоган и Томасом Лимончелли Книга «Практика системного и сетевого администрирования» учит системных администраторов принимать оптимальные решения. Данное издание представляет первый из двух томов: в втором томе, который ожидается вскоре, будут рассмотрены облачное администрирование и методология DevOps

Оригинал книги: «The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT», Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup, 3rd Edition, 1232 pages, ISBN 9780321919168, November 2016

(книгу можно заказать-купить в Библио-Глобус)(заказать-купить книгу «Практика системного и сетевого администрирования» в интернет-магазине biblio-globus.ru)

(книга есть на складе в КОМБУКе - самая низкая цена в России)(заказать-купить книгу «Практика системного и сетевого администрирования» в интернет-магазине ComBook.ru)

(книгу можно заказать-купить в интернет-мегамаркете ОЗОН)(заказать-купить книгу «Практика системного и сетевого администрирования» в интернет-магазине ozon.ru)

(книгу можно заказать-купить в DiaMail Украина)(заказать-купить книгу «Практика системного и сетевого администрирования» в интернет-магазине diamail.com.ua)

Книга обсуждается в отдельном сообщении моего блога

Будет издана культовая книга «Unix и Linux. Руководство системного администратора», 5-е издание, Эви Немет, Гарт Снайдер, Трент Хейн, Бэн Уэйли, Dan Mackin, бумага офсетная-белая, твердый переплет, ~1500 стр., ISBN , «ДИАЛЕКТИКА», 2018

Пятое издание всемирно известной книги «Unix и Linux. Руководство системного администратора» признанных авторитетов в области системного администрирования систем UNIX и Linux содержит точную и полную информацию о практически всех аспектах, включая управление памятью, проектирование и управление сетями, электронную почту, веб-хостинг, создание сценариев, управление конфигурациями программного обеспечения, анализ производительности, взаимодействие с системой Windows, виртуализацию, DNS, безопасность, управление провайдерами IT-услуг и многое другое. Ясно и просто излагая важные факты, авторы книги сопровождают их реальными примерами

Являясь обширным справочником, 5-е издание книги «Unix и Linux. Руководство системного администратора» отличается от предыдущих изданий тем, что в нем рассмотрены современные версии систем UNIX и Linux — Solaris, HP-UX, AIX, Ubuntu Linux, openSUSE и Red Hat Enterprise Linux. Особое внимание авторы уделили администрированию сетей под управлением систем UNIX и Linux

Книга «Unix и Linux. Руководство системного администратора» будет чрезвычайно полезной всем системным администраторам, а также пользователям систем UNIX и Linux, студентам, преподавателям и специалистам по сетевым технологиям

Оригинал книги: «Unix and Linux System Administration Handbook» by Evi Nemeth, Garth Snyder, Trent H. Hein and Ben Whaley, Dan Mackin, 5th Edition, 1500 pages, ISBN 9780134277554, August 21, 2017

Книга обсуждается в отдельном сообщении моего блога

Программирование командных оболочек в Unix, Linux и OS XСтефан Кочан Патрик Вуд 4-е издание
В продаже классическая книга «Программирование командных оболочек в Unix, Linux и OS X», Стефан Кочан, Патрик Вуд, 4-е издание, бумага офсетная-белая, твердый переплет, 432 стр., ISBN 978-5-9909445-3-4, «ДИАЛЕКТИКА», 2017 - заказать-купить книгу «Программирование командных оболочек в Unix, Linux и OS X» в интернет-магазине ComBook.ru

Книга «Программирование командных оболочек в Unix, Linux и OS X» - это полностью обновленное издание классического пособия по программированию командных оболочек в системах Unix Следуя методике изложения материала, принятой в первоначальном издании, авторы книги уделили основное внимание стандартной оболочке POSIX, поясняя особенности разработки полезных программ в этой удобной среде, чтобы извлечь максимальную пользу из потенциала, заложенного в основу Unix и подобных ей операционных систем

После краткого обзора команд Unix в книге «Программирование командных оболочек в Unix, Linux и OS X» подробно рассматривается поэтапный процесс создания программ или сценариев оболочки, их отладки и особенностей их работы в среде оболочки

Все основные средства оболочки поясняются на многих практических примерах, что упрощает написание сценариев оболочки для конкретного применения. В книге описываются также основные средства оболочек Korn и Bash

Книга «Программирование командных оболочек в Unix, Linux и OS X» позволяет научиться:

- Выгодно пользоваться многими утилитами, предоставляемыми системой Unix- Писать эффективные сценарии оболочки- Употреблять встроенные в оболочку конструкции для выбора вариантов и организации циклов- Применять эффективные механизмы заключения в кавычки- Извлекать максимальную пользу из встроенной в оболочку предыстории команд и средств их редактирования- Пользоваться регулярными выражениями в командах Unix- Выгодно пользоваться специальными средствами оболочек Korn и Bash- Выявлять основные отличия версий языка оболочки- Регулировать порядок реакции системы Unix на действия пользователя- Настраивать среду оболочки- Пользоваться функциями- Отлаживать программы и сценарии оболочки

«Самая лучшая и действительно классическая книга для обучения программированию командных оболочек» (Dr. Dobb's Journal)

Оригинал книги: «Shell Programming in Unix, Linux and OS X: The Fourth Edition of Unix Shell Programming», Stephen G. Kochan, Patrick Wood, 4 th Edition, 456 pages, ISBN 9780134496009, September 2016

(книгу можно заказать-купить в Библио-Глобус)(заказать-купить книгу «Программирование командных оболочек в Unix, Linux и OS X» в интернет-магазине biblio-globus.ru)

(книгу можно заказать-купить в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Программирование командных оболочек в Unix, Linux и OS X» в интернет-магазине ComBook.ru)

(книгу можно заказать-купить в интернет-мегамаркете ОЗОН)(заказать-купить книгу в интернет-магазине ozon.ru)

(книгу можно заказать-купить в DiaMail Украина)(заказать-купить книгу «Программирование командных оболочек в Unix, Linux и OS X» в интернет-магазине diamail.com.ua)

Книга обсуждается в отдельном сообщении моего блога___________________________________________________РЕКОМЕНДУЮ ОБРАТИТЬ ВНИМАНИЕ на КНИГИ___________________________________________________

Unix и LinuxРуководство системного администратора

Немет/Хейн/Снайдер/Уэйли4-е издание

В продаже культовая книга «Unix и Linux. Руководство системного администратора», 4-е издание, Эви Немет, Трент Хейн, Гарт Снайдер, Бэн Уэйли, бумага офсетная-белая, твердый переплет, 1312 стр., ISBN 978-5-8459-1740-9, «ВИЛЬЯМС», 2012 - заказать-купить книгу в интернет-магазине ComBook.ru

Четвертое издание всемирно известной книги «Unix и Linux. Руководство системного администратора» признанных авторитетов в области системного администрирования систем UNIX и Linux содержит точную и полную информацию о практически всех аспектах, включая управление памятью, проектирование и управление сетями, электронную почту, веб-хостинг, создание сценариев, управление конфигурациями программного обеспечения, анализ производительности, взаимодействие с системой Windows, виртуализацию, DNS, безопасность, управление провайдерами IT-услуг и многое другое

Ясно и просто излагая важные факты, авторы книги сопровождают их реальными примерами

Являясь обширным справочником, 4-е издание книги «Unix и Linux. Руководство системного администратора» отличается от предыдущих изданий тем, что в нем рассмотрены современные версии систем UNIX и Linux — Solaris, HP-UX, AIX, Ubuntu Linux, openSUSE и Red Hat Enterprise Linux. Особое внимание авторы уделили администрированию сетей под управлением систем UNIX и Linux

Книга «Unix и Linux. Руководство системного администратора» будет чрезвычайно полезной всем системным администраторам, а также пользователям систем UNIX и Linux, студентам, преподавателям и специалистам по сетевым технологиям

Тим О’Рейли
«Как автор, редактор и издатель, я никогда не придавал большого значения конкуренции — за исключением нескольких случаев. Это один из таких случаев. «Unix и Linux. Руководство системного администратора» — это одна из немногих книг, на которые мы равняемся» — Тим О’Рейли (Tim O’Reilly, на фото), основатель издательства O’Reilly Media (из предисловия к этой книге)

Данное издание, появившееся в год, когда исполняется 20 лет со дня появления мирового бестселлера по системному администрированию UNIX, стало еще лучше благодаря описанию распространенных вариантов системы Linux: Ubuntu, openSUSE и RHEL

Оригинал книги: «Unix and Linux System Administration Handbook» by Evi Nemeth, Garth Snyder, Trent H. Hein and Ben Whaley, 4th Edition, 1344 pages, ISBN 978-0-131-48005-6, 2011

ЗДЕСЬ - читайте ОБ АВТОРАХ книгиЗДЕСЬ - читайте ВВЕДЕНИЕ книгиЗДЕСЬ - читайте СОДЕРЖАНИЕ книги «Unix и Linux. Руководство системного администратора»ЗДЕСЬ - читайте 29 главу из книги «Анализ производительности»

(книгу можно заказать-купить в Библио-Глобус)(заказать-купить книгу «Unix и Linux. Руководство системного администратора» в интернет-магазине biblio-globus.ru)

(книгу можно заказать-купить в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Unix и Linux. Руководство системного администратора» в интернет-магазине ComBook.ru)

(книгу можно заказать-купить в ОЗОНе)(заказать-купить книгу «Unix и Linux. Руководство системного администратора» в интернет-магазине ozon.ru)

(книгу можно заказать-купить в DiaMail Украина)(заказать-купить книгу по Unix и Linux в интернет-магазине diamail.com.ua)

Читайте отдельное сообщение в моем блоге об этой книге___________________________________________________

LinuxКарманныйсправочник Скотт Граннеман2-е издание
В продаже книга «Linux. Карманный справочник», Скотт Граннеман, 2-е издание, 464 стр., ISBN 978-5-8459-2101-7, «ВИЛЬЯМС», 2016 - заказать-купить книгу «Linux. Карманный справочник» в интернет-магазине ComBook.ru

Книга «Linux. Карманный справочник» (2-е издание) представляет собой краткое пособие по основным командам операционной системы Linux. Читатель найдет в ней описание большинства команд, необходимых ему в повседневной работе. В первых главах представлены самые элементарные сведения о работе с системой

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

Материал книги «Linux. Карманный справочник» также напомнит опытным пользователям команды и опции, которые они успели забыть или которым они по каким-то причинам ранее не уделяли внимания

Книга Скотта Граннемана «Linux. Карманный справочник» представляет собой краткое пособие по основным командам операционной системы Linux

Оригинал книги: «Linux Phrasebook» by Scott Granneman, 2nd Edition, 512 pages, ISBN 978-0-3218-3388-4, December 2015

(книгу можно заказать в Библио-Глобус)(заказать-купить книгу «Современный C++» в интернет-магазине biblio-globus.ru)

(книга есть на складе в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Linux. Карманный справочник» в интернет-магазине ComBook.ru)

(книгу можно заказать в Ozon.ru)(заказать-купить книгу «Linux. Карманный справочник» в онлайн-мегамаркете Ozon.ru)

(книга есть в DiaMail Украина)(заказать-купить книгу «Linux. Карманный справочник» в интернет-магазине diamail.com.ua)

Читайте новое сообщение в моем блоге об этой книге___________________________________________________

Ядро Linuxописание процессаразработкиРоберт Лав
В продаже книга «Ядро Linux: описание процесса разработки», 3-е издание, Роберт Лав, бумага офсетная-белая, твердый переплет, 496 стр., ISBN 978-5-8459-1779-9, «ВИЛЬЯМС», 2013 - заказать-купить книгу «Ядро Linux» в интернет-магазине ozon.ru

В книге «Ядро Linux: описание процесса разработки» описаны основные принципы проектирования и детали реализации ядра Linux 2.6.xx kernel. Материал в книге представлен в форме, удобной как для тех, кто занимается разработкой кода ядра, так и для программистов, которые хотят лучше понять особенности работы операционных систем и соответственно разрабатывать более эффективные прикладные программы. В книге детально рассмотрены основные подсистемы и функции ядра Linux, особенности их построения, реализации и соответствующие программные интерфейсы. При этом ядро Linux рассматривается под разными углами: теоретическим и прикладным, что может привлечь читателей с различными интересами и запросами

Оригинал книги: «Linux Kernel Development» by Robert Love, 3rd Edition, 440 pages, 2011

ЗДЕСЬ - читайте ОБ АВТОРЕЗДЕСЬ - читайте ВВЕДЕНИЕ книгиЗДЕСЬ - читайте СОДЕРЖАНИЕ книгиЗДЕСЬ - читайте 2 главу «Начальные сведения о ядре Linux» из книги

(книгу можно заказать-купить в Библио-Глобус)(заказать-купить книгу «Ядро Linux: описание процесса разработки» в интернет-магазине biblio-globus.ru)

(книга есть на складе в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Ядро Linux» в интернет-магазине ComBook.ru)

(книга есть в ОЗОНе)(заказать-купить книгу «Ядро Linux» в интернет-магазине ozon.ru)

(книга есть в DiaMail Украина)(заказать-купить книгу «Ядро Linux» в интернет-магазине diamail.com.ua)

Читайте отдельное сообщение в моем блоге об этой книге___________________________________________________

Искусствопрограммированиядля UnixЭрик C. Реймонд
В продаже книга «Искусство программирования для Unix», Эрик C. Реймонд, бумага офсетная-белая, твердый переплет, 544 стр., ISBN 978-5-8459-2064-5, «ВИЛЬЯМС», 2016 - заказать-купить книгу «Искусство программирования для Unix» в онлайн-мегамаркете Ozon.ru

В книге «Искусство программирования для Unix» описывается хороший стиль Unix-программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор книги - Эрик C. Реймонд, анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества

Вместе с тем описанные в книге «Искусство программирования для Unix» модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки

В книге «Искусство программирования для Unix» объясняются наилучшие практические приемы проектирования и разработки программ в Unix, а отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации

Оригинал книги: «Art of UNIX Programming» by Eric S. Raymond, 560 pages, ISBN 0131429019, 2004

(книга есть на складе в КОМБУКе - самая низкая цена в России!)(заказать-купить книгу «Искусство программирования для Unix» в интернет-магазине ComBook.ru)

(книгу можно заказать в Ozon.ru)(заказать-купить книгу «Искусство программирования для Unix» в онлайн-мегамаркете Ozon.ru)

(книга есть в DiaMail Украина)(заказать-купить книгу «Искусство программирования для Unix» в интернет-магазине diamail.com.ua)

Читайте отдельное сообщение в моем блоге об этой книге___________________________________________________СЛЕДИТЕ ЗА ИЗМЕНЕНИЯМИ В ЭТОМ СООБЩЕНИИ - последнее обновление - 4 июня 2018 года___________________________________________________

Виктор Штонда, издательViktor Shtonda, publisher
ВОПРОС - какие еще книги этой тематики Вы можете предложить для оперативного издания на русском языке ?

P.S. Только Ваша активная позиция в столь непростое время будет способствовать появлению новых и нужных Вам книг. А также, способствовать повышению качества книг, издаваемых издательской группой «ДИАЛЕКТИКА-ВИЛЬЯМС» ___________________________________________________Ваши комментарии перед публикацией я просматриваю, поэтому я оставляю за собой право публиковать или нет комментарии с подписью Анонимный

shtonda.blogspot.com

Книга Chris F.A. Johnson «Pro Bash Programming»

Ерунда этот ваш английский – там половина слов из C++. Программерская мудрость.

Поближе познакомиться с bash я собирался уже давно, все-таки использовать Линукс и не уметь пользоваться одним из основных его инструментов – странно (хотя это говорит о том, что Линукс стал совсем дружелюбным к пользователю). Сначала я начал читать перевод Advanced Bash-Scripting Guide, но все-таки хотелось найти что-то в более удобном формате для чтения по дороге на работу. Русскоязычных книг по bash мне так и не попались (не считая книг, где ему посвящены только отдельные главы), но зато наткнулся в электронном виде на книгу Chris F.A. Johnson «Pro Bash Programming. Scripting the GNU/Linux Shell». Чтением этой книги решил убить двух зайцев – и про (pro ) bash получше узнать, и английский потренировать, благо в Pocketbook 902, на котором я читал эту книгу, есть словари, куда можно при случае заглянуть.

Сама книга оказалась довольно неплохой, правда, местами этой книге не хватает въедливости, как у той же Advanced Bash-Scripting Guide, про некоторые конструкции и команды хотелось бы почитать поподробнее, не заглядывая в документацию, но для начала Pro Bash Programming вполне сойдет. Ее структура – от простого к сложному, в приведенных примерах используются только те конструкции, которые уже были описаны раньше (использование неописанных конструкций раздражало в Advanced Bash-Scripting Guide, из-за чего он читался как справочник), а последние главы посвящены практическому применению того, что было изучено в первой половине книги. Приятно, что автор пишет, какая конструкция в какой версии bash появилась, а какие команды не входят в стандарт POSIX, чтобы можно было оценить требования к среде, где будет выполняться тот или иной скрипт.

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

Первая глава посвящена, разумеется, скрипту «Hello, World». Описывается, как можно создавать и запускать скрипты bash, рассказывается про некоторые стандартные программы Linux вроде type, mkdir, pwd и т.п. Кстати, приятной особенностью книги является то, что в конце каждой главы перечисляются термины, команды и инструменты, о которых рассказывается в этой главе. При желании потом можно сделать себе шпаргалку из команд. Правда, основной упор в книге сделан именно на команды bash, автор старался не злоупотреблять сторонними консольными программами (может быть и зря), которые обычно входят в дистрибутивы Линуксов. Хотя, разумеется, без некоторых команд вроде cat, grep и уже перечисленных выше не обошлось. Где возможно, автор пишет, какие операции можно делать и с помощью команд bash, и с помощью «сторонних» программ, перечисляя плюсы и минусы обоих случаев.

Вторая глава посвящена вводу, выводу и передаче информации. Здесь рассказывается про то, как скриптам и командам можно передавать параметры, как их обрабатывать, какие бывают стандартные переменные для работы с переданными параметрами (вроде $*, $$, [email protected] и $#). Здесь же рассказывается, как переданная скрипту строка разбивается на отдельные параметры, какие бывают перенаправления ввода/вывода (>, >>, <, |), что такое stdin, stdout и stderr, как к ним обращаться и перенаправлять.

Третья глава посвящена управляющим конструкциям – проверке условий и циклы. Здесь рассказывается про команду test и операции проверки условий [...] и [[...]], операторы && , ||, if. case, while, until, for, break и continue, ну то есть обязательный набор любого уважающего себя языка программирования.

Две главы посвящены развертыванию и подстановке переменных. Это с одной стороны важная часть языка, и в то же время самая трудно запоминающаяся тема из-за особенностей синтаксиса, когда надо различать команды $(( … )), ${var%…},${var%%…}, ${var#…}, ${var?…} и еще кучу подобных. До этого я думал, что у Perl тяжелый синтаксис…

Завершают «теоретическую» часть книги главы про функции и массивы, после чего начинается вторая, практическая, половина книги, где описываются различные приемы использования bash. Начинается все с главы про строковые операции. Честно говоря, не ожидал, что некоторые простые в других языках операции вызывают такие трудности в bash.

Отдельная глава посвящена операциям с файлами. Здесь рассказывается, какие существуют способы чтения файлов построчно, какие существуют стандартные программы для работы с ними (вроде head, tail, grep, sed). Про grep и регулярные выражения толком ничего не сказано – им отведена всего одна страничка. Говорится, что есть такая утилита (язык) как awk для обработки текста, приводятся некоторые примеры, но толком про него тоже ничего не говорится. Еще одна глава посвящена способам отладки скриптов.

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

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

Завершается книга описанием стандартных переменных оболочки (shell variables).

В целом целом книга оказалась полезной, с нее вполне можно начать изучение bash, хотя у меня все-таки осталось желание почитать что-нибудь еще на эту тему. Читается книга легко, там нет каких-то пространных предложений в стиле Толстого на английском, поэтому даже мне, изучавшему английский язык по MSDN и тому подобной документации, особых проблем с пониманием не было, в словарь приходилось заглядывать не часто (в среднем – один раз на страницу). А сама книжка небольшая – чуть больше 250 страниц.

Похожие записи

ru.paperblog.com