Что хранится в etc ос linux. Структура и значение директорий в Linux. Управление файлами и директориями

Что хранится в etc ос linux. Структура и значение директорий в Linux. Управление файлами и директориями

30.03.2019

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

Что происходит, когда вы щелкните правой кнопкой мыши файл? Есть значительные задержки появления контекстного меню? Тогда я вам расскажу как от этого избавится, ну или хотя уменьшить задержку. Для этого нам понадобится удалить некоторые пункты контекстного меню, чтобы ускорить процесс. Даже если он всплывает быстро, вы можете удалить некоторые элементы контекста просто привести в порядок меню. Давайте рассмотрим каким средствами можно настроить контекстное меню

Редактирование с помощью CCleaner

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

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

Чтобы отключить запись в контекстном меню, выберите его и нажмите на кнопку Выключить . Изменение вступают в силу немедленно, перезагрузки компьютера не требуется. Не следует использовать кнопку Удалить — если отключить запись в контекстном меню, вы можете позже легко повторно включить его. Но если вы уже удалили, но хотите видеть его в контекстном меню снова вам придется переустановить связанные с ней приложения.

На левой картинке ниже мое меню до настройки, на правой после. Скорость появления увеличилась в разы, что является неотъемлемой частью комфортной работы.

Настройка с помощью ShellExView

CCleaner является простым в использовании, но вы, возможно, заметили, что он не показывает все пункты контекстного меню, и следовательно не все их можно отключить. Но к счастью есть еще один инструмент ShellExView. После загрузки и запуска ShellExView, она автоматически сканирует систему.

Чтобы просмотреть только те записи которые относятся к контекстному меню выберите пункт меню Настройки , выберите Фильтровать по типу расширения , и выберите Контекстное меню .

В списке представлены как сторонние элементы контекстного меню и встроенные, которые поставляются с Windows. Сторонние пункты контекстного меню выделены розовым цветом. Вы также можете отключить некоторые из встроенных элементов контекстного меню, если хотите.

Чтобы отключить запись в контекстном меню выберите его и нажмите на красную кнопку в верхнем левом углу. При нажатии на кнопку выйдет диалоговое окно с подтверждением отключения выбранного элемента, жмакаем OK. Если вы хотите снова включить его позже, как вы уже догадались, нажимаем на зеленую кнопку (хотя это по-моему не кнопка, а лампочка))))

Вам придется перезагрузить компьютер, чтобы изменения вступили в силу. Это не так удобно, как в CCleaner, но вы можете управлять всеми пунктами контекстного меню.

Кроме того, можно удалить записи контекстного меню путем редактирования реестра напрямую, но я бы не рекомендовал этого делать. Даже для опытных пользователей, этот процесс намного более утомительный и трудоемкий (пункты контекстного меню хранятся в пяти различных местах в реестре). При редактировании реестра не представляется возможным легко отключить запись в контекстном меню, можно только удалять их — так что вам придется создавать резервные копии каждого ключа перед его удалением, если вы хотите восстановить его позже. Если есть программки, зачем усложнять себе жизнь. Но если вы конечно не молодой системный администратор, или хотите прикольнутся над другом и жаждите знаний, тогда как это настроить контекстное меню с помощью реестра читайте здесь.

В "ОС" Linux вся файловая система имеет организованную, конкретную структуру. Начинающие пользователи, только пересевшие с Windows на , как правило, испытывают определенные трудности, в связи с отсутствием четкого представления о принадлежности каждой директории. Весь изложенный ниже материал, должен восполнить этот пробел.

Cтруктура каталогов Linux .

(Чтобы из таблицы переместиться к описанию директории, нужно кликнуть по названию директории. Чтобы вернуть страницу на верх, нужно кликнуть, в правом нижнем углу экрана, по квадратику со стрелочкой.)

Краткое описание.

/ корневой раздел

Корневой раздел.

В данной директории находится основной состав команд "ОС", к ним относятся команды оболочки и файловой системы: ls, cp и пр...

Это, хранилище образов ядер, а также, загрузчиков: Grub или Lilo и пр...

Здесь обитают файлы, относящиеся к определенным устройствам, подключенных к "ОС". Дело в том, что в операционной системе Linux , любое устройство ассоциируется с конкретным файлом, т.е. будь-то принтер, сканер, жесткий диск и пр., все должно иметь свой собственный файл, что бы получить необходимый доступ к тому или иному устройству.

