Главная страница
Навигация по странице:

  • 1.3 Текущий каталог Каждая выполняемая программа "работает" в строго определенном каталоге файловой системы. Такой каталог называется текущим каталогом .

  • 1.4 Домашний каталог В Linux у каждого пользователя обязательно есть собственный каталог

  • 1.5 Информация о содержимом каталога – утилита ls

  • 1.6 Перемещение по дереву каталогов – команда cd

  • 1.7 Создание каталогов – утилита mkdir

  • 1.7.1 Создание нового пустого файла – команда touch

  • 1.8 Копирование и перемещение файлов

  • ЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л. Практикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01


    Скачать 2.71 Mb.
    НазваниеПрактикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01
    Дата15.10.2022
    Размер2.71 Mb.
    Формат файлаpdf
    Имя файлаЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л.pdf
    ТипПрактикум
    #735270
    страница11 из 21
    1   ...   7   8   9   10   11   12   13   14   ...   21

    Hierarchy
    Standard
    ("стандартная структура файловых систем"). Краткое описание стандартной иерархии каталогов Linux можно получить, выполнив команду man hier. Полный текст и последнюю редакцию стандарта FHS можно прочесть по адресу http://www.pathname.com/fhs/
    Содержимое подкаталоговкорневого каталога.
    /bin
    Название этого каталога происходит от слова "binaries"
    ("двоичные", "исполняемые"). В этом каталоге находятся исполняемые файлы самых необходимых утилит, которые могут понадобиться системному администратору или другим пользователям.
    /boot
    "Boot" - загрузка системы. В этом каталоге находятся файлы, необходимые для загрузки ядра - и, обычно, само ядро.
    Пользователю практически никогда не требуется непосредственно работать с этими файлами.

    109
    /dev
    В этом каталоге находятся все имеющиеся в системе файлы особого типа, предназначенные для обращения к различным системным ресурсам и устройствам. Например, файлы
    /dev/ttyN
    соответствуют виртуальным консолям, где
    N
    - номер виртуальной
    консоли. Данные, введенные пользователем на первой виртуальной
    консоли, система считывает из файла
    /dev/tty1;
    в этот же файл записываются данные, которые нужно вывести пользователю на эту консоль. В специаьных файлах в действительности не хранятся никакие данные, при их помощи данные передаются.
    /etc
    Каталог для системных конфигурационных файлов. Здесь хранится информация о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ.
    /home
    Здесь расположены каталоги, принадлежащие пользователям системы - домашние каталоги, отсюда и название "home".
    Отделение всех файлов, создаваемых пользователями, от прочих системных файлов дает очевидное преимущество: серьезное повреждение системы или необходимость обновления не затронет пользовательских файлов.
    /lib
    Название этого каталога - сокращение от "libraries" (англ.
    "библиотеки"). Чтобы не включать эти функции в текст каждой программы, используются стандартные функции библиотек - это значительно экономит место на диске и упрощает написание программ. В этом каталоге содержатся библиотеки, необходимые для работы наиболее важных системных утилит, размещенных в
    /bin и
    /sbin
    /mnt
    Каталог для монтирования (от англ. "mount") - временного подключения файловых систем, например, на съемных носителях
    (CD-ROM и др.).
    /proc
    В этом каталоге все файлы "виртуальные" - они располагаются не на диске, а в оперативной памяти. В этих файлах содержится информация о программах (процессах), выполняемых в данный момент в системе.
    /root
    Домашний каталог администратора системы - пользователя root
    Смысл размещать его отдельно от домашних каталогов остальных пользователей состоит в том, что
    /home может располагаться на отдельном устройстве, которое не всегда доступно (например, на сетевом диске), а домашний каталог root должен присутствовать в любой ситуации.
    /sbin
    Каталог для важнейших системных утилит (название каталога -

    110 сокращение от "system binaries"): в дополнение к утилитам
    /bin здесь находятся программы, необходимые для загрузки, резервного копирования, восстановления системы. Полномочия на исполнение этих программ есть только у системного администратора.
    /tmp
    Этот каталог предназначен для временных файлов: в таких файлах программы хранят необходимые для работы промежуточные данные. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог
    /tmp очищается при каждой загрузке системы.
    /usr
    Здесь можно найти такие же подкаталоги bin
    , etc
    , lib
    , sbin
    , как и в корневом каталоге. Однако в корневой каталог попадают только утилиты, необходимые для загрузки и восстановления системы в аварийной ситуации - все остальные программы и данные располагаются в подкаталогах
    /usr
    . Этот раздел
    файловой системы может быть очень большим.
    /var
    Название этого каталога - сокращение от "variable" ("переменные" данные). Здесь размещаются те данные, которые создаются в
    процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати, электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы). В отличие от каталога
    /tmp сюда попадают те данные, которые могут понадобиться после того, как создавшая их программа завершила работу.
    Стандарт FHS регламентирует не только перечисленные каталоги, но и их подкаталоги, а иногда даже приводит список конкретных файлов, которые должны присутствовать в определенных каталогах. Этот стандарт последовательно соблюдается во всех Linux-системах.
    Командная оболочка "знает", что исполняемые файлы располагаются в каталогах /bin, /usr/bin и т. д. - именно в этих каталогах она ищет исполняемый файлcat. Благодаря этому каждая вновь установленная в системе программа немедленно оказывается доступна пользователю из командной строки. Для этого не требуется ни перезагружать систему, ни запускать какие-либо процедуры - достаточно просто поместить исполняемый файл в один из соответствующих каталогов.
    Рекомендации стандарта по размещению файлов и каталогов основываются на принципе размещения файлов, которые по-разному используются в системе, в разных подкаталогах. По типу использования файлы можно разделить на следующие группы:
    пользовательские/системные файлы
    Пользовательские файлы - это все файлы, созданные пользователем

    111 и не принадлежащие ни одному из компонентов системы.
    изменяющиеся/неизменные файлы
    К неизмененным файлам относятся все статические компоненты программного обеспечения: библиотеки, исполняемые файлы и т. д. - все, что не изменяется само без вмешательства системного администратора.
    Изменяющиеся файлы изменяются без вмешательства человека в процессе работы системы: системные журналы, очереди печати и пр. Выделение неизменных файлов в отдельную структуру (например, /usr) позволяет использовать соответствующую часть файловой системы в режиме "только чтение", что уменьшает вероятность случайного повреждения данных и позволяет применять для хранения этой части файловой системыCD-ROM и другие носители, доступные только для чтения.
    разделяемые/неразделяемые файлы
    Это разграничение становится полезным, если речь идет о сети, в которой работает несколько компьютеров. Значительная часть информации при этом может храниться на одном из компьютеров и использоваться всеми остальными по сети (к такой информации относятся, например, многие программы и домашние каталоги пользователей).
    Однако часть файловнельзяразделять между системами (например, файлы для начальной загрузки системы).
    Полный путь к каталогу формально ничем не отличается от пути к файлу, т. е. по полному путинельзя сказать наверняка, является его последний элемент файломили каталогом. Чтобы отличать путь к каталогу, иногда используют запись с символом "/" в конце пути, например "/home/student/".
    1.3 Текущий каталог
    Каждая выполняемая программа "работает" в строго определенном
    каталоге файловой системы. Такой каталог называется текущим
    каталогом. Можно представлять, что программа во время работы "находится" именно в этом каталоге, это ее "рабочее место". В зависимости от текущего каталога поведение программы может меняться: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге - до них она "дотянется" в первую очередь. Текущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку пользователь взаимодействует с системой через командную оболочку, можно говорить о том, что пользователь "находится" в том каталоге, который в данный момент является текущим каталогом его команднойоболочки.
    Все команды, выполняемые пользователем при помощи shell, наследуют текущий каталог shell, т. е. "работают" в том же каталоге. По этой причине пользователю важно знать текущий каталог shell. Для этого

    112 служит утилита pwd
    :
    Команда pwd
    (print working directory) возвращает полный путь текущего каталога командной оболочки - естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd
    Почти все утилиты по умолчанию читают и создают файлы в
    текущем каталоге. Например, утилита cat
    (concatenation – конкатенация) - выводит на экран содержимое файла "
    text
    ":
    [student@localhost student]$ cat text
    В действительности, командная оболочка, прежде чем передавать параметр "
    text
    " (имя файла) утилите cat
    , подставляет значение текущего
    каталога - получается полный путь к этому файлу в файловой системе:
    "
    /home/student/text
    ". Содержимое данного файла утилита cat выведет на экран.
    Относительный путь(relative path) - путь к объекту файловой
    системы, не начинающийся в корневом каталоге. Для каждого процесса
    Linux определен текущий каталог, с которого система начинает
    относительный путь при выполнении файловых операций.
    Относительный путь строится точно так же, как и полный - перечислением через "
    /
    " всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и
    относительным путем есть только одно существенное различие:
    относительный путь начинается от текущего каталога, в то время как
    полный путь всегда начинается от корневого каталога. Относительный
    путь любого файла или каталога в файловой системе может иметь любую конфигурацию - чтобы добраться до искомого файла, можно двигаться как по направлению к корневому каталогу, так и от него. Linux различает полный и oтносительный пути очень просто: если имя объекта начинается на "
    /
    " - это полный путь, в любом другом случае - относительный.
    Отделить путь к файлу от его имени можно с помощью команд dirname и basename соответственно.
    1.4 Домашний каталог
    В Linux у каждого пользователя обязательно есть собственный
    каталог, который и становится текущим сразу после регистрации в
    системе - домашний каталог.
    Домашний каталог(home directory) - это каталог, предназначенный для хранения собственных данных пользователя Linux. Как правило, является текущим непосредственно после регистрации пользователя в системе. Полный путь к домашнему каталогу хранится в переменной
    окружения
    HOME
    . Имя домашнего каталога


    Поскольку каждый пользователь располагает собственным

    113
    каталогом и по умолчанию работает в нем, решается задача разделения файлов разных пользователей. Обычно доступ других пользователей к чужому домашнему каталогу ограничен: наиболее типична ситуация, когда пользователи могут читать содержимое файлов друг друга, но не имеют права их изменять или удалять.
    1.5 Информация о содержимом каталога – утилита ls
    Чтобы иметь возможность ориентироваться в файловой системе, нужно знать, что содержится в каждом каталоге. Просмотреть содержимое любого каталога можно при помощи утилиты ls
    (сокращение от англ. "list" - "список"):
    Команда ls без параметров выводит список файлов и каталогов, содержащихся в текущем каталоге. Утилита ls принимает один параметр - имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного
    пути.
    Кроме параметра, утилита ls может использовать множество ключей, которые нужны для того, чтобы выводить дополнительную информацию о файлах в каталогеили выводить список файлов выборочно. Чтобы узнать обо всех возможностях ls
    , нужно прочесть руководство по этой утилите с помощью команды man ls
    Ключ –F используется, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ "/", чтобы показать, что в нем может содержаться что-то еще.
    Утилита ls по умолчанию не выводит информацию об объектах, чье имя начинается с "
    " - в том числе о "
    " и "
    ". Для того чтобы посмотреть полный список содержимого каталога, и используется ключ "
    -a
    " (all). Как правило, с "
    " начинаются имена конфигурационных файлов и
    конфигурационных каталогов (вроде
    .bashrc
    ), работа с которыми (т. е.
    настройка окружения, "рабочего места") не пересекается с работой над какой-нибудь прикладной задачей.
    Родительский каталог (parent directory) - это каталог, в котором содержится данный. Для корневого каталога родительским является он сам.
    Ссылки на текущий и на родительский каталог обязательно присутствуют в каждом каталоге в Linux. Даже если каталогпуст, т. е. не содержит ни одного файла или подкаталога, команда "
    ls -a
    " выведет список из двух имен: "
    " и "
    ". За ссылками на текущий и родительский каталоги могут следовать несколько файлов и каталогов, имена которых начинаются с "
    ". В них содержатся настройки командной оболочки (файлы, начинающиеся с "
    .bash
    ") и других программ. В домашнем каталоге каждого пользователя Linux всегда присутствует несколько таких файлов.

    114
    Использование этих файлов позволяет пользователям независимо друг от друга настраивать поведение командной оболочки и других программ - организовывать свое "рабочее место" в системе.
    1.6 Перемещение по дереву каталогов – команда cd
    Пользователь может работать с файлами не только в своем
    домашнем каталоге, но и в других каталогах. В этом случае будет удобно
    сменить текущий каталог. Для смены текущего каталога командной оболочки используется команда cd
    (от англ. "change directory" - "сменить
    каталог"). Команда cd принимает один параметр: имя каталога, в который нужно переместиться - сделать текущим. В качестве имени каталога можно использовать полный или относительный путь. В приглашении
    командной строки часто указывается текущий каталог shell - чтобы пользователю легче было ориентироваться, в каком каталоге он "находится" в данный момент.
    Командная оболочка умеет достраивать имена файлов и каталогов: пользователю достаточно набрать несколько первых символов имени файла или каталога и нажать
    Tab
    . Если есть только один вариант завершения имени - оболочка закончит его сама, и пользователю не придется набирать оставшиеся символы. Достраивание - весьма существенное средство экономии усилий и повышения эффективности при работе с командной строкой. Современные командные оболочки умеют достраивать имена файлов и каталогов, а также имена команд.
    Достраивание наиболее развито в командном интерпретаторе zsh
    Оболочка PowerShell также умеет достраивать имена.
    Для перемещения в родительский каталог ("/home") удобно воспользоваться ссылкой "..". Необходимость вернуться в домашний каталог из произвольной точки файловой системы возникает довольно часто, поэтому командная оболочка поддерживает обозначение домашнего каталога при помощи символа "". Поэтому чтобы перейти в домашний каталог из любого другого, достаточно выполнить команду "
    cd
    ". При исполнении команды символ "

    " будет заменен командной оболочкой на
    полный путь к домашнему каталогу пользователя.
    При помощи символа "

    " можно ссылаться и на домашние каталоги других пользователей: "
    имя пользователя ". Команда cd
    , поданная без параметров, эквивалентна команде "
    cd
    " и делает текущим каталогом домашний каталог пользователя.
    1.7 Создание каталогов – утилита mkdir
    В домашнем каталоге, как и в любом другом, можно создавать сколько угодно подкаталогов, в них - свои подкаталоги и т. д. Иными

    115 словами, пользователю принадлежит фрагмент (поддерево) файловой
    системы, корнем которого является его домашний каталог.
    Чтобы организовать такое поддерево, потребуется создать каталоги внутри домашнего. Для этого используется утилита mkdir
    . Она применяется с одним обязательным параметром: именем создаваемого
    каталога. По умолчанию каталог будет создан в текущем каталоге.
    1.7.1 Создание нового пустого файла – команда touch
    Для создания пустого файла с текущим временем создания служит команда touch имя_нового_файла. Для указания даты создания в формате
    ГГГГММДДhhmm используется ключ –t. Например touch –t 0904080000 tst файл создан 8 апреля 2015 г.
    1.8 Копирование и перемещение файлов
    Для перемещения файлов и каталогов предназначена утилита mv
    (от англ. "move" - "перемещать"). У mv два обязательных параметра: первый - перемещаемый файл или каталог, второй - файл или каталог назначения.
    Имена файлов и каталогов могут быть заданы в любом допустимом виде: при помощи полного или относительного пути. Кроме того, mv позволяет перемещать не только один файл или каталог, а сразу несколько. За подробностями о допустимых параметрах и ключах следует обратиться к руководству по mv
    :
    Перемещение файла внутри одной файловой системы в действительности равнозначно его переименованию: данные самого файла при этом остаются на тех же секторах диска, а изменяются
    каталоги, в которых произошло перемещение. Перемещение предполагает удаление ссылки на файл из того каталога, откуда он перемещен, и добавление ссылки на этот самый файл в тот каталог, куда он перемещен.
    В результате изменяется полное имя файла - полный путь, т. е. положение файла в файловой системе.
    Иногда требуется создать копию файла: для большей сохранности данных, для того, чтобы создать модифицированную версию файла и т. п.
    В Linux для этого предназначена утилита cp
    (от англ. "copy" -
    "копировать"). Утилита cp требует использования двух обязательных параметров: первый - копируемый файл или каталог, второй - файл или
    каталог назначения. Как обычно, в именах файлов и каталогов можно использовать полные и относительные пути. Существует несколько вариантов комбинации файлов и каталогов в параметрах cp
    - о них можно прочесть в руководстве. Нужно иметь в виду, что в Linux утилита cp нередко настроена таким образом, что при попытке скопировать файл поверх уже существующего файла никакого предупреждения не выводится. В этом случае файл будет просто перезаписан, а данные,

    116 которые содержались в старой версии файла, безвозвратно потеряны.
    Поэтому при использовании cp следует всегда быть внимательным и проверять имена файлов, которые нужно скопировать.
    Созданная при помощи cp копия файла связана с оригиналом только в воспоминаниях пользователя, в файловой же системе исходный файл и его копия - две совершенно независимые и ничем не связанные единицы.
    Поэтому при наличии нескольких копий одного и того же файла в рамках
    1   ...   7   8   9   10   11   12   13   14   ...   21


    написать администратору сайта