Пользователи системы



страница12/42
Дата01.12.2017
Размер5.38 Mb.
ТипПрограмма
1   ...   8   9   10   11   12   13   14   15   ...   42

Информация о каталоге


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

[methody@localhost methody]$ ls

-filename-with- text

[methody@localhost methody]$



Пример 4.4. Команда ls (html, txt)

Поданная без параметров, команда ls выводит список файлов и каталогов, содержащихся в текущем каталоге1). При помощи этой утилиты Мефодий обнаружил, что в его домашнем каталоге (который в данный момент является текущим) содержатся два файла, созданные в примере, приведенном в предыдущей лекции: "-filename-with-" и "text".

Утилита ls принимает один параметр: имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного пути. Например, чтобы получить список файлов в своем домашнем каталоге, Мефодий мог бы использовать команды "ls /home/methody" и "ls ." - результат был бы аналогичным.

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

Почитав руководство по ls, Мефодий решил изучить содержимое своей файловой системы и начал с корневого каталога:

[methody@localhost methody]$ ls -F /

bin/ dev/ home/ mnt/ root/ swap/ tmp/ var/

boot/ etc/ lib/ proc/ sbin/ sys/ usr/

[methody@localhost methody]$

Пример 4.5. Команда ls -F (html, txt)

Мефодий использовал ключ -F, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ "/", чтобы показать, что в нем может содержаться что-то еще. В выведенном списке нет ни одного файла - в корневом каталоге содержатся только подкаталоги.

Кроме того, Мефодий решил получить более подробную информацию о содержимом своего домашнего каталога:

[methody@localhost methody]$ ls -aF

-filename-with- .bash_history .bashrc .lpoptions

.rpmmacros Documents/

./ .bash_logout .emacs .mutt/ .xemacs/ text

../ .bash_profile .i18n .pinerc .xsession.d/ tmp/

[methody@localhost methody]$

Пример 4.6. Команда ls -aF (html, txt)

Внезапно он обнаружил, что файлов в его домашнем каталоге не два, а гораздо больше. Дело в том, что утилитаls по умолчанию не выводит информацию об объектах, чье имя начинается с "." - в том числе о "." и "..". Для того чтобы посмотреть полный список содержимого каталога, и используется ключ "-a" (all)2). Как правило, с "." начинаются имена конфигурационных файлов и конфигурационных каталогов (вроде .bashrc, описанного в лекции 8), работа с которыми (т. е. настройка окружения, "рабочего места") не пересекается с работой над какой-нибудь прикладной задачей (хотя, конечно, эффективность работы зависит от хорошо настроенного окружения). Кроме того, подобных файлов в домашнем каталоге активно работающего пользователя со временем заводится немало (по одному на каждую приличную утилиту) и их присутствие в выдаче ls сильно загромождает выводимые данные.

Разберемся подробно в списке файлов в домашнем каталоге Мефодия. Начнем с весьма лаконичных имен "." и "..". Мефодий уже знает, что "." - это имя текущего каталога. Следующее имя в списке, ".." - это ссылка народительский каталогРодительский каталог - это тот каталог, в котором находится данный каталог.Родительским каталогом для "/home/methody" будет каталог "/home": он получается просто отбрасыванием последнего имени каталога в полном пути. Иначе можно сказать, что родительский каталог - это один шаг по дереву каталогов по направлению к корню. ".." - это сокращенный способ сослаться на родительский каталог: пока текущим каталогом является "/home/methody", относительный путь ".." (или, что то же самое, "./..") будет эквивалентен "/home". С использованием ".." можно строить сколь угодно длинные пути, такие как "../../usr/../var/log/../run/../../home"3).

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



Родительский каталог(parent directory) - это каталог, в котором содержится данный. Для корневого каталогародительским является он сам.

Ссылки на текущий и на родительский каталог обязательно присутствуют в каждом каталоге в Linux. Даже есликаталог пуст, т. е. не содержит ни одного файла или подкаталога, команда "ls -a" выведет список из двух имен: "." и "..".

За ссылками на текущий и родительский каталоги следуют несколько файлов и каталогов, имена которых начинаются с ".". В них содержатся настройки командной оболочки (файлы, начинающиеся с ".bash") и других программ. В домашнем каталоге каждого пользователя Linux всегда присутствует несколько таких файлов. Использование этих файлов позволяет пользователям независимо друг от друга настраивать поведение командной оболочки и других программ - организовывать свое "рабочее место" в системе. Подробнее речь об этом пойдет в лекции 12.

Перемещение по дереву каталогов


Пользователь может работать с файлами не только в своем домашнем каталоге, но и в других каталогах. В этом случае будет удобно сменить текущий каталог, т. е. "переместиться" в другую точку файловой системы. Для смены текущего каталога командной оболочки используется команда cd(от англ. "change directory" - "сменить каталог"). Команда cd принимает один параметр: имя каталога, в который нужно переместиться - сделать текущим. Как обычно, в качестве имени каталога можно использовать полный илиотносительный путь:

[methody@localhost methody]$ cd /home

[methody@localhost home]$ ls

methody shogun

[methody@localhost home]$ cd methody

[methody@localhost methody]$



Пример 4.7. Смена текущего каталога (html, txt)

Сначала Мефодий решил переместиться в каталог "/home" и посмотреть, что еще есть в этом каталоге, кроме его домашнего каталога. Он обнаружилкаталог "shogun" и догадался, что это домашний каталог Гуревича, входное имя которого - "shogun". Кроме того, он заметил, что изменился видприглашения командной строки (подсказки shell) - слово "methody" заменилось на "home". В приглашении командной строки часто указываетсятекущий каталог shell - чтобы пользователю легче было ориентироваться, в каком каталоге он "находится" в данный момент.

После этого Мефодий решил вернуться в свой домашний каталог, но в этом случае он использовал уже не полный, а относительный путь - "cd methody". Вводя эту команду, Мефодий не стал целиком набирать имя своегодомашнего каталога, а набрал только первые буквы "me" и нажал клавишу Tab, как ему советовал Гуревич. Командная оболочка умеет достраивать имена файлов и каталогов: пользователю достаточно набрать несколько первых символов имени файла или каталога и нажать Tab. Если есть только один вариант завершения имени - оболочка закончит его сама, и пользователю не придется набирать оставшиеся символы. Достраивание - весьма существенное средство экономии усилий и повышения эффективности при работе с командной строкой. Современные командные оболочки умеют достраивать имена файлов и каталогов, а также имена команд. Достраивание наиболее развито в командном интерпретаторе zsh.

Те же самые перемещения - в родительский каталог и обратно - Мефодий мог бы осуществить, набирая значительно меньше символов. Для перемещения в родительский каталог ("/home") удобно воспользоваться ссылкой "..". Необходимость вернуться в домашний каталог из произвольной точки файловой системы возникает довольно часто, поэтому командная оболочка поддерживает обозначение домашнего каталога при помощи символа "~". Поэтому чтобы перейти в домашний каталог из любого другого, достаточно выполнить команду "cd ~". При исполнении команды символ "~" будет заменен командной оболочкой на полный путь к домашнему каталогупользователя:

[methody@localhost methody]$ cd ..

[methody@localhost home]$ cd ~

[methody@localhost methody]$ cd ~shogun

[methody@localhost shogun]$ cd

[methody@localhost methody]$

Пример 4.8. Переход в родительский и в домашний каталог (html, txt)

При помощи символа "~" можно ссылаться и на домашние каталоги других пользователей: "~имя пользователя". В примере 4.8 Мефодий перешел в домашний каталог Гуревича с помощью команды "cd ~shogun". Команда cd, поданная без параметров, эквивалентна команде "cd ~" и делает текущим каталогом домашний каталог пользователя.





Поделитесь с Вашими друзьями:
1   ...   8   9   10   11   12   13   14   15   ...   42


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница