Содержимое каталога файлов физических устройств linux
Теперь, когда вы знаете как перемещаться по каталогам, пришло время взглянуть на содержимое этих каталогов.
Введите ls и нажмите [Enter] . Вы должны увидеть содержимое вашего текущего каталога или, как минимум, его часть.
Команда ls сама по себе не показывает всех файлов в вашем каталоге Чтобы увидеть всё, вы должны указать ещё один или два параметра.
Команда ls воспринимает множество параметров.
Если вы хотите увидеть все параметры команды ls , вы можете прочитать страницы руководства, выполнив в приглашении оболочки man ls . Если вы хотите распечатать страницу руководства, введите в приглашении man ls | col -b | lpr .
Зачем так много параметров? Все они помогают отсортировать информацию, так как вам это нужно. Например, вы можете указать как отображать файлы, показывать ли разрешения и многое другое.
Рисунок 10-6. ls с параметром -a
Введите ls -a . Теперь вы видите файлы, начинающиеся с точек. Такие файлы называются скрытыми.
Скрытые файлы чаще всего представляют собой конфигурационные файлы, задающие настройки для программ, оконных менеджеров, оболочек и т.д. Они сделаны скрытыми, чтобы предотвратить случайное их повреждение пользователем. Кроме этого, если вы ищете в каталоге что-то, обычно вас не интересуют эти конфигурационные файлы, а так как они скрыты, они не загромождают ваш экран.
Просматривая список файлов с помощью команды ( ls -a ) вы получаете много информации, но указав еще дополнительные параметры, вы сможете увидеть ещё больше.
Если вы хотите увидеть размер файла или каталога, время создания и другие сведения, просто добавьте параметр "long" (длинный) ( -l ) в команду ls -a :
Эта команда покажет дату создания файла, его размер, владельца, разрешения и т.д.
Вы не обязаны находиться в каталоге, содержимое которого вы просматриваете с помощью команды ls .
Посмотрите, что находится в каталоге /etc выполнив:
Вы получите массу информации о содержимом каталога /etc .
Ниже приводится список некоторых часто используемых параметров команды ls . Не забывайте о том, что вы можете получить полный список параметров в руководстве, на странице ls ( man ls ).
-a — all (все). Показывает все файлы в каталоге, включая скрытые файлы ( .filename ). Каталоги .. и . вверху этого списка обозначают родительский и текущий каталог соответственно.
-l — long (длинный). Выводит информацию о содержимом, включая разрешения (режимы), владельца, группу, размер, дату создания, является ли этот файл ссылкой на что-то другое в системе, и если да, то куда указывает эта ссылка.
-F — file type (тип файла). Добавляет в конце каждой строки определённый символ. Это может быть символ / , обозначающий каталог; @ , обозначающий ссылку на другой файл; и * , обозначающий исполняемый файл.
-r — reverse (обратный). Показывает содержимое каталога от конца к началу.
-R — recursive (рекурсивный). Этот параметр также показывает содержимое всех каталогов, вложенных в текущий.
-S — size (размер). Сортирует файлы по их размеру.
Чуть позже в этой главе, когда вы познакомитесь с перенаправлением ввода/вывода, вы откроете для себя другие способы просмотреть содержимое каталога.
Как уже говорилось, с точки зрения ОС Linux, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами. Если, например, надо вывести на экран какую-то информацию, то система как бы производит запись в файл /dev/tty01.
Физические устройства бывают двух типов: символьными (или байт-ориентированными) и блочными (или блок-ориентированными). Различие между ними состоит в том, как производится считывание и запись информации в эти устройства. Взаимодействие с символьными устройствами производится посимвольно, в режиме потока байтов. К таким устройствам относятся, например, терминалы. На блок-ориентированных устройствах информация записывается (и, соответственно, считывается) блоками. Примером устройств этого типа являются жесткие диски. На диск невозможно записать или считать с него один байт: обмен с диском производится только блоками.
Взаимодействием с физическими устройствами в Linux управляют драйверы устройств, которые либо встроены в ядро, либо подключаются к нему как отдельные модули. Для взаимодействия с остальными частями операционной системы каждый драйвер образует коммуникационный интерфейс, который выглядит как файл. Большинство таких файлов для различных устройств как бы "заготовлены заранее" и располагаются в каталоге /dev.
Если вы заглянете в каталог /dev, то увидите там огромное количество файлов физических устройств. ("Заглянуть в каталог" означает выполнить последовательно две команды cd и ls.) В табл. 4.2 приведена небольшая справка по именам наиболее часто используемых специальных файлов.
Таблица 4.2. Основные специальные файлы.
Каждому типу устройств в системе может соответствовать несколько файлов устройств. Поэтому файлы устройств характеризуются двумя номерами: старшим и младшим. Старший номер устройства говорит ядру о том, к какому драйверу относится данный файл, а младший номер показывает, к какому именно устройству данного типа следует обращаться.
Для файлов устройств команда ls -l вместо размера файла выдает старший и младший номера данного устройства.
Создание физических файлов и таблиц
Создание физических файлов и таблиц Физические файлы или, в терминологии SQL, таблицы содержат собственно данные. Запись физического файла имеет фиксированный набор полей. Каждое поле может иметь (хотя и не часто) переменную длину. В терминологии SQL таблица содержит строки
Файлы блочных устройств
Файлы блочных устройств Файлы блочных устройств служат интерфейсом к устройствам, обмен данными с которыми происходит большими фрагментами, называемыми блоками. При этом ядро операционной системы обеспечивает необходимую буферизацию. Примером физических устройств,
Файлы символьных устройств
Файлы символьных устройств Файлы символьных устройств используются для доступа к устройствам, драйверы которых обеспечивают собственную буферизацию и побайтную передачу данных. В качестве примера устройств с символьным интерфейсом можно привести терминалы, принтеры
9.2. Специальные файлы устройств
9.2. Специальные файлы устройств Однако, в отличие от обычных файлов, специальные файлы устройств в действительности есть только указатели на соответствующие драйверы устройств в ядре. По сравнению с обычными файлами файлы устройств имеют три дополнительных атрибута,
18.7. Подключение физических дисков к виртуальному компьютеру
18.7. Подключение физических дисков к виртуальному компьютеру Итак, мы создали и запустили виртуальный компьютер, работающий с виртуальным жестким диском. Но изолированный компьютер в наши дни уже смотрится как-то архаично, и естественно возникает желание обмениваться
1.4.2. Файлы устройств
1.4.2. Файлы устройств Абстракция - это великая сила. Возьмем, например, DOS (именно DOS, потому что с нее началась история Microsoft). Разные разделы жесткого диска в DOS представляются как отдельные диски (в DOS они называются логическими дисками), В Windows то же самое - открываем окно Мой
Урок № 21. Справочник физических лиц
Урок № 21. Справочник физических лиц Справочник физических лиц предназначен для ввода, редактирования и хранения информации обо всех физических лицах, работающих или работавших на предприятии. Более того, здесь можно хранить сведения и о кандидатах, которые могут стать
5.11.2. Файлы устройств
5.11.2. Файлы устройств Отдельного разговора заслуживают файлы устройств. Для Linux нет разницы между устройством и файлом. Все устройства системы представлены в корневой файловой системе в виде обычных файлов. Как уже упоминалось, файлы устройств хранятся в каталоге /dev.
Справочник физических лиц
Справочник физических лиц Перед тем, как приступить к эксплуатации программы, следует заполнить ряд основных справочников. Справочник в системе 1С 8.0 представляет собой каталог, в котором хранится та либо иная информация (в зависимости от конкретного справочника),
Восстановление данных, потерянных из-за физических неисправностей
Восстановление данных, потерянных из-за физических неисправностей Диагностика физических причин потери данных на flash-накопителях довольно проста. Некоторые шаги в процессе диагностики являются и началом восстановления данных.1. Если карта памяти не распознается или не
Восстановление данных при физических повреждениях
Восстановление данных при физических повреждениях Лазерные диски способны пострадать от самых разных причин: изгибов, ударов и царапин, высокой и низкой температуры, солнечного света, жидкостей и просто от времени. Хотя производители тщательно продумывают химическую
Восемь надёжных способов навсегда удалить файлы с ПК, из мобильных устройств и из «облака» Олег Нечай
В последних статьях мы ссылались на имя и расположение устройств Linux в файловой системе, таких как sda (первый диск SATA или SCSI). В частности, мы упоминали о том, как Linux обозначает жесткие диски при создании его образа.
Для понимания принципа как использовать и администрировать жесткие диски и другие устройства в Linux, важно понимание того, как Linux определяет эти устройства в своей файловой системе.
Очень часто, если мы используем жесткий диск в хаке или при криминалистическом исследовании, нам необходимо обращаться к имени устройства. Имена файлов устройств позволяют устройству (например, жесткому диску) взаимодействовать с системным программным обеспечением и ядром Linux через системные вызовы. Эти файлы НЕ являются драйверами устройств, а являются скорее точками взаимодействия, которые используются для связи с драйверами. Linux хранит все файлы устройств для каждого устройства в системе в директории /dev.
В этой статье мы рассмотрим, как Linux называет файлы устройств и как происходит взаимодействие с файловой системой через директорию /dev и ее файлы.
Директория /dev
Директория /dev содержит файлы, которые представляют собой физические периферийные устройства, присутствующие в системе, такие как диски, терминалы и принтеры. Директория /dev находится на один уровень ниже корневой директории /. Если мы перейдем в нее, то увидим записи для всех наших устройств.
Блочные файлы устройств против символьных
Linux делает различие между блочными (block device) и символьными (character device) устройствами. Символьные устройства — это те, которые передают данные в машину или из нее без буферизации, напрямую. К ним относятся клавиатура, мышь и монитор. Поскольку данные не буферизуются, то обмен этими данными — это, как правило, медленный процесс.
Читать также: Как читать и писать правила Snort для обхода систем обнаружения сетевых вторженийБлочными устройствами являются те, которые передают данные в машину или из нее в буферизованных блоках. К ним относятся такие устройства, как жесткие диски, компакт-диски, DVD-диски, флоппи-диски, флеш-накопители. Такая передача данных работает значительно быстрее.
Обратите внимание на то, что в длинном списке файлов в директории /dev некоторые файлы начинаются с «c», а некоторые — с «b». Символьные устройства начинаются с «c», а блочные устройства начинаются с «b».
В третьей строке каталога /dev вы можете увидеть, что там есть целая директория с именем «block». Давайте перейдем туда и посмотрим, что в ней находится.
Здесь мы видим список всех блочных устройств. В первой строке мы видим sr0 — это первый CD-ROM (Linux, как правило, начинает отсчет с 0, а не с 1). В нижней части sda, sda1, sda2, sda5 (у вас картинка может несколько отличаться), где sda1 представляет первый первичный раздел на диске SATA, а sda2 представляет второй первичный раздел на этом же диске.
Соглашение об именовании устройств в Linux
Первоначально жесткие диски были двух типов: IDE или SCSI. IDE (или более поздняя версия E-IDE) была разработана как недорогая альтернатива для недорогих ПК. Они были относительно медленными и разрешали иметь только четыре устройства на одной машине. Кроме того, они должны были быть настроены по принципу master и slave. У каждой комбинации master и slave устройств был один кабель и контроллер.
Более быстрая, но более дорогая альтернатива — это SCSI (Small Computer System Interface). Диски SCSI были быстрее и дороже. Помимо их скоростного преимущества, им не нужна конфигурация master/slave, и они поддерживали подключение в количестве до 15 устройств.
Linux назначает имена IDE дискам, начиная с букв hd, а SCSI-дисков — с sd. В последние годы с развитием и распространением дисков SATA мы видим, что Linux обозначает эти диски как sd, как и SCSI-диски.
Читать также: Sonic: превращаем любой телефон в супероружие хакераПервый IDE-диск обозначается как hda, второй hdb, третий hdc и т.д. То же самое происходит с SCSI, а теперь SATA-дисками: первый обозначается sda, второй sdb, третий sdc и т. д.
Другие файлы устройств включают такие имена:
- /dev/usb — USB-устройства
- /dev/lp — принтер с параллельным портом (LPT)
- /dev/tty — локальный терминал
- /dev/fd — флоппи-дисковод (кто-нибудь все еще использует дискеты?)
Логические и физические разделы жестких дисков
Linux может распознавать четыре первичных (primary) раздела жесткого диска на одну операционную систему. Это не ограничивает нас четырьмя жесткими дисками или четырьмя разделами, так как мы также можем использовать логические (logical) или расширенные (extended) разделы. У нас может быть до 15 логических или расширенных разделов на один диск, и каждый из этих разделов действует как собственный жесткий диск и работает так же быстро, как первичный раздел.
Первым основным разделом в Linux с SATA-диском будет sda1, второй sda2, третий sda3 и четвертый sda4. Кроме этих первичных разделов мы все еще можем продолжать разбивать диск, но уже на логические разделы. Первым логическим разделом на SATA-диске будет sda5. За этим последует 14 логических дисков, если необходимо, с последним логическим диском на первом диске SATA, являющимся sda19 (4 первичных и 15 логических разделов).
В Linux обычно есть отдельный раздел для пространства подкачки. Место подкачки — это область жесткого диска, которая используется как виртуальная память. Это означает, что когда у нас заканчивается оперативная память (ОЗУ) для определенного процесса или приложения, операционная система будет использовать это пространство на жестком диске, как если бы это была оперативная память, но, очевидно, намного медленнее (примерно в 1000 раз).
Специальные устройства
В Linux имеется ряд специальных файлов устройств. Вот список нескольких наиболее важных из них.
Это устройство можно использовать в качестве входного файла, предоставляющего необходимое количество нулевых байтов (0x00). Оно часто используется для инициализации файла или жесткого диска.
Это устройство является специальным файлом, который всегда возвращает ошибку «device full» («диск заполнен»). Обычно он используется для проверки того, как программа реагирует на ошибку «disk full». Он также может предоставлять бесконечное количество нулевых байтов для любого процесса тестирования.
Это устройство может использоваться как входные данные для заполнения файла или раздела случайными или, а вернее, псевдослучайными данными. Его можно использовать, чтобы перезаписать файл или целый раздел на жестком диске, что позволит значительно усложнить восстановление удаленных файлов судебными следователями, например.
Читать также: Основы Linux. Часть 29 ( Работа с загрузочными скриптами )Практически невозможно защитить от восстановления удаленный файл (с уликами, например) следователем, который не ограничен временем и деньгами. Поскольку у очень немногих следователей есть соответствующие умения, время и деньги, то этот метод будет препятствовать большинству следственных мероприятий.
Для этого мы можем воспользоваться командой dd. Например:
Надеемся, эта статья прольет свет на эту относительно чужую концепцию, но родную для Linux, которая часто сбивает с толку пользователей Windows. Если вы хотите ознакомиться с дополнительными статьями по Linux, посмотрите наши предыдущие посты по основам Linux и следите за обновлениями.
В предыдущих разделах мы рассмотрели два типа файлов: обычные файлы и каталоги. Но в Linux существует еще несколько типов файлов. С ними мы познакомимся в этом разделе.
Как уже было сказано, с точки зрения операционной системы файл представляет собой просто поток байтов. Такой подход позволяет распространить концепцию файла на физические устройства и некоторые другие объекты. Это позволяет упростить организацию данных и обмен ими, потому что аналогичным образом осуществляется запись данных в файл, передача их на физические устройства и обмен данными между процессами. Во всех этих случаях используется один и тот же подход, основанный на идее байтового потока. Поэтому наряду с обычными файлами и каталогами, файлами с точки зрения Linux являются также:
- файлы физических устройств;
- именованные каналы (named pipes);
- гнезда (sockets);
- символические ссылки (symlinks).
4.4.1. Файлы физических устройств
Как уже говорилось, с точки зрения ОС Linux, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами. Если, например, надо вывести на экран какую-то информацию, то система как бы производит запись в файл /dev/tty01.
Физические устройства бывают двух типов: символьными (или байт-ориентированными) и блочными (или блок-ориентированными). Различие между ними состоит в том, как производится считывание и запись информации в эти устройства. Взаимодействие с символьными устройствами производится посимвольно, в режиме потока байтов. К таким устройствам относятся, например, терминалы. На блок-ориентированных устройствах информация записывается (и, соответственно, считывается) блоками. Примером устройств этого типа являются жесткие диски. На диск невозможно записать или считать с него один байт: обмен с диском производится только блоками.
Взаимодействием с физическими устройствами в Linux управляют драйверы устройств, которые либо встроены в ядро, либо подключаются к нему как отдельные модули. Для взаимодействия с остальными частями операционной системы каждый драйвер образует коммуникационный интерфейс, который выглядит как файл. Большинство таких файлов для различных устройств как бы "заготовлены заранее" и располагаются в каталоге /dev.
Если вы заглянете в каталог /dev, то увидите там огромное количество файлов физических устройств. ("Заглянуть в каталог" означает выполнить последовательно две команды cd и ls .) В табл. 4.2 приведена небольшая справка по именам наиболее часто используемых специальных файлов.
Таблица 4.2. Основные специальные файлы.
Системная консоль, т. е. монитор и клавиатура, физически подключенные к компьютеру
Жесткие диски с IDE-интерфейсом. Устройство /dev/hda1 соответствует первому разделу на первом жестком диске (/dev/hda), т. е. на диске, подключенном как Primary Master
Жесткие диски с SCSI-интерфейсом
Файлы дисководов для гибких дисков. Первому дисководу соответствует /dev/fd0, второму /dev/fd1
Файлы поддержки пользовательских консолей. Название сохранилось с тех пор, когда к системе UNIX подключались телетайпы в качестве терминалов. В Linux эти файлы устройств обеспечивают работу виртуальных консолей (переключаться между которыми можно с помощью < Alt >+< F1 > — < Alt >+< F6 > )
Файлы поддержки псевдо-терминалов. Применяются для удаленных рабочих сессий с использованием telnet
Файлы, обеспечивающие работу с последовательными портами. /dev/ttyS0 соответствует COM1 в MS-DOS, /dev/ttyS1 — COM2. Если ваша мышь подключается через последовательный порт, то /dev/mouse является символической ссылкой на соответствующий /dev/ttySN
Специальные устройства для работы с модемами
Каждому типу устройств в системе может соответствовать несколько файлов устройств. Поэтому файлы устройств характеризуются двумя номерами: старшим и младшим. Старший номер устройства говорит ядру о том, к какому драйверу относится данный файл, а младший номер показывает, к какому именно устройству данного типа следует обращаться.
Для файлов устройств команда ls -l вместо размера файла выдает старший и младший номера данного устройства.
4.4.2. Именованные каналы (pipes)
Еще один тип специальных файлов — именованные каналы, или буферы FIFO (First In — First Out). Файлы этого типа служат в основном для того, чтобы организовать обмен данными между разными приложениями (pipe переводится с английского как труба).
Канал — это очень удобное и широко применяемое средство обмена информацией между процессами. Все, что один процесс помещает в канал, другой может оттуда прочитать. Если два процесса, обменивающиеся информацией, порождены одним и тем же родительским процессом (а так чаще всего и происходит), канал может быть неименованным. В противном случае требуется создать именованный канал, что можно сделать с помощью программы mkfifo . При этом собственно файл именованного канала участвует только в инициации обмена данными.
4.4.3. Доменные гнезда (sockets)
Гнезда — это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов. Вообще гнезда (и взаимодействие программ при помощи гнезд) играют очень важную роль во всех Unix-системах, включая и Linux: они являются ключевым понятием TCP/IP и соответственно на них целиком строится Интернет. Однако с точки зрения файловой системы гнезда практически неотличимы от именованных каналов: это просто метки, позволяющие связать несколько программ. После того как связь установлена, общение программ происходит без участия файла гнезда: данные передаются ядром ОС непосредственно от одной программы к другой.
Несмотря на то, что другие процессы могут видеть файлы гнезд как элементы каталога, процессы, не участвующие в данном конкретном соединении, не могут осуществлять над файлами гнезд операции чтения/записи. Среди стандартных средств, использующих гнезда — система X Window, система печати и система syslog.
4.4.4. Символические ссылки (еще раз об именах файлов)
В разделе об именах файлов уже говорилось о том, что файл в Linux может иметь несколько имен или "жестких ссылок".
Жесткая ссылка является просто еще одним именем для исходного файла. Она прописывается в индексном дескрипторе исходного файла. После создания жесткой ссылки невозможно различить, где исходное имя файла, а где ссылка. Если вы удаляете один из этих файлов (точнее одно из этих имен), то файл еще сохраняется на диске (пока у него есть хоть одно имя-ссылка).
Очень трудно различить первоначальное имя файла и позже созданные жесткие ссылки на него. Поэтому жесткие ссылки применяются там, где отслеживать различия и не требуется. Одно из применений жестких ссылок состоит в том, чтобы предотвратить возможность случайного удаления файла.
Особенностью жестких ссылок является то, что они прямо указывают на номер индексного дескриптора, а, следовательно, такие имена могут указывать только на файлы внутри той же самой файловой системы (т. е., на том же самом носителе, на котором находится каталог, содержащий это имя).
Но в Linux имеется другой тип ссылок, так называемые символические ссылки. Эти ссылки тоже могут рассматриваться как дополнительные имена файлов, но в то же время они представляются отдельными файлами — файлами типа символических ссылок. В отличие от жестких ссылок символические ссылки могут указывать на файлы, расположенные в другой файловой системе, например, на монтируемом носителе, или даже на другом компьютере. Если исходный файл удален, символическая ссылка не удаляется, но становится бесполезной. Используйте символические ссылки в тех случаях, когда хотите избежать путаницы, связанной с применением жестких ссылок.
Создание любой ссылки внешне подобно копированию файла, но фактически как исходное имя файла, так и ссылка указывают на один и тот же реальный файл на диске. Поэтому, например, если вы внесли изменения в файл, обратившись к нему под одним именем, вы обнаружите эти изменения и тогда, когда обратитесь к файлу по имени-ссылке. Для того, чтобы создать символическую ссылку, используется уже упоминавшаяся команда ln с дополнительной опцией -s :
ln -s имя_файла_или_каталога имя_ссылки
[user]$ ln -s /home/kos/ve/HOWTO/font-HOWTO-ru/
После выполнения такой команды в моем домашнем каталоге появился подкаталог FONTS. Если теперь мы просмотрим список файлов в каталоге /home/kos с помощью команды ls -l, то среди прочих увидим такую строку:
l rwxrwxrwx 1 kos kos 31 Dec 13 21:13 FONTS -> /home/kos/ve/HOWTO/font-HOWTO-ru/
Обратите внимание на самый первый символ в этой строке: он показывает, что данная запись соответствует символической ссылке. Впрочем, это видно и в поле имени, где после нового имени и стрелки указано исходное имя файла (в данном случае — каталога).
Если вы создали в каталоге kat1 символическую ссылку, которая указывает на какой-то другой каталог, то вы можете переместить каталог kat1 куда угодно, символическая ссылка при этом будет оставаться корректной. Точно так же можно перемещать сами символические ссылки. Но остерегайтесь использовать ".." (т. е. ссылку на родительский каталог) в полных именах файлов, включающих символические ссылки, поскольку по символической ссылке нельзя проследовать в обратном направлении, а ".." всегда означает истинный родительский каталог данного каталога.
Читайте также:
- Как войти в учетную запись майкрософт на windows 10 на пиратке
- Как выключить звук в undertale на windows 10
- Windows h где находится
- Как увеличить видеопамять на mac os
- Linux как хранить пароли