Если вы постоянно работаете с информацией, хранящейся в каталоге
mary
, у вас может возникнуть желание работать с файлами Мэри, а не со своими. Для этого вам достаточно сменить каталог с помощью команды
cd
:
$ cd /usr/mary
Теперь, если использовать имя файла (без
/
) в качестве аргумента для команд
cat
или
pr
, это будет файл из каталога
mary
.
Смена каталога не влияет на права доступа к файлу: если файл был недоступен из вашего каталога, то таким он и останется.
Обычно бывает удобно сгруппировать свои файлы так, чтобы все файлы, относящиеся к одному проекту, попали в отдельный каталог. Например, если вы надумаете писать книгу, то весь текст вы, естественно, захотите хранить в каталоге с именем
book
(книга). Команда
mkdir
создает новый каталог:
$ mkdir book
Создать каталог
$ cd book
Перейти в него
$ pwd
Убедиться, что вы попали куда надо
/usr/you/book
...
Работа над книгой (прошло несколько минут)
$ cd ..
Подняться на один уровень в файловой системе
$ pwd
/usr/you
$
Обозначение
'..'
относится к "родителю" того каталога, с которым вы работаете в данный момент, а именно к каталогу, расположенному на один уровень ближе к корню. Обозначение
'.'
является синонимом текущего каталога.
$ cd
Возврат в личный каталог
Команда вернет вас в ваш начальный каталог, т.е. в каталог, в который вы попадаете при входе в систему.
После того как книга опубликована, можно почистить каталог. Чтобы удалить каталог
book
, удалите все содержащиеся в нем файлы (быстрый способ выполнения этой операции мы вскоре покажем), затем перейдите в родительский каталог для
book
и задайте команду
$ rmdir book
Команда
rmdir
удаляет только пустые каталоги.
1.4 Интерпретатор
shell
Когда система выдает приглашение
$
и вы вводите команды для выполнения, вы имеете дело не с ядром самой системы, а с неким посредником, называемым интерпретатором команд, или
shell
. Это обычная программа, подобная
date
или
who
, хотя она может делать удивительные вещи. Тот факт, что программа
shell
находится между вами и ядром, дает реальные выгоды, и некоторые из них мы вам укажем. Применение программы-посредника обеспечивает три главных преимущества:
• сокращенные имена файлов: можно задать целое множество файлов в качестве аргументов команде, указав шаблон для имен:
shell
будет искать файлы, имена которых соответствуют заданному шаблону;
• переключение ввода-вывода:
вывод любой программы можно направить в файл, а не на терминал, ввод можно получать из файла, а не с терминала. Ввод и вывод можно даже передать другим программам;
• создание собственной среды: можно определить свои собственные команды и правила сокращений.
Сокращенное имя файла
Начнем с шаблонов имен файлов. Допустим, вы вводите обширный документ, наподобие книги. Логически он разбивается на множество частей, аналогично главам и разделам. И физически его следует разбить на части, поскольку затруднительно редактировать большие файлы. В этом случае для печати всего текста нужно указать ряд файлов. У вас могут быть отдельные файлы для каждой главы с именами
ch1
,
ch2
и т.д. Если каждая глава разбита на разделы, вы можете создать файлы с именами
ch.1
ch.2
ch.3
...
ch2.1
ch2.2
...
что и используется в нашей книге. При систематизированном именовании можно указать с первого взгляда, в какой ряд файлов попадает данный файл. Как быть, если вы захотите напечатать книгу? Можно задать
$ pr ch1.1 ch1.2 ch1.3...
но вы быстро устанете вводить имена файлов и начнете делать ошибки. Именно здесь приходит на помощь сокращенное имя файла. Если задать
$ pr ch*
интерпретатор
shell
воспримет
*
как любую последовательность символов, поэтому
ch*
является шаблоном, под который подходят все имена файлов из текущего каталога, начинающиеся на
ch
. Интерпретатор
shell
создаст список в алфавитном порядке [3] и передаст его программе pr. Команда pr никогда "не узнает" * ; выбор по шаблону, который shell производит в текущем каталоге, порождает список строк, передаваемых
pr
.
3
Порядок, конечно, не строго алфавитный, прописные буквы предшествуют строчным. Чтобы узнать порядок, используемый в программе
sort
, см.
ascii(7)
.
Ключевой момент состоит в том, что способ сокращения имени файла — это не свойство программы
pr
, а возможность, реализуемая интерпретатором
shell
. Поэтому вы можете использовать ее для создания последовательности имен файлов в любой команде, например для подсчета числа слов первой главы: