Разглядывание содержимого каталогов

Дерево каталогов

Большинство систем UNIX имеет стандартную структуру каталогов, что облегчает конкретную установку системы. Структура представляет из себя дерево каталогов, начинающееся с каталога ``/'', известного под названием "корневой каталог". Катало
ги ниже / относятся к числу важнейших подкаталогов: среди них /bin, /etc, /dev, и /usr. Эти каталоги в свою очередь содержат другие каталоги, которые содержат сис
темные конфигурационные файлы, программы и т.д.

В частности, каждый пользователь имеет домашний каталог, который выделяется пользователю для хранения его файлов. В вышеприведенном примере все файлы Larry (такие как cheat-sheet и history-final) содержались в домашнем каталоге Larry. Обычно пользовательски
й домашний каталог находится под каталогом /home и называется именем пользователя. Так домашний каталог Larry будет /home/larry.

На Рис. 3.2.8 представлено простое дерево каталогов. Оно даст вам некоторое представление о том, как организуется дерево каталогов в вашей системе.

Текущий рабочий каталог

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

/_____bin |_dev |_etc |_home_____larry | |_sam |_lib |_proc |_tmp |_usr__X386 |_bin |_emacs |_etc |_g++-include |_include |_lib |_local_____bin | |_emacs | |_etc | |_lib |_man |_spool |_src_____linux |_tmp Рис 3.1: Типичное (урезанное) дерево каталогов Unix

Вот например, у Larry есть каталог papers, а papers содержит файл history-final. Если Larry хочет посмотреть этот файл, он может использовать команду

/home
/larry# more /home/larry/papers/history-final

Команда more просто показывает файл на экране п орциями. Поскольку текущий рабочий каталог Larry /home/larry, он вместо этого может обратиться к файлу с учетом своего текущего местоположения. Команда будет

/home/larry# more papers/history-final

Так что вы мо жете начинать имя файла (такого как papers/final) с символа, отличного от ``/'', система предполагает, что вы обращаетесь к файлу с учетом ваше го текущего рабочего каталога. Это называют относительным именем (а полный маршрут - полное (абсолютное) имя - т.е. путь от корня до данного имени).

В начало страницы

Обращение к домашнему каталогу

Оболочки (shell), т.е. программы, которые читают и выполняют команды пользователя, могут использоваться (одновременно в одной системе) разные. В большинстве систем Linux используются tcsh или bash при начальной регистрации в системе. В tcsh и bash вы можете обратиться к своему домашнему каталогу, используя тильду (``~''). Например, команда

/home/larry# more ~/papers/history-final

эквивалентна

/home/larry# more /home/larry/papers/history-final

Символ ``~'' просто заменяет имя вашего домашнего каталога.

Вы также можете обратиться к домашнем у каталогу другого пользователя с помощью тильды. Имя ``~karl/letters'' будет интерпретировано shell, как ``/home/karl/letters'' (если /home/karl - домашний каталог для пользователя karl). Использование тильды упрощает обращение; не существует каталога с именем ``~'' - так что это просто "синтаксический сахар", который имеется в распоряжении shell.

Первые шаги в UNIX

Первая прогулка

Разглядывание содержимого каталогов

Создание новых каталогов

Копирование файлов

Перемещение файлов

Удаление файлов и каталогов

Рассматривание файлов

Получение оперативной помощи

Текущий рабочий каталог

Обращение к домашнему каталогу

Перед тем, как начать, важно заметить, что все имена файлов и команд чувствительны к большим и малым буквам (чего нет в системах типа MS-DOS). Например, команда make очень отличается от Make или MAKE. То же относится и к именам каталогов.

Первая прогулка

Теперь мы можем войти в систему и узнать, как обращаться к файлам и менять местоположение в файловой системе, чтобы упрощать свою жизнь в ней. Команда для перемещения по дереву каталогов - cd, (``change directory''). Вы скоро обратите внимание, что многие часто используемые команды Unix состоят из двух-трех букв. Формат команды cd:

cd <directory>

где <directory> - имя каталога, в который вы желаете перейти. Как мы уже говорили, когда вы входите в систему, вы автоматически оказываетесь в своем домашнем каталоге. Если Larry желает двинуться ниже по дереву, он должен использовать команду

/home/larry# cd papers /home/larry/papers#

Как видите, изменилась подсказка, отразив изменение местоположения (новый рабочий каталог). Теперь он в каталоге papers и может посмотреть на свой файл history-final с помощью команды

/home/larry/papers# more history-final

Чтобы вернуться назад из подкаталога papers, надо использовать команду

/home/larry/papers# cd .. /home/larry#

(Обратите внимание на пробел между ``cd'' и ``..''). Каждый каталог содержит имя ``..'' , которое отсылает к родительскому (для данного каталога) каталогу. Также каждый каталог имеет имя ``.'', которое ссылается на него самого. Поэтому команда

/home/larry/papers# cd .

никуда не переведет.

В команде cd вы можете использовать маршруты. Чтобы перейти в домашний каталог Карла, вы можете воспользоваться командой

/home/larry/papers# cd /home/karl /home/karl#

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

/home/karl# cd /home/larry#

В начало страницы

Разглядывание содержимого каталогов

Òåïåðü âû
çíàåòå, êàê õîäèòü-áðîäèòü ïî êàòàëîãàì, íî âåðîÿòíî âîçíèêàåò âîïðîñ:"Íó è ÷òî ñ òîãî?" Ñàìî ïî ñåáå õîæäåíèå ïî êàòàëîãàì áåñïîëåçíî, äàâàéòå ïîçíàêîìèìñÿ ñ íîâîé êîìàíäîé ls. ls (LiSt) âûäàåò íà ýêðàí ïåðå÷åíü ôàéëîâ è êàòàëîãîâ (ïî óìîë÷àíèþ èç òåêóùåãî êàòàëîãà). Íàïðèìåð,

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

Если вы напишете в команде ls имя каталога, то она выдаст содержимое указанного каталога.