На рис. 3.1 изображено окно терминала, в котором запущена программа МС. Окно состоит из двух независимых панелей, в каждой из которых вы можете видеть файлы и папки текущей директории (имена папок начинаются с символа слэш). Для перемещения между панелями используется клавиша <Tab>.
Рис. 3.1. Окно терминала с запущенной программой Midnight Commander
С правой стороны показана корневая папка. Это самый верхний уровень вашей файловой системы. Посмотрите на список папок в этой панели. Большинство названий нам знакомо по табл. 2.1. Каждая из этих папок может находиться в собственном разделе жесткого диска, если при установке вы его создали. Но даже в этом случае в файловой системе вы будете видеть все как одно целое.
В разд. 2.3.3 мы говорили про корневой каталог, который в Linux обозначается как знак "/". Именно он является вершиной пирамиды в иерархии всех каталогов. Например, папки пользователя находятся в каталоге /home. Тогда /home/flenov будет определять путь к подкаталогу пользователя flenov. Чтобы попасть в эту директорию, нужно навести на нее курсор и нажать <Enter>.
В списке папок и файлов самой первой всегда стоит папка с именем /... Реально такого каталога не существует. Это указатель на родительскую директорию, с помощью которой вы можете попасть на уровень выше. Например, вы находитесь в подкаталоге /home/flenov. Если войти в папку /.., то вы поднимитесь на предыдущий уровень и окажетесь в директории /home.
Внизу окна МС (см. рис. 3.1) можно увидеть строку-приглашение для ввода команд. Эта та же строка, что мы видели в терминале, и позволяет выполнять те же директивы. Еще ниже расположена строка меню с подсказками о назначении клавиш <F1>-<F10>:
□ 1 (Помощь) - вызов файла помощи по программе;
□ 2 (Меню) - вызов меню основных команд МС;
□ 3 (Просмотр) - просмотр выделенного файла;
□ 4 (Правка) - редактирование выделенного файла во встроенном текстовом редакторе;
□ 5 (Копия) - копирование выделенного файла или папки. Если выделить файл и нажать клавишу <F5>, то появится окно подтверждения копирования. По умолчанию операция выполняется в текущую директорию противоположной панели программы МС;
□ 6 (Перемес) - переместить выделенные файлы или папки. По умолчанию файл будет перенесен в директорию, являющуюся текущей для противоположной панели программы МС;
□ 7 (НвКтлог) - создать новый каталог в текущем;
□ 8 (Удалить) - удалить выделенные файлы и папки;
□ 9 (МенюМС) - вызвать меню программы МС, которое находится вверху окна;
□ 10 (Выход) - выход из программы.
Файлы и папки, имена которых начинаются с точки, являются конфигурационными. Будьте осторожны при их перемещении и редактировании. Эти файлы нуждаются в максимальной защите, но об этом мы поговорим позже в разных разделах книги.
3.1.1. Основные команды
Давайте рассмотрим основные команды файловой системы, которые мы будем использовать в книге, и заодно подробнее познакомимся с файловой системой Linux.
pwd
Эта команда выводит на экран полный путь к текущему каталогу. С ее помощью вы можете в любой момент узнать, где находитесь.
ls
Команда ls выводит список файлов и подкаталогов указанной директории. Если имя каталога (файла) отсутствует в параметрах команды, то отображается содержимое текущего каталога. По умолчанию все настроечные файлы (имена начинаются с точки) являются скрытыми. Чтобы их вывести, нужно указать ключ -а:
ls -а
Если мы хотим увидеть не только имена (сжатый формат), но и полную информацию о каталоге, нужно добавить ключ -l. В результате мы должны выполнить команду:
ls -al
Но такая команда отобразит файлы текущей директории, и не факт, что мы сейчас находимся, например, в каталоге /etc, который надо просмотреть. Чтобы увидеть именно его, после ключей (можно и до них) нужно указать требуемую папку:
ls -al /etc
Примечание
Более подробную информацию о команде ls можно получить из справочной системы. Для этого выполните команду man ls.
Рассмотрим результат вывода команды ls -al:
drwx------ 3 Flenov FlenovG 4096 Nov 26 16:10 .
drwxr-xr-x 5 root root 4096 Nov 26 16:21 ..
-rw-r--r-- 1 Flenov FlenovG 24 Nov 26 16:10 .bash_logout
-rw-r--r-- 1 Flenov FlenovG 191 Nov 26 16:10 .bash_profile
-rw-r--r-- 1 Flenov FlenovG 124 Nov 26 16:10 .bashrc
-rw-r--r-- 1 Flenov FlenovG 2247 Nov 26 16:10 .emacs
-rw-r--r-- 1 Flenov FlenovG 118 Nov 26 16:10 .gtkrc
drwxr-xr-x 4 Flenov FlenovG 4096 Nov 26 16:10 .kde
По умолчанию список файлов выводится в несколько колонок. Разберем их на примере первой строки:
□ drwx------ права доступа. Их мы подробно рассмотрим в гл. 4. Сейчас вам только нужно знать, что если первая буква "d", то это директория;
□ цифра 3 - указывает количество жестких ссылок;
□ Flenov - имя пользователя, являющегося владельцем файла;
□ FlenovG - группа, которой принадлежит файл;
□ 4096 - размер файла. Для директории это значение отсутствует, т.к. не устанавливается ее размер;
□ дата и время последних изменений файла;
□ имя файла.
cat
Команда позволяет вывести на экран содержимое указанного в качестве аргумента файла. Например, вы хотите просмотреть текстовый файл need.txt. Для этого нужно выполнить команду:
cat need.txt
Но это справедливо, если файл находится в текущей директории. А если нет? В этом случае можно указать полный путь:
cat /home/root/need.txt
tac
Эта команда обратная для cat (даже название команды - это слово cat наоборот), т.е. выводит на экран файл в обратном порядке, начиная с последней строки до первой.
cd
Эта команда позволяет сменить текущий каталог. Для этого необходимо в качестве параметра задать нужную папку:
cd /home/flenov
Если вы находитесь в каталоге /home и хотите внутри него перейти в подкаталог flenov, то достаточно набрать только имя папки flenov:
cd flenov
Если нужно переместиться на уровень выше, например, из подкаталога /home/flenov в каталог /home, нужно выполнить команду:
cd ..
Как мы знаем, папка с именем из двух точек указывает на родительский каталог. Если перейти на нее, то мы попадем на предыдущий уровень.
cp
Команда копирования файла. С ее помощью можно выполнять несколько различных действий:
1. Копирования содержимого файла в другой документ той же папки:
cp /home/root/need.txt /home/root/need22.txt
Здесь содержимое файла /home/root/need.txt (источник) будет скопировано в файл /home/root/need22.txt (назначение).
2. Копирования файла в другой каталог:
cp /home/root/need.txt /home/flenov/need.txt
или
cp /home/root/need.txt /home/flenov/need22.txt
Обратите внимание, что в этом случае в папке назначения файл может быть как с новым, так и со старым именем.
3. Копирование несколько файлов в новый каталог. Для этого нужно перечислить все файлы в источнике и последним параметром указать папку назначения:
cp /home/root/need.txt /home/root./need22.txt /home/new/
В этом примере файлы /home/root/need.txt и /home/root/need22.txt будут скопированы в директорию /home/new. Можно копировать файлы и из разных каталогов в один:
cp /home/root/need.txt /home/flenov/need22.txt /home/new/
В этом примере файлы /home/root/need.txt и /home/flenov/need22.txt будут скопированы в директорию /home/new.
4. Копирование группы (всех) файлов каталога.
А что если надо скопировать все файлы, начинающиеся на букву "n" из одной директории в другую? Неужели придется их все перечислять? Нет, достаточно указать маску n*, где звездочка заменяет любые символы, начиная со второго:
cp /home/root/n* /home/new/
Если нужно скопировать все файлы, имена которых начинаются символами "ra" и заканчиваются буквой "t", то маска будет выглядеть как ra*t.
mkdir
Создание новой директории. Например, если вы хотите создать подкаталог newdir в текущей директории, то нужно выполнить команду:
mkdir newdir