Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_voprosy.docx
Скачиваний:
9
Добавлен:
20.03.2016
Размер:
465.35 Кб
Скачать

8. Working with file contents

  1. headдля просмотра первых 10 строчек файла. Можно так же показать первые n строчек файла (прим: head -4 /etc/passwd)

  1. tailаналогично для head, показывает последние 10 строк файла. Также можно задать, сколько строк (n) показывать.

  1. catодно из наиболее универсальных устройств. Все, что он делает, это копирует информацию со стандартного входа в стандартный выход. В комбинации с shell, может быть весьма сильным и разносторонним. Некоторые примеры дадут беглый взгляд на его возможности. Первый пример простой, вы можете использовать cat для вывода файла на экран. Если файл больше, чем экран, то содержимое будет прокручено в конец.

paul@laika:~$ cat /etc/resolv.conf

nameserver 194.7.1.4

paul@laika:~$

cat – сокращение от concatenate, т.е. сцеплять. Одно из стандартных использований – соединение файлов в бОльшие (завершенные) файлы.

paul@laika:~$ echo one > part1

paul@laika:~$ echo two > part2

paul@laika:~$ echo three > part3

paul@laika:~$ cat part1 part2 part3

one

two

three

paul@laika:~$

Вы можете использовать cat для создания текстовых файлов. Напечатайте cat > winter.txt, как в примере внизу. Потом наберите одну или больше строк, заканчивая каждую строку нажатием Enter’а. После последней строчки нажмите Ctrl+D (это пошлет EOF (End Of File), чтобы завершить работу команды cat).

paul@laika:~/test$ cat > winter.txt

It is very cold today!

paul@laika:~/test$ cat winter.txt

It is very cold today!

paul@laika:~/test$

Вы можете самостоятельно задать маркер завершения с помощью <<, как показано в примере. Эта конструкция называется here directive и она завершит команду cat.

paul@laika:~/test$ cat > hot.txt <<stop

> It is hot today!

> Yes it is summer.

> stop

paul@laika:~/test$ cat hot.txt

It is hot today!

Yes it is summer.

paul@laika:~/test$

В третьем примере вы увидите, что cat можно использовать для копирования файлов. Детальное объяснение происходящего будет в главе о bash shell.

paul@laika:~/test$ cat winter.txt

It is very cold today!

paul@laika:~/test$ cat winter.txt > cold.txt

paul@laika:~/test$ cat cold.txt

It is very cold today!

paul@laika:~/test$

Только один пример покажет вам цель tac (как противоположность cat).

paul@laika:~/test$ cat count

one

two

three

four

paul@laika:~/test$ tac count

four

three

two

one

paul@laika:~/test$

  1. moreэта команда полезна для отображения файлов, которые занимают больше одного экрана. More позволит вам постранично увидеть содержимое файла, используйте пробел, для перемещения к след. странице. Less - команда аналогичная more, только листает из конца в начало.

  1. stringsпозволяет показать в читаемом формате найденные в файле ascii строки. Этот пример находит двоичный файл для ls, затем показывает его содержимое.

paul@laika:~$ which ls

/bin/ls

paul@laika:~$ strings /bin/ls

/lib/ld-linux.so.2

librt.so.1

__gmon_start__

_Jv_RegisterClasses

clock_gettime

libacl.so.1

...

9. The Linux file tree

  1. Множество дистрибутивов Linux частично следует Иерархическому Стандарту Файловой системы (Filesystem Hierarchy StandardFHS). Есть некоторые различия в файловых системах в разных дистрибутивах Линукс. Чтобы узнать, что стоит в вашей машине, используйте man hier. Этот мануал объяснит структуру папок в вашем компьютере.

  1. Все системы линукс имеют структуру папок, которая начинается в корневом каталоге (root direcory). Он представлен прямым слешем: / . Все, что существует в вашем компьютере может быть найдено ниже root’а. Кратко рассмотрим содержимое:

[paul@RHELv4u3 ~]$ ls /

bin dev home media mnt proc sbin srv tftpboot usr

boot etc lib misc opt root selinux sys tmp var

  1. Binary directories (далее бинарники). Бинарники это файлы, которые содержат полный исходный код (машинный код). Они могут быть выполнены на компьютере. Иногда бинарники называют исполняемыми файлами.

Папка /bin содержит бинарники, которые используются всеми пользователями. Следуя FHS, /bin должна содержать /bin/cat и /bin/date (помимо всего остального). Вы можете найти подпапку /bin во множестве других папок. Например, пользователь serena может поместить её собственные программы в /home/serena/bin. Некоторые приложения часто при установке напрямую из источника поместят себя в /opt. Установщик Samba server может использовать /opt/samba/bin, для хранения своих бинарников.

  1. /sbin содержит бинарники для настройки операционной системы. Многие из системных бинарников (system binaries) требуют права root’а для выполнения определенных задач.

  1. /lib содержит общие бинарники, которые используют бинарники расположенные в /bin и /sbin.

/lib/modulesобычно ядро Linux загружает модули ядра из /lib/modules/$kernelversion. Содержимое более подробно разобрано в статье о ядре Linux.

/lib32 и /lib64 – сейчас мы живем при переходе между 32-х и 64-х битными системами. Таким образом, вы можете столкнуться с этими папками, которые разъясняют размер регистра, использующийся во время компиляции библиотек. 64-битный компьютер может иметь некоторые 32-битные бинарники и библиотеки для совместимости с унаследованными приложениями. Пример показывает разницу:

paul@laika:~$ file /lib32/libc-2.5.so

/lib32/libc-2.5.so: ELF 32-bit LSB shared object, Intel 80386, \

version 1 (SYSV), for GNU/Linux 2.6.0, stripped

paul@laika:~$ file /lib64/libcap.so.1.10

/lib64/libcap.so.1.10: ELF 64-bit LSB shared object, AMD x86-64, \

version 1 (SYSV), stripped

Формат ELF (Executable and Linkable Format, Формат исполнимых и компонуемых модулей) используется почти в каждой Unix-подобной системе, начиная с System V.

  1. /opt – здесь хранится дополнительное программное обеспечение. Во многих случаях это ПО не из распределяющего хранилища (distribution repository). Большие пакеты могут устанавливать все свои файлы в /bin, /lib, /etc внутри /opt/$packagename. То есть, например, если пакет называется wp, то он установится в /opt/wp, поместит свои бинарники в /opt/wp/bin, а мануалы в /opt/wp/man.

  1. /bootздесь хранятся все файлы, необходимые для запуска компьютера. Эти файлы нечасто меняются. В Linux системах вы обычно найдете /boot/grub, которая содержит /boot/grub/grub.cfg (в более старых системах это может быть /boot/grub/grub.conf), который определяет загрузочное меню, которое отображается до запуска ядра.

  1. /etc все машинно-зависимые конфигурационные файлы расположены тут. Исторически /etc было сокращением от etcetera (и так далее), сейчас люди чаще используют расшифровку Editable Text Configuration (настраиваемые текстовые конфигурации). В большинстве случаев название конфигурационных файлов совпадает с названиями приложений, демонов или протоколов, добавляется только расширение .conf.

/etc/init.d/ - Большинство Linux/Unix дистрибутивов имеет эту папку, которая содержит скрипты для запуска и остановки демонов (daemon, фоновых программ). Эта папка может исчезнуть при перемещении Linux на системы, которые заменяют старые, инициализирующие способы запуска всех демонов.

/etc/X11 – графический дисплей (так же известный как X Window System или просто X) управляемый ПО от фонда X.org. Файл конфигурации для вашего графического дисплея это /etc/X11/xorg.conf.

/etc/skelскелет, который копируется в корневой каталог только что созданного пользователя. В ней обычно хранятся скрытые файлы, такие как скрипты .bashrc.

/etc/sysconfig не упоминается в FHS, содержит большую часть конфигурационных файлов от Red Hat Enterprise Linux.

  1. Директории данных

/homeпользовательская папка, в которой хранятся персональные данные или проекты. Обычная практика (но не обязательно по FHS) называть домашнюю папку пользователя по его имени в виде /home/$USERNAME. Помимо предоставления каждому пользователю (проекту или группе) места для хранения личных файлов, домашний каталог пользователя служит для хранения профиля пользователя. Обычный профиль пользователя Unix содержит множество скрытых файлов, которые содержат конкретные настройки для данного пользователя.

/root в большинстве систем это стандартное место для персональных данных и профиля root-пользователя. Если по умолчанию её не существует, некоторые администраторы создают её.

/srv – папка для хранения данных, которые обслуживаются вашей системой (served by your system). FHS позволяет установку данных cvs, rsync, ftp и www в эту папку. Также FHS разрешает административно называть папки в /srv, как будет удобно.

/media – сюда устанавливаются все «убираемые» устройства хранения данных (removable media devices), такие как CD-ROM’ы, видеокамеры, и различные приспособления, подключаемые через USB. Так как /media является относительно новой в мире Unix, вы вполне можете столкнуться с системами, которые работают и без этого каталога.

/mnt - эта папка должна быть пустой, и должна использоваться только как временная точка для установки (согласно FHS). Unix и Linux администраторы нередко создают здесь множество папок. Скорее всего, вы столкнетесь с системами, которые имеют здесь множество подпапок, которые используются для различных локальных и удаленных файловых систем.

/tmp здесь по необходимости хранятся временные данные. Данные, которые записаны в /tmp могут использовать дисковую или оперативную память, которые оба управляются операционной системой. Никогда не используйте /tmp для хранения важных данных, или тех данных, которые вы хотите сохранить.

  1. директории памяти (in memory directories)

/devздесь хранятся файлы устройств, которые кажутся обычными файлами, но на самом деле они не расположены на жестком диске. Эта папка заполняется файлами, по мере того как ядро начинает «видеть» новое оборудование. Общее железо, такое как жесткие диски, представлено файлами устройств в папке /dev с названием sd* для SATA, SCSI или USB, и файлами hd* для IDE и ATAPI. Помимо представления физического аппаратного обеспечения, некоторые файлы устройств особенные. Они могут быть очень полезны.

/dev/tty и /dev/pts например, /dev/tty1 представляет консоль, присоединенную к системе. Когда ввод команд происходит в окне терминала, которое является частью графического интерфейса, как у Gnome или KDE, тогда терминал будет представлен как /dev/pts/1 (в обоих случаях цифра может быть другой.)

/dev/null одно из специальных устройств, может быть определено, как «черная дыра», она имеет неограниченный объем, но ничего не может быть извлечено из неё. Технически говоря, все, записанное сюда будет сброшено. Эта папка может быть полезной ля того, чтобы переправлять сюда все нежелательные выводы от команд.

/proc еще одна специальная директория, файлы, хранящиеся здесь, представляются обычными, но не занимают места на диске. В целом, это вид на ядро, или, точнее, то чем ядро управляет, и оно служит для того, чтобы управлять ядром напрямую.

  1. /usrUnix System Resources. Иерархия этой директории должна содержать общие данные и данные, открытые только для чтения. Некоторые люди предпочитают установить /usr полностью в режим read only.

/usr/bin – здесь хранятся сами команды.

/usr/include – основные используемые подключаемые файлы для Си.

/usr/lib – библиотеки, которые выполняются не напрямую пользователями или скриптами.

/usr/local может использоваться администратором, для локальной установки ПО

/usr/share – архитектурно независимые данные. Например, здесь нередко содержится /usr/share/man – для мануалов, или /usr/share/games для всей неизменной игровой информации (никакой информации об очках или историй игр.)

/usr/srcрекомендуемая директория для расположения исходных файлов ядра.

  1. /var – переменные данные (variable data) – для всех файлов, имеющих неопределенный размер, таких как истории сообщений (логи), кэш и файлы очереди (spool files).

/var/logвсе логи.

/var/log/messagesдля Red Hat (и производных) – в этом файле содержится информация о том, что только что произошло с системой. Для Debian и Ubuntu это /var/log/syslog

/var/cacheкэш для некоторых приложений.

/var/spoolсодержит информацию об очередях для писем и cron, но также может быть родительской директорией для других файлов очередей, например файла очереди печати.

/var/lib информация о состоянии приложения.

/var/… - в папке var также хранятся файлы ID для процессов в /var/run и временные файлы, которые помогают восстановиться после перезагрузки в /var/tmp, а также информация о блокировке файлов в /var/lock.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]