Комментарии и маскировка в Bash

Комментарии в Bash

 

В неинтерактивной оболочке shell или в интерактивной в которой в с включенным параметром interactive_comments, знак # указывает игнорировать все символы в этой строке. Интерактивная оболочка, без включенного параметра interactive_comments не показывает комментарии. В интерактивном shell по умолчанию включен параметр interactive_comments.

 

Маскировка bash

 

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

 

Каждый из метасимволов, которые перечислены в определениях bash, имеют особое значение для shell, и должны быть заключены в кавычки, если вы не хотите использовать их как метасимволы.

 

Когда используется команда history expansion(описание её я буду писать в дальнейшем), то команды в которых используется знак «!» должны быть заключены в кавычки, иначе оболочка выдаст ошибку.

 

Существует три механизма маскировки: escape character, одинаные кавычки и двойные кавычки.

 

Символ же обратной косой черты «\», если он не находится в кавычках, требует использовать следующий за ним символ, за исключением буквального значения символа обратной косой черты «\», тоесть за исключением перевода строки. Это значит что если введено две подряд обратных косых черты «\\» то одна из них просто игнорируется, а вторая выводится как продолжение строки.

 

Символы которые заключены в одинарные кавычки сохраняют буквальное значение каждого символа в кавычках. Одинаные кавычки нельзя использовать в других одинарных кавычках, даже в том случае если перед ними стоит обратная косая черта «\».

 

Символы которые находятся в двойных кавычках, используются буквально, исключая символы «$». «» и «\». Обратная же косая черта имеет специальное значение лишь в том случае, если после нее идет один из символов «$», «», ««» или «\»(перевод строки). Двойную кавычку можно использовать в двойных кавычках, замаскировав ей обратной косой чертой «\». Специальные параметры «*» и «@» будут иметь специальное значениеесли их указать в двойных кавычках.

 

Слова имеющие вид $’строка’ обрабатываются особым образом. Слово заменяется строкой где предваренные обратной косой чертой «\» символы, заменяются соответственно стандарта ANSI C. Обратный слеш, обратная косая черта «\» управляет последовательностями, если такие присутствуют и декодируется следующим образом:

 

\a — оповещение(звонок)

\b — Backspace(пробел назад)

\e

\E — управляющий символ

\f — прогон страницы

\n — новая строка

\r — возврат каретки(перевод строки)

\t — горизонтальные вкладки

\v — вертикальные вкладки

\\ — обратная косая черта

\’ — одинаные кавычки

— двойные кавычки

\nnn — восьмибитовый символ, значение которого восьмеричное значение nnn(от одной до трех цифр)

\xHH — восьмибитные символы, значение которых является шестнадцатеричным значением HH(одна или две шестнадцатеричных цифр)

\uHHHH — the Unicode (ISO/IEC 10646) символ, значение которого шестнадцатеричное значеие HHHH(от одного до четырех шестнадцатеричных цифр)

\UHHHHHHHH — Unicode (ISO/IEC 10646) символ, значение которого шестнадцатеричное значение HHHHHHHH(от одного до восьми шестнадцатеричных цифр)

\cxCtrl-x возврат на одну позицию

 

Расширенный результат помещается в одинарные кавычки, так как если бы знака доллара «$» не было бы.

 

Строка в двойных кавычках, которой предшествует символ доллара «$», будет расширена в соответствии с текущей локалицацией. В том случае если текущая локализация C или POSIX символ доллара «$» игнорируется. Если же строка переведена и заменена, результат помещается в двойные кавычки.

Грамматика команд shell

Простые команды

 

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

 

Первое слово указывает на команду, которая будет выполнена и передает как аргумент равный нулю. Остальные слова передаются в качестве аргументов вызванной команды.

 

Возвращаемым значением простой команды является статус её выхода, либо 128+n команда завершается сигналом «n».

 

Перенаправления в shell

 

Перенаправлениями являются последовательности из одного либо нескольких команд, которые разделены одним из операторов управления | или |&.

 

[time [-p]] [ ! ] command [ [|⎪|&] command2 … ]

 

Стандартный вывод command здесь соединен, через канал в стандартный ввод command2. Данное соединение выполняется перед любым перенаправлением которое указано в команде. Использование |&, является стандартной ошибкой command подключается к стандартному вводу command2 через перенаправление, это сокращение к 2>&1 |. Такое не явное перенаправление стандартной ошибки выполняется после любых перенаправлений которые указаны в команде.

 

Состояние возврата из перехода является состояние выхода последней команды, если не включен параметр «pipefail». Если же параметр «pipefail» включен, тогда состояние возврата перехода является значение последней команды (крайней справа) для выхода с нулевым статусом, либо же ноль в том случае если все команды успешно завершились. Если же переходу предшествует зарезервированное слово «!», статус выхода такого перехода является логическим отрицанием статуса выхода, как это было описано выше. Shell ждет завершение всех команд в конвейере, перед тем как возвратить значение.

 

Если зарезервированное слово time предшествует перенаправлению, то использованное, а так же системное время затраченное его выполнение, сообщается когда переход завершается. Параметр -p изменяет выходной формат, на заданное в POSIX. Когда shell находится в POSIX режиме, она не признает зарезервированное слово time, если следующий символ начинается с «». Переменная TIMEFORMAT может быть установлена в формате строки, которая определяет сроки, в которые информация должна отображаться: описание TIMEFORMAT будет описано в дальнейших статьях.

 

Когда shell находится в posix режиме, time может быть переходом к новой строке. В этом случае оболочка отображает общее пользовательское и системное время, потребляемое shell. Переменная TIMEFORMAT может быть использована для определения формата информации о времени.

 

Каждая команда в конвейере выполняется как отдельный процесс, то есть в подоболочке.

 

Списки в shell

 

Список представляет собой последовательность из одного или нескольких переходов разделенных одним из операторов «;», «&», «&&», или «||» и не обязательно, завершается одним из «;», «&», или «».

 

Эти операторы имеют одинаковый приоритет, «&&» и «||», следом так же одинаковый приоритет имеют «;» и «&».

 

Последовательность из одного или нескольких символов новой строки могут, появится в списке, вместо точки с запятой, для разделения команд.

 

Если команда завершается оператором управления «&» shell выполняет команду в фоновом режиме, в подоболочке. Shell не дожидается завершения конца команды и возвращает статус равный 0. Команды разделенные «;» выполняются последовательно, shell ожидает завершения каждой команды. Статусом возврата является статус выхода последней выполненной команды.

 

«И» и «ИЛИ» списки представляют собой последовательности одного или более переходов, разделенных «&&» и «||» операторов управления соответственно. «И» и «ИЛИ» списки выполнены с левой ассоциатавностью.

 

«И» списки имеют вид.

 

command1 && command2

 

command2 выполняется только если command1 возвращает нулевое состояние на выходе.

 

«ИЛИ» списки имеют вид.

 

command1 || command2

 

command2 выполняется только тогда когда command1 возвращает нулевой статус. Статусом возврата «И» и «ИЛИ» списков является статус выхода последней выполненной команды в списке.

 

Составные команды в shell

 

Соединить команды можно одним из следующих способов:

 

(list)

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

 

{ list; }

Список команд выполняется в текущей среде оболочки. Список завершается с новой строки или точкой с запятой. Это является группой команд. Статусом возврата является статус выхода списка. Стоит обратить внимание что в отличие от метасимволов (и), {и} являются зарезервированными словами и должны находится там где зарезервированные слова разрешено признавать. Так как они не вызывают слова перерыва, они должны отделяться от списка пробелами либо каким либо другим командным метасимволом.

 

((expression))

Выражение вычисляется в соответствии с правилами, которые будут описаны мною в дальнейшем в ARITHMETIC EVALUATION. Если значение выражения не равняется нулю, то возвращается статус 0, если выражение равно нулю тогда возвращается статус 1. Это в точности соответствует «expression».

 

[[ expression ]]

Возвращаемое значение 0 либо 1 зависит от оценки условного выражения «expression». Выражения состоят из предварительных условных выражений которые будут описаны мной в будущем CONDITIONAL EXPRESSIONS. Разделение на слова, и подстановку имен файлов не производится на словах между [[и]]; выполняются же тильды, параметры и переменные, арифметические выражения, подстановки команд, процесс замещения и удаления кавычек.

 

При использовании с [[, <и> лексикографическим оператором сортировки с использованием текущей локали.

 

Описание команд встроенного текста, я буду описывать в дальнейших статьях в SHELL BUILTIN COMMANDS.

 

Когда используются операторы «==» и «!=», строка справа от оператора считается шаблоном и подбирается в соответствии с правилами, которые я буду описывать в своих дальнейших статьях Pattern Matching. Если включен параметр nocasematch, совпадения проводятся без учета регистра алфавитных символов. Возвращается значение равное 0, если строка соответствует модели (==) или не соответствует (!=), и 1 в противном случае. Любая часть шаблона может быть заключена в кавычки, для того чтобы заставить её соответствовать строке.

 

Дополнительный бинарный оператор «=~» существует с тем же приоритетом что и «==» и «!=». Когда он используется, строка справа от оператора считается расширенным регулярным выражением и соответственно подобранна. Возвращается значение 0, в том случае если строка соответствует шаблону и 1 в противном случае. Если же регулярное выражение синтаксически некорректно, возвращается значение условное выражение равное 2. Если включен параметр nocasematch, совпадения проводятся без учета регистра алфавитных символов. Любая часть шаблона может быть заключена в кавычки, для того чтобы заставить её соответствовать строке. Подстроки сопровождаются скобками, подвыражения внутри регулярного выражения сохраняются в переменной массива BASH_REMATCH. Элемент BASH_REMATCH с индексом 0 является частью строки соответствующей всем регулярным выражениям. Элемент BASH_REMATCH с индексом n, является частью соответствия строки, скобки подвыражения.

 

Выражения могут быть объединены, при использовании следующих операторов, перечисленных в порядке убывания приоритета:

 

( expression )

Возвращает значение выражения. Это может быть использовано для переопределения обычного приоритета операторов.

 

! expression

Истинно в том случае если выражение ложно.

 

expression1 && expression2

Истинно если оба выражения правильны.

 

expression1 || expression2

Истинно если одно из выражений истинны.

 

Операторы «&&» и «||» не проводит оценку expression2 если значение expression1 достаточно для определения возвращаемого значения всего условного выражения.

 

for name [ [ in [ word … ] ] ; ] do list ; done

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

 

for (( expr1 ; expr2 ; expr3 )) ; do list ; done

Первое арифметическое выражение «expr1» оценивается в соответствии с правилами ARITHMETIC EVALUATION, которые я буду описывать в следующих статьях. Затем оценивается арифметическое выражение «expr2», до тех пор пока оно не примет значение равное нулю. Каждый раз как «expr2» вычисляется в нулевое значение, список обрабатывает и арифметическое выражение «expr3». Если какое-либо выражение пропущено, он ведет себя так как будто имеет значение 1. Возвращаемым значением является статус выхода последней команды в списке, которая будет выполнена или не выполнена если какое-либо из выражений является недопустимым.

 

select name [ in word ] ; do list ; done

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

 

case word in [ [(] pattern [ | pattern ] … ) list ;; ] … esac

Здесь первая команда case расширяет слово (word) и пытается сопоставить его с каждым шаблоном(pattern), по очереди, используя те же правила сопоставления что для имен файлов. Слово (word), расширяется при помощи тильды, параметров и переменных, арифметической замены, подстановки команд, процесса замещения и удаления кавычек. Каждый рассмотренный шаблон (pattern) расширяется при помощи тильды, параметров и переменных, арифметической замены, подстановки команд и подстановки процессов. Если в shell включен параметр nocasematch, то совпадения проводятся без учета регистра алфавитных символов. Если совпадение найдено, соответствующий список выполняется. Если используется оператор «;;» то никакие последующие совпадения не будут искаться после первого совпадения с шаблоном (pattern). Использование «;&» вместо «;;» вызывает продолжение выполнения списка связанного со следующим набора шаблонов(pattern). Использование «;;&» вместо «;;» заставит shell проверить следующий список шаблонов(pattern) в команде, если таковой имеется и выполнить любой связанный список на успешное совпадение. Если совпадений с шаблонами(pattern) не обнаружено, то статус выхода равен нулю. В ином же случае статус выхода команды равен выходу последней команды в списке.

 

if list; then list; [ elif list; then list; ] … [ else list; ] fi

if list будет выполнен. Если статус выхода равен нулю, то выполнится then list. В ином же случае каждый elif list в свою очередь выполнится, и если его статус выхода равен нулю, то соответствующий then list выполняется и команда завершается. В противном же случае выполняется else list если он присутствует. Статусом выхода команды, является статус выхода последней выполненной команды, или ноль, если ни одно из условий не выполнено.

 

while list-1; do list-2; done

until list-1; do list-2; done

Команда while непрерывно выполняет list-1 list-2, пока последняя команда в list не возвращает нулевое состояние на выходе. Команда until идентична команде while, за исключением того что list-2 выполняется когда команда list-1 возвращает нулевой статус выхода. Статус выхода команды while и until является статус выхода последней выполненной комады в list-2, или ноль, если ни один не был выполнен.

 

Coprocesses

 

Coprocess является командой shell которой предшествует зарезервированное слово coproc. Coprocess выполняется асинхронно в подоболочке, а если команда были прекращены с контрольным оператором &, с двусторонним конвейером установленым между выполнением shell и coprocess.

 

Формат для coprocess выглядит:

 

coproc [NAME] command [redirections]

 

Это создает coprocess имя NAME. Если имя не установлено по умолчанию имя COPROC. Имя не должно указываться если команда является простой, в противном случае она интерпретируется как первое слово простой команды. Когда выполняется coproc, shell создает массив переменной(Массивы я опушу в будущем) с указанным именем NAME в контексте выполнения shell. Стандартный вывод команды сообщается через конвейер в дескриптор файла с исполняющем shell, и файловый дескриптор присваивает NAME[0]. Стандартный ввод команды сообщается через конвейер в дескриптор файла в исполняющем shell, и файловый дескриптор присваивает NAME[1]. Этот конвейер устанавливается перед любым перенаправлением указанным в команде(описание перенаправлений я буду описывать в дальнейшем). Файлы дескрипторов могут быть использованы в качестве аргументов shell и перенаправления с использованием стандартных расширений слов. Идентификатор процесса ID shell породила выполнение coprocess доступного как значение переменной NAME_PID. Встроенная команда ожидания wait может быть использована для ожидания окончания coprocess.

 

Статус возврата coprocess является статус выхода из команды.

 

Определения функции shell

 

Функции shell является объектом, который называется как простая команда и выполняет составную команду с новым набором позиционных параметров. Shell функции объявляются следующим образом:

 

name () compound-command [redirection]

function name [()] compound-command [redirection]

Это определяет функцию с именем name. Зарезервированному слову функция не обязательна. Если функции передается зарезервированное слово, круглые скобки не обязательны. Телом функции является составная команда, соединения команд(смотрите выше Составные команды). Как правило, это список команд между {и}, но может быть любой командой из перечисленных в разделе Составные команды выше. Соединение команд выполняется всякий раз, когда name указывается как имя простой команды. Любые перенаправления(их я описывать буду в последующих статьях) указанные в определении функции выполняются при выполнении функции. Статус выхода определения функции равен нулю, если при возникновении синтаксической ошибки только для чтения, или функции с таким же уже существующим именем. При выполнении статуса выхода функции, является статус выхода последней выполненной команды в теле. (Функции я буду описывать в дальнейших статьях)

Определения, зарезервированные слова в shell

В дальнейших моих статьях будут использоваться следующие определения.

 

пробел

Пробел или табуляция.

 

слово

Последовательность символов, которая рассматривается как единое целое в оболочке. Так же как и символ.

 

имя

Слова состоящие только из алфавитно-цифровых символов и символов подчеркивания и начинается с буквы либо знака подчеркивания. Так же упоминается как идентификатор.

 

Метасимвол

символы которые не определяются в словах. Одни из следующих.

| & ; ( ) <> space tab

 

Управляющий оператор

знак выполняющий функции управления. Один из следующих символов.

|| & && ; ;; ( ) | |&

 

Зарезервированные слова

 

Зарезервированные слова, это слова которые имеют для shell специальное значение. Следующие слова распознаются как зарезервированные shell, когда употребляются без кавычек, либо как первое слово простой команды:

 

! case do done elif else esac fi for function if in select then until while { } time [[ ]]

Аргументы и вызов Bash

Аргументы Bash

 

Если аргументы остаются после параметров и ни «-c», ни «-s» параметров перед ними не было поставлено, первым аргументом считается имя файла, который содержит shell команды. В том случае когда Bash вызывается таким образом, «$ 0» устанавливается на имя файла, а позиционные параметры устанавливаются в остальные аргументы. Оболочка Bash читает и выполняет команды из этого файла, и затем выходит. Статусом выхода Bash является статус выхода последней выполненной команды в сценарии. В том случае если не выполняется ни одна команда, то статус выхода равен 0. Сценарий сначала старается открыть файл в текущем каталоге, и только в том случае если файл не будет найден shell начнет искать в каталогах, в пути к Вашему сценарию.

 

Вызов Bash

Логин в shell является первым символом аргумента равным нулю «» или запускается с параметром —login.

Интерактивная оболочка запускается без аргументов и без параметров -c чьи стандартные ошибки связаны с терминалом так как определено isatty, или запущенным параметром «-i». Устанавливается переменная PS1 и включает в себя «$» если Bash является интерактивным, позволяя скрипту либо файлу запуска проверку этого состояния.

В дальнейшем я опишу как Bash выполняет файлы запуска. Если какой-либо из файлов существует, но не может быть прочитан, Bash сообщает об ошибке. Тильды расширяются в именах файлов, как описывается ниже тильды в расширении раздела.

Когда Bash вызывается как интерактивная оболочка, либо не интерактивная оболочка с параметром «—login», он сначала читает и выполняет, команды из файла /etc/profile, если такой файл существует. После прочтения этого файла, Bash ищет ~/.bash_profile, ~/.bash_login и ~/.profile в указанном порядке, читает и выполняет команды из первого который существует и доступен для чтения. Параметр «—noprofile» может быть использован, когда оболочка стала подавлять это поведение.

Когда пользователь выходит из оболочки используещей регистрацию (shell login), Bash читает и выполняет команды из файла ~/.bash_logout, если такой существует.

При запуске интерактивной оболочки, если она не является оболочкой (shell login), Bash читает и выполняет команды из файла /etc/bash.bashrc и ~/.bashrc, если такой файл существует. Она может быть подавлена при помощи параметра «—norc». Параметр —rcfile заставит Bash читать и выполнять команды из файла, а не из /etc/bash.bashrc и ~/.bashrc.

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

if [ -n «$BASH_ENV» ]; then . «$BASH_ENV»; fi

но значение переменной PATH не используется для поиска имен файлов.

Если же Bash вызывается с именем sh, он постарается имитировать запуск более старых версий sh, настолько насколько это возможно, которые так же соответствуют стандартам POSIX. При вызове интерактивной оболочка (login shell), или же не интерактивной оболочки с параметром «—login», он сначала постарается читать и выполнять команды из /etc/profile и ~/.profile в таком именно порядке. Параметр «—noprofile» может быть использован для подавления этого поведения. При вызове в качестве интерактивной оболочки с именем sh, bash станет искать переменную ENV которая расширяет её значение, если же она определена, то оболочка использует расширенное значение в качестве имени файла для чтения и выполнения. Командная оболочка вызванная как sh не пытается читать и выполнять команды от любых других файлов запуска, так параметр «—rcfile» не будет иметь никакого эффекта. Неинтерактивная оболочка вызывающаяся с именем sh не пытается читать никакие другие файлы запуска. При вызове оболочки в качестве sh, Bash переходит в posix режим после запуска чтения файлов.

Когда Bash запускается в posix режиме, с параметром командной строки —posix, следует стандартный запуск POSIX файлов автозапуска. В этом режиме интерактивные оболочки расширяются ENV переменными окружения и команды читаются, а так же выполняются из файла, имя которого и будет значением. При этом никакие другие файлы начального запуска не читаются.

Bash постарается определить, когда он был запущен со стандартного ввода подключенный к сети, а при выполнении с удаленного сервера оболочки, обычно используется программа rshd или безопасной программы sshd. Если Bash сейчас работает в этом виде, он читает и выполняет команды из файла /etc/bash.bashrc и ~/.bashrc если эти файлы существуют и читаемы. Оболочка не станет этого делать если вызывается как sh. Параметр «—norc» может быть использован для изменения такого поведения, а так же параметра «—rcfile» может быть использован чтобы заставить её читать другой файл, но rshd, как правило, не вызывают оболочку с данными параметрами, или не позволяют им быть указанными.

Если же командная оболочка запускается с эффективным пользователем группы id, не равным реальному пользователю группы id, и параметр -p не указан, то никакие файлы начального запуска не читаются, а функции командной оболочки не наследуются из переменных среды SHELLOPTS, BASHOPTS, CDPATH и GLOBIGNORE, они не учитываются если появляются в окружающей среде, эффективный же идентификатор пользователя id устанавливается в реальный идентификатор пользователя. Если параметр -p устанавливается при вызове, поведение при запуске такое же, только эффективный идентификатор пользователя id не сбрасывается.

Bash название, синтаксис, описание, параметры

Название

 

bashGNU Bourne-Again Shell.Одна из самых популярных оболочек в среде Linux.

 

Синтаксис

 

bash [параметры] [файл]

 

Описание

 

Bash представляет собой sh-совместимый интерпретатор командного языка, bash способен выполнять команды которые он получает со стандартного ввода либо же из файла. В Bash также реализованы некоторые полезные функции из Korn и C shell.

 

Bash предназначается для совместимых реализаций Shell и утилит IEEE POSIX спецификации. Bash может быть настроен для POSIX-совместимых спецификаций по умолчанию.

 

Параметры

 

Все односимвольные параметры оболочки shell задокументированы встроенного набора программ, который может быть использован при вызове оболочки. Помимо этого командная оболочка Bash интерпритирует следующие параметры при вызове:

 

-c string

Если присутствует параметр -c то команды считываются из строки. Если же присутствуют аргументы, после строки, они присваиваются позиционные параметры начиная с $ 0.

 

-i

Если присутствует параметр -i то оболочка shell интерактивна.

 

-l

Заставить bash действовать так, как будто она была вызвана в качестве оболочки входа в систему.

 

-r

В том случае если присутствует параметр -r, shell становится ограниченным.

 

-s

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

 

-D

Список всех строк в двойных кавычках предшествует $ печатается на стандартный вывод. Данные строки подлежат переводу, когда текущая локализация не C или POSIX. Это означает что параметр -n: никакие команды не выполнит.

 

[-+]O [shopt_option]

shopt_option являются обним из параметров shell встроенных команд. Если shopt_option присутствует; -0 устанавливает значение данного параметра; +0 сбрасывает значение. Если же shopt_option не указан, то имена и значения параметра оболочки приняты shopt печатаются на стандартный вывод. Если же параметр вызова +0 выходные данные отображаются в формате который может быть повторно быть использован в качестве входного параметра.

 

Обозначает окончание параметров и отключает параметры дальнейшей обработки. Любой аргумент после «» рассматривается как имена файлов и аргументы. Аргумент «» эквивалентен «».

 

Bash также интерпритирует несколько многосимвольных параметров. Эти параметры должны появляться в командной оболочке перед односимвольными параметрами для распознавания.

 

—debugger

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

 

—dump-po-strings

Эквивалент -D но выводит в GNU gettext po (portable object) формат файла.

 

—dump-strings

Эквивалент -D

 

—help

Показать подсказку на стандартный вывод и завершить.

 

—init-file

Файл

 

—rcfile file

Выполняет команды из файла, вместо выполнения её из общесистемного файла инициализации /etc/bash.bashrc и стандартного персонального файла инициализации ~/.bashrc в том случае если оболочка интерактивная.

 

—login

Эквивалент -l

 

—noediting

Не использовать библиатеку GNU readline для чтения командных строк, когда командная оболочка является интерактивной.

 

—noprofile

Не читать или общесистемный файл запуска /etc/profile либо любой из личных файлов инициализации ~/.bash_profile, ~/.bash_login или ~/.profile. По умолчанию Bash использует именно эти файлы при вызове логина в оболочке.

 

—norc

Не читать и не выполнять общесистемные файлы инициализации /etc/bash.bashrc и личный файл инициализации ~/.bashrc в том случае если оболочка интерактивная. Даный параметр включен по умолчанию, в том случае если оболочка выполняется как «sh».

 

—posix

Изменяет поведение Bash когда операция по умолчанию отлична от стандартной POSIX, для того чтобы соответствовать стандарту (режима POSIX).

 

—restricted

Оболочка становится ограниченной.

 

—verbose

Эквивалент -v

 

—version

Выводит информацию о версии данного экземпляра Bash на стандартный вывод в полном объёме.

Руководство программы Airdecap-ng

Описание

 

С airdecap-ng Вы можете расшифровать захваченные файлы WEP/WPA/WPA2. Помимо того, он может быть использован для того чтобы отделить заголовки пакетов захваченных при передаче по не зашифрованным каналам беспроводных сетей.

 

Он создает новый файл с расширением ”-dec.cap”, который является расшифрованной версией входящего файла.

 

Использование

airdecap-ng [параметры]

Параметр

Значение

Описание

-l

Не удалять 802.11 заголовки

-b

bssid

Точка доступа, фильтрация по MAC-адресам

-k

pmk

WPA/WPA2 парный мастер-ключ в шестнадцатеричном виде

-e

essid

Целевая сеть по ascii идентификатору

-p

pass

Целевая сеть WPA/WPA2 парольная фраза

-w

key

Целевая сеть WEP-ключ в шестнадцатеричном виде

Примеры использования

Следующая команда удалит заголовки из открытой сети (без WEP) захвата:

airdecap-ng -b 00:09:5B:10:BC:5A open-network.cap

Следующая команда расшифровывает WEP-шифрование захваченное с использованием шестнадцатеричного WEP-ключа:

airdecap-ng -w 11A3E229084349BC25D97E2939 wep.cap

Следующая команда расшифровывает зашифрованный WPA/WPA2 захваченный пакет с использованием парольной фразы:

airdecap-ng -e ‘the ssid’ -p passphrase tkip.cap

Советы по использованию Airdecap-ng

Требования WPA/WPA2

Захваченный файл должен иметь четыре корректных handshake. Для этой цели файл имеющий (пакеты 2 и 3) или (пакеты 3 и 4) будет работать правильно. На самом деле для этого Вам не обязательно иметь все четыре пакета handshake.

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

Онлайн руководство Airolib-ng

Программа Airolib-ng является частью программ aircrack-ng и предназначена для хранения и управления essid и списком паролей. Данная программа позволит вам значительно ускорить взлом WPA/WPA2 ключей при помощи брутфорса.

 

Описание программы Airolib-ng

Использование Airolib-ng

Примеры использования Airolib-ng

Советы по использованию Airolib-ng

Неполадки в работе Airolib-ng