Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Командная строка Unix.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3.3. Кома́ндная оболо́чка unix

Кома́ндная оболо́чка UNIX (англ. Unix shell, часто просто «шелл» или «sh») — командный интерпретатор, используемый в операционных системах семейства UNIX. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell (шелл Борна), появившемуся в Unix Version 7.

В ОС Linux стандартной командной оболочкой является расширенная Борном свободная (разработанная в рамках проекта GNU) оболочка sh, получившая название bash (bourne again shell — «Возрождённый» shell).

Bash — это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение названий файлов и папок, подстановку вывода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла.

3.4. Перенаправление ввода-вывода

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

В bash есть встроенные файловые дескрипторы: 0 (stdin), 1 (stdout), 2 (stderr).

stdout — стандартный вывод программы.

stdin — стандартный ввод; то, что набирает пользователь в консоли.

stderr — стандартный вывод ошибок.

В Unix используются четыре способа перенаправления стандартных ввода и вывода.

  1. Перенаправление стандартного вывода команды в файл.

  2. Переназначение стандартного ввода команды с клавиатуры на файл.

  3. Дописывание стандартного вывода команды в существующий файл.

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

Для перенаправления ввода и вывода используется синтаксис, представленный в таблице 3.1.

Таблица 3.1. Синтаксис перенаправления ввода и/или вывода

Синтаксис перенаправления

Описание

Команда1 | Команда2

Назначение стандартного вывода команды1 в качестве стандартного ввода команды2

Команда < [путь]имя_файла

Ввод команды поступает из заданного файла

Команда > [путь]имя_файла

Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае – перезаписывается

Команда >> [путь]имя_файла

Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае вывод дописывается в конец файла

Команда < [путь]имя_файла1 > [путь]имя_файла2

Ввод команды поступает из первого заданного файла, а вывод направляется во второй с перезаписью

Команда < [путь]имя_файла1 >> [путь]имя_файла2

Ввод команды поступает из заданного первого заданного файла, а вывод дописывается во второй файл

Команда 2> [путь]имя_файла

Создается заданный файл, в который направляется вывод сообщений об ошибках. Если такой файл уже существует, то он перезаписывается

Команда 2>&1 [путь]имя_файла

Сообщения об ошибках и стандартный вывод записываются в один и тот же файл