Внутреннее устройство Linux
Шрифт:
$ ls -l
total 3616
– rw-r—r— 1 juser users 3804 Apr 30 2011 abusive.c
– rw-r—r— 1 juser users 4165 May 26 2010 battery.zip
– rw-r—r— 1 juser users 131219 Oct 26 2012 beav_1.40-13.tar.gz
– rw-r—r— 1 juser users 6255 May 30 2010 country.c
drwxr-xr-x 2 juser users 4096 Jul 17 20:00 cs335
– rwxr-xr-x 1 juser users 7108 Feb 2 2011 dhry
– rw-r—r— 1 juser users 11309 Oct 20 2010 dhry.c
– rw-r—r— 1 juser users 56 Oct 6 2012 doit
drwxr-xr-x 6 juser users 4096 Feb 20 13:51 dw
drwxr-xr-x 3 juser users 4096 May 2 2011 hough-stuff
В разделе 2.17 вы больше узнаете о символе d,
2.3.2. Команда cp
В своей простейшей форме команда cp копирует файлы. Например, чтобы скопировать file1 в файл file2, введите следующее:
$ cp file1 file2
Чтобы скопировать несколько файлов в какой-либо каталог (папку) с названием dir, попробуйте такой вариант:
$ cp file1 ... fileN dir
2.3.3. Команда mv
Команда mv (от англ. move — «переместить») подобна команде cp. В своей простейшей форме она переименовывает файл. Например, чтобы переименовать файл file1 в file2, введите следующее:
$ mv file1 file2
Можно также использовать команду mv, чтобы переместить несколько файлов в другой каталог:
$ mv file1 ... fileN dir
2.3.4. Команда touch
Команда touch создает файл. Если такой файл уже существует, команда touch не изменяет его, но обновляет информацию о времени изменения файла, выводимую с помощью команды ls -l. Например, чтобы создать пустой файл, введите следующее:
$ touch file
Теперь примените к этому файлу команду ls -l. Вы должны увидеть результат, подобный приведенному ниже. Символом
$ ls -l file
– rw-r—r— 1 juser users 0 May 21 18:32
2.3.5. Команда rm
Чтобы удалить файл, воспользуйтесь командой rm (от англ. remove — «удалить»). После удаления файла он исчезает из системы и, как правило, не может быть восстановлен.
$ rm file
2.3.6. Команда echo
Команда echo выводит свои аргументы в стандартный вывод:
$ echo Hello again.
Hello again.
Команда echo весьма полезна для раскрытия значений паттернов оболочки, использующих джокерные символы вроде *, и переменных, таких как $HOME, с которыми вы познакомитесь чуть позже в этой главе.
2.4. Перемещение по каталогам
Иерархия
каталогов в системе Unix начинается с каталога /, который иногда называют корневым каталогом. Каталоги разделяются с помощью символа «слеш» (/), но не с помощью обратного слеша (\). В корневом каталоге присутствует несколько стандартных подкаталогов, например /usr, как вы узнаете из раздела 2.19.Когда вы ссылаетесь на файл или каталог, вы указываете путь или имя пути. Когда путь начинается с символа / (например, /usr/lib), такой путь называется полным или абсолютным.
Часть пути, которая представлена двумя точками (..), указывает на родительский каталог по отношению к данному. Если, например, вы работаете в каталоге /usr/lib, то в этом случае путь .. будет означать /usr. Подобным же образом ../bin означает /usr/bin.
Одна точка (.) ссылается на текущий каталог. Если, например, вы сейчас в каталоге /usr/lib, то путь . по-прежнему означает /usr/lib, а путь ./X11 будет значить /usr/lib/X11. Вам не придется слишком часто применять точку, поскольку для большинства команд по умолчанию указан текущий каталог, если путь не начинается с символа / (в предыдущем примере вы могли бы использовать X11 вместо ./X11).
Путь, который не начинается с символа /, называется относительным путем. Чаще всего вам придется работать с относительными путями, поскольку вы уже будете находиться в необходимом каталоге или где-либо неподалеку от него.
Теперь, когда у вас есть основное представление об устройстве каталогов, рассмотрим несколько важных команд для работы с ними.
2.4.1. Команда cd
Текущий рабочий каталог — это каталог, в котором в данный момент находится процесс (например, оболочка). Команда cd изменяет текущий рабочий каталог оболочки:
$ cd dir
Если вы опустите параметр dir, оболочка вернет вас в домашний каталог, с которого вы начали работу при входе в систему.
2.4.2. Команда mkdir
Команда mkdir создает новый каталог с именем dir:
$ mkdir dir
2.4.3. Команда rmdir
Команда rmdir удаляет каталог с именем dir:
$ rmdir dir
Если каталог dir не пуст, эта команда не сработает. Чтобы удалить каталог со всем его содержимым, используйте команду rm -rf dir. Однако будьте осторожны! Это одна из немногих команд, которая может причинить существенный вред, особенно если вы работаете как superuser. Параметр –r задает рекурсивное удаление, которое последовательно удаляет все, что находится внутри каталога dir, а параметр -f делает эту операцию принудительной. Не используйте флаги -rf с такими джокерными символами, как звездочка (*). Перепроверяйте команды перед их запуском.