Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Назначение основных каталогов Linux

Читайте также:
  1. GNU/Linux
  2. GNU/Linux
  3. I. Государственный стандарт общего образования и его назначение
  4. I. Сущность и социальное назначение государства.
  5. I. Сущность и социальное назначение государства.
  6. Igor@adm-ubuntu:~/linux/dir$ ls -l /etc/passwd -rw-r–r– 1 root root 1785 2009-10-16 09:01 /etc/passwd
  7. II. Оценка эффективности использования основных средств
  8. III. Организация и проведение натуральных обследований структуры и интенсивности автотранспортных потоков на основных автомагистралях
  9. III. Словарь основных терминов
  10. IV. Краткие данные о философах и их основных идеях

apropos …keyword - выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду

man ping - вызов руководства по работе с программой, в данном случае, — ping

whatis …keyword - отображает описание действий указанной программы

mkbootdisk --device /dev/fd0 `uname -r` - создаёт загрузочный флоппи-диск

gpg -c file1 - шифрует файл file1 с помощью GNU Privacy Guard

gpg file1.gpg - дешифрует файл file1 с помощью GNU Privacy Guard

wget -r http://www.example.com - загружает рекурсивно содержимое сайта http://www.example.com

wget -c http://www.example.com/file.iso - загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии

echo 'wget -c http://www.example.com/files.iso' | at 09:00 - начать закачку в указанное время

ldd /usr/bin/ssh - вывести список библиотек, необходимых для работы ssh

alias hh='history' - назначить алиас hh команде history

whereis ping - вывести полный путь к исполняемому файлу программы и справки к ней.

 

Назначение основных каталогов Linux

В этой лекции речь пойдет о файловой системе Linux и о предназначении основных каталогов. Для начала давайте посмотрим как файловая система реализована в Windows. Есть физический жесткий диск, который разбивается на логические разделы и каждому разделу назначается латинская буква начиная с буквы С (С:, D:, E: и т.д.). На каждом логическом разделе есть каталоги и файлы. Если мы добавим, например, еще один жесткий диск, ему будет назначена следующая свободная буква.

В Linux организовано по другому. Основой всего является так называемый “корень” или “рут”. Обозначается символом /. Корень файловой системы - это виртуальный объект в ядре. Ядро создает виртуальный корень, а потом к нему монтирует диски (файловые системы) с помощью команды mount. Пользователям работавшим в Windows поначалу трудно привыкнуть к тому, что файловые системы нужно монтировать перед использованием и размонтировать после. Но со временем вы привыкнете к этому. К тому же если раньше, вставляя диск в привод, его нужно было сначала подмонтировать к дереву файловой системы, то сейчас эти действия выполняются автоматически. Позже мы будем более подробно говорить о монтировании, а пока давайте рассмотрим назначение основных каталогов Linux.

/bin - в этом каталоге размещаются утилиты (исполняемые файлы) для работы на уровне системы. Из примеров можно привести ls, date, cp, pwd и т.д.

/sbin - в этом каталоге размещены системные утилиты и программы, которые предназначены для управления самой системой. Пример: shutdown, init, ifconfig.

/boot - в этом каталоге размещены файлы запуска системы: ядро, файлы GRUB, initrd, а также файл конфигурации ядра. initrd - это образ RAM-диска который используется для того, чтобы смонтировать временную файловую систему на время загрузки ядра. По сути initrd содержит необходимые модули которые позволят смонтировать реальную файловую систему и продолжить инициализацию и загрузку системы.

/boot/grub/ - каталог содержит загрузчик GRUB и его конфигурационные файлы.

/etc - в этом каталоге находится большинство конфигурационных файлов системы. Содержим много подкаталогов каждый их которых отвечает за определенную область. рассмотрим некоторые из них. /alsa - расширенная поддержка звуковых устройств, /sane.d - поддержка сканера, /X11 - файлы графической подсистемы, /init.d - скрипты, которые управляют службами, /rc0.d - /rc6.d - содержат скрипты, которые должны выполнятся на соответствующем уровне (runlevel), /cron.d - файлы службы периодического запуска процессов, /cups - файлы службы печати, /samba - конфигурационные файлы одноименной системы, /udev - файлы одноименной подсистемы.

