- 1 Использование LILO или LILOвая система.
- 1 Аккаунт root.
- 2 Резервирование на Zip диски.
- 3 Выключение системы.
- Страница руководства man hier
- 11 Что делать при ЧП.
- Директория для изменяемых данных /var
- Директории для хранения файлов конфигурации
- 2 Имена устройств.
- Корневая директория /
- 3 Резервирование на стриммер.
- Директории в оперативной памяти
- Директория системных ресурсов Unix /usr
- 5 Использование своп-файла.
- Корректная процедура выполнения практического задания
- Если вам понравилась статья, поделитесь ею с друзьями:
- 6 Работа с пользователями.
- 3 Можно вместе.
- 2 Добавление драйвера устройства к ядру.
- 3 Удаление пользователей.
- 2 gzip и compress.
- 8 Использование дискет и осуществление резервирования.
- Директории для хранения бинарных файлов
1 Использование LILO или
LILOвая система.
LILO это программа, которая располагается в загрузочном секторе вашего
жесткого диска. Эта программа выполняется, когда система загружается с
жесткого диска и может автоматически загрузить Linux из образа
ядра, хранящегося на жестком диске.
LILO может быть также использована, как начальный загрузчик
для нескольких операционных систем, позволяя вам выбирать во
время загрузки, какую операционную систему (например, Linux или
MS-DOS) загружать. Когда вы загружаетесь с использованием LILO,
то загружается операционная система, установленная по умолчанию,
если вы не нажмете shift во время выполнения загрузки. Если вы
нажмете клавишу shift, или если в файле lilo.conf есть директива
prompt, вам будет выдана подсказка загрузчика, в ответ на которую вы
напечатаете имя операционной системы, которую надо загрузить (например,
«linux» или «msdos»). Если вы
нажмете tab в ответ на подсказку загрузчика, вам будет выдан перечень
доступных операционных систем.
Простой способ инсталлировать LILO: отредактировать файл
конфигурации /etc/lilo.conf. После чего команда:
# /sbin/lilo
впишет новую конфигурацию lilo.conf в загрузочный сектор. Эту
команду необходимо отдавать каждый раз, когда вы модифицировали файл
lilo.conf.
Файл конфигурации LILO содержит записи для каждой операционной
системы, которую вы можете загрузить. Лучший способ
продемонстрировать это на примере конфигурационного файла LILO
config. Нижеприведенные установки для системы, которая имеет
корневой раздел Linux на /dev/hda1 и раздел MS-DOS на
/dev/hda2:
# Tell LILO to modify the boot record, on /dev/hda (the first # non-SCSI hard drive). If you boot from a drive other than # /dev/hda, change the following line boot = /dev/hda # Set a sane videomode vga = normal # Set the delay in milli-seconds. This is the time you have to # press the 'SHIFT' hey to bring up the LILO prompt if you # haven't specified the 'prompt' directive delay = 50 # Name of the boot loader. No reason to modify this unless you're # doing some serious hacking on LILO install = /boot/boot.b # This forces LILO to prompt you for the OS you want to boot # A 'TAB' hey at the LILO prompt will display a list of the OSs # available to boot according to the names given in the 'label=' # directives belov; prompt # Have LILO perform some optimisation compact # Stanza for Linux root partition on /dev1hda1 image = vmlinuz # Location of kernel label = linux # Name of OS (for the LILO boot menu) root = /dev/hda1 # Location of root partition read-only # Mount read only # Stanza for MSDOS partition on /dev/hda2 other = /dev/hda2 # Location of partition table = /dev/hda2 # Location of partition table for /dev/hda2 label = msdos # Name of OS (for boot menu)
Записи первой операционной системы в файле config это та
ОС, которую LILO загружает по умолчанию. Вы можете выбрать другую
ОС во время загрузки в ответ на подсказку LILO, как это уже
обсуждалось ранее. Помните, что каждый раз, когда вы изменяете образ ядра
на диске, вы должны заново выполнить /sbin/lilo, чтобы
изменения отразились в загрузочном секторе вашего диска. Имейте также в виду,
что если вы используете здесь строку «root=», нет смысла
использовать rdev для установки корневого раздела в образе ядра.
LILO установит его сам во время загрузки.
Установщик Microsoft Windows ’95 стирает менеджер загрузки LILO. Если Вы
собираетесь устанавливать Windows ’95 на вашей системе после установки LILO,
создайте сначала диск начальной загрузки (см.
раздел 4.2). С диском начальной
загрузки, Вы сможете загрузить Linux и повторно установить LILO после того,
как поставите Windows ’95. Это делается просто: скомандуйте как root
/sbin/lilo. Разделы с Windows ’95 могут быть конфигурированы
для загрузки через LILO с использованием тех же записей в lilo.conf,
что и для загрузки с раздела MS-DOS.
Linux FAQ (см. Приложение A)
дает дополнительную информацию по тому, как использовать LILO при
загрузке через Boot Manager OS/2.
1 Аккаунт root.
Обычные пользователи в общем случае ограничены так, что они
не могут причинить вред кому-либо другому в системе (включая саму
систему), кроме самих себя. Права доступа к файлам в системе
организованы таким образом, что простой пользователь не может
удалить или изменить файл, файл в каталогах, которые
пользователи используют совместно (такие как /bin и
/usr/bin).
Большинство пользователей также защищают свои собственные файлы
так, что не могут их изменить, а иногда и вообще добраться до
них.
Но все эти ограничения не распространяются на пользователя root.
Пользователь root может читать, модифицировать или удалять любой файл
системы, изменять его права доступа или менять его владельца. Он
(root) может также выполнять специальные (привилегированные)
программы, такие как разбитие диска на разделы или создание файловой системы.
Основная идея состоит в том, что некто (их может быть несколько), кто
выполняет регистрацию пользователей (и носит имя root), должен,
когда это необходимо, иметь возможность выполнять работы, которые не могут
быть выполнены обычным рядовым пользователем. Поскольку root может делать
все, что угодно, ему легко совершить какую-то ошибку, приводящую к
катастрофическим последствиям.
Например, если вы как обычный пользователь случайно
попытаетесь удалить файл в /etc, система не разрешит вам
это сделать. Но, если вы вошли как root, система даже не
пикнет, выполняя все, что прикажете. Легко уничтожить систему, пребывая в
системе в качестве root. Лучший способ избежать неприятностей, это:
- Посидеть на собственных ладошках, прежде чем нажать
Enter для выполнения команды, которая может быть причиной
катастрофы. Например, если вы собираетесь очистить
каталог, перед нажатием Enter перечитайте всю команду
и убедитесь, что она написана правильно. - Не привыкайте использовать
root. Чем более комфортно вам
будет в ролиroot, тем больше вы будете путать ваши
привилегии с привилегиями нормального пользователя.
Например, вы можете подумать, что вы сейчас находитесь в
системе какlarry, хотя на самом деле будете неудержимым
root. - Используйте отличающуюся подсказку для
root. Для этого
следует внести изменения в root-овский.bashrcили
.loginфайл для того, чтобы сделать подсказку для
rootотличной от других. Например, многие используют символ
«$» в подсказках обычных пользователей и оставляют символ
«#» для подсказкиroot. - Входите под именем
rootтолько тогда, когда это абсолютно
необходимо. И, как только вы закончите работуroot,
выйдите (выведитеrootиз системы). Чем меньше используете
root, тем меньше навредите системе.
Разумеется, есть племя хакеров, которые используют root
практически всегда и везде. Но каждый из них когда-то по глупости
уничтожил хотя бы (в лучшем случае) одну систему. Есть общее
правило: пока вы не познакомились с неограниченными возможностями
root, и не привыкли к отсутствию ограничений, входите под root
в крайнем случае.
Мы детально обсудим системное администрирование чуть
позже.
2 Резервирование на Zip
диски.
Резервирование на Zip диски ничем не отличается от резервирования на
дискеты, но поскольку Zip диски имеют емкость 100 мегабайт, на дискету
помещается меньше. Как правило, архив может быть целиком выгружен на один
Zip диск.
Zip диски доступны с тремя типами интерфейса: SCSI, IDE и параллельный
порт PPA. Поддержка Zip дисков не входит в настройки скомпилированного ядра
Linux по умолчанию, но она может быть указана при построении заказного ядра
для вашей системы. Подробнее о компиляции ядра см.
ниже.
SCSI и PPA интерфейсы Zip дисков используют SCSI интерфейс и соглашения
об именах SCSI устройств, которые описаны
здесь.
Zip отформатированы производителем в файловой системе a MS-DOS. Вы
можете использовать имеющуюся файловую систему MS-DOS, которая должна
поддерживаться Вашим ядром Linux kernel, или использовать mke2fs
для создания на диске файловой системы Linux.
Zip диск, который смонтирован на первом SCSI устройстве, называется
/dev/sda4.
# mount /dev/sda4 /mnt
Для доступа к диску нужна отдельная точка монтирования, например,
/zip. Чтобы ее создать скомандуйте от имени root:
# mhdir /zip # chmod 0755 /zip
Теперь Вы можете использовать /zip для монтирования файловой системы
с Zip диска.
Запись архива на Zip диск аналогично записи на дискету. Для архивации и
сжатия каталога /etc на смонтированный Zip диск скомандуйте:
# tar zcvf /zip/etc.tgz /etc
Данная команда может быть выполнена из произвольного каталога, поскольку
указывает полное имя файла. Архив будет назван etc.tgz, если на Zip
диске файловая система MS-DOS, в которой имя файла должно соответствовать
соглашениям MS-DOS 8+3, в противном случае имя файла будет обрезано.
Для распаковки данного архива, скомандуйте:
# cd / # tar zxvf /zip/etc.tgz
Для создания, например, файловой системы ext2 на Zip диске, скомандуйте
(на размонтированном Zip диске):
# mke2fs /dev/sda4
Смонтировав Zip диск с файловой системой ext2, можно зарезервировать все
файловые системы одной командой:
# tar zcvf /zip/local.tar.gz /usr/local
Заметьте, что резервирование программой tar все еще
предпочтительнее, чем архивация командой cp -a, поскольку
tar сохраняет время модификации файлов.
3 Выключение системы.
Выключить Linux не так просто. Не забывайте,
что никогда нельзя просто выключить питание или нажать кнопку
«reset» во время работы системы. Ядро отслеживает диск при вводе-выводе с
помощью буферов. Если вы перезагружаете систему, не дав шанса ядру переписать
буфера на диск, вы можете попортить файловые системы. Тем не менее,
переводчик лично знает прекрасных и обаятельных ребят, которые работая
системными администраторами одного университета, выключают систему именно
так. Должен заметить, что тот факт, что их сервер до сих пор работает,
говорит не об квалификации, а о высокой устойчивости Linux, а то, что они до
сих пор работают системными администраторами говорит только о том, что они
нравятся администрации ВУЗа, а не об их знаниях.
Необходимы и другие меры предосторожности при выключении.
Всем процессам посылается сигнал, который позволяет им красиво
умереть (записав, что надо и закрыв все файлы и т.д.). Файловые
системы для безопасности размонтируются. Если вы желаете, система
может также предупредить пользователей, что предстоит выключение,
чтобы дать им шанс тоже (красиво) выйти из системы.
Простейший способ выключения, это использование команды
shutdown. Формат команды:
shutdown time warning-message
Здесь time задает время выключения системы (в формате hh:mm:ss
или на русском чч:мм:сс), а warning-message задает сообщение,
выдаваемое на терминалы всех пользователей перед выключением. Вы можете
просто указать время (time) как «now», что приведет к
безотлагательному выключению. Опция -r приведет к перезагрузке
после выключения.
Например, выключить систему в 8:00 вечера можно командой:
# shutdown -r 20:00
Команда halt может инициировать немедленное выключение без
посылки предупреждающих сообщений или предоставления паузы перед
выключением. halt полезна, если вы единственный пользователь
системы и хотите выключить систему и вырубить питание.
ВНИМАНИЕ! На выключайте электропитание и не перезагружайте
ее, пока не увидите на консоли сообщение:
The system is halted.
Важно cделать выключение «чисто», используя команды shutdown
или halt. В некоторых системах нажатие ctrl-alt-del
будет перехвачено системой и приведет к ее выключению, но в других
системах использование «затычки для вулкана» приведет к немедленной
перезагрузке системы и может быть причиной крупных неприятностей.
Страница руководства man hier
Существуют некоторые различия в иерархиях файловых систем различных дистрибутивов Linux. Для того, чтобы ознакомиться с информацией об иерархии файловой системы вашей машины, используйте команду man hier. На данной странице руководства будут приведены пояснения относительно структуры дерева директорий системы, установленной на вашем компьютере.
11 Что делать при ЧП.
В некоторых случаях администратор системы будет сталкиваться
с проблемой выкарабкивания из абсолютной катастрофы, такой
например, как забытие пароля root или крах файловой системы.
Лучший совет: без паники! Все делают глупые ошибки: это лучший
способ освоить системное администрирование, хотя и тяжелый.
Linux не является нестабильной версией UNIX. Действительно, у меня было
значительно меньше проблем с зависанием системы, чем с коммерческими версиями
UNIX на многих платформах. Linux также выигрывает от большого
расположения к нему крутых программистов, которые могут помочь
выпутаться из сложной ситуации.
Первый шаг в исследовании любой проблемы: попытаться
справиться с ней самостоятельно. Потыкайтесь туда-сюда и
посмотрите, что из этого будет получаться. Слишком много времени
системные администраторы тратят на рассылку во все стороны
отчаянных воплей о помощи, прежде, чем вникнуть в проблему. В
большем числе случаев вы обнаружите, что вы сами легко можете
решить проблему. А это уже ваш прямой путь в мэтры.
Директория для изменяемых данных /var
Файлы заранее неизвестного размера, такие, как файлы журналов, файлы кэша и файлы очереди печати должны сохраняться в директории /var.
Директория /var/log выполняет функции центрального хранилища всех файлов журналов.
[paul@RHEL4b ~]$ ls /var/log acpid cron.2 maillog.2 quagga secure.4 amanda cron.3 maillog.3 radius spooler anaconda.log cron.4 maillog.4 rpmpkgs spooler.1 anaconda.syslog cups mailman rpmpkgs.1 spooler.2 anaconda.xlog dmesg messages rpmpkgs.2 spooler.3 audit exim messages.1 rpmpkgs.3 spooler.4 boot.log gdm messages.2 rpmpkgs.4 squid boot.log.1 httpd messages.3 sa uucp boot.log.2 iiim messages.4 samba vbox boot.log.3 iptraf mysqld.log scrollkeeper.log vmware-tools-guestd boot.log.4 lastlog news secure wtmp canna mail pgsql secure.1 wtmp.1 cron maillog ppp secure.2 Xorg.0.log cron.1 maillog.1 prelink.log secure.3 Xorg.0.log.old
Стандартным файлом, к которому следует обратиться в первую очередь при диагностике дистрибутива от компании Red Hat (и производных дистрибутивов), является файл /var/log/messages. По умолчанию данный файл должен содержать информацию о событиях, которые происходят в рамках системы. Файл, выполняющий аналогичные функции в дистрибутивах Debian и Ubuntu, носит имя /var/log/syslog.
[root@RHEL4b ~]# tail /var/log/messages Jul 30 05:13:56 anacron: anacron startup succeeded Jul 30 05:13:56 atd: atd startup succeeded Jul 30 05:13:57 messagebus: messagebus startup succeeded Jul 30 05:13:57 cups-config-daemon: cups-config-daemon startup succeeded Jul 30 05:13:58 haldaemon: haldaemon startup succeeded Jul 30 05:14:00 fstab-sync[3560]: removed all generated mount points Jul 30 05:14:01 fstab-sync[3628]: added mount point /media/cdrom for... Jul 30 05:14:01 fstab-sync[3646]: added mount point /media/floppy for... Jul 30 05:16:46 sshd(pam_unix)[3662]: session opened for user paul by... Jul 30 06:06:37 su(pam_unix)[3904]: session opened for user root by paul
Директория /var/cache может содержать кэшированные данные некоторых приложений.
paul@ubu1010:~$ ls /var/cache/ apt dictionaries-common gdm man software-center binfmts flashplugin-installer hald pm-utils cups fontconfig jockey pppconfig debconf fonts ldconfig samba
Директория /var/spool обычно содержит поддиректории для хранения файлов с сообщениями электронной почты и данными задач cron, причем она также может быть родительской директорией для других файлов очередей (например, файлов очередей печати).
Директория /var/lib содержит файлы с данными состояния приложений.
Дистрибутив Red Hat Enterprise Linux, к примеру, хранит файлы, относящиеся к менеджеру пакетов rpm, в поддиректории /var/lib/rpm/.
Директория /var также содержит файлы с идентификаторами процессов в поддиректории /var/run (которая в недалеком будущем будет заменена на директорию /run), временные файлы, которые не должны удаляться при перезагрузке, в поддиректории /var/tmp, а также файлы блокировок в поддиректории /var/lock. Далее в данной книге будут приведены дополнительные примеры использования директории /var для хранения данных.
Директории для хранения файлов конфигурации
Директория /boot содержит все файлы, необходимые для загрузки компьютера. Эти файлы не изменяются очень часто. В системах Linux в данной директории обычно можно обнаружить поддиректорию /boot/grub. Директория /boot/grub содержит файл /boot/grub/grub.cfg (на более старых системах также может использоваться файл /boot/grub/grub.conf), в рамках которого описывается меню загрузки, отображаемое перед загрузкой ядра ОС.
Все специфичные для машины конфигурационные файлы должны быть расположены в директории /etc. Изначально имя директории /etc была образовано от слова etcetera (и так далее), но сегодня люди часто расшифровывают его как Editable Text Configuration (директория с редактируемыми текстовыми файлами конфигурации).
Во многих случаях имена конфигурационных файлов совпадают с именами приложений или протоколов, а в качестве расширений этих файлов используется строка .conf.
paul@laika:~$ ls /etc/*.conf /etc/adduser.conf /etc/ld.so.conf /etc/scrollkeeper.conf /etc/brltty.conf /etc/lftp.conf /etc/sysctl.conf /etc/ccertificates.conf /etc/libao.conf /etc/syslog.conf /etc/cvs-cron.conf /etc/logrotate.conf /etc/ucf.conf /etc/ddclient.conf /etc/ltrace.conf /etc/uniconf.conf /etc/debconf.conf /etc/mke2fs.conf /etc/updatedb.conf /etc/deluser.conf /etc/netscsid.conf /etc/usplash.conf /etc/fdmount.conf /etc/nsswitch.conf /etc/uswsusp.conf /etc/hdparm.conf /etc/pam.conf /etc/vnc.conf /etc/host.conf /etc/pnm2ppa.conf /etc/wodim.conf /etc/inetd.conf /etc/povray.conf /etc/wvdial.conf /etc/kernel-img.conf /etc/resolv.conf paul@laika:~$
В директории /etc также можно обнаружить большое количество других важных файлов.
Во многих дистрибутивах Unix/Linux имеется директория /etc/init.d, которая содержит сценарии для запуска и остановки демонов. Эта поддиректория может исчезнуть в процессе перехода дистрибутивов Linux на системы инициализации, которые заменят старую систему инициализации init, используемую для запуска всех демонов.
Управление системой вывода графики осуществляется средствами программного обеспечения от организации X.org Foundation (а именно, сервера оконной системы X Window System или просто X). Файл конфигурации для вашего сервера оконной системы носит имя /etc/X11/xorg.conf.
Содержимое директории каркаса /etc/skel копируется в домашнюю директорию при создании учетной записи пользователя. Она обычно содержит такие скрытые файлы, как сценарий .bashrc.
Данная директория, не упомянутая в спецификации FHS, содержит большое количество файлов конфигурации компонентов дистрибутива Red Hat Enterprise Linux. Впоследствии мы будем более подробно рассматривать некоторые из этих файлов. В примере ниже приведен список файлов директории /etc/sysconfig дистрибутива RHELv4u4 в случае установки всех связанных с данной директорией программных компонентов.
paul@RHELv4u4:~$ ls /etc/sysconfig/ apmd firstboot irda network saslauthd apm-scripts grub irqbalance networking selinux authconfig hidd keyboard ntpd spamassassin autofs httpd kudzu openib.conf squid bluetooth hwconf lm_sensors pand syslog clock i18n mouse pcmcia sys-config-sec console init mouse.B pgsql sys-config-users crond installinfo named prelink sys-logviewer desktop ipmi netdump rawdevices tux diskdump iptables netdump_id_dsa rhn vncservers dund iptables-cfg netdump_id_dsa.p samba xinetd paul@RHELv4u4:~$
Файл /etc/sysconfig/firstboot сообщает агенту настройки дистрибутива Red Hat о том, что он не должен запускаться после загрузки системы. В том случае, если вы желаете использовать агент настройки дистрибутива Red Hat после следующей перезагрузки, вам следует просто удалить данный файл и выполнить команду chkconfig --level 5 firstboot on. Агент настройки дистрибутива Red Hat позволяет устанавливать последние обновления системы, создавать учетные записи пользователей, пользоваться функциями портала Red Hat Network, а также выполнять другие действия. После запуска он снова создаст файл /etc/sysconfig/firstboot.
paul@RHELv4u4:~$ cat /etc/sysconfig/firstboot RUN_FIRSTBOOT=NO
Файл /etc/sysconfig/harddisks содержит дополнительные параметры настройки жестких дисков. Формат файла описан в самом файле.
Вы можете ознакомиться с описанием программного обеспечения, обнаруженного утилитой kudzu, которое сохраняется в файле /etc/sysconfig/hwconf. Kudzu является приложением от компании Red Hat, предназначенным для автоматического обнаружения и настройки аппаратного обеспечения.
Тип клавиатуры и таблица соответствия символов устанавливаются в файле /etc/sysconfig/keyboard. Для получения дополнительной информации о настройках клавиатуры в консоли следует обратиться к следующим страницам руководств keymaps(5), dumpkeys(1), loadkeys(1), а также к содержимому директории /lib/kbd/keymaps/.
root@RHELv4u4:/etc/sysconfig# cat keyboard KEYBOARDTYPE="pc" KEYTABLE="us"
Файлы для настройки сетевых устройств из данной директории будут обсуждаться в главе, посвященной настройке сети.
2 Имена устройств.
Таблица 4.2: Имена IDE устройств.
CD-ROM и стриммеры, использующие IDE/ATAPI интерфейс, также используют
данные имена устройств.
Таблица 4.3: Имена SCSI устройств.
SCSI CD-ROM и стриммеры именуются не так, как жесткие диски на SCSI.
Сменные SCSI средства, например Iomega Zip drive, следуют соглашениям
наименования для несменных дисков SCSI. Использование Iomega Zip drive для
резервирования описано ниже.
Стриммеры с поддержкой форматов магнитной ленты QIC-02, QIC-40 и QIC-80
имеют собственный набор имен устройств, который описан
ниже.
Гибкие диски используют другую схему
именования устройств.
Корневая директория /
Структуры директорий всех систем Linux начинаются с корневой директории. Корневая директория обозначается с помощью символа прямого слэша, а именно, /. Все файлы, которые существуют в вашей системе Linux, находится ниже данной корневой директории в дереве директорий. Давайте рассмотрим содержимое этой корневой директории.
[paul@RHELv4u3 ~]$ ls / bin dev home media mnt proc sbin srv tftpboot usr boot etc lib misc opt root selinux sys tmp var
3 Резервирование на
стриммер.
Архивация на ленту аналогично архивации на дискеты, только отличается
драйвер устройства. Ленты также форматируются и обрабатываются по-другому,
чем гибкие дискеты. Некоторые драйверы стриммера для Linux перечислены в
таблице 4.5.
Таблица 4.5: Имена устройств стриммера.
Некоторые стриммеры используют контроллер дискет и управляются ftape
драйвером, который описан ниже. Инсталляция модуля драйвера ftape описана
здесь. Имена SCSI стриммеров перечислены
а таблице 4.3.
Для архивации каталога /etc на стриммер с применением
tar скомандуйте:
# tar cvf /dev/qftO /etc
Для распаковки файлов с ленты, скомандуйте:
# cd / # tar xvf /dev/qftO
Ленты, как и дискеты, перед использованием должны быть отформатированы.
Драйвер ftape может форматировать ленты под Linux. Для форматирования ленты
формата QIC-40 скомандуйте:
# ftformat -format-parameter qic40-205ft -mode-auto --omit-erase -discard-header
Другие стриммеры имеют свой софт для форматирования. Посмотрите документацию
на стриммер или на связанный с ним драйвер устройства.
Перед извлечением ленты из стриммера ее надо перемотать и записать на
ленту буфера ввода-вывода. Это аналог размонтирования файловой системы на
дискете перед ее извлечением, поскольку стриммер также буферизуется в памяти.
Стандартной командой UNIX для управления стриммером является mt.
Ваша система может и не поддерживать эту команду. Ftape драйвер имеет
подобную команду, ftmt, которая используется, чтобы управлять
операциями с лентами.
Для перемотки ленты перед ее извлечением, скомандуйте:
# ftmt -f /dev/qftO retension
Конечно, впишите правильное имя стриммера для вашей системы.
Чтобы получить состояние стриммера с отформатированной лентой в нем,
используйте команду:
# ftmt -f /dev/qftO status
Директории в оперативной памяти
Файлы устройств из директории /dev выглядят как обычные файлы, но на самом деле не являются обычными файлами, размещенными на жестком диске. Директория /dev заполняется файлами в процессе определения устройств средствами ядра операционной системы.
Стандартные физические устройства
Стандартные устройства, такие, как жесткие диски, представлены файлами устройств в директории /dev. В примере ниже приведен список файлов устройств SATA ноутбука, а также устройств IDE настольного компьютера. (Подробное описание назначения этих файлов устройств будет приведено ниже.)
# # Устройства SATA или SCSI или USB # paul@laika:~$ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1 /dev/sdb2 # # Устройства IDE или ATAPI # paul@barry:~$ ls /dev/hd* /dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1 /dev/hdb2 /dev/hdc
Помимо представления физических устройств, некоторые файлы устройств выполняют специальные функции. Эти специальные файлы устройств могут оказаться очень полезными.
Файлы устройств /dev/tty и /dev/pts
К примеру, файл устройства /dev/tty1 представляет терминал или консоль, соединенную с системой. (Не стоит ломать голову над точными значениями терминов ‘терминал’ или ‘консоль’, так как в данном случае имеется в виду интерфейс командной строки системы.) При вводе команд в эмуляторе терминала, поставляемом в составе такого графического окружения рабочего стола, как Gnome или KDE, ваш терминал будет представлен файлом устройства /dev/pts/1 (вместо числа 1 может использоваться другое число).
Файл устройства /dev/null
В Linux вы можете обнаружить и другие файлы специальных устройств, такие, как файл устройства /dev/null, которое может рассматриваться как черная дыра; хотя соответствующее устройство и имеет неограниченную емкость, после записи из него не могут быть прочитаны никакие данные. Говоря техническим языком, любые записанные на представленное файлом /dev/null устройство данные будут просто отброшены. Представленное файлом /dev/null устройство может быть использовано для отбрасывания ненужного вывода различных команд. Помните о том, что представленное файлом /dev/null устройство не является удачным местом для хранения ваших резервных копий данных 😉.
Директория /proc и взаимодействие с ядром ОС
Директория /proc является другой специальной директорией, которая содержит файлы, кажущиеся на первый взгляд обычными файлами, но не занимающие места на диске. На самом деле содержимое данной директории является представлением ядра ОС, а точнее, используемых ядром ОС структур данных и предназначено для непосредственного взаимодействия с ядром ОС. В директорию /proc монтируется специальная файловая система procfs.
paul@RHELv4u4:~$ mount -t proc none on /proc type proc (rw)
При выводе содержимого директории /proc можно обнаружить множество директорий с именами, представленными числовыми значениями (в любой системе Unix), а также некоторые интересные файлы (в Linux).
mul@laika:~$ ls /proc 1 2339 4724 5418 6587 7201 cmdline mounts 10175 2523 4729 5421 6596 7204 cpuinfo mtrr 10211 2783 4741 5658 6599 7206 crypto net 10239 2975 4873 5661 6638 7214 devices pagetypeinfo 141 29775 4874 5665 6652 7216 diskstats partitions 15045 29792 4878 5927 6719 7218 dma sched_debug 1519 2997 4879 6 6736 7223 driver scsi 1548 3 4881 6032 6737 7224 execdomains self 1551 30228 4882 6033 6755 7227 fb slabinfo 1554 3069 5 6145 6762 7260 filesystems stat 1557 31422 5073 6298 6774 7267 fs swaps 1606 3149 5147 6414 6816 7275 ide sys 180 31507 5203 6418 6991 7282 interrupts sysrq-trigger 181 3189 5206 6419 6993 7298 iomem sysvipc 182 3193 5228 6420 6996 7319 ioports timer_list 18898 3246 5272 6421 7157 7330 irq timer_stats 19799 3248 5291 6422 7163 7345 kallsyms tty 19803 3253 5294 6423 7164 7513 kcore uptime 19804 3372 5356 6424 7171 7525 key-users version 1987 4 5370 6425 7175 7529 kmsg version_signature 1989 42 5379 6426 7188 9964 loadavg vmcore 2 45 5380 6430 7189 acpi locks vmnet 20845 4542 5412 6450 7191 asound meminfo vmstat 221 46 5414 6551 7192 buddyinfo misc zoneinfo 2338 4704 5416 6568 7199 bus modules
Давайте обратим внимание на свойства файлов из директории /proc. При рассмотрении даты и времени изменения данных файлов можно отметить, что эти параметры соответствуют текущим значениями даты и времени, из чего можно сделать вывод, что содержимое данных файлов постоянно обновляется (для предоставления доступа к актуальному содержимому используемых ядром ОС структур данных).
paul@RHELv4u4:~$ date Пн янв 29 18:06:32 EST 2007 paul@RHELv4u4:~$ ls -al /proc/cpuinfo -r--r--r-- 1 root root 0 ноя 29 18:06 /proc/cpuinfo paul@RHELv4u4:~$ paul@RHELv4u4:~$ ...через некоторое время... paul@RHELv4u4:~$ paul@RHELv4u4:~$ date Пн янв 29 18:10:00 EST 2007 paul@RHELv4u4:~$ ls -al /proc/cpuinfo -r--r--r-- 1 root root 0 ноя 29 18:10 /proc/cpuinfo
Размер большинства файлов из директории /proc равен 0 байт, но при этом файлы из данной директории содержат данные, а иногда большие объемы данных. Вы можете ознакомиться с этими данными, использовав команду cat по отношению к таким файлам, как файл /proc/cpuinfo, который содержит информацию о центральном процессоре.
paul@RHELv4u4:~$ file /proc/cpuinfo /proc/cpuinfo: empty paul@RHELv4u4:~$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 43 model name : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ stepping : 1 cpu MHz : 2398.628 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge... bogomips : 4803.54
paul@pasha:~$ cat /proc/cpuinfo cpu : TI UltraSparc III (Cheetah) fpu : UltraSparc III integrated FPU promlib : Version 3 Revision 2 prom : 4.2.2 type : sun4u ncpus probed : 2 ncpus active : 2 Cpu0Bogo : 498.68 Cpu0ClkTck : 000000002cb41780 Cpu1Bogo : 498.68 Cpu1ClkTck : 000000002cb41780 MMU Type : Cheetah State: CPU0: online CPU1: online
Большая часть файлов из директории /proc предназначена исключительно для чтения, причем для чтения некоторых из них требуются привилегии пользователя root; в некоторые файлы могут записываться данные, причем в директории /proc/sys таких файлов большинство. Давайте поговорим о некоторых файлах из директории /proc.
В системе архитектуры x86 в файле /proc/interrupts содержится информация о запросах прерываний.
paul@RHELv4u4:~$ cat /proc/interrupts CPU0 0: 13876877 IO-APIC-edge timer 1: 15 IO-APIC-edge i8042 8: 1 IO-APIC-edge rtc 9: 0 IO-APIC-level acpi 12: 67 IO-APIC-edge i8042 14: 128 IO-APIC-edge ide0 15: 124320 IO-APIC-edge ide1 169: 111993 IO-APIC-level ioc0 177: 2428 IO-APIC-level eth0 NMI: 0 LOC: 13878037 ERR: 0 MIS: 0
При использовании машины с двумя центральными процессорами данный файл выглядит следующим образом.
paul@laika:~$ cat /proc/interrupts CPU0 CPU1 0: 860013 0 IO-APIC-edge timer 1: 4533 0 IO-APIC-edge i8042 7: 0 0 IO-APIC-edge parport0 8: 6588227 0 IO-APIC-edge rtc 10: 2314 0 IO-APIC-fasteoi acpi 12: 133 0 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge libata 15: 72269 0 IO-APIC-edge libata 18: 1 0 IO-APIC-fasteoi yenta 19: 115036 0 IO-APIC-fasteoi eth0 20: 126871 0 IO-APIC-fasteoi libata, ohci1394 21: 30204 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 22: 1334 0 IO-APIC-fasteoi saa7133[0], saa7133[0] 24: 234739 0 IO-APIC-fasteoi nvidia NMI: 72 42 LOC: 860000 859994 ERR: 0
Физическая память представлена файлом /proc/kcore. Не пытайтесь использовать команду cat по отношению к этому файлу; вместо этого при необходимости исследования содержимого оперативной памяти используйте отладчик. Размер файла /proc/kcore совпадает с объемом вашей оперативной памяти плюс четыре байта.
paul@laika:~$ ls -lh /proc/kcore -r-------- 1 root root 2.0G 2007-01-30 08:57 /proc/kcore paul@laika:~$
Директория /sys для работы с системой горячего подключения устройств ядра Linux 2.6
Директория /sys была создана в процессе разработки версии 2.6 ядра Linux. С момента выпуска версии 2.6 ядро Linux использует файловую систему sysfs для реализации механизма горячего подключения устройств, использующих шины usb и IEEE 1394 (FireWire). Обратитесь к страницам руководств udev(8) (данная подсистема пришла на смену подсистеме devfs) и hotplug(8) для получения дополнительной информации (или посетите ресурс http://linux-hotplug.sourceforge.net/).
По существу, директория /sys содержит файлы с информацией об используемом аппаратном обеспечении.
Директория системных ресурсов Unix /usr
Директория /usr/bin содержит множество реализаций команд.
paul@deb508:~$ ls /usr/bin | wc -l 1395
(В системе Solaris директория /bin является символьной ссылкой на директорию /usr/bin.)
Директория /usr/include содержит общедоступные заголовочные файлы для языка программирования C.
paul@ubu1010:~$ ls /usr/include/ aalib.h expat_config.h math.h search.h af_vfs.h expat_external.h mcheck.h semaphore.h aio.h expat.h memory.h setjmp.h AL fcntl.h menu.h sgtty.h aliases.h features.h mntent.h shadow.h ...
Директория /usr/lib содержит разделяемые библиотеки, которые не используются непосредственно пользователями или сценариями.
paul@deb508:~$ ls /usr/lib | head -7 4Suite ao apt arj aspell avahi bonobo
Директория /usr/local может использоваться системным администратором для локальной установки программного обеспечения.
paul@deb508:~$ ls /usr/local/ bin etc games include lib man sbin share src paul@deb508:~$ du -sh /usr/local/ 128K /usr/local/
paul@deb508:~$ ls /usr/share/ | wc -l 263 paul@deb508:~$ du -sh /usr/share/ 1.3G /usr/share/
paul@deb508:~$ ls /usr/share/man cs fr hu it.UTF-8 man2 man6 pl.ISO8859-2 sv de fr.ISO8859-1 id ja man3 man7 pl.UTF-8 tr es fr.UTF-8 it ko man4 man8 pt_BR zh_CN fi gl it.ISO8859-1 man1 man5 pl ru zh_TW
paul@ubu1010:~$ ls /usr/share/games/ openttd wesnoth
Директория /usr/src является рекомендуемой директорией для хранения файлов исходного кода ядра ОС.
paul@deb508:~$ ls -l /usr/src/ итого 12 drwxr-xr-x 4 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-686 drwxr-xr-x 18 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-common drwxr-xr-x 3 root root 4096 2009-10-28 16:01 linux-kbuild-2.6.26
5 Использование своп-файла.
Вместо того, чтобы резервировать специальные разделы для
области свопинга, вы можете использовать файл. Однако, чтобы это
сделать, вы должны инсталлировать программы Linux и
предварительно сделать все, что необходимо для создания файлов свопинга.
Если у вас есть инсталлированная система Linux, вы можете
использовать следующие команды для создания файла свопинга. Ниже
мы собираемся создать файл свопинга размером в 8208 блоков (около 8 Мбайт):
# dd if=/dev/zero of=/swap bs=1024 count=8208
Эта команда создает файл свопинга /swap. Замените
«count=» размером файла свопинга в блоках:
# mhswap /swap 8208
Эта команда инициализирует swap-файл; вновь замените имя и
размер своп-файла соответствующими значениями:
# sync # swapon /swap
Теперь в свопинге будет задействован файл /swap, который мы
создали, после синхронизации командой sync, которая гарантирует, что
файл был записан на диск.
Главная неприятность, связанная с использованием swap-файлов,
состоит в том, что доступ к ним происходит через файловую систему. Это
означает, что блоки, составляющие swap-файл могут быть не смежными на диске.
То есть скорость свопинга при использовании swap-файла ниже, чем при
использовании swap-раздела, для которой блоки всегда смежны (последовательны)
и запросы на ввод/вывод происходят прямо к устройству.
Другая проблема, связанная с использованием swap-файла, это
возможность испортить информацию в файловой системе: при
использовании больших файлов свопинга существует шанс, что вы
попортите систему, если что-то происходит неправильно. Имея
раздел свопинга отдельно от файловой системы вы страхуетесь от
таких неприятностей.
Использование файла свопинга может быть очень полезным,
если у вас есть временная потребность в дополнительном
пространстве для свопинга. Например, если вы компилируете большую
программу и хотите ускорить дело, вы можете временно создать файл
свопинга и использовать его в дополнение к имеющейся области свопинга.
Для того, чтобы избавиться от файла свопинга, вначале
используйте swapoff:
# swapoff /swap
А теперь вы можете смело удалить файл:
# rm /swap
Корректная процедура выполнения практического задания
ls /bin/cat ; file /bin/cat ls /bin/dd ; file /bin/dd ls /bin/echo ; file /bin/echo
2. Каков общий объем файлов ядра Linux (vmlinu*) в директории
/boot?3. Создайте директорию ~/test. После этого выполните следующие команды:
cd ~/test dd if=/dev/zero of=zeroes.txt count=1 bs=100 od zeroes.txt
Утилита
ddосуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла/dev/zeroв файл ~/test/zeroes.txt. Какие пояснения вы можете дать относительно возможностей специального файла/dev/zero?Файл
/dev/zeroявляется специальным файлом устройства Linux. Он может рассматриваться как источник нулевых байт. Вы не можете записать какие-либо данные в файл/dev/zero, но вы можете читать нулевые байты из него.4. А теперь выполните следующую команду:
dd if=/dev/random of=random.txt count=1 bs=100 ; od random.txt
Утилита
ddосуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла/dev/randomв файл ~/test/random.txt. Какие пояснения вы можете дать относительно возможностей специального файла/dev/random?Файл /dev/random выступает в качестве генератора случайных чисел вашей машины, работающей под управлением Linux.
5. Выполните две следующие команды и обратите внимание на первый символ вывода каждой из команд.
ls -l /dev/sd* /dev/hd* ls -l /dev/tty* /dev/input/mou*
С помощью первой команды будет выведен список файлов блочных устройств, с помощью второй — список файлов символьных устройств. Что вы можете сказать по поводу различий между символьными и блочными устройствами.
Данные всегда записываются на блочные устройства (или читаются с них) блоками. В случае жестких дисков размер блоков обычно равен 512 байтам. Символьные устройства работают как источники или приемники потоков символов (или байт). Мышь и клавиатура являются типичными символьными устройствами.
6. Используйте команду cat для вывода содержимого файлов
/etc/hostsи/etc/resolv.conf. Что вы думаете по поводу предназначения данных файлов?Файл /etc/hosts содержит имена узлов с соответствующими им IP-адресами Файл /etc/resolv.conf должен содержать IP-адреса серверов имен DNS.
7. Хранятся ли какие-нибудь файлы в директории
/etc/skel/? Не забудьте проверить наличие скрытых файлов.Выполните команду «ls -al /etc/skel/». Да, в данной директории должны храниться скрытые файлы.
8. Выведите содержимое файла
/proc/cpuinfo. Машину какой архитектуры вы используете для работы с Linux?Данный файл должен содержать как минимум одну строку с названием модели центрального процессора производства компании Intel или какой-либо другой компании.
9. Выведите содержимое файла
/proc/interrupts. Каков размер этого файла? Где хранится данный файл?10. Можете ли вы перейти в директорию
/root? Есть ли в этой директории файлы (в том числе скрытые)?Попытайтесь выполнить команду «cd /root». Директория
/rootне доступна для чтения обычными пользователями в большинстве современных дистрибутивов Linux.11. Существуют ли бинарные файлы ifconfig, fdisk, parted, shutdown и grup-install в директории
/sbin? По какой причине эти бинарные файлы размещены в директории/sbin, а не в директории/bin?Да. Так как данные бинарные файлы должны использоваться исключительно системными администраторами.
12. Является ли
/var/binфайлом или директорией? Как насчет/var/spool?По обоим путям расположены директории.
Терминал: tty-terminal: echo Hello > /dev/tty1 Эмулятор терминала: pts-terminal: echo Hello > /dev/pts/1
14. Прочитайте страницу руководства
randomи попытайтесь на основе полученной информации объяснить разницу между специальными файлами/dev/randomи/dev/urandom.
Если вам понравилась статья, поделитесь ею с друзьями:
6 Работа с пользователями.
Вне зависимости от того, много у вас пользователей или нет,
важно понять проблему работы с пользователем Linux. Даже если вы
единственный пользователь вы должны иметь различные account для
root и для себя.
Каждый человек, использующий систему, должен иметь свой
собственный account (быть индивидуально зарегистрированным в
системе). Редко может быть целесообразно, чтобы несколько человек
входили в систему под одним именем. Здесь дело не только в
безопасности, но account используется для идентификации
пользователя в системе. Необходимо иметь возможность проследить,
кто что делает.
3 Можно вместе.
Чтобы заархивировать и сжать группу файлов, вы можете
использовать команды:
# tar cvf backup.tar /etc # gzip -9 backup.tar
Результат будет backup.tar.gz. Для распаковки этого файла
используйте обратную последовательность команд:
# gunzip backup.tar.gz # tar xvf backup.tar
Разумеется, всегда следует убедиться перед распаковкой
файла, что вы в нужном каталоге.
Вы можете опереться на некоторую сообразительность UNIX,
позволяющего сделать это одной командной строкой:
# tar cvf - /etc|gzip -9c>backup.tar.gz
Здесь мы посылаем tar-файл, сформированный из
/etc, в файл «-», который представляет
стандартный вывод. Результат по конвейеру поступает на ввод команды
gzip, которая сжимает этот файл и результат сохраняет в
backup.tar.gz. Опция -c команды gzip
говорит, что вывод команды gzip посылает результат на
стандартный вывод, который перенаправляется на backup.tar.gz.
Единственная команда для распаковки этого архива:
# gunzip -c backup.tar.gz|tar xvf -
Опять, команда gunzip рассжимает содержимое файла
backup.tar.gz и посылает результирующий файл на стандартный
вывод. Он по конвейеру передается команде tar, которая
читает файл «-», что в данном случае олицетворяет
стандартный вывод.
К счастью, команда tar также содержит опцию
z, автоматически сжимая-расжимая файлы, используя алгоритм
компрессии gzip.
# tar cvf backup.tar.gz /etc
# tar cvf backup.tar /etc # gzip backup.tar
Как и команда:
# tar xvf backup.tar.Z
может быть использована вместо:
# uncompress backup.tar.Z # tar xvf backup.tar
За дополнительной информацией обратитесь к man-руководству по
tar и gzip.
2 Добавление драйвера
устройства к ядру.
Выше описано использование Iomega Zip
дисковода для резервирования. Поддержка для Iomega Zip, подобно многим другим
устройствам, вообще не компилируется в дистрибутивные ядра Linux:
разнообразие устройств просто слишком большое, чтобы поддерживать все в
пригодном для использования ядре. Однако, исходный текст для драйвера
устройства параллельного порта для работы с Zip включен как часть исходного
текста ядра. Этот раздел описывает, как добавить, что поддержку для Iomega
Zip параллельного порта и как сделать, чтобы он сосуществовал с принтером,
подключенным к другому параллельному порту.
Вы должны сформировать и поставить заказное ядро Linux kernel,
как описано в предыдущем разделе.
Выбор устройства устройства Zip ppa требует ответа Y на
соответствующие вопросы на шаге конфигурации, когда Вы определяете
конфигурацию заказного ядра. В частности, устройство ppa требует
ответа «Y» на три вопроса:
SCSI support? [Y/n/m] Y SCSI disk support? [Y/n/m] Y IOMEGA Parallel Port Zip Drive SCSI support? [Y/n/m] Y
После успешного выполнения make config выполните
make dep, make cleanи make zImage для создания
ядра, Вы должны сообщить ядру, как установить драйвер. Это делается через
командную строку LILO. Как описано в разделе
4.2.1, файл настройки LILO, /etc/lilo.conf имеет секции для
каждой ОС, которую он знает и директивы для запроса параметров у пользователя
при начальной загрузке машины.
Есть директива «append=», которая позволяет добавлять при
загрузке информацию для различных драйверов устройств в командной строке. В
данном случае, драйвер Iomega Zip ppa требует свободного адреса
I/O port и свободного прерывания. Это аналогично определению отдельных
устройств принтера LPT1: и LPT2: под MS-DOS.
Например, если Ваш принтер использует шестнадцатеричный (основание 16)
адрес порта 0x378 (см. руководство по Вашей карте параллельных
портов, если адрес неизвестен) и опрашивается (то есть не требуется линия
IRQ, обычная конфигурация Linux), Вы должны вписать в /etc/lilo.conf
строку:
append="lp=0x378,0"
Стоит заметить, что Linux автоматически распознает один порт /dev/lp
при загрузке, но в специальных конфигурациях параметры загрузки необходимы.
«0» после адреса порта сообщает, чтобы ядро не
использовало IRQ (запрос прерывания) для принтера. Это обычно применяется
потому, что принтеры намного медленнее, чем CPU, более медленный метод
обращения к устройствам ввода-вывода, известен как polling, где ядро
периодически проверяет состояние принтера, что позволяет компьютеру не
отставать от принтера.
Однако, устройства которые функционируют на более высоких скоростях,
подобно последовательным линиям и дискам, требуют IRQ, или линию
запроса прерывания. Это аппаратный сигнал, посылаемый устройством процессору
всякий раз, когда устройство требует внимания процессора; например, если
устройство имеет данные для передачи на процессор. Процессор останавливает
любой процесс и обрабатывает запрос прерывания от устройства. Диск Zip
ppa требует свободного прерывания, которое должно соответствовать
прерыванию, которое установлено на плате принтера, к которой подключен Zip.
В настоящее время драйвер устройства Linux ppa не поддерживает
формирование цепочки устройств параллельного порта, так что для Zip
ppa и разных принтеров должны использоваться отдельные порты.
Определить, какие прерывания уже используются в Вашей системе, можно
командой:
# cat /proc/interrupt
Она отображает список устройств и линий IRQ, которые они используют. Однако,
Вы также должны быть внимательным, чтобы не использовать автоматически
конфигурируемое прерывание последовательного порта, которое не может быть
перечислено в файле /proc/interrupt. Linux Documentation Project
Serial HOWTO, доступное на сайтах, перечисленных в
приложении A, подробно описывает
конфигурацию последовательных портов.
Вы должны также проверить аппаратные параметры настройки различных плат
интерфейса на вашей машине, открывая корпус машины и визуально проверяя
параметры настройки устройства в случае необходимости, чтобы гарантировать,
что Вы не выбрали линию IRQ, которая уже используется другим устройством.
Много устройств, борющихся за линию прерывания, возможно, одна наиболее общая
причина нефункционирования Linux системы.
Типичный файл /proc/interrupt выглядит примерно так:
0 6091646 timer 1 40690 keyboard 2 0 cascade 4 284686 + serial 13 1 math error 14 192560 + ideO
Нам интересен первый столбец. Он перечисляет номера линий IRQ, которые
использованы в Вашей системе. Для ppa драйвера мы хотим выбрать
линию, которая здесь еще не перечислена. IRQ 7 часто хороший выбор,
поскольку она редко используется в заданных по умолчанию конфигурациях
системы. Мы также должны определить адрес порта, который использует
устройство ppa. Этот адрес должен быть физически сконфигурирован на
плате интерфейса. Параллельным портам ввода-вывода назначены специфические
адреса, так что Вы должны почитать документацию для вашей платы параллельного
порта. В этом примере, мы используем порт ввода-вывода, адрес которого
0x278, который соответствует LPT2: порт принтера под MS-DOS.
Добавление IRQ и адреса порта в командной строке загрузчика дает следующую
инструкцию (как будто, мы параметры появились в соответствующей секции файла
/etc/lilo.conf:
append="lp=0x378.0 ppa=0x278.7"
Эти инструкции добавятся к параметрам запуска ядра при начальной загрузке.
Они гарантируют, что любой принтер, подключенный к системе не сталкивается с
Zip диском. Конечно, если ваша система не имеет принтера, директива
«lp=» может и должна быть опущена.
После того, как Вы установили заказное ядро как описано в
разделе 4.2.1, прежде, чем Вы перезагрузите
систему, убедитесь, что выполнили команду:
# /sbin/lilo
для установки в загрузочный сектор жесткого диска новых настроек LILO.
3 Удаление пользователей.
Если вы пожелаете временно «отключить» пользователя от
системы, (без удаления его аккаунта), вы можете просто приписать
звездочку («*») в поле пароля в файле пароля
/etc/passwd. Например, изменение пароля у kiwi в
файле /etc/passwd:
kiwi:*Xv80981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash
закроет для kiwi вход в систему.
2 gzip и
compress.
В отличие от архивирующих программ для MS-DOS, tar не
сжимает автоматически файлы в процессе архивирования.
Поэтому, если вы архивируете два одномегабайтных файла,
результирующий архивный файл будет размером два мегабайта.
Команда gzip может использоваться для сжатия файла
(сжимаемый файл не обязан быть tar-файлом). Команда:
# gzip -9 backup tar
сожмет backup.tar и оставит вас наедине с
backup.tar.gz, сжатой версией файла. Опция -9
говорит команде gzip, что следует использовать максимально
возможную компрессию.
Команда gunzip может быть использована для расжатия сжатого
файла. С аналогичным эффектом вы можете использовать команду
«gzip -d».
gzip сравнительно новый инструмент в кругах, приближенных
к UNIX. Долгие годы вместо этого использовалась команда
compress. Однако, по нескольким причинам (тут и патентные
проблемы относительно алгоритма, и то, что gzip значительно
эффективнее) compress оказался не у дел.
Обработанные командой compress файлы заканчивались
расширением .Z. Например, backup.tar.Z это сжатая
compress версия файла backup.tar, а
backup.tar.gz сжатая gzip версия. Чтобы еще надежнее
запутать дело, для обозначения gzip файлов некоторое время
использовалось расширение .z (маленькая «z»).
В настоящее время официальное расширение .gz. Команда uncompress
используется для развертывания файла, который был обработан командой
compress. Функционально она равнозначна команде
compress -d. Но команда gunzip тоже знает, как
обращаться с такими файлами.
8 Использование дискет и
осуществление резервирования.
Дискеты часто используются как средство резервирования. Если
у вас нет (стриммера), можно использовать дискеты (хотя они
медленнее и, в некотором смысле, менее надежны).
Как упоминалось выше, дискеты должны быть отформатированы программами
MS-DOS FORMAT.COM или Linux fdformat.
Некоторые имена устройств и доступные в Linux форматы дискет приведены в
таблице 4.4.
Floppy device driver Format /dev/fd0d360 Double density 360Kb 5.25 /dev/fd0h1200 High density 1.2 MB 5.25 /dev/fd0h1440 High density 1.44 MB 3.5
Таблица 4.4: Форматы дискет в Linux.
Устройства начинаются с fd0, что соответствует первому дисководу
для дискет, который называется A: в системе MS-DOS. Имя второго
дисковода fd1. Вообще, ядро Linux может определить формат дискеты,
которая уже отформатирована: можно просто указать /dev/fd0 и
оставить определение формата на долю системы. Но когда вы используете еще не
отформатированную дискету, такой фокус не пройдет.
Полный перечень устройств и их имен в Linux опубликован в Linux
Allocated Devices,, автор H. Peter Anvin (см.
приложение A).
Вы можете использовать дискеты также для хранения отдельных файловых
систем, в этом случае вы должны смонтировать (mount)
дискету для получения доступа к ее данным. Подробности в
разделе 4.8.4.
разделе 4.8.4.
Директории для хранения бинарных файлов
Бинарные файлы являются файлами, содержащими скомпилированный исходный код (или машинный код). Бинарные файлы могут исполняться на компьютере. Иногда бинарные файлы также называются исполняемыми файлами.
Директория /bin содержит бинарные файлы, которые могут использоваться всеми пользователями. В соответствии со спецификацией FHS, директория /bin должна содержать исполняемые файлы /bin/cat и /bin/date (помимо других исполняемых файлов).
paul@laika:~$ ls /bin archdetect egrep mt setupcon autopartition false mt-gnu sh bash fgconsole mv sh.distrib bunzip2 fgrep nano sleep bzcat fuser nc stralign bzcmp fusermount nc.traditional stty bzdiff get_mountoptions netcat su bzegrep grep netstat sync bzexe gunzip ntfs-3g sysfs bzfgrep gzexe ntfs-3g.probe tailf bzgrep gzip parted_devices tar bzip2 hostname parted_server tempfile bzip2recover hw-detect partman touch bzless ip partman-commit true bzmore kbd_mode perform_recipe ulockmgr cat kill pidof umount ...
Другие директории /bin
Вы можете обнаружить поддиректорию /bin во многих других директориях. Например, пользователь с именем serena может разместить свои собственные приложения в поддиректории /home/serena/bin.
Файлы некоторых приложений, обычно в случае установки путем непосредственной сборки из исходного кода, устанавливаются в директорию /opt. К примеру, при установке сервера samba для хранения бинарных файлов может быть использована поддиректория /opt/samba/bin.
Директория /sbin содержит бинарные файлы, предназначенные для настройки операционной системы. Многие из бинарных файлов для настройки системы требуют наличия привилегий пользователя root для выполнения определенных задач.
paul@ubu1010:~$ ls -l /sbin/ifconfig /sbin/fdisk /sbin/mkfs.ext4 -rwxr-xr-x 1 root root 97172 2011-02-02 09:56 /sbin/fdisk -rwxr-xr-x 1 root root 65708 2010-07-02 09:27 /sbin/ifconfig -rwxr-xr-x 5 root root 55140 2010-08-18 18:01 /sbin/mkfs.ext4
Бинарные файлы из директорий /bin и /sbin обычно используют разделяемые библиотеки, расположенные в директории /lib. В примере ниже приведен список некоторых файлов из директории /lib.
paul@laika:~$ ls /lib/libc* /lib/libc-2.5.so /lib/libcfont.so.0.0.0 /lib/libcom_err.so.2.1 /lib/libcap.so.1 /lib/libcidn-2.5.so /lib/libconsole.so.0 /lib/libcap.so.1.10 /lib/libcidn.so.1 /lib/libconsole.so.0.0.0 /lib/libcfont.so.0 /lib/libcom_err.so.2 /lib/libcrypt-2.5.so
Обычно ядро Linux загружает модули из директории /lib/modules/$версия-ядра/. Содержимое этой директории будет подробно описано в главе, посвященной ядру Linux.
Директории /lib32 и /lib64
На данный момент осуществляется медленная миграция с 32-битных на 64-битные системы. По этой причине вы можете обнаружить в своей системе директории с именами /lib32 и /lib64, которые указывают на размеры регистров, использованные в процессе компиляции расположенных в этих директориях разделяемых библиотек. 64-битный компьютер может содержать некоторые 32-битные бинарные файлы и библиотеки, используемые для достижения совместимости с устаревшими приложениями. В примере ниже утилита file используется для демонстрации описанных различий между разделяемыми библиотеками.
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.
Директория /opt предназначена для хранения вспомогательного программного обеспечения. В большинстве случаев данное программное обеспечение устанавливается не из репозитория дистрибутива. В многих системах директория /opt пуста.
При установке пакета программного обеспечения большого объема файлы из него могут копироваться в поддиректории /bin, /lib, /etc директории /opt/$имя-пакета/. Например, в том случае, если пакет программного обеспечения носит имя wp, файлы из него будут устанавливаться в директорию /opt/wp, при этом бинарные файлы будут устанавливаться в поддиректорию /opt/wp/bin, а файлы страниц руководств — в поддиректорию /opt/wp/man.






