Файл: Операционная система Linux предназначена для персональных компьютеров и рабочих станций.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 107

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Лабораторная работа №1

Ознакомление с рабочим столом ОС Linux и командным интерпретатором BASH

Рабочие столы Gnome и KDE Состав рабочих столов Gnome (GNU Network Object Model Invironment) и KDE (K Desktop) следующий: интерфейс состоит из панели задач, собственно рабочего стола и расположенных на нем пикторамм. Панель - длинная полоса внизу экрана, которая, однако, может находиться в любом удобном месте рабочего стола. На ней размещаются меню, программы и апплеты - небольшие программы, в основном стандартные и служебные, предназначенные для запуска с панели.На рабочем столе располагаются пиктораммы начального каталога, Web-браузера, корзины, а также прикладных программ и файлов на усмотрение пользователя. В верхнем левом углу на рабочем столе находится пиктограмма начального каталога, называемая Home Directory. При щелчке левой кнопкой мыши по этой пиктограмме откроется окно менеджера файлов. В левой его части расположено дерево каталогов, в правой - содержимое выбранного подкаталога. При входе открывается личный каталог пользователя в соответствии с его регистрационным именем.Рабочие столы поддерживают функции перемещения. Если перемещать файл или другой объект и нажимать на среднюю кнопку мыши или, если ее нет, на левую и правую кнопки одновременно, то на рабочем столе будет создаваться ссылка на первоначальный объект. Окна содержат кнопки увеличения/уменьшения, закрытия, свертывания на панель задач, иногда кнопку «закрепить», позволяющую закрепить окно в определённом месте экрана. Чтобы переместить окно, нужно щелкнуть мышью на строке заголовка и, не отпуская кнопки мыши, переместить окно в новую позицию. Двойной щелчок в строке заголовка уменьшает окно до размера строки заголовка, следующий двойной щелчок восстанавливает окно.Рабочие столы можно настраивать и оформлять в соответствии с выбранной темой. Размер рабочего стола превышает размер экрана монитора, в ОС Linux создаются виртуальные рабочие столы, на которые можно переключаться посредством специальной пиктограммы на панели задач. Рабочий стол может состоять из нескольких виртуальных столов, на которых можно расположить группы пиктограмм по темам.Рабочий стол Gnome является мощной и простой в использовании системной средой. Это основной графический интерфейс, поддерживаемый дистрибутивом Red Hat, но он также входит в большинство других распространенных дистрибутивов.Основные компоненты рабочего стола Gnome: функциональные средства, представленные пиктограммами, панель запуска программ, средства настроек. Обычно на рабочем столе присутствуют приложения, совместимые с Gnome: менеджер файлов Nautilus, Web-браузер Mozilla, менеджер окон, использующий базовуюсистему X Window. Слева на панели задач имеется кнопка с изображением ступни гнома, открывающая главное меню рабочего стола Gnome со списком задач, которые можно запустить, что реализовано подобно кнопке Пуск в ОС Windows. На панели можно установить ее автоматическое свертывание и развертывание. Возможно использование нескольких панелей на рабочем столе. Количество виртуальных рабочих столов по умолчанию устанавливается равным четырем. Пользователь на свое усмотрение может поместить на эти столы пиктограммы наиболее часто используемых приложений, файлов и каталогов.Если войти в основное меню на панели задач, изображаемое ступней гнома или красной шляпой, выбрать строку Programs, в следующем открывшемся меню - Office, далее - Офисные программы, то в этом меню можно найти текстовый редактор, который по функциям аналогичен программе Word под Windows, табличный редактор и программу презентаций. Наибольшее распространение получил набор офисных программ, называемый OpenOffice.org, являющийся бесплатным и доступным для копирования из Интернета.Рабочий стол KDE является универсальным рабочим столом и содержит менеджер окон, менеджер файлов, корзину, набор приложений. Рабочий стол KDE хорошо приспособлен для работы в Internet и имеет полный набор встроенных сетевых приложений: почтовую программу, программу чтения новостей, Web-браузер. Менеджер файлов устроен таким образом, что является клиентом FTP и Web, это дает возможность заходить на узлы Internet с рабочего стола.Интерфейс KDE схож с интерфейсом GNOME, но для выделения объекта нужно нажать на левую кнопку мыши одновременно с нажатием на клавишу Ctrl. А для запуска программы на выполнение нужно один раз нажать на левую кнопку мыши на требуемом файле, что соответствует в ОС Windows двойному нажатию левой кнопки мыши. Рабочий стол может состоять из 4 - 16 частей, на каждую из которых можно переключаться на специальной пиктограмме, расположенной на панели задач.Файловая структура ОС Linux Файловая структура ОС Linux – иерархическая структура каталогов, в которой размещена информация о файлах всей операционной системы. Дерево каталогов ОС Linux имеет один общийкорневой каталог для всей системы, обозначаемый знаком "слеш" (/) и включающий основные системные каталоги bin, boot, dev, etc, lib, lost+found, mnt, proc, sbin, pub, opt, tmp, var, usr. В версиях ядра ОС Linux могут быть небольшие различия в составе входящих каталогов. Kаталог bin содержит пользовательские команды и утилиты (примеры: cat, ls ,fgrep, mkdir, zcat); dev используется для специальных файлов, представляющих устройства; etc служит для хранения команд администратора системы; lib включает важные совместно используемые библиотеки и модули ядра; lost+found необходим дя быстрого восстановления системы после сбоев; media – для монтирования компакт-дисков и flash-накопителей; mnt - содержит каталоги для монтирования новых файловых систем и временных накопителей; proc - каталог процессов; opt - дополнительные приложения (например, GNOME, если установлено KDE); sbin содержит системные команды, включая команды привилегированного пользователя; tmp используется для хранения временных файлов; usr включает исходные коды, файлы и команды системы, документацию, содержащую пользовательскую информацию, новые программы, устанавливаемые по умолчанию; var - каталог, предназначенный для быстро изменяющихся файлов, в частности, файлов почтовых ящиков, системных журналов, протоколов приложений, очереей печати. В свою очередь эти каталоги могут содержать каталоги следующего уровня. Каталог usr включает подкаталоги: bin -хранение дополнительных команд; games - игры; include - хранение фрагментов системных программ; lib - хранение дополнительных библиотек. Полные имена файлов, как и в других ОС включают имена каталогов на пути к ним: /usr/bin, /usr/games, /usr/include, /usr/lib. Формальным признаком полного имени в ОС Linux и Unix является то, что оно начинается со знака "слэш", обозначаемого знаком (/). В качестве имени файла, как правило, может использоваться любая последовательность из букв, цифр и знаков подчеркиваний длиной до 255 символов. Могут применяться и другие символы, однако использование этих символов в имени требует специального экранирования. Старые файловые системы поддерживают длину имени файла четырнадцать символов (этого ограничения желательно придерживаться для переносимости файлов), однако в большинстве систем допускаются более длинные имена - до 256 символов. В общем случае расширения в именах файлов не являются обязательными. В ОС UNIX и ОС Linux прописные и строчные буквы воспринимаются как различные, например, Ivan, IVAN и ivan - это три различных имени.ОС UNIX и ОС Linux работают с файловой системой, а не с устройствами хранения информации, как это реализовано в ОС Widows и многих других ОС. Прежде чем считать информацию с внешнего устройства, его нужно смонтировать специальной командой mount, после чего подсоединенные файлы и каталоги становятся элементами файловой системы, и пользователь может обращаться к любым доступным файлам и каталогам, при этом в имени никак не отражается устройство, на котором файл (каталог) находится или создается. Отдельные части файловой системы могут находиться на различных физических устройствах, например, на нескольких жестких и гибких дисках (или в различных частях одного диска). Соответствующие фрагменты (поддеревья файловой системы) монтируются в единую файловую систему также командой mount. В ОС UNIX и ОС Linux имеется примерно 200 базовых команд - инструментальных средств, позволяющих пользователю решать многие проблемы, не прибегая к программированию на языках типа Си или использованию специальных пакетов. Основные типы файловых систем, поддерживаемые ОС Linux: ext2, ext3, swap, ReiserFS, JFS.Командный интерпретатор Командные интерпретаторы используют интерфейс командной строки. В начале строки появляется приглашение к работе, после которого можно вводить команду (рис.1).Большинство команд OC UNIX и OC Linux, выполняемых в командном интерпретаторе, можно выполнить из специальных утилит графического интерфейса, но не все, некоторые гораздо быстрее выполнить из КИ с заданием опций и параметров.Структура команды командного интерпретатора следующая:$ имя_команды опции параметрыПоявление приглашения к работе со знаком $ в конце приглашенияили знаком # зависит от того, с какими правами доступа зарегистрирован работающий в системе. Знак $ является приглашением к работе для пользователя, # - приглашение для системного администратора. Опция - однобуквенный код, перед которым стоит дефис, уточняет действия команды. После дефиса может быть указано несколько опций. Все последующие указываются без пробелов. Дефис обозначает, что после него и до знака пробела указаны опции. Для каждой конкретной команды опции и параметры могут быть обязательными или нет. Параметр - дополнительные данные для выполнения команды, часто это имя файла или каталога. Указанный порядок расположения компонентов структуры команды КИ обязателен для любых командных интерпретаторов.Пример 1. Команда ls выводит на экран протокол, состоящий из файлов текущего каталога. Опция l команды ls дает подробную информацию о файле. Чтобы вывести на экран подробную информацию обо всех файлах текущего каталога, следует набрать в командной строке:$ ls -l На экране появится протокол, фрагмент которого приведен ниже:drwxrwxr-x 2 root 2048 nov 3 12: 11 bindrwxrwxr-x 2 root 1024 jan 9 11:55 devdrw-r--r-- 3 root 4096 nov 17 12: 01 includedrwxr-xr-x 7 root 480 nov 17 12:30 libПример 2. Вывести подробную информацию об одном файле, например, о файле file1, находящемся в текущем каталоге:$ ls -l file1На экране появится протокол, состоящий из одной строки из одной строки, с подробной информацией о свойствах файла:drwxrwxr-x 2 ivan 8192 jan 9 11:55 file1Пример 3. Вывести подробную информацию о файлах каталога usr, пользователь при этом находится в корневом каталоге (рис.2):$ ls -l /usr Рис.2. Просмотр содержимого текущего каталога usr командой ls с опцией lПрава доступа к файлам и каталогам Каждому файлу или каталогу соответствует строка информации при выводе команды ls –l, как показано в примерах 1 и 2. Первый символ строки означает тип файла (d - каталог, знак "дефис"(-) - обычный файл). В каждой строке символы со второго по десятый описывают права доступа к файлам и каталогам, опеделенные для трех категорий пользователей: владельцев, членов группы, прочих пользователей. Каждая категория пользователей может иметь право на чтение, запись, выполнение файлов. В примере 2 дан потокол, в котором первая триада - права владельца, которая разрешает: r - чтение каталога, w - запись в него и х - выполнение, для файлов типа d (каталогов) w означает разрешение создавать в каталоге файлы и удалять их из него; вторая триада - rwx , предназначена членам группы, в которую входит владелец файла, для нее разрешены все три операции. Последняя триада r-x отражает права доступа прочих пользователей, которым разрешено только читать и выполнять файл, запрещено записывать в файл. Далее следует цифра 2, указывающая число cссылок на файл, что означает наличие в системе еще одного имени-ссылки, связанного с этим файлом; ivan - имя владельца, 8192 - число символов в файле, дата и время создания или последней модификации файла (9 января в 11 часов 55 минут); file1 - имя файла. Команды командного интерпретатора BASH и специальные символы Язык команд КИ ОС UNIX и ОС Linux часто называют shell, что в переводе с английского означает "скорлупа". Ниже приведены часто используемые команды.Справочник команд терминала man и общие команды. Команда man является справочником и содержит описание команд с их опциями и параметрами, так же приведены примеры использования команд. Если набрать в командной строке командного интерпретатора:$ man то откроется весь справочник, повключающий команды интерпретатора.Если указать имя команды, то можно получить справочную информацию об указанной команде:$ man <имя команды>Например, информацию о командном интерпретаторе BASH можно посмотреть следующим образом: $ man bash Информацию о команде даты и времени можно посмотреть так: $ man date Информацию о дате и времени можно посмотреть так: $ date Результатом будет строка с указанием дня недели, месяца, года, даты и времени.При задании команды в КИ можно указывать одну опцию или несколько. Например, чтобы показать подробную информацию обо всех файлах текущего каталога, включая скрытые файлы (опция а), в командной строке вводится: $ ls -alFПрописные и строчные буквы различаются и при указании опций. Таким образом, F и f являются разными опциями. Если опций несколько, то они пишутся подряд без пробелов, начиная со знака "дефис". Выполнение команды начинается после нажатия на клавишу [Enter]. Если команда запущена на выполнение ошибочно, отменить ее действие можно, используя нажатие клавиши [Ctrl+c] или [Del]. Если команда с ее опциями и параметрами оказалась длиннее строки, то для продолжения команды в следующей строке нужно ввести символ "обратный слеш" (\), потом [Enter], далее продолжать набор команды в следующей строке. Вместо символа "обратный слеш" может использоваться другой символ, если его задать в переменной командного интерпретатора, что описано ниже.Команда history. Командная строка представляет собой текстовый буфер ввода с возможностью редактирования. Если набрать команду с необходимыми опциями и параметрами до нажатия клавиши [Enter], текст можно отредактировать. Используя клавиши [Backspace] или [Del] можно удалить ненужные символы, а, включив режим вставки (клавиша [Insert]), можно вставить нужные символы, набрав их на клавиатуре. Перемещаться по тексту можно, используя клавиши стрелок влево и вправо (назад и вперед соответственно).Существует архив команд текущего сеанса работы, находящийся в файле history_list, благодаря которому можно повторять предыдущие команды. Используя клавишу , следует найти нужную команду из ранее выполненных в данном сеансе командного интерпретатора, отредактировать ее, если нужно, и, нажав клавишу [Enter], выполнить.Нажимая несколько раз клавишу , находим нужную команду. Если нужно вернуться по этому списку команд, нажимать клавишу.Список последних выполненных команд с их номерами можно просмотреть так же, воспользовавшись командой-утилитой:$ historyВыполнить команду из списка историй можно так: $ !№ где № - номер команды, полученный из списка history_list. Если № не указан, то имеется в виду последняя выполненная команда. Вместо № можно набрать несколько первых символов команды из списка команд, однозначно ее идентифицирующую. Попробуйте повторить одну из ранее выполненных команд, обратившись к ней по номеру из списка событий.Снятие блокировки (!). Эта команда используется, чтобы разрешить запись в уже существующий файл. Обычно по умолчанию установлена проверка на наличие существующих файлов и выдача на экран предупреждающего сообщения, но иногда файлы нужно перезаписывать в уже существующие. Тогда используется снятие блокировки. Например, файл f10 предположительно уже существует, но в него нужно записать содержиое файла file10, тогда удобна следующая запись:$ cat file10 >! f10Удобство более ощутимо, когда перезаписывается много файлов, поскольку просматривать, есть ли предыдущие версии, и потом удалять их дольше, чем поставить знак ! в вышеуказанной команде.Путевое имя ‑ это полное имя файла с учетом каталогов, начиная с домашней директории пользователя, включает последовательно имена всех каталогов, ведущих к текущему. Иначе имя называется относительным. При входе в систему пользователь оказывается в определенной заранее вершине дерева файловой системы. Обычно это /home или /home/имя_пользователя, иногда используется каталог /usr. Путевое имя для суперпользователя root - путь от корневого каталога в текущий каталог. Команда pwd сообщает местоположение пользователя в файловой системе. С ее помощью выводится полное имя текущего каталога. $ pwdКоманды создания и удаления каталогов. Команда предназначена для создания каталогов в любой вершине файловой структуры при наличии прав доступа и имеет следующий синтаксис:$ mkdir <имена создаваемых каталогов>Например, для создания в текущем каталоге двух новых каталогов с относительными именами k1 и k2, нужно выполнить команду:$ mkdir k1 k2Для удаления пустых (не содержащих файлов и каталогов) каталогов используется команда rmdir, имеющая структуру:$ rmdir <имена удаляемых каталогов> Удалить обычный файл можно командой:$ rm <имена удаляемых файлов>Чтобы просмотреть содержимое рабочего (текущего) каталога со всеми его подкаталогами (рис.3): $ ls –R Рис.3. Просмотр содержимого текущего каталога. Рабочий стол GNOMEВыводится писок файлов и подкаталогов в текущем каталоге с указанием имен подкаталогов, после их имени ставится знак "слеш" (/).Перемещение по каталогам. Чтобы перейти в другой каталог, используется команда сd:$ cd <каталог>Этот символ можно также использовать при копировании или перемещении, указав каталог на один уровень выше, чем текущий.Пример 1. Находясь в корневом каталоге, можно перейти в каталог /usr/lib, набрав команду:$ cd /usr/lib Указано полное имя каталога /usr/lib. Если пользователь находится в каталоге usr, то указывается относительное имя: $ cd libПример 2. Команда cd без параметров осуществит переход в начальный каталог пользователя, т.е. в каталог, в котором пользователь оказывается при входе в систему: $ cdКопирование файлов и каталогов выполняется командой cp, причем последнее указанное в строке КИ имя считается именем каталога, в который нужно скопировать файлы. Общая структура команды:$ cp <полное_имя_файла/имя_каталога,_которые_копируются> <полное_имя_файла/имя_каталога,_куда_копируется>Команда cp имеет следующие основные опции:-r - используется при копировании подкаталога из одного каталога в другой. Копирование выполняется со всеми подкаталогами, входящими в копируемый подкаталог.-i - проверка, существует ли уже файл (каталог) с таким именем, в месте, указанном для копирования. Полное имя можно не указывать, если действия выполняются в текущем каталоге, что в общем виде представлено структурой:$ cp <имя_файла> имя_каталога/новое_имя_файла>Пример 3. Копирование файла file1 из каталога dx в каталог user в файл file2, каталоги dx и user лежат в текущем каталоге:$ cp dx/file1 user/file2 ,Пример 4. $ cp file1_katal/file11Здесь katal - каталог, находящийся в текущем каталоге. Можно использовать и такую форму записи, но тогда имя нового файла в каталоге katal будет как и исходное, file1:$ cp file1 katalПример 5. Можно копировать несколько файлов в каталог:$ cp <имена_файлов> <имя_каталога>,$ cp file1 file2 katalЧтобы скопировать все файлы текущего каталога в указанный каталог katal2 (сохранив также старые файлы) для указания нескольких символов используется знак “*”, следует выполнить:$ cp *.* katal2Пример 6. Чтобы скопировать все файлы с заданным расширением:$ cp *.cpp katal3Перемещение файлов и каталогов выполняется командой mv. Синтаксис команды аналогичен синтаксису команды cp. Общая структура команды:$ mv <имя_файла/каталога> <имя_файла/каталога>Пример 7. Чтобы файлу file1 присвоить имя file5, следует выполнить команду:$ mv file1 file5Опции -r- и -i команды mv имеют назначение, как и в команде cp.Знак "тильда". При выполнении команд, использующих файлы и каталоги, иногда требуется указывать полный путь к файлу или каталогу. Для сокращенной записи используется знак "тильда" ().Пример 8. Использование знака "тильда".$ cp file1 /katal1$ mv file1



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

Итак, чтобы откомпилировать мультифайловую программу, надо сначала добыть объектный код из каждого исходного файла в отдельности. Каждый такой код будет представлять собой объектный модуль. Каждый объектный модуль записывается в отдельный объектный файл. Затем объектные модули надо скомпоновать в один бинарник.

В Linux в качестве линковщика используется программа ld, обладающая приличным арсеналом опций. К счастью gcc самостоятельно вызывает компоновщик с нужными опциями, избавляя нас от "ручной" линковки.

Попробуем теперь, вооружившись запасом знаний, написать мультифайловый Hello World. Создадим первый файл с именем main.c:
/* main.c */
int main (void)

{

print_hello ();

}
Теперь создадим еще один файл hello.c со следующим содержимым:
/* hello.c */

#include
void print_hello (void)

{

printf ("Hello World\n");

}
Здесь функция main() вызывает функцию print_hello(), находящуюся в другом файле. Функция print_hello() выводит на экран заветное приветствие. Теперь нужно получить два объектных файла. Опция -c компилятора gcc заставляет его отказаться от линковки после компиляции. Если не указывать опцию -o, то в имени объектного файла расширение .c будет заменено на .o (обычные объектные файлы имеют расширение .o):
$ gcc -c main.c

$ gcc -c hello.c

$ ls

hello.c hello.o main.c main.o

$
Итак, мы получили два объектных файла. Теперь их надо объединить в один бинарник:
$ gcc -o hello main.o hello.o

$ ls

hello* hello.c hello.o main.c main.o

$ ./hello

Hello World

$

Компилятор увидел, что вместо исходных файлов (с расширением .c) ему подбросили объектные файлы (с расширением .o) и отреагировал согласно ситуации: вызвал линковщик с нужными опциями.

Чтобы понять, что произошло, воспользуемся утилитой nm. Объектные файлы содержат таблицу символов. Утилита nm как раз позволяет посмотреть эту таблицу в читаемом виде. Те, кто пробовал программировать на ассемблере знают, что в исполняемом файле буквально все (функции, переменные) стоит на своей позиции: стоит только вставить или убрать из программы один байт, как программа тут же превратиться в груду мусора из-за смещенных позиций (адресов). У объектных файлов особая роль: они хранят в таблице символов имена некоторых позиций (глобально объявленных функций, например). В процессе линковки происходит стыковка имен и пересчет позиций, что позволяет нескольким объектным файлам объединиться в один бинарник. Если вызвать nm для файла hello.o, то увидим следующую картину:

$ nm hello.o

U printf

00000000 T print_hello

$
О смысловой нагрузке нулей и литер U,T мы будем говорить при изучении библиотек. Сейчас же важным является то, что в объектном файле сохранилась информация об использованных именах. Своя информация есть и в файле main.o:
$ nm main.o