/home - в этом каталоге размещаются домашние каталоги пользователей зарегистрированных в системе. Как правило названия домашних каталогов совпадает с логином пользователя.

/root - каталог пользователя root.

/selinux - каталог одноименной подсистемы, которая появилась не так давно и позволяет более жестко контролировать права пользователей (в том числе и рута) для большей безопасности.

/lib - в этом каталоге хранятся библиотеки операционной системы и приложений.

/lib/modules/ - каталог содержащий модули ядра. В этом каталоге расположены подкаталоги, которые совпадают с версиями ядра, которые были установлены в системе. То есть для каждой версии ядра есть свой набор модулей. Это очень важно и нужно обратить на это внимание. Часто при компиляции ядра забывают изменять версию, новое ядро при загрузке использует модули предыдущей версии и система не загружается. Текущую версию ядра можно узнать по команде uname -r, возвращаемая версия обязательно совпадет с названием одного из каталогов в /lib/modules/.

/lib/modules/версия ядра/kernel/drivers/ - модули, которые поддерживают отдельные устройства (видеоадаптеры, сетевые карты, звуковые карты и т.д.). Например, в /lib/modules/2.6.28-15-generic/kernel/drivers/net/ находятся модули поддержки различных сетевых карт.

/lib/modules/2.6.28-15-generic/kernel/fs/ - модули поддержки различных файловых систем.

/lib/modules/2.6.28-15-generic/kernel/net/ - модули поддержки различных типов сетей (Apple Talk, X25, IPX и другие).

/mnt - каталог предназначен для монтирования в нем блочных устройств, которые не являются частью системы Linux. Например, Windows-раздел жесткого диска не является частью Linux и монтируется в именно в этот каталог. Также несколько лет назад в эту директорию монтировались и CDROM и Floppy-диски. Сейчас могут монтироваться либо в /media либо непосредственно в корень. Зависит от дистрибутива.

/media - предназначен для монтирования блочных устройств которые подключаются физически к системе в процессе ее работы. Самые распространенные из устройств это флешки, внешние накопители. Монтируются устройства в этот каталог как правило автоматически подсистемой udev.

/usr - в этом каталоге сохраняются все приложения (не путать с утилитами). Файлы Linux -приложений в отличии от Windows -приложений хранятся в соответствующих папках в зависимости от типа. Поэтому в каталоге /usr есть такие подкаталоги как /etc - для файлов конфигураций, /bin - для исполняемых файлов, /lib - библиотеки приложений и другие. То есть получается, что /usr - это как бы корень для приложений. Также хочу отметить, что во многих дистрибутивах конфигурационные файлы приложений могут располагаться не в /lib/etc/, а в /etc, и каталога /lib/etc/ может не быть. В каталоге /usr также располагаются различные службы такие как apache, bind и другие, которые не имеют непосредственного отношения к Linux. Для приложений, которым в силу определенных причин необходимо хранить все свои файлы в одном каталоге (например это различные кроссплтаформенные приложения) придумали директорию /opt. Например, там могут быть такие приложения как OpenOffice, Picasa, Chrome.

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

/var - в этом каталоге хранятся различные системные файлы такие как, например, журналы различных подсистем или буферные каталоги принтеров, электронной почты и т.д. Для системного администратора особое внимание на каталог /var/log/ где как раз и содержаться файлы-журналы. Так как эти файлы постоянно растут, то необходимо внимательно следить за свободным местом на жестком диске где размещен каталок /var. Рассмотрим назначение еще нескольких подкаталогов находящихся в /var. /var/lock/ - здесь храняться файлы котороые сигнализируют о блокировке того или иного ресурса системы. /var/run/ - в этом каталоге запущенные службы создают подкаталоги в которых содержится файл и идентификатором процесса службы. Например, в файле /var/run/cron.pid содержится идентификатор процесса службы cron. Команды cat /var/run/cron.pid и ps ax | grep cron покажут, что числа совпадают. /var/mail/ - файлы почтовых ящиков пользователей. /var/spool/ - в этом каталоге сохраняются очереди различных программ или служб. Например, /var/spool/cups/ - содержит очереди заданий для принтеров.

