Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Командная строка UNIX. Лабораторный практикум по дисциплине «Операционные системы»

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Окно терминала, использующего черно-белую цветовую палитру, пред­ставлено на рис. 3.7.
Рис. 3.7. Общий вид окна графического терминала
В случае запуска нескольких графических терминалов (рис. 3.8) пере­ключение между ними можно осуществлять комбинацией клавиш
Ctrl+Alt+F1.
Рис. 3.8. Два окна с запущенными графическими терминалами
Текстовая консоль запускается на выполнение путем нажатия комбина­ции трех клавиш Ctrl+Alt+ одна из функциональных клавиш (F1-F6) (рис.
3.9).
Рис. 3.9. Текстовая консоль Ubuntu
11
Переключаться между консолями можно при помощи сочетания кла­виши Alt и одной из функциональных клавиш (F1-F6).
В ответ на приглашение login: пользователь должен ввести имя, под ко­торым он зарегистрирован в системе (рис. 3.10). Затем в ответ на password: необходимо ввести пароль.
Рис. 3.10. Пример регистрации пользователя в системе
Пароль, в отличие от регистрационного имени, при вводе никак не от­ражается.
Регистрационное имя пользователя и его пароль задаются системным администратором при добавлении пользователя в систему.
Если регистрация пользователя прошла успешно, на экран выводятся строка приветствия, несколько служебных строк и приглашение к вводу команды в виде знака $ (рис. 3.11).
Рис. 3.11. Вид экрана после удачного завершения регистрации пользователя
3.2. Формат команд
Команды операционной системы UNIX имеют следующий формат:
имя_команды [-ключ] [-a модификатор_ключа] [параметр1]…
[параметрК]
12
Имя команды записывается только строчными (малыми) буквами и цифрами. Длина имени команды должна составлять от двух до девяти сим­волов.
Ключ представляет собой последовательность, состоящую из знака ми­нус (–), за которым следует одна буква. Ключи обычно задают режим рабо­ты команды. Допускается использование нескольких ключей в одной ко­манде. В этом случае имена ключей записываются последовательно за од­ним знаком минус. Порядок перечисления ключей является несуществен­ным. За некоторыми ключами может следовать модификатор ключа, отно­сящийся только к этому ключу.
Параметры обычно определяют объекты, на которые будут распростра­няться действия команды.
При задании параметров можно использовать символы расширения (?) знак вопроса и (*) звёздочка. Знак вопроса (?) заменяет один символ во введённом выражении. Это обозначает, что, если в текущем каталоге нахо­дятся файлы 1file.txt, 2file.txt и т.д., то при указании параметра команды в виде ?file.txt все файлы такого вида будут обработаны. Если же в качестве аргумента ввести (*) звёздочку, то команда заменит совершенно любое ко­личество символов в выражении.
П р и м е р
ls *.odt
После выполнения этой команды на экран выведутся все файлы с рас­ширением odt.
При работе в системе UNIX необходимо иметь в виду, что она различа­ет большие и малые буквы.
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-оболочки, он поддерживает автодополнение названий файлов и папок, подстановку вы­вода результата команд, переменные, контроль за порядком выполнения, операторы ветвления и цикла.
13
3.4. Перенаправление ввода-вывода
Синтаксис перенаправления
Описание
Команда1 | Команда2
Назначение стандартного вывода команды1 в качестве стандартного ввода команды2
Команда < [путь]имя_файла
Ввод команды поступает из заданного фай­ла
Команда > [путь]имя_файла
Вывод команды направляется в заданный файл. Если указанный файл не существует, то он создается, в противном случае — пе­резаписывается
Команда >> [путь]имя_файла
Вывод команды направляется в заданный файл. При этом если указанный файл не существует, то он создается, в противном случае вывод дописывается в конец файла
По умолчанию команды получают ввод из параметров, указываемых при вводе команды в командной строке, и направляют свой вывод, включая и сообщения об ошибках, на экран монитора. Однако иногда возникают ситуации, в которых ввод нужно получить не с клавиатуры, а из какого­либо другого источника, а вывод направить в файл или на другое устрой­ство вывода, например, на принтер. Кроме того, сообщения об ошибках иногда желательно направлять в файл, а не в окно консоли.
В bash есть встроенные файловые дескрипторы: 0 (stdin), 1 (stdout), 2
(stderr):
stdin стандартный ввод; то, что набирает пользователь в консоли;
stdout стандартный вывод программы;
stderr стандартный вывод ошибок.
В Unix используются четыре способа перенаправления стандартных ввода и вывода:
1) перенаправление стандартного вывода команды в файл;
2) переназначение стандартного ввода команды с клавиатуры на файл;
3) дописывание стандартного вывода команды в существующий файл;
4) передача стандартного вывода одной команды в качестве стандарт-
ного ввода другой команды. Этот способ перенаправления ввода-вывода принято называть потоком.
Для перенаправления ввода и вывода используется синтаксис, пред­ставленный в табл. 3.1.
Т а б л и ц а 3.1
Синтаксис перенаправления ввода и/или вывода
14
О к о н ч а н и е т а б л. 3.1
Синтаксис перенаправления
Описание
Команда < [путь]имя_файла1 > [путь]имя_файла2
Ввод команды поступает из первого задан­ного файла, а вывод направляется во второй с перезаписью
Команда < [путь]имя_файла1 >> [путь]имя_файла2
Ввод команды поступает из заданного пер­вого заданного файла, а вывод дописывает­ся во второй файл
Команда 2> [путь]имя_файла
Создается заданный файл, в который направляется вывод сообщений об ошибках. Если такой файл уже существует, то он пе­резаписывается
Команда 2>&1 [путь]имя_файла
Сообщения об ошибках и стандартный вы­вод записываются в один и тот же файл
3.5. Способы объединения команд
В UNIX существует возможность объединять несколько команд в одной командной строке. Это можно делать несколькими способами.
1. Последовательное выполнение. Команды выполняются одна за дру-
гой, независимо от результата их исполнения. В качестве разделителя вы­ступает символ точки с запятой «;».
2. Условное выполнение (И). Проверяется код завершения первой про-
граммы. Если он равен 0, производится выполнение второй программы и т.д. Таким образом, последняя команда выполнится только при успешном завершении всех предыдущих. В качестве разделителя выступают два ам­персанда «&&».
П р и м е р
test -r /tmp/txt && cp /tmp/txt
Проверяется возможность чтения файла /tmp/txt, и в случае успеха файл копируется в текущий каталог.
3. Условное выполнение (ИЛИ). Проверяется код завершения первой
программы. Если он не равен 0, производится выполнение второй про­граммы и т.д. Последняя команда будет запущена, только если ни одна из предыдущих не закончилась успешно. В качестве разделителя выступают две вертикальные черты «||».
П р и м е р
test -d /tmp/dir || mkdir /tmp/dir
Проверяется существование каталога /tmp/dir. Если его нет, он создаётся.
4. Конвейер. При выполнении программ связываются их стандартные
выходы и входы, так что текстовые данные передаются через них последо­вательно, как по конвейеру.
15
В качестве разделителя используется символ вертикальной черты «|».
П р и м е р
cat file.txt | uniq | sort
Читается содержимое файла file.txt. Из него удаляются повторяющиеся строки, а оставшиеся сортируются по алфавиту. Результат выводится на экран.
3.6. Возможности интерфейса командной оболочки
Командная оболочка bash предоставляет пользователю ряд особенно­стей пользовательского интерфейса, облегчающих работу с командной строкой. К этим особенностям относятся: возможность редактирования содержимого командной строки, возможность работы с историей команд, автоматическое дополнение команд.
3.6.1. Редактирование командной строки
Вводимую команду можно редактировать с помощью клавиш Backspace и Delete, перемещаться стрелками по всей строке.
3.6.2. История команд
Все команды, набранные пользователем, командная оболочка запомина­ет и позволяет обращаться к ним впоследствии. По стрелке вверх список поданных команд «прокручивается» от последней к первой, а по стрелке вниз — обратно. Соответствующая команда отображается в командной строке как только что набранная. Её можно отредактировать и запустить на выполнение.
Чтобы история команд могла сохраняться между сеансами работы поль­зователя, bash записывает ее в файл .bash_history, находящийся в домаш­нем каталоге пользователя. Делается это в момент завершения сеанса поль­зователя: накопленная за время работы история дописывается в конец этого файла. При следующем запуске командной оболочки ОС считывает .bash_history целиком. История хранится не вечно, количество запоминае­мых команд в .bash_history ограничено. Обычно сохраняется 500 команд, но это значение может быть изменено.
3.6.3. Автодополнение
Автодополнения позволяют быстро набирать команды и пути в файло­вой системе. Если во время набора имени команды или файла нажать кла­вишу Tab, то командная оболочка либо попытается дополнить указанную команду или файл в случае, когда они определяются введенной частью од­нозначно, либо предложит возможные варианты с данным началом.
16
4. ОСНОВЫ РАБОТЫ С КОМАНДНОЙ СТРОКОЙ
В ОС LINUX
Несмотря на то, что большинство команд во всех UNIX-подобных ОС совпадают по наименованию, существуют некоторые различия в числе и составе ключей, а также параметрах команд. Для практического изучения выбрана операционная система Linux. Всё дальнейшее изложение материа­ла будет вестись с привязкой к особенностям этой операционной системы.
4.1. Просмотр файлов инструкций
(получение справки о команде)
Получить справку о любой команде операционной системы или найти нужную команду можно с помощью команды man (от слова manual — ру­ководство, инструкция).
Синтаксис:
man <имя_команды>
man [-k] <контекст>
Первый вариант команды man используется для получения справки о команде, имя которой указывается в качестве параметра.
П р и м е р
man cd
Команда выводит инструкцию по команде cd.
Управление просмотром инструкции осуществляется с помощью одно­символьных команд, которые не отображаются на экране дисплея:
 d — вперед на половину экрана;
пробел — вперед на экран;
 b — возврат на один экран назад.
Для получения справки о работе команды man можно воспользо­ваться командой man man
Второй вариант команды man используется тогда, когда имя нужной команды неизвестно. Для поиска команды, предназначенной для выполне­ния нужных функций, необходимо после ключа –k указать ключевое слово (контекст), характеризующее команду и которое находится в кратких опи­саниях команд. Единственное неудобство — ключевое слово необходимо указывать на английском языке.
П р и м е р
man –k file
Команда позволяет найти команды, в кратком описании которых встре­чается ключевое слово file, т.е. команды, предназначенные для разнообраз­ной работы с файлами.
17
Рис. 4.1. Фрагмент вывода команды man –k file.
Полученный список команд (рис. 4.1) содержит информацию о группе объектов, в названии которых (правая колонка) встречается сочетание сим­волов "file".
Этот режим работы команды man весьма эффективен и для изучения набора команд операционной системы.
4.2. Команды по работе с файловой системой
4.2.1. Определение места текущего каталога в файловой
системе
После успешной регистрации в системе пользователь попадает в свой домашний каталог, который назначается текущим каталогом (где пользо­ватель находится в текущий момент времени). Очень часто, прежде чем начать выполнять какие-либо действия в системе, нужно определить, в ка­кой части файловой системы находится текущий каталог. Решить эту зада­чу помогает команда pwd, которая показывает полный путь к текущему каталогу.
П р и м е р
Предположим, что пользователь зарегистрировался в системе под име­нем student. Тогда в ответ на ввод команды pwd на экран будет выведен полный путь к домашнему каталогу пользователя (рис. 4.2).
Рис. 4.2. Результат выполнения команды pwd
18
4.2.2. Просмотр содержимого текущего каталога
Ключ
Назначение
–1 (цифра 1)
Вывод информации о каждом следующем файле или каталоге в отдельной строке
a
Вывод списка всех файлов и подкаталогов в каталоге, включая скрытые файлы (их имена начинаются с точки)
c
Сортировка по дате создания
F
Пометить исполняемые файлы звездочкой (*), каталоги — наклонной чертой (/) и символические ссылки — символом @
r
Вывод в обратном порядке
R
Рекурсивная работа
Одной из наиболее часто возникающих ситуаций при работе с команд­ной строкой является необходимость посмотреть содержимое какого-либо каталога. В UNIX для этих целей используется команда ls.
Синтаксис:
ls [–ключи] [имя_файла | имя_каталога] …
Если команда ls вводится без параметров и ключей, то на экран выво­дится содержимое текущего каталога. При этом выводятся только имена файлов и подкаталогов текущего каталога без каких-либо пометок и до­полнительной информации (рис. 4.3).
Рис. 4.3. Пример вывода команды ls без параметров и ключей
По умолчанию результат работы команды ls сортируется в алфавитном порядке.
Если задано несколько параметров, то параметры сначала сортируются соответствующим образом, причем файлы выводятся перед содержимым каталогов.
Для каждого заданного параметра команда ls выводит:
содержимое (оглавление) указанного каталога, если параметр является именем каталога;
имя файла и другую требуемую информацию, если параметр является именем файла.
Для управления форматом вывода служат многочисленные ключи ко­манды (табл. 4.1).
Т а б л и ц а 4.1
Ключи команды ls
19
О к о н ч а н и е т а б л. 4.1
Ключ
Назначение
–l (малая буква L)
Длинный (наиболее полный) формат вывода
u
Сортировка по дате последнего доступа к файлу
C
Вывод содержимого каталога в несколько столбцов. Уста­навливается по умолчанию при выводе на терминал
i
Для каждого файла выводится номер индексного дескрип­тора (уникальный номер файла)
f
Вывод не сортируется, т.е. порядок вывода соответствует порядку файлов в каталоге
Примеры вывода команды ls с различными ключами представлены на рис. 4.4—4.7.
Рис. 4.4. Вывод команды ls с ключом –a
Рис. 4.5. Вывод команды ls с ключом –1 (цифра 1)
Рис. 4.6. Вывод команды ls с ключом –F
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]