Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Методические рекомендации по выполнению лабораторных работ.doc
Скачиваний:
243
Добавлен:
11.04.2015
Размер:
1.17 Mб
Скачать

Контрольные вопросы

  1. Какого назначение интерфейса командной строки в Windows?

  2. Как получить информацию о внутренних командах интерпретатора команд cmd?

  3. На какие группы делятся внутренние команды интерпретатора команд cmd?

  4. Какой командой настраивается приглашение командной строки? Опишите её.

  5. Перечислите основные команды управления файловой системы и охарактеризуйте их.

  6. Что такое перенаправление ввода? Вывода?

  7. Что такое конвейеры команд?

  8. Для каких целей удобно использовать внешний редактор edit?

  9. Для чего предназначены командные файлы?

  10. Перечислите основные команды, используемые в командных файлах. Какого назначение каждой из них?

  11. Что такое переменные окружения? Как они задаются?

  12. Что такое формальные параметры командного файла и как они задаются?

  13. Какая команда используется, если необходимо приостановить выполнение командного файла или требуется выполнение вспомогательных действий?

  14. Опишите назначение команды shift.

  15. Перечислите и охарактеризуйте регистры процессора. Как получить их текущее содержание с помощью программы debug?

  16. Какую еще информацию позволяет получить программа debug?

Лабораторная работа №9. Пользовательский интерфейс командной строки в Linux (Unix) Цель работы

  1. Приобретение навыков работы с интерфейсом командной строки в Linux.

  2. Овладение приёмами управления файловой системой с использованием интерфейса командной строки.

  3. Разработка командных файлов.

Краткие теоретические сведения

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

При изучении системы команд Unix необходимо иметь в виду, что многие команды MS DOS и Windows совпадают по имени и, частично, по функциям с командами Unix, Так, совпадают команды cd, ctty, date, echo, find, for, goto, if, mkdir, more, rmdir, sort.

Приглашение к вводу команды в Unix (Linux, FreeBSD) может выглядеть по-разному:

# - это приглашение для суперпользователя (root), вошедшего в систему, $, или [имя@1оса1host имя]$ - для обычных пользователей. Помощь по командам Unix можно получить, набрав «man» и через пробел - имя команды, например: man gnome.

Вход в систему производится в диалоге, когда система запрашивает имя пользователя и его пароль.

Login: имя

Password: пароль

После идентификации пользователя и определения его прав появляется приглашение:

[имя@lосаlhost имя]$, если имя не совпадает с именем суперпользователя (root), и

# или [root@localhost root]#, если в систему вошел суперпользователь.

Для выхода из системы служит команда logout, по которой прекращается сеанс работы с данным пользователем, но система не завершает свою работу. Прекратить текущий сеанс работы можно также, нажав одновременно три клавиши Ctrl+Alt+Backspace. Для полного завершения работы нажимается Ctrl+Alt+Del. Об окончании работы системы говорит строка: The system is halted.

Получение информации о файлах происходит по команде «ls» (от list). Без параметров эта команда выводит на экран информацию о файлах, содержащихся в текущем каталоге: [user@localhost user]$ ls. С параметром -1 команда позволяет получить более подробную информацию о файле (если указано его имя) или каталоге. Например: [root@localhost root]# ls -1 /root.

Смена каталога производится по команде cd имя_каталога. Эта команда позволяет сделать текущим каталог, имя которого указано в команде. Имя каталога должно содержать путь к нему. Для перехода в каталог более высокого уровня служит команда «cd ..». Для перехода в каталог на два уровня выше - «cd ...».

Копирование файлов производится по команде ср: ср [опции] исходный_объект целевой_объект. Опция -R распространяет действие команды на подкаталоги исходного объекта. Справку руководства по этой команде можно получить с помощью команды: $ man ср. Пример: cp <file1> <file2> - копирование file1 в file2.

Часто при работе в командной оболочке пользователям необходимо в одном имени указать сразу несколько файлов (группу). Для этого в именах файлов включаются специальные символы «*» (звёздочка), «?» (вопрос), «[]» (квадратные скобки), которые называются символами расширения. Имя, содержащее эти символы, называется маской файлов. Маска файлов преобразуется командной оболочкой в список имен файлов. Знак «*» (звёздочка) применяется для того, чтобы указать, что в этом месте файла может находиться любое число (включая 0) любых символов. Знак «?» (вопрос) указывает, что на его месте в имени файла может находиться один (не больше и не меньше) любой символ. Выражение «[]» (квадратные скобки) используется для указания множества символов, которые могут находиться в имени файла на том месте, где располагается открывающаяся квадратная скобка. Между скобками указываются необходимые символы или их диапазон (с использованием символа «-» (тире)). Можно указать несколько диапазонов, разделяя их запятой. Например, имя f[124] соответствует файлам f1, f2, f4, а имя f[1-4] – файлам f1, f2, f3, f4.

