Bootstrap

О файлах линукс, в общем

О файлах линукс, в общем

Бессмысленно считать, что файлы в ПК это не самая важная часть, поскольку все данные пользователей хранятся именно в файлах. И тем более когда речь идёт о UNIX-подобных операционных системах, где через файлы делается буквально всё. А именно обеспечивается доступ к периферийным устройствам, дисковым накопителям, принтерам и т.д. 

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

Понимание универсальных принципов системы, всегда будет намного важнее, зазубривания любого из пользовательских интерфейсов, какого-либо дистрибутива. И каждый усвоенный пользователем инвариантный принцип, который применим во всех unix или во всех gnu/linux системах, на вес золота.

Проведём паралель с файлами ОС от Microsoft.

Сначала dos, а потом и windows вместе с IBM быстро заполонили нишу ПК для рядового пользователя.  И с ними мы привыкаем к придуманной абстракции, где тома дисков, называют латинскими буквами ...C,D,E.... 
Тогда для многих из нас, кто знаком с windows и dos, эти буквы стали выполнять роль имён дисков т.е. их адресов. 

Вместо подобного именования томов,  в семействе систем Unix(linux,bsd, macos), выступает в чём-то похожая, но совершенно другая адресация томов. 

проще говоря: Содержимое всех дисков становится доступным через определённые каталоги.
Эти каталоги создаются суперпользователем, и они служат пользователям, адресами к содержимому томов. Адреса таких каталогов в unix системах называют точками монтирования. 

Стоит обратить внимание на то, что в адресации unix-систем, используются именно простой слэш "/", такой же как в браузере для адресов интернета, а не обратный "\" как принято в продуктах от microsoft.

Итак: в bsd и linux, для монтирования физических накопителей, большинством принято использовать следующие пути:

/mnt/имяраздела
/media/run/UserName/имяраздела

для съёмных дисков, флэшек и оптических приводов, чаще всего используется каталог /run/media/

/run/media/имяпользователя/метканосителя

Не запрещается для этих целей использовать и любые другие каталоги. Но сразу обратите внимание и запомните, что регистр имён, в отличии от среды microsoft, для Linux имеет непосредственное значение. Например /MNT и /mnt это два совершенно разных каталога, а также и /Mnt, /mNt, /mnT, /mNT - всё это будут разными каталогами. Однако для этих целей принято и удобнее помнить всё исключительно в нижнем регистре. (Как создавать свои каталоги и перемещаться по ним...)


Что находится в самом начале пути ко всем файлам линукс

команда показать содержимое каталога

ls путь

Визуально на самом верху, вначале, или иными словами в корневом каталоге операционной системы, с уникальным именем в виде прямого слэша "/", находятся вообще все каталоги, которые различным способом смонтированы в  систему. Тут находятся все диски и устройства, что уже определены в системе: а также все файлы и ПО. И всё, что ещё будет вновь появляться в системе, тоже будет брать начало с одного из этих каталогов. 

Посмотрим, что это за имена каталогов, в операционной системе Fedora 34, и кстати во всех дистрибутивах linux, эти каталоги корня почти одинаковы...

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

Как выглядит корень в терминале, и заодно каталоги c точками монтирования пользователя itdid:

Terminal:

    [itdid@fedora ~]$ ls /                                                                                                       
    backup  boot     dev  home  lib64       media  opt   root  sbin  sys        tmp  var
    bin     Desktop  etc  lib   lost+found  mnt    proc  run   srv   Templates  usr


    [itdid@fedora ~]$ ls /mnt                                                                                                     
    c  d  dockerzm  old  sbvl  sub  test  tomdata  Zoneminder


    [itdid@fedora ~]$ ls /run/media/itdid                                                                                         
    Ventoy

Поэтому чтобы отличать одно от другого,  в этом вопросе есть определённый порядок. У имён корневых каталогов gnu/linux имеется своё предназначение, предложенное и принятое сообществом разработчиков, и пользователей.  

В других операционных системах тоже существует своебразный порядок. Например в OS для MAC, точки монтирования томов всех дисков, находятся в подкаталогах по адресу /volumes/.....  В устройствах с OS Android  это однотипные каталоги /mnt и(или) /storage  .В OS от Microsoft, подобием точек монтирования являются каталоги c:\, d:\, e:\, f:\, ... 

В Windows эти буквы дисков представляют различные устройства хранения. В Linux же все устройства хранения данных подключены к единому корню - иерархии файловой системы. Таким образом, каталог /home может находиться на отдельном жёстком диске, или каталог /mnt/privet может являться файловой системой, сетевого диска(с другого компьютера)... Обычный пользователь, как правило, этого не знает. Но при желании и обладая соответствующим пониманием, он всегда сможет увидеть истинное положение вещей...

Основное отличие систем семейства Unix на этом поприще, это полный контроль и свобода для монтирования своих разделов по собственному разумению, если конечно у вас есть права root.

Ещё в DOS имена файлов почти всегда имели суффиксы (например, .txt для тек- стовых файлов или .docx для файлов Word). Трёхсимвольные суффиксы иногда можно применять и в Linux, однако они не имеют особого значения. Они полезны скорее для визуальной идентификации типа файла.

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

Однако в Linux расширения команд DOS, такие как .com, .exe и .bat, не всегда означают исполняемый файл. (Исполняемость файлов в Linux определяют флаги прав доступа.)

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

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

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

Рекомендую сразу опробовать эти две, с указанными ключами:

df -h
lsblk -f

Вот как выглядит в терминале например Centos 7:

Terminal:

    [11:28:14 root@centos7:/] # df -h                                                                                                                    
    Filesystem               Size  Used Avail Use% Mounted on
    devtmpfs                 1.9G     0  1.9G   0% /dev
    tmpfs                    1.9G     0  1.9G   0% /dev/shm
    tmpfs                    1.9G  8.9M  1.9G   1% /run
    tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/mapper/centos-root   78G  5.6G   72G   8% /
    /dev/sda1                997M  260M  737M  27% /boot
    tmpfs                    379M     0  379M   0% /run/user/1000
    [11:28:18 root@centos7:/] # 
    [11:28:21 root@centos7:/] # 
    [11:28:21 root@centos7:/] # lsblk -f                                                                                             
    NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
    sda                                                                      
    ├─sda1          xfs               44e5d762-7957-4c35-afca-de806b2d5f40   /boot
    └─sda2          LVM2_member       ljQvhs-xzfL-ba6a-316w-YpfH-BSVk-nKnKZA 
      ├─centos-swap swap              b794b19d-4b5f-400a-8507-dca1c409da86   [SWAP]
      └─centos-root xfs               8c99abdd-12c1-4e2b-beef-f3c20b841aab   /
    [11:28:30 root@centos7:/] # 

Давайте разберёмся с этим более основательно:

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

посмотрим и его содержимое сразу

cat /etc/fstab

Вот как это выглядит в терминале той же  Centos 7:

Terminal:

        [11:28:30 root@centos7:/] # cat /etc/fstab                                                                            
        #
        # /etc/fstab
        # Created by anaconda on Wed Feb 25 04:09:34 2015
        #
        # Accessible filesystems, by reference, are maintained under '/dev/disk'
        # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
        # 
        /dev/mapper/centos-root                   /                       xfs     defaults        1 1
        UUID=44e5d762-7957-4c35-afca-de806b2d5f40 /boot                   xfs     defaults        1 2
        /dev/mapper/centos-swap                   swap                    swap    defaults        0 0
        #VAGRANT-BEGIN
        # The contents below are automatically generated by Vagrant. Do not modify.
        vagrant /vagrant vboxsf uid=1000,gid=1000,_netdev 0 0
        #VAGRANT-END
    

Свежие статьи

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: