Добавить в цитаты Настройки чтения

Страница 5 из 113

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

[[email protected]/* */ ~]$ ls

Desktop  Documents  Music  Pictures  Public  Templates  Videos

Команде можно явно указать каталог, содержимое которого требуется вывести:

[email protected]/* */ ~]$ ls /usr

bin  games    kerberos  libexec  sbin   src

etc  include  lib       local    share  tmp

и даже несколько каталогов. Следующий пример выведет содержимое домашнего каталога пользователя (обозначен символом ~) и каталога /usr:

[[email protected]/* */ ~]$ ls ~ /usr

/home/me:

Desktop  Documents  Music  Pictures  Public  Templates  Videos

/usr:

bin  games    kerberos  libexec  sbin   src

etc  include  lib       local    share  tmp

Можно также изменить формат вывода, чтобы получить больше информации:

[[email protected]/* */ ~]$ ls -l

total 56

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Desktop

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Documents

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Music

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Pictures

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Public

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Templates

drwxrwxr-x 2 me me 4096 2012-10-26 17:20 Videos

Параметр -l, добавленный в команду, требует использования «длинного» (long) формата вывода.

Параметры и аргументы

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

команда -параметры аргументы

Большинство команд используют параметры, состоящие из одного символа, которому предшествует дефис, например: -l. Но многие команды, в том числе команды из проекта GNU, поддерживают параметры с длинными именами, состоящие из слова, которому предшествуют два дефиса. Кроме того, многие команды позволяют объединять вместе параметры с короткими именами. В следующем примере команде ls передаются два параметра: параметр l, требующий использовать длинный (long) формат вывода, и параметр t, требующий сортировать результаты по времени (time) изменения:

[[email protected]/* */ ~]$ ls -lt

Добавим параметр с длинным именем --reverse, чтобы изменить порядок сортировки на обратный:

[[email protected]/* */ ~]$ ls -lt --reverse

Команда ls имеет огромное число допустимых параметров. Наиболее популярные из них перечислены в табл. 3.1.

Таблица 3.1. Наиболее популярные параметры команды ls

Параметр

Длинный параметр

Описание

-a

--all

Список всех (all) файлов, даже с именами, начинающимися с точки, которые обычно не выводятся (то есть скрытых)

-d

--directory

Обычно в присутствии этого параметра команда ls выводит информацию о самом каталоге, а не его содержимое. Используйте этот параметр в сочетании с параметром -l, чтобы получить дополнительную информацию о каталоге, а не о его содержимом

-F

--classify

Добавляет в конец каждого имени символ-индикатор (например, прямой слеш, если это имя каталога)

-h

--human-readable

При использовании длинного формата вывода отображает размеры файлов не в байтах, а в величинах с единицами измерения

-l

Выводит результаты с использованием длинного формата



-r

--reverse

Выводит результаты в обратном порядке. Обычно коман­да ls выводит результаты в алфавитном порядке

-S

Сортировать результаты по размеру (size)

-t

Сортировать результаты по времени (time) последнего изменения

Пристальный взгляд на длинный формат

Как было показано выше, параметр -l заставляет команду ls выводить результаты с использованием длинного формата. Этот формат предусматривает вывод большого количества полезной информации. Ниже приводится пример вывода содержимого каталога Examples в системе Ubuntu:

-rw-r--r-- 1 root root 3576296 2012-04-03 11:05 Experience ubuntu.ogg

-rw-r--r-- 1 root root 1186219 2012-04-03 11:05 kubuntu-leaflet.png

-rw-r--r-- 1 root root   47584 2012-04-03 11:05 logo-Edubuntu.png

-rw-r--r-- 1 root root   44355 2012-04-03 11:05 logo-Kubuntu.png

-rw-r--r-- 1 root root   34391 2012-04-03 11:05 logo-Ubuntu.png

-rw-r--r-- 1 root root   32059 2012-04-03 11:05 oo-cd-cover.odf

-rw-r--r-- 1 root root  159744 2012-04-03 11:05 oo-derivatives.doc

-rw-r--r-- 1 root root   27837 2012-04-03 11:05 oo-maxwell.odt

-rw-r--r-- 1 root root   98816 2012-04-03 11:05 oo-trig.xls

-rw-r--r-- 1 root root  453764 2012-04-03 11:05 oo-welcome.odt

-rw-r--r-- 1 root root  358374 2012-04-03 11:05 ubuntu Sax.ogg

Рассмотрим различные поля для одного из файлов и их назначение (табл. 3.2).

Таблица 3.2. Поля длинного формата вывода команды ls

Поле

Назначение

-rw-r-r--

Права доступа к файлу. Первый символ указывает тип файла. Например, символом дефиса обозначаются обычные файлы, а символом d — каталоги. Следующие три символа сообщают о правах доступа для владельца файла, следующие три — для членов группы, которой принадлежит файл, и последние три — для всех остальных. Более полное обсуждение прав доступа приводится в главе 9

1

Число жестких ссылок на файл. Подробнее о ссылках рассказывается в конце этой главы

root

Имя пользователя, владеющего файлом

root

Имя группы, владеющей файлом

32059

Размер файла в байтах

2012-04-03 11:05

Дата и время последнего изменения файла

oo-cd-cover.odf

Имя файла

Определение типов файлов командой file

Занимаясь исследованием системы, полезно иметь возможность определять тип содержимого файлов. В этом нам поможет команда file. Как отмечалось выше, имена файлов в Linux не обязаны отражать тип содержимого файлов. Например, увидев имя файла picture.jpg, можно предположить, что он содержит изображение в формате JPEG, но в Linux такие предположения могут не оправдываться. Вызвать команду file можно так:

file имя_файла

Команда file выводит краткое описание содержимого файла. Например:

[[email protected]/* */ ~]$ file picture.jpg

picture.jpg: JPEG image data, JFIF standard 1.01

Существует множество разных типов файлов. Одна из известных идей в Unix-подобных системах, таких как Linux, гласит: «Все сущее есть файл». По мере чтения книги вы убедитесь в истинности этого утверждения.

Типы многих файлов в вашей системе будут вам знакомы, например файлы MP3 и JPEG, но иногда будут попадаться файлы с малоизвестными и даже странными типами.

Просмотр содержимого файлов командой less

Команда less — это программа для просмотра текстовых файлов. В системе Linux присутствует множество файлов, содержащих обычный, удобочитаемый текст. Программа less предоставляет удобный способ исследовать их содержимое.

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