00000000 T main

U print_hello

$

Таблицы символов объектных файлов содержат общее имя print_hello. В процессе линковки высчитываются и подставляются в нужные места адреса, соответствующие именам из таблицы. Вот и весь секрет.
$ gcc progr1

gcc: no input files

$

Настройка командного интерпретатора
с помощью специальных переменных


В ОС Linux есть специальные переменные интерпретатора, с помощью которых осуществляется настройка интерпретатора пользователя. Часть из них определяет система при регистрации пользователя, а остальные пользователь может определить сам, изменив установленные системой по умолчанию.

Автоматическое определение специальных переменных осуществляется специальными сценариями командного интерпретатора, которые называются файлами инициализации. При запуске КИ выполняются соответствующие файлы инициализации. При каждой регистрации пользователя в системе, включающей КИ BASH, выполняется файл инициализации .bash_profile командного интерпретатора BASH. В этом файле содержатся определения специальных переменных и значения для них. Их можно изменить, редактируя файл или выполняя специальные команды из КИ BASH. Редактировать файлы инициализации имеет право системный администратор, а изменить специальные пользовательские переменные может пользователь из командной строки. К таким переменным относятся: HOME, SHELL, PATH, PS1, PS2, MAIL.

HOME ‑ содержит путевое имя начального каталога пользователя;

SHELL ‑ содержит путевое имя программы для того типа интерпретатора, в котором регистрируется пользователь;

PATH ‑ содержит перечень каталогов, в которых выполняется поиск команд Linux;

PS1 ‑ содержит основные символы приглашения к работе, показываемые в командной строке;

PS2 ‑ содержит дополнительный символ приглашения, который используется для команд, состоящих из нескольких строк;

MAIL ‑ содержит путевое имя файла почтового ящика.

Значения указанных переменных можно просмотреть, набрав в командной строке:

$ echo $имя_переменной, например: $ echo $MAIL

Значения указанных переменных можно изменить, присвоив им новые значения. При этом можно использовать заранее определенный набор кодирующих символов: \w - показать текущий рабочий каталог, \u - показать имя пользователя, \t - показать время или \! - номер события в хронологическом списке, например:

$ PS1="ваш текст\u\w $",

$ PS1="\t\u ->",

$ PS2="@"

Команда сортировки sort


Команда sort предназначена для сортировки строк текстовых файлов по алфавиту. Для изучения команды sort выполнить:

Задание 1. 1. Войти в свой рабочий каталог (если Вы начали работу, то в нем окажетесь автоматически) и создать новый файл spisok, состоящий из 10 - 15 непронумерованных строк, т.е. имитирующий список каких-либо объектов, например фамилий.

Задание 2. Отсортировать список в алфавитном порядке и вывести на экран ( | - обозначение так называемого программного канала - передача выходных данных команды на вход следующей команды):

$ sort spisok | cat

что аналогично выполнению последовательности двух команд:

$ sort spisok

$ cat spisok

При этом содержимое файла spisok не изменяется, а на экране воспроизводится отсортированный файл.

Задание 3. Отсортировать файл в обратном порядке (опция -f или –r команды sort), пронумеровать строки и вывести на стандартное устройство вывода - экран (опция -n команды cat), результат записать в новый файл spisok1 (> - перенаправление стандартного вывода в файл или на устройство).

$ sort spisok | cat -n > spisok1

Задание 4. Вывести на экран содержимое файла spisok1 и записать в файл spisok2 с использованием перенаправления стандартного ввода-вывода, следующим образом:

$ cat < spisok1 > spisok2


Контрольное задание


Изучите элементы рабочего стола, который Вы увидели после входа в систему. Просмотрите файловую структуру ОС Linux в графическом режиме. Удобно войти в нее через ярлык home directory, расположенный на рабочем столе или запустить из главного меню программу Nautilus (рабочий стол GNOME) или Konquerror (рабочий стол KDE).

Просмотрите содержимое основных каталогов, доступных пользователю для чтения: bin, dev, etc, lib, mnt, tmp, var. Из каталога usr скопируйте 2 файла в Ваш рабочий каталог.

Запустите окно терминала и выполните команды определения путевого каталога, просмотра списка файлов и каталогов текущего каталога и выбранных Вами из файловой структуры. Используйте разные опции команды ls.

Используя текстовые редакторы vi, vim, gvim, gedit и команду cat, создайте по одному файлу в каждом из перечисленных текстовых редакторов, установленных в Вашей системе. Созданный в одном редакторе файл отредактируйте в другом (можно выбрать вариант: текстовый и графический редакторы).

Составьте файловую структуру, имеющую три уровня вложения и содержащую 5 - 6 созданных Вами файлов, расположив их в каталогах разных уровней. Выполните это задание в режиме консоли, в качестве примера используйте пример, представленный в конце работы. Cоздавая структуру, проверяйте результаты командой ls с различными опциями.

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

Используя архив команд history_list, повторите несколько команд на выбор. Проверьте возможность редактирования этих команд.

Настройте командный интерпретатор с помощью специальных переменных по-другому, используя описанные выше кодирующие символы.

Изучите программу Midnight Commander. Ее запуск осуществляется из окна терминала: $ mc. Создайте подкаталог в Вашем рабочем каталоге и запишите в него 2 - 3 файла.

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

Выполните следующие команды, используя свои файлы и каталоги (перемещения по каталогам отслеживать самостоятельно):

1. Сравнение двух файлов посимвольно: $ cmp f1 f2

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


2. Проверка: файл или директорий? $ file f1 k2

В результате выводится информация:

f1 : text

k2 : directory

3. Просмотр содержимое текущего каталога другим способом: $ ls -F

Результат выполнения команды: f1 k2/

4. Просмотр файла по байтам

$ od - опция

Возможные опции:

-с - в символьном формате

-d - в десятичном формате

-o - в шестнадцатеричном формате

-x - значения байтов в восьмеричном формате

5. Запись в файл и на стандартный вывод (терминал или экран):

$ tee file1

6. Использование различных опций в команде more, удобной для просмотра больших файлов. Просмотреть содержимое указанных файлов (без опций): $ more f1 f2 f3 f4, здесь f1, f2, f3, f4, - имена файлов.

Использование команды more с различными опциями:

Показать содержимое файла file1, начиная с четвертой страницы:

$ more +4 file1

Пропуск пяти страниц вперёд: $ more 5 file1

Пропуск двух страниц назад: $ more - 2 file1

Прокрутка содержимого файла по полстраницы: $ more d file1

Просмотр опций команды more: $ more h

q - выход из команды-утилиты more.

7. Копирование файла f1 в другой файл f5 с проверкой: существует ли уже файл f5?

$ cp -i f1 f5

Если файл f5 уже существует, то на экране появляется сообщение: overwrite f5? (перезаписать файл f5?) требуется ответить: n - если не перезаписывать; y - если перезаписывать вместо предыдущего файла f5.

8. Аналогично, опция i используется для команды перемещения и удаления:

$ mv -i f3 f4
(здесь будет выведено подтверждение на перемещение файлов f3 и f4)

9. $ rm -i f5 (будет выведено подтверждение на удаление файла f5).

10. Изучить команды head и tail, дающие возможность просмотреть первые или последние несколько строк файла (по умолчанию выводятся первые 10 строк файла), используя соответственно:

$ head имя_файла и $ tail имя_файла

Лабораторное задание
и порядок выполнения работы


Изучить материал, выполняя примеры и задания