Это, место хранения файлов конфигурации "ОС", например: параметры сети, пользователи, группы и такие приложения, как Apache, Samba и тд. и тп.

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

/home/ username

Это тоже, домашняя папка, но только пользователя "username". Здесь сохраняются конфигурационные файлы настроек приложений и личная "инфа". Если пользователей много, то каждый имеет свой личный каталог для таких файлов. Есть еще папка суперпользователя "root", находящаяся в корне файловой системы. Такое разграничение директорий, от системных файлов, в разы увеличивает надежность и значительно облегчает процесс резервирования данных.

Сюда сбрасываются файлы, не имеющие ссылок из всех других директорий, не смотря на то, что их "inod" не имел метки "незадействованного". К примеру, вы удаляете файл, как в этот момент происходит обрыв электропитания. В следствие этого, в системе образуется потерявшийся "inod", который имеет пути к файлу, но файл-то отсутствует. Далее, в ext2 (нежурналируемая), "fsck" находит "inod", создает ссылку в lost+found, после чего, можно взглянуть на файл и все нормализовать. В ext3 (журналируемая), "fsck" анализирует журнал и определяет незавершенность операции, производя после этого "откат". Таким образом в журналируемых "ФС" затерявшихся inod(ов) имеется намного меньше.

В этом пространстве сосредоточены системные библиотеки, обеспечивающие работоспособность приложений, находящихся в /bin, /sbin и "ОС" глобально.

Предназначена для авто-монтирования устройств: USB, CD-ROM и т.д. При задействовании любого устройства, оно автоматом подключается в соответствующий каталог данной директории.

Эта директория фактически тоже, что и предыдущая /media, с той лишь разницей, что используетcя ручной тип подключения, а именно, когда выполняется команда "mount".

В этой площадке приживаются установленные приложения с большим размером или дополнительными пакетами, к примеру: /opt/libreoffice.org

Сюда примонтирована "procfs", виртуальная "ФС", с наличием множественной информации, которую можно получить. Допустим, нужно узнать какие модули ядра загружены, это будет файл - /proc/modules или же, получить сведения о процессоре - /proc/cpuinfo

Это домашний супер-пользовательский каталог. Данная директория идентична директории просто пользователя и находится в корне файловой системы. Если вдруг возникли проблемы с доступом к /home, то залогинившись с правами суперпользователя,
всегда можно решить данную проблему.

В системе имеются специальные программы для различных настроек и администрирования, им ведь тоже, где-то надо "жить".

Специфические параметры системы, в большинстве случаев пустует.

Эта директория получила применение начиная с ядра v_2.6 и в нее примонтируется "sysfs", с информацией о ядре, устройствах и драйверах.

Здесь находятся директории блочных устр-ств, которые имеются в системе в реальное время.

Перечень шин ядра: eisa, pci и тд. и тп.

Перечень группированных устр-ств по классификации: printer, scsi-devices и тд. и тп.

Это собрат папки "Temp" в Windows, для хранения временных файлов. Чтение и запись, доступны всем пользователям.

Место установленных пакетов программ, документации, кода ядра, X Window. Полностью доступна для "root", остальным запрещено, кроме чтения. К директории можно применить сетевое монтирование и статус общей для ряда компьютеров.

/usr/bin bin2

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

Место обитания "развлекалок", одним словом, игры.

Заголовочные файлы С++.

/usr/lib lib2

Системные библиотеки для приложений в /usr.

В идеале /usr должен иметь статус "общий" и быть смонтирован по сети - /usr/local должен вмещать в себя пакеты приложений на локальном аппарате. Например: /usr - семейный бюджет, /usr/local - личные доходы.

В пакетной Ubuntu, как правило в /usr располагаются "родственные" пакеты, свои, а в /usr/local собранные из исходников, не имеющие отношения к какому-либо дистрибутиву конкретно.

Системные приложения дополнительного плана.

Каждый новый пользователь Linux после установки сталкивается с подобными вопросами: «А что это за папки со странными названиями вроде dev, etc, sys, mnt, opt, bin, var и т.д.? Зачем они мне? Может, их удалить?», «Где тут Мой Компьютер?», «А Мои Документы куда делись?», «Куда установилась моя программа?». Итак, давайте разберемся в каждом вопросе по-порядку. Для начала нужно уяснить, что Linux имеет четкую структуру расположения директорий и файлов, и удалять их, даже если они пустые, совершенно не стоит. Рассмотрим назначение каждой из директорий.

/ - корневой раздел.
/bin - директория для хранения основного набора команд ОС (Операционной Системы).
/boot - директория для хранения данных, необходимых для загрузки ОС, здесь располагаются, например, файлы ядра, загрузчик GRUB или Lilo.
/dev - директория содержит файлы устройств, подключенных к ОС.
/etc - в этой директории располагается основная часть конфигурационных файлов ОС и программ.
/home - директория для хранения личной информации пользователей.
/home/user - домашняя папка пользователя user.
/lost+found - сюда сбрасываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Например, при удалении файла из директории произошел сбой (аварийное отключение питания), тогда в системе останется потерянный inod, который хоть и указывает на корректный файл, но этот файл не содержится ни в одной из директорий. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов приходится на fsck. Он находит inod, на которые нет ссылок, и создает на них ссылки в lost+found . После этого пользователь сможет просмотреть файлы и при необходимости переместить их куда ему надо, вернув нужные имена.
/lib - директория для хранения системных библиотек, необходимых для работы программ из директорий /bin и /sbin , а также самой ОС вцелом.
/media - директория, используемая для автоматического или ручного монтирования различных устройств: USB-накопителей, CD-ROM, разделов HDD и т.д. При этом на рабочем столе появляются соответствующие иконки данных устройств.
/mnt - обычно эта директория используется для ручного подключения устройств. В эту директориюкомандой mount монтируются различные устройства: USB-накопители, CD-ROM и т.д. Но в этом случае на рабочий стол соответствующих автоматически иконок не выводится.
/opt - директория для размещения программ, имеющих большой размер или использующих вспомогательные пакеты.
/proc - директория, к которой примонтирована виртуальная файловая система procfs, позволяющая получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как ps, w, top.
/root - домашняя папка Суперпользователя.
/sbin - директория, включающая в себя основные системные программы для администрирования и настройки системы (например, ifconfig).
/srv - директория для хранения специфичных параметров окружения системы. Обычно данная директория пуста.
/sys - директория, к которой примонтирована виртуальная файловая система sysfs, добавляющая в пространство пользователя информацию о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/tmp - директория временного хранения файлов. Аналог C:/Windows/Temp в ОС Windows.
/usr - директория для хранения всех установленных пакетов программ, документации, исходного кода ядра и системы X Window. Все пользователи, кроме суперпользователя root, имеют доступ только для чтения. Может быть смонтирована по сети и быть общей для нескольких машин.
/usr/bin - директория расположения дополнительных программ для всех учетных записей.
/usr/include - здесь располагаются заголовочные файлы C++.
/usr/games - директория для размещения доступных игр в системе.
/usr/lib - здесь хранятся системные библиотеки для программ, расположенных в директории /usr .
/usr/local - по стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине. Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (например, Ubuntu хранит в /usr «родные» установленные пакеты, а в /usr/local находятся пакеты, собранные из исходников).
/usr/sbin - содержит дополнительные системные программы.
/usr/share - содержит общие данные установленных программ.
/usr/share/icons - содержит все иконки системы.
/usr/share/docs - содержит файлы справки для программ.
/usr/src - расположение исходных кодов (например, ядра).
/var - хранение часто изменяющихся данных. Например, журналов ОС, системных log-файлов, cache-файлов и т.д.
/var/cache - директория для хранения кэшей различных программ.
/var/games - хранение файлов игровых достижений (рекордов).
/var/lib - хранение постоянных данных, изменяемых программами в процессе работы.
/var/lock - здесь располагаются lock-файлы, указывающие на занятость того или иного ресурса.
/var/log - хранение всех log-файлов.
/var/spool - расположение задач, ожидающих обработки (например, очередь печати, непрочитанные письма, задачи cron и т.д.).
/var/www - используется для размещения веб-страниц и администрирования сайтов.

Здесь представлен не совсем полный список вложенных директорий, однако, более чем достаточный для знаний новичка.

Несмотря на то, что основным назначением файловой системы является упорядочение хранимых ресурсов, программистам не очень хотелось бы “изобретать велосипед” для управления объектами других типов. В Linux объектами файловой системы являются: процессы, устройства, структуры данных ядра и параметры настройки, каналы межзадачного взаимодействия, папки, и, конечно, обычные файлы. Такое устройство файловой системы имеет как преимущества, так и недостатки. К преимуществам относится единый программный интерфейс, легкость доступа из интерпретатора команд. К недостаткам относится реализация файловой системы по методу Франкенштейна.

Файловая система состоит из четырех основных компонентов:

  1. Пространство имен – методы именования объектов и организации в виде единой иерархии
  2. API – набор системных вызовов для перемещения между объектами и управления ими
  3. Методы безопасности – схема защиты, сокрытия и совместного использования объектов
  4. Реализация – программный код, который связывает логические модели с дисковой подсистемой

Файловая система – это единая иерархическая структура, которая начинается с каталога / и разветвляется, охватывая произвольное число каталогов.

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

Цепочка имен каталогов, через которые необходимо пройти для доступа к заданному файлу, вместе с именем этого файла образуют путь к файлу. Путь может быть абсолютным (например, /temp/foo ) или относительным (например, book4/filesystem ). Последние интерпретируются начиная с текущего каталога. Стоит отметить, что текущий каталог есть у каждого процесса (большинство процессов никогда не изменяют свои рабочие каталоги, и поэтому просто наследуют текущий каталог процесса, который их запустил).

Существует ограничение на длину имени файла – не более 255 символов. В имя нельзя включать символ косой черты и нулевые символы. Также есть ограничение на длину пути, который передается ядру в качестве аргумента системного вызова – 4095 байт.

Монтирование и демонтирование файловой системы

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

В большинстве случаев файловые системы присоединяются к файловому дереву с помощью команды mount . Эта команда связывает каталог существующего файлового дерева, называемый точкой монтирования, корневым каталогом новой файловой системы. На время монтирования доступ к прежнему содержимому точки монтирования становится невозможным. Например, команда $ sudo mount /dev/sda4 /users монтирует на устройстве /dev/sda4 файловую систему /users . По окончании монтирования можно с помощью команды ls /users просмотреть содержимое файловой системы. Список смонтированных пользователями файловых систем хранится в файле /etc/fstab . Демонтируются файловые системы с помощью команды umount . Занятую файловую систему демонтировать невозможно.

Организация файловой системы

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

Частью корневой файловой системы являются также каталог /etc для критических системных файлов и файлов конфигурации, каталоги /sbin и /bin - для важных ути­лит и иногда каталог /tmp - для временных файлов. Каталог /dev - это обычно ре­альный каталог, который включен в корневую файловую систему, но он (частично или полностью) может перекрываться другими файловыми системами, если ваша система виртуализировала поддержку своих устройств.

Одни системы хранят совместно используемые библиотечные файлы и прочие важ­ные программы (например, препроцессор языка С) в каталоге /lib . Другие переместили эти элементы в каталог /usr/lib , оставив для каталога /lib роль символьной ссылки.

Огромное значение имеют также каталоги /usr и /var . В первом хранится большин­ство стандартных программ и другие полезные компоненты, в частности интерактивная документация и библиотеки. Совсем не обязательно, чтобы каталог /usr был отдельной файловой системой, однако для удобства администрирования его, как правило, монти­руют именно так. Для того чтобы система могла загрузиться в многопользовательском режиме, необходимы оба каталога - /usr и /var . В каталоге /var содержатся буферные каталоги, журнальные файлы, учетная инфор­мация и прочие компоненты, специфичные для каждого компьютера. Поскольку при возникновении проблем журнальные файлы быстро разрастаются, рекомендуется помещать каталог /var в отдельную файловую систему. Домашние каталоги пользователей чаще всего хранятся в отдельной файловой си­стеме, которая обычно монтируется в корневом каталоге. Отдельные файловые системы можно использовать и для хранения больших информационных массивов, например библиотек исходных кодов программ и баз данных.

В таблице приведены стандартные каталоги и их содержимое

Каталог ОС Содержимое
/bin Все Команды операционной системы ядра
/boot LS Ядро и файлы для его загрузки
/dev Все Файлы устройств: дисков, принтеров, псевдотерминалов и т.д.
/etc Все Важные файлы запуска и конфигурации системы
/home Все Стандартные домашние каталоги пользователей
/kernel S Компоненты ядра
/lib Все Библиотеки, совместно используемые библиотеки и компоненты компилятора языка C
/media LS Точки монтирования файловых системы на съемных носителях
/mnt LSA Временные точки монтирования
/opt Все Программные пакеты необязательных приложения (которые пока не находят широкого применения)
/proc LSA Информация о всех выполняющихся процессах
/root LS Домашний каталог суперпользователя (часто просто /)
/sbin Все Команды, необходимые для обеспечения минимальной работоспособности системы
/stand H Автономные утилиты, средства диагностики и форматирования дисков
/tmp Все Временные файлы, которые могут удаляться при перезагрузке
/usr Все Иерархия дополнительных файлов и программ
/usb/bin Все Содержимое
/usr/include Все Файлы заголовков, предназначенные для компиляции C-программ
/usr/lib Все Библиотеки и вспомогательные файлы для стандартных программ
/usr/lib64 L 64-разрядные библиотеки для 64-разрядных дистрибутивов Linux
/usr/local Все Локальные программы (программы, создаваемые или устанавливаемые локальными пользователями)
/usr/sbin Все Менее важные файлы системного администрирования
/usr/share Все Элементы, общие для различных систем
/usr/share/man Все Страницы интерактивной документации
/usr/src LSA Исходные коды нелокальных программных пакетов (не находит широкого применения)
/usr/tmp Все Дополнительный каталог для временных файлов, которые могут сохраняться при перезагрузке
/var Все Системные данные и конфигурационные файлы
/var/adm Все Разное: журнальные файлы, записи об инсталляции системы, административные компоненты
/var/log LSA Системные журнальные файлы
/var/spool Все Буферные каталоги для принтеров, электронной почты и т.д.
/var/tmp Все Каталог для временного хранения файлов

Примечание: L = Linux, S = Solaris, H = HP-UX, A = AIX

Типы файлов

В большинстве реализаций файловых систем определены семь типов файлов:

  • Обычные файлы
  • Каталоги
  • Файлы байт-ориентированных (символьных) устройств
  • Файлы блочно-ориентированных (блочных) устройств
  • Локальные сокеты
  • Именованные каналы (реализующие принцип обслуживания FIFO – первым поступил первым обслужен)
  • Символьные ссылки

Определить тип существующего файла можно с помощью команды ls -ld . Первый символ в строке вывода обозначает тип объекта. Пример:

$ ls -ld /usr/include

где d – означает каталог

Возможные коды ля представления различных типов файлов представлены в таблице

Обычные файлы – это просто последовательность байтов. Файловые системы не налагают ограничения на его структуру. Текстовые документы, файлы данных, программные файлы, библиотеки функций и многое другое – все это хранится в обычных файлах. К их содержимому возможен как последовательный, так и прямой доступ.

Каталог хранит именованные ссылки и другие файлы. Он создается командой mkdir и удаляется (при условии, что он пуст) командой rmdir . Непустые каталоги можно удалять командой rm -r . Специальные ссылки ‘.’ и ‘..’ обозначают сам каталог и его родительский каталог соответственно. Такие ссылки нельзя удалить. Поскольку корневой каталог находится на вершине иерархии, ссылка ‘..’ эквивалентна ссылке ‘.’

Имя файла в действительности хранится в родительском каталоге, а не в самом файле. На файл можно ссылаться из нескольких каталогов одновременно и даже из нескольких элементов одного и того же каталога, причем у всех ссылок могут быть разные имена. Это создает иллюзию того, что файл одновременно присутствует в разных каталогах. Эти дополнительные жесткие (фиксированные) ссылки можно считать синонимами для исходных файлов, и с точки зрения файловой системы все ссылки на файл эквивалентны. Файловая система подсчитывает количество ссылок на каждый файл и при удалении файла не освобождает блоки данных до тех пор, пока не будет удалена последняя ссылка на него. Ссылки не могут указывать на файл, находящийся в другой файловой системе.

Жесткие ссылки создаются командой ln и удаляются командой rm . Синтаксис ко­манды ln легко запомнить, поскольку она является “зеркальным отражением” команды cp. Команда cp oldfile newfile создает копию файла oldfile с именем newfile, а команда ln newfile oldfile преобразует имя newfile в дополнительную ссылку на файл oldfile.

Файлы устройств позволяют программам получать доступ к аппаратным средства и периферийному оборудованию системы. Ядро включает (или загружает) специальные программы (драйверы), которые во всех деталях “знают”, как взаимодействовать с каж­дым из имеющихся устройств, поэтому само ядро может оставаться относительно аб­страктным и независимым от оборудования.

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

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

Файлы устройств характеризуются двумя номерами: старшим и младшим. Старший номер устройства позволяет ядру определить, к какому драйверу относится файл, а младший номер, как правило, идентифицирует конкретное физическое устройство. На­пример, старший номер устройства 4 в Linux соответствует драйверу последовательного порта. Таким образом, первый последовательный порт (/ dev/tty0) будет иметь стар­ший номер 4 и младший номер 0.

Драйверы могут интерпретировать переданные им младшие номера устройств как угодно. Например, драйверы накопителей на магнитных лентах с помощью этого номе­ра определяют, необходимо ли перемотать ленту после закрытия файла устройства.

В далеком прошлом /dev играл роль общего каталога, а файлы устройств, которые в нем хранились, создавались с помощью команды mknod и удалялись командой rm . Стандартизировать работу по созданию файлов устройств помогал сценарий с именем MAKEDEV

К сожалению, эта “сырая” система плохо справлялась с безбрежным морем драйве­ров и типов устройств, которые появились в последние десятилетия. Кроме того, она способствовала возникновению разного рода потенциальных конфигурационных несты­ковок: например, файлы устройств ссылались на несуществующие устройства, устрой­ства оказывались недоступными, поскольку они не имели файлов устройств, и т.д.

В наши дни в большинстве систем реализована некоторая форма автоматического управления файлами устройств, которая позволяет системе играть более активную роль в конфигурировании собственных файлов устройств. Например, в Solaris каталоги /dev и /devices полностью виртуализированы. В дистрибутивах Linux каталог /dev является стандартным, но управлением файлами внутри него занимается демон udevd. (Демон udevd создает и удаляет файлы устройств в ответ на изменения в оборудовании, о кото­рых сообщает ядро.)

Установленные посредством сокетов соединения позволяют процессам взаимодей­ствовать, не подвергаясь влиянию других процессов. В системе UNIX поддерживается несколько видов сокетов, использование которых, как правило, предполагает наличие сети. Локальные сокеты доступны только на локальном компьютере, и обращение к ним осуществляется через специальные объекты файловой системы, а не через сетевые пор­ты. Иногда такие сокеты называют UNIX-сокетами.

Несмотря на то что другие процессы распознают файлы сокетов как элементы ка­талога, только процессы, между которыми установлено соответствующее соединение, могут осуществлять над файлом сокета операции чтения и записи. В качестве примеров стандартных средств, использующих локальные сокеты, можно назвать системы X Win­dow и Syslog.

Локальные сокеты создаются с помощью системного вызова socket . Когда с обеих сторон соединение закрыто, сокет можно удалить командой rm или с помощью систем­ного вызова unlink .

Подобно локальным сокетам, именованные каналы обеспечивают взаимодействие двух процессов, выполняемых на одном компьютере. Такие каналы еще называют фай­лами FIFO (First In, First Out - “первым поступил, первым обслужен”). Они создаются командой mknod и удаляются командой rm .

Как и в случае локальных сокетов, реальные экземпляры именованных каналов весь­ма немногочисленны и нечасто встречаются. Они редко требуют административного вмешательства.

Именованные каналы и локальные сокеты имеют практически одинаковое назначе­ние, а их обоюдное существование сложилось исторически. Если бы системы UNIX и Linux разрабатывались в наши дни, то об этих средствах взаимодействия вопрос бы не стоял; сейчас их заменили бы сетевые сокеты.

Работа с файлами в Linux

Прежде всего рассмотрим основные команды для работы с файлами и папками. Для создания файла используется команда touch , для создания директории команда mkdir .

user@ubuntu$ touch [имя файла] – создание файла

user@ubuntu$ mkdir [имя директории] – создание директории

Удаление файлов производится с помощью команды rm. Для директорий используется та же команда, только с ключом -r (рекурсивный).

user@ubuntu$ rm [имя файла] – удаление файла

user@ubuntu$ rm -r [имя директории] – удаление директории

Посмотреть в какой директории находимся можно командной pwd . Содержимое директории просматривается командой ls, которую удобно вызывать с ключом -l для просмотра расширенной информации о каждом файле. Переход на каталог осуществляется командой cd .

user@ubuntu$ pwd – текущая директория

user@ubuntu$ ls -l [путь директории] – содержимое директории

user@ubuntu$ cd [путь директории] – перейти к директории

Операции копирования и перемещения осуществляются командами cp и mv соответственно. В Linux нет специальной команды для переименования файла, вместо этого используется mv.

user@ubuntu$ cp [копируемый файл] [директория] – копирование файла

user@ubuntu$ mv [перемещаемый файл] [директория] – перемещение файла

user@ubuntu$ mv [текущее имя файла] [новое имя файла] – переименовать файл

