Device file
In Unix-like operating systems, a device file or special file is an interface to a device driver that appears in a file system as if it were an ordinary file.
On Linux they are in the /dev directory, according to the Filesystem Hierarchy Standard.
On Arch Linux the device nodes are managed by udev.
Block devices
A block device is a special file that provides buffered access to a hardware device. For a detailed description and comparison of virtual file system devices, see Wikipedia:Device file#Block devices.
Block device names
The beginning of the device name specifies the kernel’s used driver subsystem to operate the block device.
Storage devices, like hard disks, SSDs and flash drives, that support the SCSI command (SCSI, SAS, UASP), ATA (PATA, SATA) or USB mass storage connection are handled by the kernel’s SCSI driver subsystem. They all share the same naming scheme.
The name of these devices starts with sd . It is then followed by a lower-case letter starting from a for the first discovered device ( sda ), b for the second discovered device ( sdb ), and so on.
- /dev/sda — device a , the first discovered device.
- /dev/sde — device e , the fifth discovered device.
The name of storage devices, like SSDs, that are attached via NVM Express (NVMe) starts with nvme . It is then followed by a number starting from 0 for the device controller, nvme0 for the first discovered NVMe controller, nvme1 for the second, and so on. Next is the letter «n» and a number starting from 1 expressing the device on a controller, i.e. nvme0n1 for first discovered device on first discovered controller, nvme0n2 for second discovered device on first discovered controller, and so on.
- /dev/nvme0n1 — device 1 on controller 0 , the first discovered device on the first discovered controller.
- /dev/nvme2n5 — device 5 on controller 2 , the fifth discovered device on the third discovered controller.
alt=»Tango-view-fullscreen.png» width=»48″ height=»48″ />This article or section needs expansion. alt=»Tango-view-fullscreen.png» width=»48″ height=»48″ />
SD cards, MMC cards and eMMC storage devices are handled by the kernel’s mmc driver and name of those devices start with mmcblk . It is then followed by a number starting from 0 for the device, i.e. mmcblk0 for first discovered device, mmcblk1 for second discovered device and so on.
- /dev/mmcblk0 — device 0 , the first discovered device.
- /dev/mmcblk4 — device 4 , the fifth discovered device.
SCSI optical disc drive
The name of optical disc drives (ODDs), that are attached using one of the interfaces supported by the SCSI driver subsystem, start with sr . The name is then followed by a number starting from 0 for the device, ie. sr0 for the first discovered device, sr1 for the second discovered device, and so on.
Udev also provides /dev/cdrom that is a symbolic link to /dev/sr0 . The name will always be cdrom regardless of the drive’s supported disc types or the inserted media.
- /dev/sr0 — optical disc drive 0 , the first discovered optical disc drive.
- /dev/sr4 — optical disc drive 4 , the fifth discovered optical disc drive.
- /dev/cdrom — a symbolic link to /dev/sr0 .
virtio-blk
The name of drives attached to a virtio block device (virtio-blk) interface start with vd . It is then followed by a lower-case letter starting from a for the first discovered device ( vda ), b for the second discovered device ( vdb ), and so on.
- /dev/vda — device a , the first discovered device.
- /dev/vde — device e , the fifth discovered device.
Partition
Partition device names are a combination of the drive’s device name and the partition number assigned to them in the partition table, i.e. /dev/drivepartition . For drives whose device name ends with a number, the drive name and partition number is separated with the letter «p», i.e. /dev/driveppartition .
- /dev/sda1 — partition 1 on /dev/sda .
- /dev/nvme2n5p3 — partition 3 on /dev/nvme2n5 .
- /dev/mmcblk3p4 — partition 4 on /dev/mmcblk3 .
- /dev/vda1 — partition 1 on /dev/vda .
- /dev/loop0p2 — partition 2 on /dev/loop0 .
Utilities
lsblk
The util-linux package provides the lsblk(8) utility which lists block devices, for example:
In the example above, only one device is available ( sda ), and that device has three partitions ( sda1 to sda3 ), each with a different file system.
wipefs
alt=»Tango-view-fullscreen.png» width=»48″ height=»48″ />This article or section needs expansion. alt=»Tango-view-fullscreen.png» width=»48″ height=»48″ />
wipefs can list or erase file system, RAID or partition-table signatures (magic strings) from the specified device to make the signatures invisible for libblkid(3) . It does not erase the file systems themselves nor any other data from the device.
See wipefs(8) for more information.
For example, to erase all signatures from the device /dev/sdb and create a signature backup
Обозначения дисков и дисковых разделов в системах linux.
Один из основных постулатов Unix/Linux — «всё есть файл», и жесткие диски — не исключение.
Каждый найденный ядром диск, отображается в виде файла в специальном каталоге устройств «/dev»
Диски.
Приведем наглядный пример:
Получить список обнаруженных системой дисков можно выполнив команду fdisk -l:
Разделы.
Конкретный раздел (синонимы — том, партиция) определяется по номеру, после обозначения устройства, начиная с 1. Например: hdc5 — пятый том мастера на втором контроллере IDE, sde3 — третий том пятого SATA/SCSI накопителя.
Например: как быстро уничтожить форматированный раздел — заполним нулевыми байтами первые 10MB:
Разделы могут быть:
Кроме номера и размера, каждый раздел имеет свой тип, который обозначен одним байтом:
Work with File Systems on Oracle Linux
In the following tutorial, you list the mounted file systems. In addition, you partition disk devices and mount file systems. Then, you add entries in the file system table to mount file systems on reboots, and increase swap space. Lastly, you remove partitions and additional swap space.
Objectives
- Display the current partition table
- List mounted file systems
- Partition disk devices
- Create and mount file systems on partitions
- Modify the file system table to mount the file systems on reboots
- Increase the amount of swap space
- Remove partitions and additional swap space
What Do You Need?
- A system with Oracle Linux 8 or later installed
- Two or more block devices attached to the system.
Note: When using the free lab environment, see Oracle Linux Lab Basics for connection and other usage instructions.
Task 1: Prepare Block Volumes
In this task, you run iscsiadm commands to prepare two block volumes for use in this tutorial.
Note: The iscsiadm utility is a command-line tool allowing discovery and login to iSCSI targets.
Use the sudo command to switch user to the root user.
Open the Oracle Cloud Console.
If necessary, click Compute and then Instances.
Click the instance name link in the table to display its details page. The following image shows the instance name is ol8-server.
Scroll down the details page and select Attached Block Volumes under Resources to display the attached block volumes. The following image lists the block volumes attached to the instance.

For each block volume, click the three dots menu (on the right side) and select iSCSI Commands & Information from the list. The following image shows the iSCSI Commands & Information window and the three iscsiadm commands to copy:

Copy and paste the three commands for connecting the block volume into a terminal window.
Press Enter after the third (last) iscsiadm command.
Repeat step 5 for the other block volumes in the list.
Use the lsblk command to verify the block volumes are available on the system.
Note: The command output shows three block devices: sda , sdb , and sdc .
Task 2: List the Current Disk Partitions
As the root user, run the fdisk -l command to display the current partition table. Pipe the output to grep and list all /dev/sd disk devices.
- The device /dev/sda is a 46.6 GB disk containing three partitions of various types and sizes: /dev/sda1 is a 100 MB Extensible Firmware Interface (EFI partition), /dev/sda2 is a 1 GB Linux file system, with /dev/sda3 being a 45.5 GB Linux Logical Volume Manager (LVM).
- Partitions /dev/sda1 and /dev/sda2 are the primary boot devices.
- Partition /dev/sda3 is mapped to the root file system.
- Disk device, /dev/sdb , is a 50 GB disk without any partitions.
- Disk device, /dev/sdc , is a 50 GB disk without any partitions.
Use the df command to list the mounted partitions. The order of the devices might be different, and some numbers might vary.
- The first partition, sda1 , on the hard drive contains the Unified Extensible Firmware Interface (UEFI) boot loader files and is mounted on /boot/efi .
- The second partition, sda2 , is mounted on /boot .
- The file systems mounted on / and /var/oled are logical volumes.
Task 3: Create an MBR Partition
In this section, use the fdisk utility to create a Master Boot Record (MBR) partition.
Watch the video below for an overview on disk partitioning.
Use the fdisk command to partition /dev/sdb .
The interactive program opens with a short statement on its use, information about the device selected, and a command prompt.
Enter m at the prompt to display the fdisk menu.
Note: The menu groups the available options by their function.
Enter n to add a new MBR primary partition.
- The MBR stores partition information at the beginning of a disk and is limited to four primary partitions.
- One of the four partitions can be designated as an extended partition. This partition can then be subdivided into multiple logical partitions.
Enter p , followed by the number 1 for the first primary partition.
Press Enter to accept the default (2048) as the start of the first sector.
Enter +500M to set the last sector using the size notation.
fdisk returns a message telling you that the new partition is of the type ‘Linux’ with a size of 500 MiB.
Enter p to print the new partition.
Some of the information the print option displays is:
- The disk device name: /dev/sdb1 .
- The disk label type: dos , which indicates an MBR partition table.
- The partition type: Linux .
Enter w to save the new partition.
fdisk notes that the partition has changed, is being re-read by ioctl() , and that the disk is synchronizing.
Use the fdisk -l command to list the partition table on /dev/sdb . The fdisk -l command uses the lowercase letter l option, and not the numeral 1.
Task 4: Create a GPT Partition
Use the fdisk -l command to list the current partitions on /dev/sdc .
Note: The disk does not have any partitions.
Use the fdisk command to create a GUID Partition Table (GPT) partition on /dev/sdc .
- fdisk outputs the summary as it did before about the disk.
- GPT partitions are ideal for disks larger than 2 TB.
- In this lab, you use a 50 GB disk.
- If this disk was larger than 2 TB, a warning displays affirming the size of the disk and indicating that it cannot be used as a DOS partition table.
Enter g to add a new GPT partition.
The output confirms the creation of a new GPT disk label.
Enter n , followed by the number 1 for the first sector partition.
Press Enter to accept the default (2048) as the start of the first sector.
Enter Enter to set the last sector using the default size of 104857566 .
fdisk returns a message telling you of the new partition of the type ‘Linux’ with a size of 50 GiB.
Enter p to print the new partition.
Some of the information the print option displays is:
- The disk device name: /dev/sdc1 .
- The disk label type: gpt , which indicates an GPT partition table.
- The partition type: Linux .
Enter w to save the new partition.
fdisk notes that the partition changed, being re-read by ioctl() , and the disks are synchronizing.
Task 5: Create an ext4 File System on the MBR Partition
In this section, you create a file system on /dev/sdb1 .
Watch the video below for an overview on creating file systems.
Use the mkfs command to make an ext4 file system on the disk and assign it the label of Test .
Use the blkid command to display the attributes of the /dev/sdb1 block device.
Task 6: Create a xfs File System on the GPT Partition
In this section, you create an xfs file system on /dev/sdc1 .
Use the mkfs command to make an xfs file system on the disk and assign it the label of Dev .
Use the blkid command to display the attributes of the /dev/sdc1 block device.
Task 7: Mount the File Systems
In this section, you create mount points and mount the file systems to the mount points.
Watch the videos below for an overview on mounting file systems.
Use the mkdir command to create the mount points.
Use the mount command to mount /dev/sdb1 to /Test , and /dev/sdc1 to /Dev .
Use the df command to display the mounted file systems.
Use the mount command and pipe the output to grep to display the /Test file system.
- Notice that the output shows the default mount options on /Test .
- Refer to the man mount page for more information on these and other mount options.
Use the mount command and pipe the output to grep to display the /Dev file system.
Note: Refer to the man mount page for more information on these and other mount options.
Use the command cat /proc/mounts to view the status of all mounted file systems. Pipe the output to tail and display the last six lines.
The mounts file is part of the proc virtual file system. The mounts file, like other files in the /proc directory, does not exist. It is a representation of file system status in file form.
Task 8: Update the fstab File
In this section, you update the /etc/fstab file to mount the new file systems on reboots.
Watch the video below for an overview on updating the file system table.
Use the blkid command to obtain the UUID values for /dev/sdb1 and /dev/sdc1 to use in the next step.
Note: Small computer system interface (SCSI) device names are not stable across reboots. Oracle recommends using the device universally unique identifier (UUID) instead of /dev path names.
Use the command vi /etc/fstab and add the following entries to /etc/fstab :
When you add an iSCSI remote block volume, you must include the _netdev mount option or your instance will become unavailable after the next reboot.
Updating the /etc/fstab automatically mounts your file systems after the system reboots.
Use the umount command to unmount the file systems.
Use the mount –a command to mount all file systems in /etc/fstab file.
Use the command df -h to verify your new file systems are mounted.
Task 9: Increase Swap Space
In this section, you increase the amount of swap space by creating, initializing, and enabling a swap file.
Watch the video below for an overview on increasing swap space.
Use the swapon command to display the current amount of swap space.
Use the command grep -i swap /proc/meminfo to display the amount of swap space.
Use the free command to display the amount of swap space.
Use the dd command to create a swap file.
Use the mkswap command to initialize the swap file.
Use the swapon command to enable swapping on the swap file.
Note: Notice the suggestion to change permissions on the file.
Use the following commands to display the updated swap space.
If you need the additional swap space after a reboot, add the new swap file to the /etc/fstab file.
Task 10: Remove Partitions and Additional Swap Space
In this section, you remove your partitions, remove the entries in the file system table, and remove the additional swap space.
Use the umount command to unmount the file systems.
Use the fdisk command to delete the partition on /dev/sdb .
Enter d to delete partition 1.
Enter p to print the partition table and confirm there are no partitions.
Enter w to save the partition table and exit the fdisk utility.
Use the fdisk command to delete the partition on /dev/sdc .
Enter d to delete partition 1.
Enter p to print the partition table and confirm there are no partitions.
Enter w to save the partition table and exit the fdisk utility.
Use the parted command to change the label on /dev/sdc from gpt to msdos
Enter mklabel msdos to create an msdos label.
Enter Yes to continue.
Enter print to the partition table to confirm the label change.
Enter quit to exit the parted utility.
Use the vi command to remove the Dev and Test entries from the /etc/fstab file by deleting the appropriate lines.
Use the rmdir command to remove the /Dev and /Test mount point directories.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Структура директорий Linux. Важные файлы Linux
Особенности организации файлов в Linux
В Linux файловая система организована иначе чем в Windows.
Первое, что бросается в глаза, нет дисков C, D, E и так далее.
Второе, про что часто говорят, но не совсем просто осознать — всё в Linux является файлами. То есть сами файлы, очевидно, являются файлами; директории также являются файлом особого вида; физические устройства (диски, клавиатура, мышь и т. д. — это всё тоже файлы) и даже сетевые соединения — это тоже файлы.
Третье — в Linux есть root. Имеется ввиду корень файловой системы, который обозначается как «/». Ещё в Linux есть главный пользователь, имя которого тоже root — не нужно путаться, это довольно разные вещи. Кстати, ведь ещё есть и директория с именем /root. Говоря про корень файловой системы, имеется ввиду «/», а не «/root».
Где в Linux диски C, D, E?
Если задаться вопросов, где диск C в Linux, то его можно обнаружить сразу в двух местах. Во-первых, поскольку в Linux все физические устройства являются файлами, то диск C будет представлен файлом, например, с именем /dev/sda. Первая часть в этом имени — /dev/ — это директория, в которой расположены файлы, обозначающие устройства (о всех директориях будет рассказано далее). А sda — это уже непосредственно имя диска. Если однотипных дисков несколько, то последующим присваиваются другие буквы: /dev/sdb, /dev/sdc и т. д. Имя диска указывает на вид носителя. Например, буквы sd означают Solid Drive, то есть твердотельный диск. Если имя /dev/hda, то буквы hd означают Hard Drive (жёсткий диск).
Допустим имя диска /dev/hdc, что можно сказать о нём? Можно утверждать, что это жёсткий диск и он третий в системе.
Диски могут иметь и другие имена, например, у меня системный диск называется /dev/nvme0n1 — я погуглил, оказывается это новый вид твердотельных дисков NVM Express (NVMe).
Итак, мы уже нашли диск C? Не совсем. Имя /dev/sda это всего лишь обозначение устройства, которое предполагает использование имени для управления самим устройством. Например, если мы хотим создать новый раздел на диске или изменить размеры существующих, то мы откроем соответствующую программу, и в качестве параметра передадим ей имя диска, с которым хотим работать. Мы не можем открывать файлы обращаясь к диску по имени вида /dev/*
Монтирование дисков в Linux
В Linux есть такое понятие как «монтирование» диска. Чтобы получить доступ к файлам на этом диске, его нужно сначала смонтировать. Может возникнуть вопрос, зачем такие сложности? Я и сам так думал, т. к. во времена моего первого знакомства с Linux это мне казалось чем-то излишним и запутанным. Но монтирование это мощнейшая вещь, которая позволяет поразительно гибко настроить файловую систему!
Суть монтирования в том, что в файловой системе создаётся новая директория (обычная папка), допустим, это папка /mnt/disk_d. А затем командой mount указывается, что теперь, например, диск /dev/sda смонтирован в директорию /mnt/disk_d. После этого можно получить доступ к файлам диска /dev/sda открыв папку /mnt/disk_d в любом менеджере файлов:
Зачем нужно монтирование
С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!
Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.
Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.
В общем, несмотря на то, что монтирование является чем-то непривычным для пользователей Windows, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.
Что такое корень файловой системы?
Понятно, что корень файловой системы — это главная директория, в которой находятся все другие. Но что это в физическом смысле? Как я уже сказал, диски могут монтироваться в самые разные места файловой системы, сменные носители и постоянные диски довольно часто монтируются в /mnt/ или в /media/, так как они специально предназначены для этого (это понятно даже из названия). Так вот, корневая файловая система — эта та точка, куда смонтирован системный диск. Можно сказать, что корень файловой системы Linux, это как примерно диск C в Windows. Другие диски, вместо присвоения им букв D, E, F и пр., монтируются ниже по иерархии в какие-то указанные для них точки файловой системы.
О командах для перемещения по директориям файловой системы смотрите «Азы работы в командной строке Linux (часть 1)».
Описание директорий Linux
Далее рассмотрим значение всех важнейших папок (здесь они называются директориями) в корневой файловой системе Linux, а также познакомимся с важнейшими файлами в них.
Чтобы посмотреть, какие директории есть в корне файловой системы, можно выполнить команду:
Давайте рассмотрим значение и содержимое каждой папки в Linux.
/bin : Все исполнимые бинарные программы (файлы) необходимые во время загрузки, восстановления и ремонта системы; файлы, необходимые для запуска в однопользовательском режиме и другие важные, основные команды, такие как cat, du, df, tar, rpm, wc, history, и др. В настоящее время обычно представляет собой ссылку на директорию /usr/bin, то есть фактически исполнимые файлы находятся в папке /usr/bin.
/boot : Содержит важные файлы для процесса загрузки, включая ядро Linux. В современных системах при установке обычно на главном диске создаётся небольшой раздел, который затем монтируется в директорию /boot
/dev : Содержит файлы устройств для всех физических устройств на данной машине, например, cdrom, cpu и т. д. Как мы уже знаем, здесь же размещены файлы дисков — на случай, если понадобится смонтировать новый диск или сменный носитель.
/dev/disk — содержит 4 поддиректории: by-id, by-partuuid, by-path и by-uuid. В которых перечислены уникальные идентификаторы дисков и разделов устройств хранения по которым также можно обращаться к дискам, например, в файле /etc/fstab. Подробности смотрите в статье «Постоянные имена для блочных устройств».
/dev/nvme* — устройства NVM Express (NVMe), например, /dev/nvme0n1. Это разновидности SSD дисков
/dev/null — своеобразная чёрная дыра. Если запущенная программа выводит какую-то информацию, но она вам не нужна, то вы можете перенаправить её в /dev/null, и она исчезнет без вывода на экран
/dev/random — является источником случайных чисел (например, чтобы заполнить ими диск для надёжного удаления данных)
/dev/sdX — блочные устройства к которым относятся внутренние диски, USB флешки и диски, а также карты памяти. В именах вместо X используются буквы a, b, c и так далее, например /dev/sda и /dev/sdb
/dev/stderr, /dev/stdin и /dev/stdout — стандартный вывод ошибок, стандартный ввод и стандартный вывод соответственно. Если программа не поддерживает стандартный ввод, то для обхода можно использовать /dev/stdin, это нужно указать вместо имени файла. Если программа поддерживает только сохранение результатов в файл, но не поддерживает стандартный вывод, то можно в качестве имени файла указать /dev/stdout и результаты будут выведены в стандартный вывод (на экран) вместо сохранения в файл.
/dev/zero — возвращает бесконечные нули (иногда нужно)
/etc : Содержит файлы конфигурации приложений, а также файлы управления службами Systemd.
То есть настройки системы, программ и служб хранятся именно в этой папке. Количество папок и файлов здесь может быть различным в зависимости от количество установленных программ на данной системе.
Рассмотрим только некоторые из них, с которыми приходится сталкиваться чаще, чем с другими.
/etc/crypttab— аналог /etc/fstab для зашифрованных дисков, то есть содержит конфигурацию для зашифрованных блочных устройств
/etc/fstab — статичная информация о файловой системе. В этом файле содержится информация для автоматического монтирования дисков при загрузке компьютера.
Посмотрим на мой файл
Из этого файла следует, что раздел /dev/nvme0n1p1 (в данном случае диски обозначаются по их UUID) монтируется в /boot, раздел /dev/nvme0n1p2 монтируется в / (корень файловой системы), диск /dev/sda (он не разделён на разделы) монтируется в /mnt/disk. И ещё есть файл /swapfile, который выполняет роль свопа (файла подкачки).
/etc/anacrontab — одно из расположений периодически запускаемых задач cron
/etc/bashrc — глобальный скрипт запуска
/etc/cron.hourly/ — одно из расположений периодически запускаемых задач cron
/etc/cron.daily/ — одно из расположений периодически запускаемых задач cron
/etc/cron.weekly/ — одно из расположений периодически запускаемых задач cron
/etc/cron.monthly/ — одно из расположений периодически запускаемых задач cron
/etc/cron.d/ — одно из расположений периодически запускаемых задач cron
/etc/group — группы пользователей
/etc/host.conf — файл настройки для resolver
/etc/resolv.conf — ещё один файл настройки для resolver, содержит список DNS серверов, к которым должна обращаться система
Пример содержимого файла /etc/resolv.conf:
/etc/hosts — файл с информацией об IP адресах указанных хостов. Подробности смотрите в статье «Как настроить локальный DNS используя файл /etc/hosts в Linux».
/etc/mtab — динамическая информация о файловых системах
/etc/passwd — раньше этот файл хранил информацию о паролях пользователей, но теперь здесь просто список пользователей и информация об их оболочке
/etc/shadow — в этом файле хранятся хеши паролей пользователей
/etc/profile — общесистемный файл инициализации для входа в оболочку (сюда можно прописать переменные среды или функции, которые должны быть доступны для каждого пользователя в терминале после загрузки компьютера)
/etc/profile.d/* — директория, содержащая глобальные скрипты запуска
/etc/protocols — список IP протоколов
/etc/services — имена портов для сетевых служб
/etc/my.cnf — файл конфигурации MySQL/MariaDB (содержит отсылку на /etc/my.cnf.d)
/etc/my.cnf.d/ — директория, в которой фактически располагаются конфигурации MySQL/MariaDB
/etc/my.cnf.d/client.cnf — конфигурация клиента MySQL/MariaDB
/etc/my.cnf.d/server.cnf — конфигурация сервера MySQL/MariaDB
/etc/apache2/ — директория с настройками веб-сервера (когда служба называется apache2 — то есть в таких системах как Debian и производных)
/etc/apache2/conf/httpd.conf — главный конфигурационный файл Apache
/etc/apache2/conf/sites-enabled/ — включённые виртуальные хосты Apache
/etc/httpd/ — директория с настройками веб-сервера (когда служба называется httpd — то есть в таких системах как Arch Linux и производных)
/etc/httpd/conf/httpd.conf — главный конфигурационный файл Apache
/etc/httpd/conf/sites-enabled/ — включённые виртуальные хосты Apache
/etc/php/php.ini — главный конфигурационный файл PHP
/etc/systemd/ — директория с файлами Systemd. Подробности смотрите в статье «Как использовать Systemctl для управления службами Systemd и юнитами».
/etc/NetworkManager/system-connections/ — подключения к сети, которые настроены через NetworkManager.
/etc/openvpn — папки и файлы с настройками и сертификатами OpenVPN
/etc/ssh/ — конфигурационные файлы и ключи SSH
/etc/ssh/ssh_config — конфигурационный файл клиента SSH
/etc/ssh/sshd_config — конфигурационный файл сервера SSH
/etc/ssh/ssh_host_* (/etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_dsa_key.pub и другие) — SSH ключи
/etc/easy-rsa — здесь могут находиться файлы и сертификаты CA (Центра авторизации)
/home : домашний каталог пользователей. Каждый раз, когда создаётся новый пользователь, в домашнем каталоге создаётся каталог в соответствии с именем пользователя (например, для пользователя mial это будет /home/mial/), который содержит другие каталоги, такие как Рабочий стол (Desktop), Загрузки (Downloads), Документы (Documents) и т. д.
Исключением является только пользователь root, его файлы хранятся в директории /root (об этом ниже).
В некоторых дистрибутивах путь
/bin (то есть папка bin в домашней директории пользователя), добавлены в системную переменную $PATH. Это означает, что если поместить в эту папку файл, то он будет доступен в консоли по имени файла (не нужно указывать полный путь).
/.bashrc — специфичный для пользователя скрипт запуска
/.bash_login — специфичный для пользователя скрипт запуска
/.bash_profile — специфичный для пользователя скрипт запуска
/.profile — специфичный для пользователя скрипт запуска
/.bash_history — история команд, введённых пользователем
/.ssh/ — ключи и другие файлы клиента SSH
Аналогичные файлы также содержатся в директории /root/.
/lib : Каталог lib содержит модули ядра и образы общих библиотек, необходимые для загрузки системы и запуска команд в корневой файловой системе.
/lost+found : Этот каталог создаётся во время установки Linux, полезен для восстановления файлов, которые могут быть повреждены из-за неожиданного завершения работы. Если программа для поиска ошибок в файловой системе выявила проблема (например, нашла повреждённые файлы), то эти файлы будут перемещены в этот каталог.
/media : Точки монтирования для съёмных носителей, таких как CD-ROM (появились в FHS-2.3).
/mnt : Каталог монтирования для временного монтирования файловых систем (внешних дисков, USB накопителей и т.д.).
/opt : Аббревиатура от слова «опциональный», то есть необязательный. Содержит стороннее программное обеспечение, такое как Java, cuda, dropbox, metasploit, viber, vuze и т.д.
/proc : Виртуальная и псевдо-файловая система, которая содержит информацию о запущенных процессах и настройках ядра в виде файлов. Виртуальная файловая система, предоставляющая информацию о процессах и ядре в виде файлов. В Linux соответствует монтированию procfs. Обычно автоматически генерируется и заполняется системой на лету.
Подробности и описание самых востребованных файлов и каталогов этой директории смотрите в статье «Что такое файловая система /proc в Linux».
Примеры файлов в директории /proc:
/proc/partitions – Информация о доступных в системе разделах.
/proc/stat – Записи или различные статистики хранимые с последней перезагрузки.
/proc/swaps – Информация о swap разделе.
/proc/uptime – Информация об аптайме (времени работы) (в секундах).
/root : Это домашний каталог пользователя root, и его никогда не следует путать с «/».
Домашний каталог суперпользователя (root) находится в /root, а не в /home/root, так как учётная запись суперпользователя предназначена исключительно для администрирования операционной системы. Это помогает повысить надёжность системы: /root обычно располагается на том же разделе, где и система, что позволяет производить обслуживание и настройку операционной системы, смонтировав лишь корневой раздел.
/run : Информация о системе с момента её загрузки, в том числе данные, необходимые для работы демонов (pid-файлы, UNIX-сокеты и т.д.).
/sbin : Содержит двоичные исполняемые программы, необходимые системному администратору для обслуживания: iptables, fdisk, ifconfig, swapon, reboot и т.д.
/srv : Название директории является аббревиатурой от «сервисы». Эта директория содержит файлы, имеющие отношение к сервисам. Например здесь хранят файлы такие сервисы как deluge, ftp, http.
/srv/http/ — некоторые дистрибутивы (например, Arch Linux) хранят здесь файлы веб-сервера.
/sys : Содержит информацию об устройствах, драйверах, а так же некоторых свойствах ядра.
Современные дистрибутивы Linux включают директорию /sys в качестве виртуальной файловой системы, которая хранит и позволяет модифицировать устройства, подключённые к системе.
/sys/block/ — содержит информацию о дисках
/sys/block/sda/device/model — содержит информацию о модели диска sda
/tmp : Системный временный каталог, доступный пользователям и root. Сохраняет временные файлы для пользователя и системы, которые удаляются при следующей загрузке.
/usr : Содержит исполняемые файлы, документацию, исходный код, библиотеки для программ второго уровня.
/usr/bin — дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме.
/usr/include — стандартные заголовочные файлы (хедэры).
/usr/lib — библиотеки для программ, находящихся в /usr/bin и /usr/sbin.
/usr/local — третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие подкаталоги, как bin, lib, share.
/usr/sbin — дополнительные системные программы (такие как демоны различных сетевых сервисов).
/usr/share — архитектурно-независимые общие данные.
/usr/share/easy-rsa — здесь могут находиться файлы и сертификаты CA (Центра авторизации)
/usr/share/webapps — веб-приложения веб-сервера, например, owncloud, phpMyAdmin и др.
/usr/src — исходные коды (например, здесь располагаются исходные коды ядра).
/var : Директория для переменных данных. Содержимое файлов в этой директории, как ожидается, будет расти. Этот каталог содержит файлы журналов, lock, spool, почты и временных файлов.
/var/cache — кэш приложений. Такие данные генерируются локально в результате ресурсозатратных вычислений или операций ввода-вывода. Приложение обязано уметь регенерировать эти данные. Данные файлы могут быть удалены без потери данных.
/var/lib — информация о состоянии. Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
/var/lock — файлы блокировки, указывающие на занятость некоторого ресурса.
/var/log/ — содержит логи различных программ и служб
/var/log/apache2/ — логи веб-сервера Apache (в Debian и производных)
/var/log/httpd/ — логи веб-сервера Apache (в Arch Linux)
/var/log/wtmp (в некоторых системах /var/log/utmp) — файл, содержащий записи входов. Просмотреть записи можно командой «last»
/var/mail — почтовые ящики пользователей.
/var/run — каталог для хранения информации о системе с момента её загрузки, на данный момент устарел. Допускается делать его ссылкой на /run. Каталог оставлен для обратной совместимости с программами, которые всё ещё используют каталог /var/run.
/var/spool — задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма).
/var/spool/cron/ — одно из расположений периодически запускаемых задач cron
/var/spool/cron/crontabs/ — одно из расположений периодически запускаемых задач cron
/var/spool/mail — местоположение пользовательских почтовых ящиков (устаревшее).
/var/tmp — временные файлы, которые должны быть сохранены между перезагрузками.
/var/www/html/ — директория с файлами веб-сайтов веб-сервера Apache в Debian и производных дистрибутивах.
Заключение
Если я пропустил какие-то важные папки или файлы, то пишите их в комментариях!
Дополнительную информацию о директориях вы также найдёте в статье «Какие файлы можно удалить при нехватке места на диске Linux».