5/5 - (1 голос)

Структура файловой системы в Linux соответствует Стандарту Иерархии Файловой системы [Filesystem Hierarchy Standard]. Таблица показывает часть самых важных директорий, хотя в зависимости от вашего дистрибутива могут быть некоторые отличия.

 Директория  Назначение
/ Корневая директория для всего.
/boot Содержит ядро Linux и boot loader.
/bin Содержит основные программы, обязанные быть в системе, чтобы она загружалась и работала.
/dev Здесь ядро содержит список всех устройств, которые оно распознает.
/etc Размещает все файлы настройки для всей системы.
/home Каждому пользователю дается директория в /home; это единственное место, где можно записывать файлы без повышения привилегий.
/lib Содержит файлы общих библиотек, используемых основными системными программами. В вашей установке также будут /lib32 и  /lib64, содержащие библиотеки общего доступа по определенной архитектуре.
/media Содержит точки монтирования для съемных носителей, таких как диски USB и DVD, и прочие разделы, монтируемые автоматически при вставке.
/opt Используется для установки некоторых программ, например, VirtualBox.
/proc Это виртуальная файловая система, поддерживаемая ядром Linux; она не содержит реальных файлов, а только системную информацию.
/tmp Эта директория предназначена для хранения временных файлов, созданных разными программами, и очищается при каждой перезагрузке.
/usr Самая большая директория, которая содержит все программы и файлы поддержки. Также размещает другие важные директории, такие как /usr/bin, содержащую исполняемые программы и команды, устанавливаемые Linux. Здесь также есть /usr/share, она содержит все данные общего пользования, используемые программами в /usr/bin.

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

Первый шаг в управлении устройством хранения — присоединить его к дереву файловой системы. Этот процесс называется монтированием. Файл /etc/fstab показывает устройства, монтируемые при загрузке. Прочитайте man-страницу для fstab (man fstab), там вы найдете объяснение всех полей в файле. Для монтирования файловых систем служит команда mount. Если ввести эту команду без аргументов, она отобразит список файловых систем, смонтированных на данный момент.

Для монтирования устройства есть два основных компонента. Первый — настоящее имя файла устройства, связанное с физическим оборудованием. Ядро Linux обращается со всеми устройствами типа дисков, такими как жесткие диски SATA и диски USB, как с дисками SCSI с именами наподобие /dev/sdaX. X заменяется числом, означающим номер раздела. Однако многие дистрибутивы ассоциируют устройство с текстовой меткой, которая может быть простым текстом или случайно сгенерированным UUID (Universally Unique Identifier — Универсальным Уникальным Идентификатором). Второй компонент — точка монтирования, являющаяся директорией, в которой устройство присоединяется к дереву файловой системы.

Все дистрибутивы будут автоматически монтировать съемный диск, и вы можете найти его точку монтирования покоманде mount. Однако, закончив запись на диск USB, убедитесь, что вы сначала размонтировали его, и только потом извлекайте из порта USB: например, umount /dev/sda1 размонтирует устройство, связанное с /dev/sda1. Процесс размонтирования гарантирует пересылку на устройство всех данных, для него предназначенных.

Данные, с которыми мы встречаемся ежедневно, представлены в форме файлов, организованных в доступную для понимания структуру. Однако в реальности данные существуют в виде блоков, и иногда вам требуется переместить их в «сыром » виде. С этой целью оболочка Linux включает в себя утилиту dd (сокращение от data duplicator — дубликатор данных), которая помогает копировать блоки данных из одного места в другое. Хотя dd можно использовать с разными целями, в основном вы встретитесь с этой командой при работе с ISO-образами. Практически все дистрибутивы выпускают новые релизы в форме ISO-образов, которые можно прожечь на оптическом носителе или передать на диск USB с помощью dd, вот так:

$ sudo umount /dev/sdd
$ sudo dd if=/path/to/fedora.iso of=/dev/sdd bs=4M
$ sync

В этом наборе команд мы сначала размонтировали диск USB, подключенный к /dev/sdd, а затем попросили dd скопировать файл ISO на диск USB порциями по четыре мегабайта. Выполнение этой операции потребует времени, но прежде чем извлечь диск, запустите команду sync, обеспечив, что все данные благополучно переданы на диск.

Вы также можете использовать команду mount для монтирования ISO-образа, пока он еще находится на жестком диске:

$ sudo mkdir /mnt/iso_image
$ sudo mount -t iso9660 -o loop image.iso /mnt/iso_image

Здесь мы сначала создали точку монтирования под названием /mnt/iso_image и монтировали файл образа в этой точке, и теперь это замкнутое устройство, то есть псевдо- устройство, которое делает файл доступным в виде блочного устройства. Когда образ смонтируется, с ним можно работать, как с настоящим CD-ROM или DVD. Не забудьте размонтировать образ, когда надобность в нем отпадет.

Удаленные операции

Linux славен своими талантами работы в сети. Его популярные графические инструменты и приложения черпают свою мощь из многофункциональных утилит командной строки, которые вы можете использовать напрямую для получения большего контроля за сетевыми операциями. Две самых популярных команды для отладки проблем в сети — это ping и traceroute. Например, команда ping linuxformat.com отправит пакет с именем ICMP ECHO_REQUEST на указанный хост. Большинство web-серверов настроены на ответ на этот пакет, что позволит вам удостоверить подключение. Если прервать команды нажатием на Ctrl + C, выведется статистика работы. В нормально функционирующей сети потери пакетов не будет. Вы также можете использовать программу traceroute, которая отображает все переходы сетевого трафика от вашей локальной системы до указанного хоста: например, чтобы просмотреть маршрут пакетов от вашего компьютера до web-сервера techradar.com, введите traceroute techradar.com.

Linux-CLI предлагает несколько опций для отправки файлов по сети. Популярная программа командной строки для скачивания файлов — wget. Она удобна для скачивания контента из сети и с сайтов FTP. Утилита может скачивать всё, от отдельных файлов или нескольких файлов до целых сайтов. Чаще всего вы будете ее использовать для скачивания ISO-образов:

$ wget -c http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1- desktop-amd64.iso

Опция -c просит wget удерживать частично скачанный файл, это удобно для возобновления прерванного скачивания.

Часто бывает полезно удостовериться в целостности скачанного ISO-образа. В большинстве случаев тот, кто предоставляет образ, предоставляет также файл контрольной суммы, который содержит строку алфавитно- цифровых символов, вычисленных по образу. Если содержимое файла образа изменится хотя бы на один байт, полученная контрольная сумма будет совершенно другой. Контрольные суммы обычно вычисляются программой md5sum. После скачивания образа вы должны запустить с этим образом md5sum и сравнить результаты со значением md5sum, предоставленным издателем:

 $ md5sum downloaded-image.iso 85f43dc4c4ceb007661a3044845g243c downloaded-image.iso

Безопасная пересылка

Инструменты первого поколения, созданные для доступа к удаленным компьютерам, работали в простом тексте. Позднее был написан протокол SSH для безопасной коммуникации с удаленной машиной. Практически все дистрибутивы Linux поставляются с реализацией SSH под названием OpenSSH. Вы можете использовать его для запуска безопасной сессии терминала в сети. Весь трафик, проходящий через сессию, шифруется, включая пароли. Конфигурация SSH включает сервер SSH, который работает на удаленном хосте и слушает входящие соединения на порте 22, и клиент SSH, используемый на локальной системе для общения с удаленным сервером. Вы найдете учебники по SSH в прошлых выпусках Linux Format.

Самым распространенным применением SSH в настоящее время является удаленный доступ к Raspberry Pi. Предположим, IP-адрес Pi — 192.168.3.101; тогда вы можете получить к нему доступ через SSH с помощью

$ sudo ssh [email protected]

Этот клиент SSH соединится с сервером SSH, работающим на Raspberry Pi, и предложит вам ввести пароль для пользователя pi. При первой попытке установки соединения вам придется принять аутентификационную информацию удаленного хоста. После аутентификации вы получите оболочку удаленного хоста Raspberry Pi. Теперь все вводимые вами команды будут исполняться на Raspberry Pi. После окончания введите exit для завершения удаленной сессии и вернитесь в свою локальную оболочку. Пакет OpenSSH также включает scp (secure copy — безопасное копирование), которое использует зашифрованный канал SSH для копирования файлов через сеть. В отличие от традиционной команды cp, при использовании команды scp вам придется позаботиться о том, чтобы источник или путь к пункту назначения также включал имя удаленного хоста. Например, чтобы скопировать файл с именем document.txt из нашей директории home на удаленный Pi, можно сделать так:

$ scp ~/document.txt [email protected]:/home/pi/Documents/

Чтобы скопировать файлы с удаленной системы на локальную машину, надо просто поменять порядок команды scp, сделав его обратным, чтобы первый, или исходный, аргумент был удаленной системой, а второй, или пункт назначения, был директорией на локальной системе. Для иллюстрации мы скопируем ISO-образ из директории Downloads на удаленном Pi в текущую директорию на локальной машине:

$ scp [email protected]:/home/pi/Downloads/distro.iso

Удаленный администратор Linux, круглосуточная поддержка.