скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Практическая работа по предмету UNIX

ls /usr/bin

(большая часть этих файлов сохранена в двоичном формате). Есть особые команды называемые скриптами shell. Скрипт shell – это файл, который содержит вызов одной или нескольких команд. Запуск скрипта shell приводит к выполнению этих команд (такие файлы хранятся в ASCII – формате). Наберите, к примеру, команду

whereis cal

она определит местонахождение файла cal. На самом деле это маленький скрипт. Вы можете увидеть его содержание, напечатав

cat /usr/bin/whereis

Любой файл является выполняемым, если после ввода его имени и нажатия клавиши ENTER, что-нибудь будет выполняться в системе.

4.    Файлы устройств

Кроме вышеназванных, существуют также специальные файлы устройств.

Вы помните, что в отличие от DOS, все, с чем работает UNIX, является файлом. Поэтому в UNIX и любое специальное устройство представлено файлом, который используется при обращении к этому устройству (т.е. доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства). Например, в UNIX параллельный порт (куда обычно подсоединяется принтер) называется /dev/lp. Это означает что в каталоге dev существует файл lp. И когда Вы посылаете файлу lp информацию, то она не сохраняется на жестком диске, а отправляется на принтер.

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

Специальные файлы устройств содержатся в каталоге /dev. В UNIX различают символьные (character) и блочные (block) файлы устройств. Символьные файлы устройств используются для небуферизованного обмена данными с устройством, в противоположность этому блочные файлы позволяют производить обмен данными в виде пакетов фиксированной длины - блоков. Доступ к некоторым устройствам может осуществляться как через символьные, так и через блочные специальные файлы.

Чтобы просмотреть список специальных файлов устройств, введите

ls /dev

Блочными файлами представлены, например, жесткие диски, а символьными - терминалы и принтеры. Если Вы введете команду

ls -l /dev

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

5.    Файлы связей. Создание файлов связей.

1.5.1. Жесткие связи.

UNIX позволяет одному физическому файлу иметь несколько имен в файловой системе. Заметьте, что имя файла является атрибутом файловой системы, а не набора данных на диске, который не имеет имени как такового; а имеет связанные с ним метаданные, содержащие все характеристики файла и позволяющие операционной системе выполнять открытие, прочтение, запись данных, создание или удаление файла. Связь имени файла с его данными называется жесткой связью. Для создания жесткой связи используют команду ln. Например, для создания еще одного имени (second) файла, на который уже указывает имя first используют команду

ln first second

Жесткие связи абсолютно равноправны. Доказательством этого служит то, что при использовании команды

ls -l

атрибуты файлов first и second first будут абсолютно одинаковыми.

Хотя с точки зрения пользователя это два разных файла, изменения внесенные в каждый из этих файлов затронут и другой, ведь имена ссылаются на одни и те же данные файла. Вы можете переместить один из файлов в другой каталог - все равно они будут связаны жесткой связью с данными файла. Легко проверить, что удаление одного из файлов first, second не приведет к удалению самого файла; для этого нужно удалить все связи. Информацию о наличии у файла нескольких имен, связанных с ним жесткими связями можно получить из списка файлов, который выдает команда ls -l:

-rw-r--r-- 2 andrei stuff 7245 Jan 17 8:05 second

-rw-r--r-- 2 andrei stuff 7245 Jan 17 8:05 first

Во второй колонке списка указывается число жестких связей каждого файла.

Жесткая связь является естественной формой связи имени файла с его данными и не принадлежит к особому типу файла.

Однако давайте все же создадим жесткую связь к файлу . profile (проверьте его наличие в текущем каталоге командой ls, а в случае отсутствия выберите любой из существующих файлов):

ln . profile pr1

Команда

ls -l

убедит Вас, что Вы создали жесткую связь - в списке файлов текущего каталога две строки (.profile и pr1) отличаются лишь названиями файлов.

Попробуйте использовать опцию -v команды ln. Она выводит на экран сообщение о том, что делает команда ln

ln -v .profile pr2

В этом случае результатом работы опции -v будет строка:

ln .profile pr2

означающая, что создана связь pr2 к файлу .profile. А вот, если Вы еще раз введете эту же команду (ln -v .profile pr2), сообщение опции -v будет иным:

ln .profile pr2: File exists

Оно означает, что файл pr2 уже существует.

