Интерфейс командной строки

В ОС Linux чаще используется традиционный для UNIX интерфейс командной строки. Нажмите кнопку с изображением экрана на панели GNOME или дважды щелкните по иконке GNOME Terminal. Откроется окно программы-эмулятора терминала, в котором запустится оболочка, установленная по умолчанию. Настройте в меню Settings|Preferences цвета фона и шрифта, удобные для работы

Оболочка (shell)- это программа, которая а) считывает команду, введенную пользователем, и выполняет ее; б) выполняет программу, написанную на специальном языке данной оболочки (скрипте). Таким образом, оболочка является интерпретатором команд и скриптов.

Команда - это имя исполняемого файла. Имя команды совпадает с именем файла. Любой исполняемый файл, записанный в систему, становится ее командой. Исполняемый файл может быть и текстовым файлом (например, содержать скрипты). Для исполняемого файла обязательно должно быть установлено разрешение на выполнение.

Оболочка печатает приглашение - знак $ и ждет ввода команды. Следующее приглашение оболочка печатает после завершения выполнения текущей команды. Если после имени команды набрать символ &, то команда будет выполняться в фоновом режиме: оболочка напечатает новое приглашение, не дожидаясь окончания выполнения текущей команды.

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

Задание 1. Определите и запишите в отчете имя оболочки, запускаемой по умолчанию (login shell). Для этого введите команду

$ echo $SHELL

Введите команды

$ date

$ cal

Две и более команды можно объединить символом '|' в конвейер. При этом создается программный канал (unnamed pipe), и выход первой команды становится входом для второй команды. Например, по команде

$ cat file1 file2 | sort

программа cat объединит два файла, и программа sort расставит все строки результирующего файла в алфавитном порядке.

Стандартный ввод-вывод.Для каждой программы определены три стандартных устройства: stdin для ввода (дескриптор 0), stdout для вывода (дескриптор 1) и stderr для вывода сообщений об ошибках (дескриптор 2). По умолчанию stdout и stderrназначены на терминал, stdinна клавиатуру.

Переопределение стандартных устройств. Для переопределения стандартного выходного устройства используется символ '>'. Для переопределения стандартного входного устройства используется символ '<'. Например, команда

$ sort <file1>file2

считает данные из файла file1 и выведет результат в file2;

$ sort <file1>>file2

считает данные из файла file1 и добавит результат в конец файла file2;

$ program 2>log.txt или $ program >& log.txt

перенаправит stderrв файл log.txt;

$ program >a 2>&1

перенаправит stdout в файл a и объединит stderr с stdout.

Повторение запуска ранее введенной команды. Команду, введенную ранее, можно вызвать для редактирования и повторного запуска клавишами ­и ¯. Эти клавиши можно нажимать многократно, перемещаясь таким образом по списку введенных команд.

Список команд - команды, разделенные символом ';'. Команды в списке выполняются последовательно.

Условное выполнение команд. Строка $ команда1 && список_команд означает "выполнить список_команд, если код возврата команды команда1 равен 0". Строка $ команда1 || список_команд означает "выполнить список_команд, если код возврата команды команда1 не равен 0".