Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

3.7. Изучим понятие таблицы иноде (inode)

Таблица с таким именем является важной составляющей ФС семейства UNIX/Linux. Там хранятся уникальные номера всех имеющихся в системе файлов, которые назначаются ему при создании. Такой номер и определяет, где размещаются значения его атрибутов (информация, обеспечивающая все действия над ним). Доступ к ним осуществляется из файла каталога, где хранится только имя файла и его номер.

Команда

ls -il

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

Изучим, как назначаются номера в таблице inode. Создаем новый файл

cat > newfile

Введем несколько строк. Завершим ввод выполнив <Ctrl+D>. Зафиксируем номер, присвоенный новому файлу.

ls -il newfile*

32925 -rw-r-r--1 root root

Подобным же образом создадим еще два файла с именами newfile2 и newfile3. Вновь дадим

ls -il newfile*

и зафиксируем номера всех вновь созданных файлов. Теперь удалим два файла и будем создавать новые.

rm – newfile2

cat newfile1 > newfile4

ls -if newfile*

32928 file4

rm newfile1

cat newfile4 > newfile5

cat newfile4 > newfile6

ls -il newfile*

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

3.8. Расширим понимание и умение использовать команды less и more

Эти команды мы уже упоминали. Их назначение – постраничный просмотр текстовых файлов. Команда less более удобна. Она позволяет возвращать уже просмотренный фрагмент. Другая же программа (more) «прокручивает файл» только вперед. Изучим каталог /etc/rc.d, используя эти команды.

ls /etc > etc_list

less etc_list

more etc_list

wc -l etc_list

Последняя команда подсчитывает количество строк в файле

264 etc_list

Во время загрузки операционной системы выводится много полезной информации. Но она изменяется довольно быстро, и поэтому ознакомиться с ней трудно. Но это можно сделать после загрузки операционной системы Linux. Надо просто вызвать для просмотра файл dmesg. Это удобно сделать, например, такой командой

less /var/log/dmesg

будет выведено много разнообразной информации о процедуре загрузки. Аналогичный результат получается, если дать команду

dmesg

3.9. Рассмотрим сортировку содержимого файлов

Для просмотра информации текстового файла в удобном виде иногда может потребоваться команда, сортирующая содержимое какого-то файла. Ее имя sort, и она часто используется вместе с другими командами. Например, такими могут быть head (выводит несколько первых строк файла) или tail (распечатает несколько последних строк файла).

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

b, игнорировать пробелы;

-f, не учитывать прописные и строчные буквы;

-k, определяет ключ (позицию) сортировки;

-n, по номерам строк;

-r, обратный порядок сортировки.

В качестве примера дайте команду, сортирующую результаты выполнения другой команды – ls. Напомним, что первый из левой группы символов (превого поля) определяет тип файла. Отсортировав по первому полю (опция k 1) результаты команды

ls -lа

получим строки, сгруппированные по типам файлов. Сделаем это для директории /dev. При такой записи команд

ls -al /dev | sort –k 2

результат первой из них передается второй для вывода после сортировки.

По другому это можно сделать так: сначала файл формируется, а затем к нему применяется сортировка.

ls /dev/ -al > file_sort

sort –k 2 file_sort

Теперь выполним команду, сортирующую файл по количеству ссылок на него (второе поле) и сделаем это три раза:

1) без дополнительных опций;

2) с опцией –r (для сортировки в обратном порядке);

3) с опциями –r и –g (для цифровой сортировки).

В приведенных примерах используется команда head и поэтому выводиться только 10 строк результата.

Первый пример

sort -k 2 file_sort | head

приведет к такому результату

1

drwxr-xr-x 13 root root 4880

2

Фев 6 17:38 .

1

crw------- 1 asplinux root 195, 0

2

Фев 6 2010 nvidia0

1

crw------- 1 asplinux root 195, 1

2

Фев 6 2010 nvidia1

1

crw------- 1 asplinux root 195, 255

2

Фев 6 2010 nvidiactl

1

crw------- 1 asplinux root 195, 2

2

Фев 6 2010 nvidia2

1

crw------- 1 asplinux root 195, 3

2

Фев 6 2010 nvidia3

1

crw------- 1 asplinux root 5, 1

2

Фев 6 2010 console

1

brw-rw---- 1 root disk 1, 0

2

Фев 6 2010 ram0

1

brw-rw---- 1 root disk 1, 10

2

Фев 6 2010 ram10

1

brw-rw----+ 1 root disk 11, 0

2

Фев 6 2010 sr0

Такая команда второго примера в первой строке выводит файл с 13 связями. Далее следуют файлы с количеством связей 1, так как сортировка производиться по коду символов, составляющих поле сортировки: сначала первого, затем второго и т.д.

sort -k 2 -r file_sort

1

drwxr-xr-x 6 root root 140

2

Фев 6 17:41 .udev

1

drwxr-xr-x 6 root root 120

2

Фев 6 17:37 disk

1

drwxr-xr-x 4 root root 360

2

Фев 6 17:37 input

1

Итого 4

2

1

drwxr-xr-x 3 root root 60

2

Фев 6 2010 bus

1

drwxr-xr-x 2 root root 80

2

Фев 6 17:37 bsg

1

drwxr-xr-x 2 root root 60

2

Фев 6 2010 net

1

drwxrwxrwt 2 root root 60

2

Фев 6 17:40 shm

1

drwxr-xr-x 2 root root 60

2

Фев 6 17:37 dri

1

drwxr-xr-x 2 root root 180

2

Фев 6 17:37 snd

В следующей команде сортировка по второму полю осуществляется в обратном порядке и сначала расположены файлы с количеством связей 6, 4 и т.д., хотя есть файлы с этим значением большим по величине (убедимся в этом следующей команды).

sort -k 2 -r -g file_sort

1

drwxr-xr-x 23 root root 4096

2

Фев 6 17:38 ..

1

drwxr-xr-x 13 root root 4880

2

\ Фев 6 17:38 .

1

drwxr-xr-x 6 root root 140

2

Фев 6 17:41 .udev

1

drwxr-xr-x 6 root root 120

2

Фев 6 17:37 disk

1

Итого 4

2

1

drwxr-xr-x 4 root root 360

2

Фев 6 17:37 input

1

drwxr-xr-x 3 root root 60

2

Фев 6 2010 bus

1

drwxr-xr-x 2 root root 80

2

Фев 6 17:37 bsg

1

drwxr-xr-x 2 root root 60

2

Фев 6 2010 net

1

drwxr-xr-x 2 root root 60

2

Фев 6 17:37 dri

В третьей команде применен параметр, реализующий цифровую сортировку. На первом месте файл с наибольшим числом связей. Сочетание опций -b и -g даст аналогичный результат без дополнительных параметров, а в сочетании опций -g и -b первая нейтрализует действие второй. Как было сказано выше, опции (-n) действует аналогично -g.

Соседние файлы в папке Операционные системы