У нас остались еще три важных корневых каталога /dev, /proc и /sys. Рассмотрим назначение каталога /dev. В каталоге /dev находтся особый тип файлов - файлы-устройства. Можно сказать, что эти файлы - это точки доступа к “железу” компьютера. Подробнее о типах файлах мы будем говорить далее. Пока же нужно понять, что каждый файл в каталоге /dev представляет собой реальное физическое или логическое устройство. Например, файл sda в каталоге /dev представляет собой жесткий диск с интерфесом Sata (или SCSI), файлы sda1, sda2 (и т.д.) представляют собой логические разделы данного диска. Файл /dev/ttyS0 - это последовательный порт com1, /dev/ttyS1 - это com2 и т.д. Файлы /dev/tty1, /dev/tty2 …. /dev/ttyN - это файлы консоли. Проделайте следующий эксперимент. Зарегистрируйтесь на второй и третъей консоли. Перейдите на вторую консоль и наберите следующую команду: echo HELLO! > /dev/tty3. Теперь перейдите на третью консоль и вы должны увидеть там надпись HELLO!. То есть мы перенаправили вывод команды echo на другую консоль. Два слова об обозначении жестких дисков в Linux. Диски с интерфесом IDE обозначаются как hda, hdb, hdc или hdd. Если диск подключен к первому IDE разъему как master, то он будет определен как hda, если как slave, то hdb и т.д. Диски с интерфесом SCSI или SATA обозначаются как sda, sdb, sdc и т.д. Диски SATA обозначаются немного по другому чем IDE. Имя SATA диска не зависит от того к какому разъему SATA вы подключили диск. Например у вас есть шесть раъемов SATA (пронумеруем их от 0 до 5). Независимо от того к какому разъему подключить диск он будет называться sda. Если у вас в системе два и более диска SATA, то диск который подключен к разъему с наименьшим номером будет обозначен как sda, и далее по порядку. Нужно учесть следующее. Если у вас диск SATA был всегда подключен например ко второму разъему (и он назывался sda), а затем вы подключили еще один диск к первому разъему, то теперь уже новый диск будет называться sda, а ваш старый диск будет называться sdb.

Каталоги /proc и /sys рассмотрим на следующей лекции.

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

Файлы-устройства делятся на два типа: блочные и символьные. Еще можно встретить в литературе блочно-ориентированные и байт-ориентированные. Отличия между типами в способе “общения” с компонентами. С блочными файлами-устройствами обмен информацией идет порциями или блоками. Типичным блочным устройством является жесткий диск. Также следует отметить, что информацию можно получить из любой части блочного файла-устройства. С символьными файлами-устройствами обмен информацией идет последовательно. Пример такого устройства - com -порт.

Выполните команду ls /dev/ и посмотрите на результат. Вы как раз и увидите файлы-устройства присущие вашей аппаратоной конфигурации. Рассмотрим сначала символьные файлы-устройства. Я уже упоминал о таких устройствах как tty (консоль) и ttyS0 (порт com1). аudio, dsp, mixer - файл-устройства отображающие звуковую карту. Виртуальные устройства random и urandom - позволяют генерировать псевдослучайные числа. Причем устройство urandom генерирует последовательность исключительно математическими методами, а random использует для генерации так называемый “шум”, который генирируется в процессе работы разлычными аппаратными компонентами. Зарегистрируйтесь во второй и третьей консоли. Наберите во второй консоли команду hexdump /dev/random. Вы должны увидеть шестнадцатеричные числа. Подождите некоторое время и вы увидите как количество чисел растет. Чтобы ускорить процесс можете перейти на третью консоль и понажимать на клавиши. Вернитесь на вторую консоль и прервите выполнение команды hexdump комбинацией клавиш ctrl+C. Наберите теперь команду hexdump /dev/urandom и увидите как последовательность чисел генерируется очень быстро, так как используются только математические методы генерации последовательности.

Еще два интересных файла-устройства это zero и null. zero - постоянно выдает нули. Это может быть нужно например, если нужно очистить жесткий диск. Для этого можно использовать команду dd if=/dev/zero of=/dev/sdc. Только не нужно выполнять эту команду на своем рабочем диске. Что делает эта команда? В качестве входящих данных (if - input file), используется информация из /dev/zero (то есть нули), в качестве приемника данных (of - output file) используется жесткий диск. В результате выполнения весь диск заполниться нулями. Null - не содержит в себе ничего. И запись в это устройство - это запись в никуда. Это может быть полезно если мы хотим чтобы, информация выдаваемая командами не высвечивалась на консоли. Например, команда echo Hello! > /dev/null не отобразит на консоли слово Hello!, так как вывод перенаправлен в /dev/null.

Давайте выполним команду mount без параметров, чтобы посмотреть какие устройства у нас смонтированы и с какими файловыми системами. Нас интересует строка относящаяся к каталогу /proc. Выглядит она примерно так: proc on /proc type proc (rw). Как можете видеть файловая система здесь называется proc. Это виртуальная файловая система, в которой отображаются файлы-процессы. Эту виртуальную файловую систему Linux создает в виртуальной памяти, поэтому на жестком диске она не занимает место, да и многие файлы в памяти также не занимают место так как на самом деле не содержат в себе информации. Выполните команду df -ha и убедитесь, что действительно каталог /proc занимает 0 байт пространства. Хотя информацию можно получить по команде cat (less), но на самом деле информация эта генерируется ядром на лету - cat /proc/cpuinfo. То есть /proc/cpuinfo - это не текстовый файл. Другими словами через файлы содержащиеся в каталоге /proc мы получаем доступ к различным статистическим (и не только) данным ядра. Например, команда cat /proc/net/dev покажет статистическую информацию по сетевым устройствам - количество принятых/переданных байт и пакетов и другую. А команда cat /proc/sys/net/ipv4/ip_forward - покажет разрешена ли в нашей системе пересылка (форвардинг) пакетов. Большинство файлов в каталоге /proc доступны только для чтения, но есть и такие которые доступны для записи (для пользователя root). Файл ip_forward как раз относится к последним. Если у вас там 0, то форвардинг отключен. Но мы можем включить его следующим способом (в некоторых дистрибутивах такие операции не пройдут): e cho 1 > /proc/sys/net/ipv4/ip_forward. По этой команде мы изменим содержимое с 0 на 1 и тем самым разрешим форвардинг (после перезагрузки системы снова будет 0). По команде ls /proc/ вы можете увидеть много директорий с числовым именем. Эти имена соответствуют идентификаторам процессов запущенных в системе. В каждой такой папке содержится разнообразная информация о процессе. Подробнее можно ознакомится набрав man 5 proc.

Каталог /sys имеет свою файловую систему sysfs. В чем-то содержимое каталога (по назначению) /sys схоже с каталогом /proc. Основное отличие в том, что файлы в /sys описывают реальную конфигурацию компьютера на текущий момент. /sys очень тесно связан с udev если вы подключаете (отключаете) устройства, содержимое каталога /sys динамически меняется. Можно посмотреть на примере. Выполните команду ls /sys/bus/usb/devices/, чтобы посмотреть текущие usb-устройства в системе. Теперь подключите флеш-накопитель и выполните команду ls /sys/bus/usb/devices/ еще раз. Вы увидите, что теперь устройств стало больше.

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

На следующей лекции поговорим о регулярных файлах и линках.

 




Дата добавления: 2014-12-19; просмотров: 109 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав