unix (664284), страница 4
Текст из файла (страница 4)
В выведенном на экран списке файлов и каталогов после их имен появились новые значки – это проделки опции -F.
Давайте разберемся с их значениями:
/ наклонная черта указывает на каталог,
* означает выполняемый файл,
@ означает файл связи,
если значок отсутствует, то это обычный файл (к таким файлам относятся текстовые файлы, бинарные данные, исполняемые программы – в общем, те файлы, содержимое которых интерпретируется прикладной программой, обрабатывающей файл).
Попробуйте для обычных файлов использовать команду file
file /.exrc
file /rty
Другoй пример использования опции –F :
ls -F /usr/bin/
-
Как получить полную информацию о файле.
Но самую полную информацию о файлах дает опция -l все той же команды ls (Вы с ней уже встречались, так что вспоминайте).
Опция -l показывает тип файла (файл (-), каталог (d) или ссылка (l), символьный файл устройства(c), блочный файл устройства (b)), права, число жестких связей, владельца, группу, размер, дату последнего изменения (или создания) и в том случае, если это символьная связь, отображает имя связанного файла. Попробуйте ввести:
ls -l /
ls -l /dev
-
Каталоги и подкаталоги.
Вы помните, что все, с чем работает UNIX, – это файлы. Очевидно, что и с такой системой было бы очень трудно работать из-за невозможности быстро выбрать требуемый файл или просмотреть список файлов. Для решения этих проблем используют каталоги. Каталоги - это специальные файлы, которые существуют лишь для организации файлов - с их помощью формируется логическое дерево файловой структуры.
Таким образом, каталог – это файл, содержащий имена находящихся в нем файлов.
При организации Ваших файлов в каталоги легче найти нужную информацию. Ведь, если у Вас создан каталог, к примеру, для писем, то при поиске нужного письма, Вам не придется просматривать сотни системных, а также созданных Вами файлов, содержащих совсем иную информацию, достаточно просмотреть лишь этот каталог с письмами.
Более того, Вы можете помещать большое количество каталогов внутри каталога. В этом случае они называются подкаталогами. Подкаталоги позволяют еще более упростить поиск файлов, разбивая их на более мелкие порции.
Возвращаясь к примеру с письмами, Вы можете в Вашем основном каталоге организовать подкаталоги, в каждый из которых будете заносить корреспонденцию лишь для одного адресата. Где Вы скорей найдете нужный файл среди нескольких файлов или среди нескольких десятков файлов?
-
Просмотр имеющихся каталогов.
Думаю, что Вы уже согласились с удобством такой системы. Но ведь кроме создаваемых Вами файлов в 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 знает, кто Вы и где находится Ваш личный каталог).
-
Создание каталогов.
Итак, Вы находитесь в Вашем личном каталоге. Здесь Вы полный хозяин в отличие от других каталогов, где Ваше неосторожное вмешательство может все испортить. Поэтому попробуем создать новый каталог именно в Вашем личном каталоге.
Для создания каталога используется команда 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.
-
Дерево каталогов.
Вы, наверное, уже поняли, как организована файловая система UNIX (подобную файловую структуру имеют большинство операционных систем, в т.ч. DOS): каждый каталог содержит файлы и каталоги (которые называются подкаталогами данного каталога) и в свою очередь сам содержится в некотором каталоге (т.е. является его подкаталогом).
Существует лишь единственный каталог, который не содержится ни в каком другом, и, значит, вообще не является подкаталогом – это корневой каталог. Все другие каталоги находятся в нем. Название "корневой" не случайно, т.к. подобная структура более всего напоминает дерево, а корневой каталог, естественно, является его корнем – все каталоги "растут" из него.
По этой же причине организацию файловой системы представляют с помощью дерева каталогов, т.к., имея перед глазами лишь список файлов и каталогов либо полное имя файла, не всегда просто установить точные связи между каталогами.
Большинство систем UNIX имеет стандартную структуру каталогов. Подкаталоги корневого каталога "/'' относятся к числу важнейших подкаталогов: среди них /bin, /etc, /dev, и /usr. Эти каталоги в свою очередь содержат другие каталоги, которые содержат системные конфигурационные файлы, программы и т.д.
В частности, каждый пользователь имеет личный (домашний) каталог, который выделяется пользователю для хранения его файлов. Обычно пользовательский личный каталог находится под каталогом /home и называется именем пользователя. Когда Вы входите в систему, Вы автоматически оказываетесь в своем личном каталоге. В системе MINIX Ваш личный каталог является подкаталогом каталога /usr и носит название /usr/.
Итак, давайте рассмотрим дерево каталогов типичной файловой системы UNIX. Оно даст вам некоторое представление о том, как организовано дерево каталогов в Вашей системе.
-
Исследование дерева каталогов системы MINIX.
В формате MS Word 97
-
Распределение файлов в основных каталогах.
Мы уже выяснили, что для упрощения работы с файлами существуют каталоги. Но каталогов в UNIX тоже большое количество. Как же ориентироваться среди каталогов? Оказывается, каждый основной каталог UNIX имеет свое общепринятое название и общепринятое назначение. Чем лучше Вы разберетесь в иерархии файлов и каталогов, тем более эффективно сможете ими пользоваться.
Ниже приводится лишь краткий перечень основных каталогов:
/bin это сокращение от "binaries'' (т.е. двоичные или выполняемые файлы), в этом каталоге находятся программы наиболее часто употребляемых команд и утилит, как правило, общего пользования. Когда, например, Вы используете команду date, Вы выполняете программу /bin/date. Используйте команду ls –F /bin чтобы просмотреть список, имеющихся здесь файлов. Большинство (если не все) файлов в /bin имеют справа от имени звездочку ("*"). Это говорит о том, что файлы выполняемые.
/dev здесь хранятся специальные файлы устройств, использующиеся для доступа к устройствам и ресурсам системы, таким как диски, модемы, память и т.д. Подкаталоги этого каталога группируют специальные файлы устройств одного типа. Например, /dev/dsk хранит специальные файлы устройств для доступа к гибким и жестким дискам системы.
Вот перечень некоторых из наиболее используемых файлов устройств.
-
/dev/console/ относится к системной консоли, т.е. к монитору, напрямую связанному с системой.
-
Различные файлы устройств /dev/ttyS и /dev/cua используются для доступа к последовательным портам. Например, /dev/ttyS0 относится к COM1 под MS-DOS. Файлы устройств /dev/cua относятся к "звонящим" ("callout") устройствам, которые используются совместно с модемами.
-
Файлы устройств, имена которых начинаются с hd, имеют доступ к жестким дискам. /dev/hda относится ко всему первому жесткому диску, а hda1 только к первому разделу /dev/hda.
-
Файлы устройств с именами, начинающимися на fd - это доступ к дисководам гибких дисков. fd0 - первый дисковод, fd1 - второй.
-
Файлы устройств lp обеспечивают доступ к параллельным портам. /dev/lp0 относится к LPT1 в MS-DOS.
-
/dev/null используется как "черная дыра" - любые данные, посланные сюда, канут в Лету. Если Вы хотите подавить вывод команды на экран, Вы можете перенаправить этот вывод в /dev/null.
-
Файлы устройств с именами /dev/tty относятся к "виртуальным консолям" Вашей системы. /dev/tty1 соответствует первой VC, /dev/tty2 соответствует второй и т.д.
/etc содержит множество всевозможных системных файлов конфигурации. Они включают /etc/passwd (файл паролей), /etc/rc (командный файл инициализации) и т.д. /lib включает библиотечные файлы языка Си и других языков программирования. Вместо того, чтобы каждая программа имела свою собственную копию этих выполняемых файлов, они хранятся в одном общедоступном месте - в /lib. Это позволяет сделать выполняемые файлы меньше и экономит место в системе.
/home в этом каталоге обычно хранятся личные каталоги пользователей. Например, /home/larry - домашний каталог пользователя "larry".
/lost-found это каталог "потерянных" файлов. Сюда помещаются файлы, которые сохранили свое содержимое и структуру, но утратили имя в каком-либо каталоге вследствие неправильного останова UNIX или аппаратных сбоев.
/tmp каталог хранения временных файлов, создаваемых при выполнении программы. Многие программы нуждаются в создании рабочих файлов, которые нужны короткое время. Каноническое место для этих файлов в /tmp. Например, когда Вы пользуетесь редактором, то он создает в этом каталоге копию файла, что позволяет не работать с оригиналом и в случае аварии избежать создания в Вашем личном каталоге ненужного файла. /usr это очень важный каталог. В этом каталоге находятся подкаталоги различных сервисных подсистем – системы печати, электронной почты и т.д. (/usr/spool/), файлы утилит UNIX (/usr/bin), дополнительные программы, используемые на данном компьютере (usr/local), электронное справочное руководство (/usr/man), справочная информация (/usr/adm). Большинство вещей, содержащихся в /usr необязательны для системы. Но это такие необязательные вещи, которые делают систему полезной и интересной. /usr содержит много больших программных пакетов и конфигурационных файлов, которые их сопровождают. /usr/bin настоящее хранилище для различных программ UNIX. Он содержит большинство выполняемых программ, которых нет ни в каких других местах, например, в том же /bin их нет. /usr/etc точно также, как и /etc, содержит всевозможные системные программы и конфигурационные файлы. /usr/etc содержит даже больше утилит и файлов. В общем, файлы, находящиеся в /usr/etc несущественны для системы, в отличие от тех, которые находятся в /etc, и очень существенны. /usr/man этот каталог содержит страницы справочного руководства. Здесь два подкаталога для каждого раздела руководства. Например, /usr/man/man1 содержит исходные тексты (неотформатированный оригинал) страниц руководства в разделе 1 и /usr/man/cat1 содержит отформатированные страницы для раздела 1. /usr/spool содержит файлы, которые предварительно формируются для других программ. Например, если Ваша машина подключена к сети, входная почта будет помещаться в /usr/spool/mail до тех пор, пока вы не прочитаете ее или не удалите. Входящие и исходящие новости помещаются в /usr/spool/news и т.д. /usr/adm содержит различные файлы, интересные системному администратору, специфические системные файлы, фиксирующие ошибки и проблемы, возникающие в системе. Другие файлы фиксируют входы в систему, как и неудачные попытки войти. /var содержит каталоги, которые часто меняются в размере или имеют тенденцию быстро расти. В некоторых версиях UNIX используется вместо /usr/spool.
В формате MS Word 97
-
Копирование, переименование и перемещение файлов.
При работе с файлами могут возникать различные ситуации, вызывающие необходимость копирования, перемещения или переименования существующих файлов. Например, кому-то нужна копия Вашего файла, а у него нет прав доступа в Ваш каталог, однако выход есть – копируйте файл в каталог /tmp (это, как Вы помните, каталог временных файлов; каждый пользователь имеет право чтения и записи файлов в этом каталоге) или, возможно, Вас просто не устраивает имя или месторасположение файла.
В UNIX все эти проблемы решают команды cp (copy - копировать) и mv (move - перемещать).
-
Копирование файлов.
-
Копирование одиночного файла.
-
Для копирования одиночного файла используется команда
cp <имя файла1> <имя файла2 >,
где файл1 – файл, который Вы копируете, а файл2 – файл, в который Вы копируете.