В том случае, если Вы указываете в качестве имени файла связи имя уже существующего файла, то связь создана не будет. Убедитесь в этом, набрав следующие команды:

ln .kermrc pr2

(Вы хотите создать файл связи pr2 к файлу .kermrc). Но система тут же выдает Вам сообщение

ln .kermrc pr2: File exists

(Файл существует).

ls -l

показывает, что pr2 по-прежнему является жесткой связью к файлу .profile.

1.5.2. Символические связи.

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

Команда ln -s создает символическую ссылку на указанный файл. Например, команда

ln -s first symsecond

создает для файла first файл символической связи symsecond. Сравнить созданные файлы поможет команда ls -l

-rw- r- - r - - 2 andrei stuff 7245 Jan 17 8:05 second

-rw- r- - r - - 2 andrei stuff 7245 Jan 17 8:05 first

lrwxrwxrwx 1 andrei stuff 6 Jan 17 8:05 symsecond /first

Как Вы видите, файл symsecond (символьная связь) существенно отличается от файла second (жесткая связь). Во-первых, фактическое содержание файла symsecond отнюдь не то же, что и у файла first или second, об этом говорит размер файла байт - ровно столько, сколько занимает имя файла, на который символическая связь ссылается. Во-вторых, файл symsecond не имеет никаких ограничений на доступ - очевидно права доступа к файлу символической связи определяются правами доступа к файлу, на который он ссылается (в нашем примере правами файла first). Также строка файла символьной связи содержит указатель на тип файла (l) в начале строки и имя файла, на который данный файл ссылается. Кроме всего прочего система работает с файлами символьных связей не как с обычными файлами. Например, при выводе на экран содержимого файла symsecond появятся данные файла first.

У команды ln в системе MINIX к сожалению нет опции -s, создающей символическую связь, но зато есть опция -r, которая позволяет создавать жесткие связи к каталогу и всем его файлам и подкаталогам. Об этой опции мы поговорим позже, когда научимся создавать каталоги.

2.    Получение информации о файлах.

1.    Как узнать тип файла.

UNIX позволяет выяснить тип файла командой file. Она сообщит Вам, является ли файл выполняемым (executable), файлом ASCII, файлом данных и т.д. Однако обратите внимание, что Вы находитесь в корневом каталоге, и команда file требует указания полного имени файла. Если Вы введете неполное имя файла (без указания пути к нему), то команда выполнена не будет, система сообщит Вам cannot start (не могу начать).

Например: 1) file /usr/bin/clr

1.    file /clr

clr: cannot start

2.    file /usr

Существует и другая возможность узнать тип файла. Вы уже встречались с командой ls (Вспоминайте, что делает эта команда?) и даже использовали опцию этой команды. Оказывается, у команды ls есть множество полезных опций (посмотрите в man page) и среди них – опция -F, которая позволяет получить информацию о типе файла. Чтобы увидеть, как она работает, введите следующую командную строку:

ls -F /

В выведенном на экран списке файлов и каталогов после их имен появились новые значки – это проделки опции -F.

Давайте разберемся с их значениями:

/ наклонная черта указывает на каталог,

* означает выполняемый файл,

@ означает файл связи,

если значок отсутствует, то это обычный файл (к таким файлам относятся текстовые файлы, бинарные данные, исполняемые программы – в общем, те файлы, содержимое которых интерпретируется прикладной программой, обрабатывающей файл).

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

file /.exrc

file /rty

Другoй пример использования опции –F :

ls -F /usr/bin/

1.    Как получить полную информацию о файле.

Но самую полную информацию о файлах дает опция -l все той же команды ls (Вы с ней уже встречались, так что вспоминайте).

Опция -l показывает тип файла (файл (-), каталог (d) или ссылка (l), символьный файл устройства(c), блочный файл устройства (b)), права, число жестких связей, владельца, группу, размер, дату последнего изменения (или создания) и в том случае, если это символьная связь, отображает имя связанного файла. Попробуйте ввести:

ls -l /

ls -l /dev

1.    Каталоги и подкаталоги.

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

Таким образом, каталог – это файл, содержащий имена находящихся в нем файлов.

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

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

Возвращаясь к примеру с письмами, Вы можете в Вашем основном каталоге организовать подкаталоги, в каждый из которых будете заносить корреспонденцию лишь для одного адресата. Где Вы скорей найдете нужный файл среди нескольких файлов или среди нескольких десятков файлов?

1.    Просмотр имеющихся каталогов.

Думаю, что Вы уже согласились с удобством такой системы. Но ведь кроме создаваемых Вами файлов в UNIX уже существует множество различных файлов. Как организованы они? Какие файлы в каких каталогах находятся?

Вы уже встречались с командой UNIX ls (означает list – список). Эта команда позволяет вывести на экран список файлов и подкаталогов текущего каталога. Попытайтесь ввести следующие команды:

ls

на экране появится список файлов и подкаталогов текущего каталога.

ls /bin

·     список файлов и каталогов каталога /bin.

Если Вы используете опцию -а, то на экран будет выведено больше файлов. В этом случае будут выведены и файлы, имена которых начинаются с .

ls

·     список всех файлов и каталогов текущего каталога.

ls –а /bin

·     список всех файлов и подкаталогов каталога /bin.

ls /

·     список всех файлов и каталогов корневого каталога (наклонная черта "/" используется для обозначения корневого каталога).

Другая полезная команда – cd (change directory). Она позволяет изменять текущий каталог.

сd /bin

·     теперь Вы находитесь в каталоге /bin.

Если Вы ошибетесь и неправильно укажете имя каталога

сd bin

то на экране появится надпись

сd: can’t cd to bin

(система не может изменить текущий каталог на каталог bin).

Эти две команды дают возможность исследовать файловую систему. Давайте введем следующие команды:

cd /

корневой каталог станет текущим.

ls

на экране появится список всех файлов и подкаталогов корневого каталога.

cd bin

каталог /bin станет текущим.

ls -a

на экране появится список всех файлов и каталогов каталога /bin.

cd /dev

каталог /dev станет текущим.

ls

на экране появится список файлов и подкаталогов каталога /dev.

cd

команда cd возвратит Вас в Ваш личный каталог (Вы ведь регистрировались при входе систему, поэтому UNIX знает, кто Вы и где находится Ваш личный каталог).

1.    Создание каталогов.

Итак, Вы находитесь в Вашем личном каталоге. Здесь Вы полный хозяин в отличие от других каталогов, где Ваше неосторожное вмешательство может все испортить. Поэтому попробуем создать новый каталог именно в Вашем личном каталоге.

Для создания каталога используется команда mkdir. Предположим, что Вы хотите создать каталог myficat , тогда Вам следует напечатать

mkdir myficat

и нажать клавишу ENTER. Чтобы убедиться в том, что каталог действительно создан, воспользуйтесь уже хорошо известной Вам командой ls. (Введите ls). Среди файлов и подкаталогов Вашего личного каталога Вы должны найти имя myficat.

Сейчас, когда Вы создали свой первый каталог, давайте сделаем его текущим и создадим еще несколько. Очевидно, что они будут являться подкаталогами Вашего каталога myficat.

Для этого введите следующие команды:

cd myficat

каталог myficat станет текущим;

mkdir myfpc

будет создан подкаталог myfpc;

mkdir myspc

будет создан подкаталог myspc;

mkdir mytpc

будет создан подкаталог mytpc.

А чтобы убедиться, что подкаталоги созданы, введите команду ls.

Теперь пришло время вспомнить опцию -r команды ln. Вы уже создали свой собственный каталог myficat и его подкаталоги myfpc, myspc, mytpc. Давайте в каталоге mytpc создадим файл vrem:

cd mytpc

date > vrem

и используем опцию -r команды ln для создания жестких связей к каталогу myficat, его подкаталогам и файлу.

cd

ln -vr myficat mfc

Т.к. Вы использовали и опцию -v, то на экране появились строки, поясняющие, что сделала команда ln:

mkdir mfc

mkdir mfc/myfpc

mkdir mfc/myspc

mkdir mfc/mytpc

ln myficat/mytpc/vrem mfc/mytpc/vrem

Во-первых, она создала каталог mfc. В этом каталоге создала подкаталоги с теми же именами, что и в каталоге myficat (т.е. в том каталоге, к которому создается связь). И, наконец, создала жесткую связь к файлу vrem, находящемуся в подкаталоге mytpc, в новом подкаталоге mfc/mytpc опять же используя его прежнее имя.

Команда

ls -l

показывает, что новый каталог mfc создан и ничем не отличается от каталога myficat.

Страницы: 1, 2, 3, 4, 5


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.