Ls
Материал из Wiki Open Book.
Программа ls может показать:
- содержимое директории;
- список файлов;
- подробную информацию о файлах и т.д.
ls [опции] [файл...]
Если программу ls выполнить без каких-либо аргументов, будет показан список всех файлов, находящихся в текущей директории, за исключением скрытых файлов.
Для того, что бы увидеть все файлы в директории, в том числе и скрытые, необходимо использовать опцию –a:
ls -a
В файловой системе Linux у файлов нет атрибута «скрытый файл». Принято считать, что если имя файла начинается с точки — то это скрытый файл. К таким файлам можно отнести директории . и .. .
Для того, что бы посмотреть содержимое директории совсем не обязательно сначала переходить в эту директорию. Достаточно явно указать путь к той директории, содержимое которой Вы хотите посмотреть:
ls /etc
Что бы получить полную информацию о файле/файлах, требуется использовать параметр –l. Если Вы будете указывать путь к директории, ls покажет полную информацию о файлах, находящихся в этой директории:
$ ls -l /etc итого 1656 -rw-r--r-- 1 root root 15067 2002-02-24 23:37 a2ps.cfg -rw-r--r-- 1 root root 2584 2003-10-30 17:21 a2ps-site.cfg drwxr-xr-x 3 root root 4096 2004-11-05 11:20 acpi/ -rw-r--r-- 1 root root 47 2005-05-12 21:30 adjtime drwxr-xr-x 2 root root 4096 2005-04-04 04:26 apache/ drwxr-xr-x 3 root root 4096 2004-02-24 14:50 apsfilter/ -rw-r--r-- 1 root root 6299 2005-02-17 22:47 asound.state -rw-r--r-- 1 root root 0 2003-11-24 03:22 at.deny -rw-r--r-- 1 root root 79 2003-10-14 22:19 bashrc ...... $
Самое первое значение итого или total (Какое слово будет выводиться на экран зависит от того какой язык используется в Вашей системе.) показывает, какое количество дискового пространства (в блоках) занимают файлы, находящиеся в этой директории. Один блок равен одному килобайту.
Затем отображается подробная информация о файлах, один файл — одна строка:
- Первое поле — в этом поле показаны тип файла и права доступа. Обратите внимание на то, что в Linux права доступа не наследуются. То есть нельзя как в Windows или Novell Netware определить права доступа для директории, которые будут автоматически распространяться на все файлы, которые находятся в этой директории. В Linux у каждого объекта файловой системы права доступа свои и их значение не наследуется.
- Второе поле — количество ссылок на файл (Имеются в виду жесткие ссылки). Файл существует до тех пор, пока существует хотя бы одна ссылка на него. Что такое ссылка будет рассказано дальше в этой главе.
- Третье поле — владелец файла. В Linux у каждого файла обязательно должен быть владелец. У файла может быть только один владелец.
- Четвертое поле — группа, которой принадлежит данный файл. Это тоже особенность Linux — любой файл должен принадлежать группе пользователей. Файл может принадлежать только одной группе пользователей.
- Пятое поле — размер файла в байтах.
- Шестое поле — время последней модификации (изменения) файла.
- Седьмое поле — имя файла.
Какие поля будут выводиться на экран, зависит от параметров, переданных при вызове программы ls.
Если программе был передан параметр –F — тогда после каждого исполняемого файла будет выводиться символ *, после директории символ /, символьной ссылки -> и т.д. Обычно этот параметр передается по умолчанию.
Если Вы хотите получить информацию о конкретном файле, программе ls следует указать путь к интересующему Вас файлу:
ls -l /etc/hosts
Иногда возникает необходимость посмотреть содержимое сразу нескольких директорий. В этом случае, программе ls следует указать пути к этим директориям, разделяя их пробелами.
ls /etc/ssh /etc/ssl
Если необходимо посмотреть содержимое директории и всех поддиректорий, используйте параметр –R (Помните? Большие и маленькие буквы в Linux различаются.):
ls -R /etc
Перечисленные выше опции программы ls определены в стандарте POSIX и могут использоваться в любой POSIX совместимой операционной системе.
В Linux используется вариант программы ls, написанный сообществом GNU. И при ее вызове можно использовать дополнительные параметры.
Среди параметров, свойственных GNU версии программы можно выделить параметр «--color». Он позволяет различные типы файлов выводить различными цветами. Или наоборот, отключать эту возможность.
При использовании параметра --color, требуется указать дополнительный аргумент (Все GNU параметры обязательно начинаются с двух тире «--». Если параметру требуется передавать дополнительный аргумент, он указывается после символа «=».). Можно использовать перечисленные ниже аргументы:
- none — не использовать цвета при выводе;
- auto — использовать цвета только в том случае, если программа выводит данные на терминал;
- always — при выводе всегда использовать цвета.
Какие цвета будут использоваться при выводе, определяет переменная среды окружения LS_COLORS. Чтобы посмотреть ее содержимое, можно выполнить следующую команду:
echo $LS_COLORS
Цифры, которые Вы увидите — это не запись в формате RGB. Для определения цвета используется специальный формат.
Откуда берутся значения переменной LS_COLORS и как определить свои собственные цвета, описано в приложении Цвета программы ls.
В Slackware Linux используется еще одна переменная среды окружения, которая влияет на работу программы ls — LS_OPTIONS. В этой переменной содержатся параметры программы, которые передаются программе по умолчанию. Что бы посмотреть её содержимое можно выполнить следующую команду:
echo $LS_OPTIONS
В других дистрибутивах Linux для передачи параметров по умолчанию используется механизм псевдонимов (aliases), о котором будет рассказано позже.