В ОС Unix существует специальный тип файла – ссылка (link). Ссылка содержит указатель на другой файл или каталог. Таким образом, файлам или каталогам может назначаться несколько имен. Указатели бывают двух видов: жесткие и символьные (символические). Жесткие ссылки, по сути, являются именами файла или каталога. Пока существует хотя бы одна жесткая ссылка, существует и сам файл или каталог. Символьная ссылка является файлом, который содержит лишь путь, указывающий на другой файл или каталог. Для создания ссылки используется команда ls c указанием файла (каталога) на который нужно сделать ссылку и название самой ссылки. Чтобы сделать символьную ссылку нужно указать опцию –s. Примеры: $ ls file1 file2 – создается жесткая ссылка file2 на файл file1, $ ls –s file1 file3 – создается символьная ссылка file3 на файл file1.

Определение наличия свободного места на диске производится по команде df: [root@localhost root]# df. Эта команда позволяет определить: общий объем раздела, размер занятого информацией дискового пространства, объем свободного места на диске, сведения о точках монтирования и т.д.

Удаление файлов производится по команде «rm»: rm [опции] файлы_или_каталоги. Справка выдается по команде: [root@localhost root]# rm —help. Без указания опции -i запрос на удаление не выводится. Опция -R позволяет удалить каталог вместе с подкаталогами.

Для определения состава пользователей, работающих в данный момент в системе, используется команда who: [user@localhost user]$ who.

Если пользователей работает несколько, то кому принадлежит данный терминал, можно определить по команде whoami: [user@localhost user]$ whoami.

Команды shell обычно выполняются группами, например, выполнение команды и проверка, выполнилась ли она. Выполним последовательно две команды; войдем в папку bin и выведем ее содержимое.

[root@localhost root]# cd/bin

[root@localhost bin]# ls -1

Файлы и процессы, являются центральными понятиями операционной системы UNIX (Linux, FreeBSD). Файловая подсистема управляет файлами, размещает записи файлов в отведенные для них места, управляет свободным пространством, доступом к файлам и поиском данных для пользователей.

Работа с файлами ведется с помощью команд. Команда представляет собой имя исполняемого файла (двоичного или текстового, так называемого скрипта, написанного на одном из специальных командных языков) или имя внутренней команды самого процессора. При активизации каждой такой команды операционная система создает процесс. Процессы взаимодействуют с подсистемой управления файлами и с аппаратными средствами, используя для этого совокупность специальных команд, таких как open (открытие файла на чтение или запись), close, read, write, stat (запросить атрибуты файла), chown (изменить запись с информацией о владельце файла) и chmod (изменить права доступа к файлу).

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

Любой запускаемый процесс по умолчанию будет выполняться как привилегированный (foreground). Это значит, что такой процесс постоянно связан с терминалом ЭВМ и делает невозможным выполнение еще каких-либо действий с системой, пока не завершится.

Фоновый процесс (background) после запуска освобождает терминал и позволяет перейти к другой задаче, не дожидаясь его завершения. Фоновая обработка наиболее пригодна для процессов, которые долго выполняются. Программы, выполняющиеся в виде фоновых процессов, называются демонами (daemon).

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

Для того чтобы узнать, какие процессы в данный момент существуют, используется команда ps: [root@localhost root]# ps. Опция а команды ps позволяет вывести сведения о процессах, включая и запущенные другими пользователями, опция х - вывести информацию о демонах. По этой команде сообщается идентификатор каждого процесса (PID). С помощью этих идентификаторов можно управлять только заданным, указанным процессом.

Прекращение работы привилегированного процесса производится нажатием на клавишу del во время его работы.

Для уничтожения фонового процесса используется команда kill. В качестве параметра в команде обязательно указывается список уничтожаемых процессов в виде перечисления их идентификаторов (pid).

Создание пустого файла производится с помощью знака >, перенаправляющего стандартный вывод с экрана в файл: [user@localhost user]$ > l.txt. Другой способ состоит в использовании команды touch: touch file1 file2 – в текущем каталоге создаются пустые файлы file1 и file2 (в командной оболочке bash).

В ОС Unix отсутствует такое понятие, как логическое устройство. При указании пути к файлу в Unix имя устройства не упоминается. Дерево каталогов Unix «растет» из одного корня. Корневой каталог имеет предопределенное имя / (слэш). Этот же символ применяется и для разделения подкаталогов. Полный путь к файлу в Unix выглядит следующим образом: /каталог1/каталог2/каталог3/.../файл.

Физически разные компоненты дерева каталогов Unix могут размещаться на разных дисках, но логически они принадлежат одной древовидной структуре с одним корневым узлом. Для объединения файловых систем различных устройств в одну структуру используется операция монтирования.

Сущность этой операции заключается в том, что каждое физическое устройство можно рассматривать, как свою собственную файловую систему (файловую систему устройства) с корневым каталогом /. Если этот раздел диска объявлен в операционной системе, как корневой раздел (root), его каталог становится корневым каталогом всей файловой системы (файловой системы ЭВМ). Файловые системы остальных устройств должны быть смонтированы в каталогах файловой системы ЭВМ.

Операция монтирования связывает корневой каталог монтируемого раздела (устройства) с выбранным каталогом файловой системы ЭВМ - точкой монтирования. В результате монтирования корневой каталог файловой системы устройства получает имя каталога.

Таким образом, для монтирования файловой системы устройства в файловой системе ЭВМ необходимо сначала в файловой системе ЭВМ создать каталог, который будет точкой монтирования, а затем соединить две файловые системы командой mount. Запуск этой команды без параметров позволяет просмотреть список смонтированных в данный момент файловых систем.

В операционной системе ASPLinux создан специальный каталог, содержащий точки монтирования. Его имя /mnt. В этом каталоге имеется подкаталог /mnt/floppy для монтирования в нем файловой системы гибкого диска, и каталог /mnt/cdrom для монтирования файловой системы компакт-диска. Пример: $ mount /mnt/cdrom – монтирует компакт-диск в каталог /mnt/cdrom (перед монтированием необходимо вставить компакт-диск в дисковод). Формат команды mount довольно сложен, но допускается упрощенное монтирование файловой системы Windows в ASPLinux: mount /dev/fd0.

После монтирования сменных носителей их нельзя извлекать из устройства без демонтирования файловой системы. Для этой цели служит команда umount, которая в упрощенном виде выглядит так: umount /dev/fd0.

При просмотре содержимого каталога вывод информации о файле начинается с кода, содержащего 10 символов: -rwxrwxrwx, или drwxrwxrwx, или lrwxrwxrwx.

Первый символ кода указывает тип файла: символ «-» означает, что это обычный файл, текстовый или двоичный, содержащий данные или программу; символ d указывает, что данный файл является каталогом; символ l указывает на то, что данный файл является символьной ссылкой.

Символы rwx определяют права доступа к файлу. Доступ к файлу могут иметь три категории пользователей: владелец файла, выделенная группа пользователей и остальные пользователи (не являющиеся владельцами файла и не входящие в выделенную группу). Всем им могут быть установлены следующие права: r - разрешено чтение файла; w - разрешена запись в файл; х - разрешен запуск файла на исполнение.

Эти права всегда перечисляются подряд в порядке: rwx. Если какое-либо право не предоставлено, вместо соответствующего символа ставится -. Например, r-- означает, что разрешено только чтение; -wx означает, что разрешены запись в файл и его исполнение.

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

Иногда указанные девять символов кодируются числом. Ключ к расшифровке цифрового кода приведен в следующей таблице.

Веса разрядов

4

2

1

4

2

1

4

2

1

r

W

X

R

W

X

R

W

X

1 цифра

2 цифра

3 цифра

Например, rwxr-xr-x кодируется числом 755.

4

2

1

4

2

1

4

2

1

R

w

X

R

-

X

r

-

X

1

1

1

1

0

1

1

0

1

4+2+1

4+0+1

4+0+1

7

5

5

В Unix, кроме указанных трех типов пользователей, есть еще «суперпользователь» (root), которому все разрешено. Поэтому, в принципе, может встретиться файл, любое обращение к которому запрещено всем, кроме суперпользователя. В этом случае права доступа к файлу закодированы числом 000 или кодовой комбинацией ---------.

Большинство команд UNIX имеют следующий формат: $ команда ключи параметры. Сначала идет имя команды, затем - ключи и параметры. Параметрами, как правило, являются имена файлов. Все ключи начинаются с дефиса. Например, команда $ ls -l a.out означает: «Выполнить команду ls с ключом -l для файла a.out».

Имена команд почти всегда приводятся строчными буквами; ключи обычно состоят из одной буквы (строчной или прописной). Если используется два и более однобуквенных ключа, большинство команд позволяют объединять их. Например, следующие две команды идентичны: $ ls -lg a.out и $ ls -1 -g a.out.

Некоторые ключи требуют наличия параметра. В этом случае параметр дается после ключа, причем последний нельзя объединять с другим ключом. Есть несколько команд, которые не соответствуют этим правилам. Ниже дается перечень наиболее употребительных команд.

Таблица

Команда

Назначение

man help

Выводит страницы диалогового руководства Online-Manual для указанной команды.

logout

Завершить сеанс работы с UNIX

passwd

Изменение пароля.

Who

Выводит информацию о пзарегистрированных пользователях.

whodo

Выводит список процессов, выполняемых пользователями системы.

Date

Текущая дата и время.

tty

Выводит имя терминала, на котором работает пользователь.

Id

Выводит UID и пользователя.

Ps

Выводит информацию о процессе.

kill

Посылает сигнал процессу и обычно используется для завершения процессов.

Sleep

Приостанавливает процесс.

&

Запуск процесса в фоновом режиме.

Bg

Переводит приостановленный процесс в фоновый режим.

Fg

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

Ls

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

rm файлы

Стереть (удалить) один или несколько файлов. Например, команда rm file1 file2 file3 удаляет три файла: file1, file2, file3. Команда rm -i перед удалением каждого файла просит Вас подтвердить свое намерение

mv старое-имя новое-имя

Переименовать (переместить) файл из старое-имя в новое-имя

ср файл1 файл2

Копировать файл1 в новый файл с именем файл2

more файл

Вывести текстовый файл на экран в постраничном режиме. Для вывода следующей страницы нужно нажать клавишу пробел.

Grep образец файл

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

Grep -i образец файл

Аналогична предыдущей команде, но регистр не учитывается: прописные и строчные буквы воспринимаются одинаково

pwd

Показать текущий каталог

сd каталог

Изменить текущий каталог

mkdir каталог

Создать новый каталог без файлов с именем каталог

rmdir каталог

Стереть (удалить) каталог с именем каталог. Этот каталог должен быть пуст, т.е. в нем не должно быть файлов

Man команда

Вывести на экран справку ОС UNIX по команде команда.

uuencode

окончательное-имя <файл>выходной-файл

Создать текстовую версию двоичного файла, годную для пересылки электронной почтой.

Окончательное-имя - это имя, которое файл получает после распаковки;

файл - имя кодируемого файла;

выходной-файл - закодированный файл, который подлежит отправке по электронной почте.

Символы > и < обозначают стандартный ввод и стандартный вывод

uudecode

закодированный-файл

Команда, обратная команде uuencode

compress файл

Сжать файл так, чтобы он занимал меньше места в памяти. В результате получается двоичный файл с тем же именем, что и исходный, и суффиксом .z.

Исходный файл удаляется.

Сжатый файл нельзя пересылать по электронной почте, т.к. он двоичный, но его можно преобразовать в текстовый командой uuencode.

Подобную же операцию в UNIX выполняет gzip

uncompress файл

Получить исходный файл из сжатого файла.

Подобную же операцию в UNIX выполняет gunzip.

tar

Эта команда предназначалась для создания архивов магнитных лент (tape archive), но используется и для создания архивов файлов (объединений, включающих несколько файлов). Подобные архивы встречаются в Internet. Примеры команды tar: $ tar cf file.tar list; $ tar tf file.tar; $ tar xf file.tar. В этих примерах file.tar - архив, созданный командой tar. В первых двух командах работа идет с архивом, полученным извне. В последнем случае мы сами создаём архив.

env

Список всех переменных окружения.

Set

Выводит содержимое переменных окружения.

export переменная=значение

Установка новых и изменение имеющихся переменных окружения.

chmod

Изменение права доступа к файлу/каталогу.

chown

Изменение владельца файла

Chgrp

Изменяет группу файла

Touch

Создание пустого файла

File

Выводит тип указанных файлов.

Cat

Просмотр содержимого файла.