Переназначение выхода и входа программ, программные каналы
Пензенский Государственный Университет
ОТЧЕТ
по контрольной работе № 1
по дисциплине "Операционные системы"
Тема: "Переназначение выхода и входа программ, программные каналы"
Пенза
Цель работы:
Познакомиться с особенностями загрузки операционной системы Linux в режиме терминала, входа в систему и регистрации пользователей, научиться выполнять переназначение файлов и использовать переназначения для работы командами операционной системы, ознакомится с применением программных каналов (конвейеров).
Лабораторные задания:
. Просмотреть страницу руководства по команде ls, выполнив команду вызова справочной системы man ls. Выполнить команду ls, которая позволяет просмотреть содержимое текущего каталога.
. Выполнить команду просмотра текущей даты и времени date.
. Запустить программу midnight commander, выполнив команду mc. Проанализировать содержимое текущего каталога и место каталога пользователя в смонтированной файловой системе. Проанализировать характер размещения файлов различного назначения в каталогах.
. Командой echo - n > имя файла создать файл. С помощью команд cat и ls просмотреть его содержимое и длину.
. Задействовав ряд ключей команды ls, получить результат, аналогичный представленному в примере с файлом spo. Объяснить значение каждого поля.
. Открыть файл в текстовом редакторе Набрать несколько осмысленных строк. Завершить работу с редактором.
. Просмотреть содержимое файла, используя команду cat. Повторно войти в редактор и изменить файл таким образом, чтобы количество строк в нем превышало 25 (число строк на экране). Вновь вывести файл на экран. Объяснить полученные результаты.
. Используя команду more, добиться поэкранного вывода файла. Объяснить полученные результаты.
. Командой mkdir <имя каталога> создать каталог. Скопировать туда созданный файл.
. Попытаться произвести повторное копирование. Объяснить полученные результаты. Используя опции команды cp, добиться результата.
. Скопировать в каталог тот же файл, указав в качестве приемника имя, отличающееся от старого лишь последним символом. Повторить операцию 4 раза.
. Командой cd <имя каталога> перейти в созданный каталог. Скопировать в домашний каталог 4 файла, используя разные виды масок (*,?, []). Необходимо каждый раз просматривать содержимое каталога командой ls - l. После каждого копирования удалять файлы в каталоге - адресате командой rm, используя необходимые ключи.
. Удалить все созданные файлы, используя команду rm <имя файла>. Во избежание удаления файлов, созданных другой бригадой, при выполнении этого пункта задания, запрещается пользоваться маской "*".
. После входа в систему в своем создать свой собственный рабочий каталог и перейти в него.
. Создать в рабочем каталоге подкаталог.
Создать пример текстового файла командой cat. Файл должен содержать несколько строк информации.
Создать файл с содержимым каталога. Просмотреть полученный файл.
. Используя программный канал, обработать результаты выполнения команды ls фильтром grep. Результат сохранить в файле.
Результаты выполнения команд
1. Если ввести команду man ls, то после нажатия Enter мы попадаем в утилиту man, которая выдает информацию о команде ls.
Описание команд в руководстве состоит из нескольких частей. Чаще всего их пятьЖ синопсис (синтаксис команды с указанием её опций и аргументов), описание, опции, файлы и перекрестные ссылки.
Ниже приводиться сокращенный вариант страницы руководства, посвященной команде ls:
LS (1)
НАЗВАНИЕ ls - выдача информации о файлах или каталогах
СИНТАКСИС[-R] [-a] [-d] [-C] [-x] [-m] [-l] [-n] [-o] [-g] [-r] [-t] [-u] [-c
[-p] [-F] [-b] [-q] [-i] [-s] [-f] [имя.]
ОПИСАНИЕ Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов - повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по алфавиту, однако сначала всегда идут файлы, а потом каталоги с их содержимым.
Существует три основных формата выдачи. По умолчанию выдается по одному файлу в строке; флаги - C и - x позволяют выдавать информацию в несколько колонок, а флаг - m задает свободный формат. Для определения формата вывода при указании флагов - C, - x и - m используется переменная окружения COLUMNS, значение которой равно количеству символов в выходной строке. Если эта переменная не установлена, используется база данных и значение переменной окружения TERM. Если эта информация недоступна, длина выходной строки берется равной 80.
В утилите man успользуется собственный набор команд для задания которых, как правило достаточно нажатия одной клавиши. Нажатие клавиши пробела или клавиши f выводит следующую страницу. Нажатие клавиши b выводит предыдущую. Нажатие q - выход из утилиты.
Теперь можно посмотреть содержимое текущего каталога.
[student/student] $ ls *
….. txt. …
[student/student] $ _
. С помощью команды date можно просмотреть текущие дату и время:
[student/student] $ dateSep 16 8: 21: 35 PDT 2002
[student/student] $ _
. В операционной системе Linux файлы организованы в виде древовидной структуры, называемой файловой системой. Корневой каталог дерева имеет имя "/". Имена всех остальных файлов содержат путь по дереву, начинающийся с имени главного каталога (абсолютное или полное путевое имя файла). При обращении к файлам текущего каталога можно использовать относительные имена, которые содержат имена файлов в самом текущем каталоге и путевые имена в каталогах, расположенных по дереву ниже текущего. В системе используются специальные имена для обозначения текущего каталога -"." и родительского каталога -".". Для упрощения работы можно использовать специальный символ "~". Этот символ обозначает абсолютное путевое имя начального каталога.
Особенностью операционной системы Linux является то, что все файлы в каталогах располагаются в соответствии со своими типами. Рассмотрим примеры размещения файлов в каталогах.
/bin - в этом каталоге размещаются файлы, реализующие команды и утилиты системы общего пользования.
/dev - этот каталог содержит специальные файлы являющиеся интерфейсом для доступа к периферийным устройствам.
/etc - здесь размещаются системные конфигурационные файлы и утилиты администрирования.
/lib - данный каталог служит для хранения библиотечных файлов систем программирования.
/mnt - стандартный каталог для временного связывания (монтирования) других файловых систем для получения единого дерева.
/home - каталог для размещения каталогов пользователей.
программный канал операционная система
/usr - здесь размещаются подкаталоги содержащие файлы различных приложений, их назначение также определяется типами файлов.
Интерфейс операционной системы представлен командным интерпретатором shell. В лабораторном практикуме будет использоваться командный интерпретатор Bourn shell.
. Команда echo иллюстрирует свои документы, представляя их в стандартный вывод. Но эту команду можно использовать для создания файла.
[student/student] $ echo - n > lesf1
Параметр - n do not output the trailing newline
Посмотреть содержимого созданного файла можно по команде cat:
[student/student] $ cat lesf1
….
[student/student] $ _
Размер файла можно узнать, выполнив команду ls с параметром - s - показать размеры файлов:
[student/student] $ ls - s lest1
….
[student/student] $ _
. Команда ls может выполняться со следующими ключами:
Командой ls обрабатываются следующие флаги:
-R Рекурсивно обойти встретившиеся подкаталоги. -a Вывести список всех файлов (обычно не выводятся файлы, имена которых начинаются с точки). -d Если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто используется с флагом - l для получения сведений о состоянии каталога. -C Вывод в несколько колонок с сортировкой по колонкам. -x Вывод в несколько колонок с сортировкой по строкам. -m Вывод в свободном формате, имена файлов разделяются запятыми. -l Вывод в длинном формате: перед именами файлов выдается режим доступа, количество ссылок на файл, имена владельца и группы, размер в байтах и время последней модификации (см. ниже). Если файл является специальным, то в поле размера выводится старший и младший номера устройства. -n То же, что и - l, но идентификаторы владельца и группы выводятся в виде чисел, а не в виде имен. -o То же, что и - l, но идентификатор группы не выводится. -g То же, что и - l, но идентификатор владельца не выводится. -r Изменить порядок сортировки на обратный алфавитный или, при наличии флага - t, сначала выводить более старые файлы. -t Имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие файлы). По умолчанию используется время последнего изм енения. См. также флаги - u и - c. -u Вместо времени последнего изменения использовать время последнего доступа для сортировки (с флагом - t) или для вывода (с флагом - l). -c Вместо времени последнего изменения использовать время последней модификации описателя файла (т.е. время создания файла, изменения режима доступа к нему и т.п.) для сортировки (с флагом - t) или для вывода (с флагом - l). -p Если файл является каталогом, то выдавать после его имени символ /. -F Если файл является каталогом, то выдавать после его имени символ /; если файл является выполняемым, то выдавать после его имени символ *. -b Выдавать непечатные символы, входящие в имя файла, в восьмеричном виде (\ddd). -q Выдавать непечатные символы, входящие в имя файла, в виде символа?. -i Выдавать в первой колонке номера описателей файлов. -s Выдавать размер файлов в блоках (включая косвенные блоки). -f Рассматривать каждый аргумент как каталог и выводить его содержимое. Этот флаг отменяет флаги - l, - t, - s, - r и включает флаг - a. Сортировка имен файлов не производится; имена выдаются в таком порядке, в каком они перечислены в каталоге.
[student/student] $ ed lesf2
После того как выведеться на экран сообщение о несуществующем файле и запрос на дальнейшие действие, вводим команду a означающее добавление текста, и вводим тест:
? afile is redacted and created from redactor ed.redactor use by OS Unix.: les, 99vp1, FVT, PGU
Для записи содержимого вводиться команда w, а для выхода из редактора - q.
. Для просмотра вводим команду:
[student/student] $ cat lesf2
This file is redacted and created from redactor ed.redactor use by OS Unix.: les, 99vp1, FVT, PGU
[student/student] $ _
Для добавления строк к этому файлу вводим команду
[student/student] $ ed lesf2Linux:Torvaldsome programers in the world.. Unix & ShellAgain Shellprocessors
- variant OS Unixof Linux begin from history of Unixis 13 string from added text from fileis - lesf2
(Ludmila Elena Svetlana File # 2)# 99vp1: September, 16: 08: 39regisreted as studentis 20 stringthis moment N string=N string+1this string number =22this textLES_podgrupp
[student/student] $ cat lesf2
После этой команды показываються только последние строки файла, так как вывод на экран произошел очень быстро. Во избежание этого можно использовать фильтр more.
. [student/student] $ cat lesf2 | more
После этой команды показываються первые строки файла, умещающиеся на странице:
This file is redacted and created from redactor ed.redactor use by OS Unix.: les, 99vp1, FVT, PGULinux:Torvaldsome programers in the world.. Unix & ShellAgain Shellprocessors
- variant OS Unixof Linux begin from history of Unixis 13 string from added text from fileis - lesf2
(Ludmila Elena Svetlana File # 2)# 99vp1: September, 16: 08: 39regisreted as studentis 20 stringthis moment N string=N string+1
-- - M O R E - -
Данная команда позволяет вывести файл на экран постранично. В данном случае конвейеризация воспринимает вывод одной команды и передает его другой (фильтру) в качестве ввода.
Таким образом, весь текст файла разбиваеться на страницы и ожидает нажатие клавиши пробела.
. Для создания каталога нужно выполнить следующую команду
[student/student] $ mkdir lesfile
[student/student] $ _
После этого копируем последний созданный файл в этот каталог.
[student/student] $ cp lesf2 lesfile/lesf2
10. Пытаемся скопировать этот файл еще раз в ту же директорию
[student/student] $ cp lesf2 lesfile/lesf2
Получаем сообщение о том, что там уже есть этот файл. С помощью опции cp выполняем операцию без сообщений об ощибке.
11. Скопируем в каталог тот же файл, указав в качестве приемника имя, отличающееся от старого лишь последним символом.
[student/student] $ cp lesf2 lesfile/lesf3
[student/student] $ cp lesf2 lesfile/lesf4
[student/student] $ cp lesf2 lesfile/lesf5
[student/student] $ cp lesf2 lesfile/lesf6
12. Командой cd Lesfile переходим в созданный каталог.
[student/student] $ cd Lesfile
[student/student] $ pwd
[student/student] $ _
Скопируем в домашний каталог файлы, используя разные виды масок (*,?, []).
Например, команда ср *f4 /home позволяет скопировать только файл lesf4.
[student/student] $ cp lesf* /home
[student/student] $ ls - l /home
99vp1 расширенный формат
lesf2
lesf3
lesf4
lesf5
[student/student] $ rm - i /home/lesf*/student] $ cp lesf [3-6] /home
[student/student] $ ls - l /home
99vp1 расширенный формат
lesf3
lesf4
lesf5
lesf6
[student/student] $ rm - i /home/lesf*/student] $ cp lesf? /home
[student/student] $ ls - l /home
99vp1 расширенный формат
lesf2
lesf3
lesf4
lesf5
[student/student] $ rm - i /home/lesf?
[student/student] $ ls - l /home
vp1 расширенный формат
. Удаляем созданные файлы следующей командой
[student/student] $ rm - ir /home/ 99vp1/les/les*
. Создаем новый рабочим каталог
[student/student] $ mkdir /home/lesdir
[student/student] $ cd /home/lesdir
[student/student] $ mkdir /home/lesdir/pdir
. Создаем текстовый файл командой cat
[student/student] $ cat > Unixfile. labmake new file on name Unixfile file content 2 string
^D
. Переопределим результат выполнения программы ls в файл
[student/student] $ ls - a > katalog. ls
[student/student] $ cat katalog. ls
[student/student] $ _
. Посмотрим сколько в этом каталоге файлов с расширением. ls.
[student/student] $ ls|grep 8. ls > filtr. ls
[student/student] $ cat filtr. ls. ls
[student/student] $ _
Выводы по результатам выполнения работы
В результате выполнения лабораторной работы мы
познакомились с особенностями загрузки операционной системы Linux в режиме терминала, входа в систему и регистрации пользователей,
познакомились со стандартными каталогами Linux,
загружали midnight commander,
ползовались утилитой man,
используя тексовый редактор ed, научились создавать, редактировать текстовые файлы,
изучили синтаксис команд и некоторые из них, такие как ls, cat, cp, rm, mkdir, pwd, и др.
научились выполнять переназначение файлов и использовать переназначения для работы командами операционной системы,
ознакомились с применением программных каналов (конвейеров).