- •1.1. Командный интерфейс
- •1.2. Взаимодействие на основе меню
- •1.2.1. Интерфейс на основе текстового меню
- •1.2.2. Графический интерфейс пользователя
- •2.1. Виды пользовательского интерфейса в unix-подобных системах
- •2.2. Терминал и консоль
- •3.1. Запуск командной строки
- •3.3. Кома́ндная оболо́чка unix
- •3.4. Перенаправление ввода-вывода
- •3.5. Способы объединения команд
- •3.6. Возможности интерфейса командной оболочки
- •3.6.1.Редактирование командной строки
- •3.6.2. История команд
- •3.6.3. Автодополнение
- •4.1. Просмотр файлов инструкций (получение справки о команде)
- •4.2. Команды по работе с файловой системой
- •4.2.1. Определение места текущего каталога в файловой системе
- •Просмотр содержимого текущего каталога
- •4.2.3. Создание нового каталога
- •4.2.4. Удаление каталога пустого каталога
- •Переход из каталога в каталог
- •Копирование файлов и каталогов
- •Перемещение (или переименование) файлов (команда mv)
- •Создание и просмотр файлов
- •Удаление файлов и непустых каталогов
- •Ссылки и работа с ними
- •Пользовательский интерфейс операционных систем ………………… 3
- •Командный интерфейс …………………………………………………. 3
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 используются четыре способа перенаправления стандартных ввода и вывода.
Перенаправление стандартного вывода команды в файл.
Переназначение стандартного ввода команды с клавиатуры на файл.
Дописывание стандартного вывода команды в существующий файл.
Передача стандартного вывода одной команды в качестве стандартного ввода другой команды. Этот способ перенаправления ввода-вывода принято называть потоком.
Для перенаправления ввода и вывода используется синтаксис, представленный в таблице 3.1.
Таблица 3.1. Синтаксис перенаправления ввода и/или вывода
Синтаксис перенаправления |
Описание |
Команда1 | Команда2 |
Назначение стандартного вывода команды1 в качестве стандартного ввода команды2 |
Команда < [путь]имя_файла |
Ввод команды поступает из заданного файла |
Команда > [путь]имя_файла |
Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае – перезаписывается |
Команда >> [путь]имя_файла |
Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае вывод дописывается в конец файла |
Команда < [путь]имя_файла1 > [путь]имя_файла2 |
Ввод команды поступает из первого заданного файла, а вывод направляется во второй с перезаписью |
Команда < [путь]имя_файла1 >> [путь]имя_файла2 |
Ввод команды поступает из заданного первого заданного файла, а вывод дописывается во второй файл |
Команда 2> [путь]имя_файла |
Создается заданный файл, в который направляется вывод сообщений об ошибках. Если такой файл уже существует, то он перезаписывается |
Команда 2>&1 [путь]имя_файла |
Сообщения об ошибках и стандартный вывод записываются в один и тот же файл |