В этом примере мы создаем директорию test/, переходим в нее командой cd. В этой директории создаем два файла file и file2. Выводим содержимое каталога командой ls -l. Копируем файл file и присваиваем ему имя file3. Переименовываем файл file в new_file командой mv . В конце удаляем все файлы в каталог командой rm *. * – обозначает любое количество символов. Переходим на каталог выше командой cd .. и удаляем каталог /test.

Права доступа в Linux

Права доступа к файлу или каталогу можно задать с помощью команды chmod . Такое право есть лишь у владельца файла и пользователя root. В Linux каждому файлу соответствует набор прав доступа, представленный в виде 8-и битов режима. Они определяют, какие пользователи имеют права читать, редактировать и исполнять файл.

Первым аргументом команды chmod является спецификация прав доступа. Второй и последующий аргументы - это имена файлов, права доступа к которым подлежат измене­нию. При использовании восьмеричной формы записи первая цифра относится к владель­цу, вторая - к группе, а третья - к другим пользователям. Если необходимо задать биты setuid/setgid или дополнительный бит, следует указывать не три, а четыре восьмерич­ные цифры: первая цифра в этом случае будет соответствовать трем специальным битам.

В таблице показано восемь возможных комбинаций для каждого трехбитового набо­ра, где символы r, w и х обозначают право чтения, записи и выполнения соответственно.

Например, команда chmod 711 myprog предоставляет владельцу все права, а осталь­ным пользователям - только право выполнения 9 .

При использовании мнемонического синтаксиса вы объединяете множество испол­нителей (u - пользователь, g - группа или о - другой) с оператором (+ добавить, – удалить и = присвоить) и набором прав доступа. Более подробное описание мне­монического синтаксиса можно найти на man-странице команды chmod, но синтаксис всегда лучше изучать на примерах.

Часто происходит такие ситуации, когда при запуске файла он ругается на недостаток прав. Решить такую проблему можно командой sudo chmod a+x file . Команда означает, что для файла file устанавливаются права на исполнение для всех пользователей.

При наличии опции -R команда chmod будет рекурсивно обновлять права доступа ко всем файлам указанного каталога и его подкаталогов. Здесь удобнее всего придержи­ваться мнемонического синтаксиса, чтобы менялись только те биты, которые заданы явно. Например, команда
chmod -R g+w mydir добавляет групповое право записи к каталогу mydir и его содержимому, не затрагивая остальные права.

___________________________

Понимание файловой системы Linux, структуры каталогов, размещения конфигурационных, исполняемых и временных файлов поможет вам лучше разбираться в своей системе и стать успешным системным администратором. Файловая система Linux будет непривычна именно для новичка, только что перешедшего с Windows, ведь здесь все совсем по-другому. В отличие от Windows, программа не находится в одной папке, а, как правило, распределена по корневой файловой системе. Это распределение поддается определенным правилам. Вы когда-нибудь задавались вопросом, почему некоторые программы находятся в папке /bin, или /sbin, /usr/sbin, /usr/local/bin, в чем разница между этими каталогами?

Например, программа less, находится в каталоге /usr/bin, но почему не в /sbin или /usr/sbin. А такие программы, как ifconfig или fdisk находятся в каталоге /sbin и нигде иначе.

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

/ - корень

Это главный каталог в системе Linux. По сути, это и есть файловая система Linux. Здесь нет дисков или чего-то подобного, как в Windows. Вместо этого, адреса всех файлов начинаются с корня, а дополнительные разделы, флешки или оптические диски подключаются в папки корневого каталога.

Обратите внимание, что у пользователя root домашний каталог /root, но не сам /.

/bin - (binaries) бинарные файлы пользователя

Этот каталог содержит исполняемые файлы. Здесь расположены программы, которые можно использовать в однопользовательском режиме или режиме восстановления. Одним словом, те утилиты, которые могут использоваться пока еще не подключен каталог /usr/. Это такие общие команды, как cat, ls, tail, ps и т д.

/sbin - (system binaries) системные исполняемые файлы

Так же как и /bin, содержит двоичные исполняемые файлы, которые доступны на ранних этапах загрузки, когда не примонтирован каталог /usr. Но здесь находятся программы, которые можно выполнять только с правами суперпользователя. Это разные утилиты для обслуживания системы. Например, iptables, reboot, fdisk, ifconfig,swapon и т д.

/etc - (etcetera) конфигурационные файлы

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

Кроме конфигурационных файлов, в системе инициализации Init Scripts, здесь находятся скрипты запуска и завершения системных демонов, монтирования файловых систем и автозагрузки программ. Структура каталогов linux в этой папке может быть немного запутанной, но предназначение всех их - настройка и конфигурация.

/dev - (devices) файлы устройств

В Linux все, в том числе внешние устройства являются файлами. Таким образом, все подключенные флешки, клавиатуры, микрофоны, камеры - это просто файлы в каталоге /dev/. Этот каталог содержит не совсем обычную файловую систему. Структура файловой системы Linux и содержащиеся в папке /dev файлы инициализируются при загрузке системы, сервисом udev. Выполняется сканирование всех подключенных устройств и создание для них специальных файлов. Это такие устройства, как: /dev/sda, /dev/sr0, /dev/tty1, /dev/usbmon0 и т д.

/proc - (proccess) информация о процессах

Это тоже необычная файловая система, а подсистема, динамически создаваемая ядром. Здесь содержится вся информация о запущенных процессах в реальном времени. По сути, это псевдофайловая система, содержащая подробную информацию о каждом процессе, его Pid, имя исполняемого файла, параметры запуска, доступ к оперативной памяти и так далее. Также здесь можно найти информацию об использовании системных ресурсов, например, /proc/cpuinfo, /proc/meminfo или /proc/uptime. Кроме файлов в этом каталоге есть большая структура папок linux, из которых можно узнать достаточно много информации о системе.

/var (variable) - Переменные файлы

Название каталога /var говорит само за себя, он должен содержать файлы, которые часто изменяются. Размер этих файлов постоянно увеличивается. Здесь содержатся файлы системных журналов, различные кеши, базы данных и так далее. Дальше рассмотрим назначение каталогов Linux в папке /var/.

/var/log - Файлы логов

/var/lib - базы данных

Еще один тип изменяемых файлов - это файлы баз данных, пакеты, сохраненные пакетным менеджером и т д.

/var/mail - почта

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

/var/spool - принтер

Изначально, эта папка отвечала за очереди печати на принтере и работу набора программ cpus.

/var/lock - файлы блокировок

Здесь находятся файлы блокировок. Эти файлы означают, что определенный ресурс, файл или устройство занят и не может быть использован другим процессом. Apt-get, например, блокирует свою базу данных, чтобы другие программы не могли ее использовать, пока программа с ней работает.

/var/run - PID процессов

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

/tmp (temp) - Временные файлы

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

Файлы удаляются при каждой перезагрузке. Аналогом Windows является папка Windows\Temp, здесь тоже хранятся все временные файлы.

/usr - (user applications) Программы пользователя

Это самый большой каталог с большим количеством функций. Тут наиболее большая структура каталогов Linux. Здесь находятся исполняемые файлы, исходники программ, различные ресурсы приложений, картинки, музыку и документацию.

/usr/bin/ - Исполняемые файлы

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

/usr/sbin/

Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.

/usr/lib/ - Библиотеки

Содержит библиотеки для программ из /usr/bin или /usr/sbin.

/usr/local - Файлы пользователя

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

/home - Домашняя папка

В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д. Например, /home/sergiy и т д. Если сравнивать с Windows, то это ваша папка пользователя на диске C, но в отличии от WIndows, home как правило размещается на отдельном разделе, поэтому при переустановке системы все ваши данные и настройки программ сохранятся.

/boot - Файлы загрузчика

Содержит все файлы, связанные с загрузчиком системы. Это ядро vmlinuz, образ initrd, а также файлы загрузчика, находящие в каталоге /boot/grub.

/lib (library) - Системные библиотеки

Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.

Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib. Эту папку можно сравнить с WIndows\system32, там тоже сгружены все библиотеки системы, только там они лежат смешанные с исполняемыми файлами, а здесь все отдельно.

/opt (Optional applications) - Дополнительные программы

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

/mnt (mount) - Монтирование

В этот каталог системные администраторы могут монтировать внешние или дополнительные файловые системы.

/media - Съемные носители

В этот каталог система монтирует все подключаемые внешние накопители - USB флешки, оптические диски и другие носители информации.

/srv (server) - Сервер

В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.

/run - процессы

Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.

/sys (system) - Информация о системе

Назначение каталогов Linux из этой папки - получение информации о системе непосредственно от ядра. Это еще одна файловая система организуемая ядром и позволяющая просматривать и изменить многие параметры работы системы, например, работу swap, контролировать вентиляторы и многое другое.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows