• Главная
  • Обо мне
  • Семестры
    Семестр 1
    Семестр 2
    Семестр 3
    Семестр 4
    Семестр 5
    Семестр 6
  • Проекты
  • Заметки
  • Ссылки
Bash Отредактировано 10/05/13
Семестр 1
Семестр 2
Семестр 3
Семестр 4
Семестр 5
Семестр 6

Bash (от англ. Bourne again shell, каламбур «Born again» shell — «Возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки. (см. http://ru.wikipedia.org/wiki/Bash)


В bash есть встроенные файловые дескрипторы:


• Stdin (0) — поток входных данных программы (то, что набирает пользователь в консоли). Если программе не указан файл с данными, то она ожидает получить их через этот поток.

• stdout — стандартный поток с основными результатами работы программы.

• stderr — поток с дополнительной информацией (ошибки, предупреждения, % выполнения).


Последние два по умолчанию не разделены. То есть тому, что на экране, нельзя однозначно установить, какой именно поток показан. Разница появляется при перенаправлении потока в файл (“>” (или “1>”) перенаправляет только stdout, “2>” перенаправляет только stderr).

Для операций с этими дескрипторами, существуют специальные символы.


Таблица 1.

Спецсимволы для операций с дескрипторами Bash

Спецсимвол Функция
/ Корень файловой системы
./ Текущая директория
../ Родительская директория
~/ Домашняя директория
$ Подставить результаты выполнения команд
! Вызывать ранее используемую команду
? Параметр меняется на любой символ. Например, «term?» работает со всеми файлами, названия которых состоят из пяти знаков, первые четыре из которых term, а последний может быть любым (term1, term2 и тд).
* Параметр меняется на любое количество любых символов. Например, «bacillus*» работает с файлами, которые начинаются на bacillus
[] Параметр вызывает один любой символ из перечисленных в таких скобках. Например, если команда содержит [xyz], то вместо квадратных скобок может стоять либо x, либо y, либо z (включительно)
{} Указывать количество повторений предыдущего символа
; Параметр обеспечивает последовательное выполнение команд, перечисленных через двоеточие

Таблица 2

Перенаправления потоков в Bash

Оператор Функция
program > file Направить stdout в файл file
program >> file Направить stdout в конец файла file
program < file Изъять stdin из файла file
program1| program2 Направить stdout программы program1 в программу program2
program1| tee file | program2 Скопировать поток из программы program1 в файл file и направить его дальше в программу program2

© Малеева Александра