Операционные системы: Основы операционной системы UNIX.  Операционные системы: Основы операционной системы UNIX Основы работы в операционной системе unix

Основы Linux

Linux вдохновлена операционной системой Unix, которая появилась в 1969 году и до сих пор используется и развивается. Многое из внутреннего устройства UNIX существует и в Linux, что является ключем к пониманию основы системы.

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

Каталоги и файловая система

Файловые системы в Linux и Unix организованы по принципу иерархической, древовидной структуры. Верхний уровень файловой системы - / или корневой каталог . Это означает что все другие файлы и каталоги (включая также другие диски и разделы) находятся внутри корневого каталога. В UNIX и Linux файлом считается все - включая жесткие диски, их разделы и съемные носители.

Например, /home/jebediah/cheeses.odt показывает полный путь к файлу cheeses.odt . Файл находится в каталоге jebediah , которая находится в каталоге home , который в свою очередь, находится в корневом каталоге (/).

Внутри корневого каталога (/) существует ряд важных системных каталогов, которые присутствуют в большинстве дистрибутивов Linux. Ниже следует список общих каталогов, которые находятся непосредственно в корневом каталоге (/):

Права доступа

Все файлы в Linux имеют права доступа, которые разрешают или запрещают читать, изменять или выполнять их. Супер пользователь «root» имеет доступ к любому файлу в системе.

Каждый файл имеет следующие три набора доступа, в порядке их значимости:

    владелец

    относится к пользователю, который является владельцем файла

    группа

    относится к группе, связанной с файлом

    прочие

    относится ко всем остальным пользователям системы

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

    чтение

    файлы могут быть отображены и открыты для чтения

    содержимое каталогов доступно для просмотра

    запись

    файлы могут быть изменены или удалены

    содержимое калогов доступно для изменений

    выполнение

    исполняемые файлы могут быть запущены как программы

    каталоги могут быть открыты

To view and edit the permissions on files and directories, open the Applications → Accessories → Home Folder and right-click on a file or directory. Then select Properties . The permissions exist under the Permissions tab and allow for the editing of all permission levels, if you are the owner of the file.

To learn more about file permissions in Linux, read the file permissions page in the Ubuntu Wiki.

Терминалы

Working at the command line is not as daunting a task as you would think. There is no special knowledge needed to know how to use the command line. It is a program like everything else. Most things in Linux can be done using the command line, although there are graphical tools for most programs. Sometimes they are just not enough. This is where the command line comes in handy.

The Terminal is located in Applications → Terminal . The terminal is often called the command prompt or the shell. In days gone by, this was the way the user interacted with the computer. However, Linux users have found that the use of the shell can be quicker than a graphical method and still holds some merit today. Here you will learn how to use the terminal.

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

Основные команды

Просмотр содержимого каталогов: ls

Команда ls показывает список файлов разными цветами с полным форматированием текста

Создание каталогов: mkdir (имя каталога)

Команда mkdir создает новый каталог.

Перейти в каталог: cd (/адрес/каталога)

Команда cd позволяет перейти в любой указанный вами каталог.

Копирование файла или каталога: cp (что - имя файла или каталога) (куда - имя каталога или файла)

Команда cp копирует любой выбранный файл. Команда cp -r копирует любой выбранный каталог со всем содержимым.

Удаление файлов или каталогов: rm (имя файла или папки)

Команда rm удаляет любой выбранный файл. Команда rm -rf удаляет любой выбранный каталог со всем содержимым.

Переименовать файл или каталог: mv (имя файла или каталога)

Команда mv переименовывает или перемещает выбранный файл или каталог.

Поиск каталогов и файлов: locate (имя каталога или файла)

Команда locate позволяет найти заданный файл на вашем компьютере. Для ускорения работы используется индексация файлов. Для того чтобы обновить индекс, введите команду updatedb . Она запускается автоматически каждый день, если компьютер включен. Для запуска этой команды требуются права супер пользователя (см. «Пользователь root и командна sudo»).

Вы также можете использовать маски, чтобы указать более одного файла, такие как «*» (совпадение со всеми символами) или «?» (совпадение с одним символом).

For a more thorough introduction to the Linux command line, please read the command line introduction on the Ubuntu wiki.

Редактирование текста

All of the configurations and settings in Linux are saved in text files. Even though you most often can edit configurations through the graphical interface, you may occasionally have to edit them by hand. Mousepad is the default Xubuntu text editor, which you can launch by clicking Applications → Accessories → Mousepad on the desktop menu system.

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

Если вам необходим текстовый редактор в командной строке, можете использовать nano - простой в использовании текстовый редактор. При запуске из командной строки всегда используйте следующую команду, чтобы отключить автоматический перенос слов:

Nano -w

For more information about how to use nano , refer to the guide on the wiki .

There are also quite a few other terminal-based editors available in Ubuntu. Popular ones include VIM and Emacs (the pros and cons of each are cause for much friendly debate within the Linux community). These are often more complex to use than nano , but are also more powerful.

Пользователь root и командна sudo

The root user in GNU/Linux is the user which has administrative access to your system. Normal users do not have this access for security reasons. However, Ubuntu does not enable the root user. Instead, administrative access is given to individual users, who may use the "sudo" application to perform administrative tasks. The first user account you created on your system during installation will, by default, have access to sudo. You can restrict and enable sudo access to users with the Users and Groups application (see «Управление пользователями и группами» for more information).

Когда вы открываете программу, требующую прав супер пользователя, sudo потребует ввести ваш пароль. Это гарантирует, что вредоносные приложения не смогут повредить вашу систему, а также напомнит вам, что вы собираетесь выполнить действия, которые требуют особой осторожности!

Чтобы использовать sudo в командной строке, просто наберите «sudo» перед командой, которую необходимо выполнить. После этого потребуется ввести ваш пароль.

Sudo will remember your password for 15 minutes (by default). This feature was designed to allow users to perform multiple administrative tasks without being asked for a password each time.

Be careful when doing administrative tasks - you might damage your system!

Some other tips for using sudo include:

    Чтобы использовать терминал с правами супер пользователя (root), наберите «sudo -i» в командной строке

    The entire suite of default graphical configuration tools in Ubuntu already use sudo, so they will prompt you for your password if needed.

    При запуске графических приложений вместо «sudo» используется «gksudo». Это позволяет запрашивать пароль у пользователя в небольшом графическом окне. Команда «gksudo» удобна, если вы хотите установить кнопку запуска Synaptic на вашу панель или что-то подобное.

    For more information on the sudo program and the absence of a root user in Ubuntu, read the sudo page on the Ubuntu wiki.

Транскрипт

1 Введение Курс «Основы ОС UNIX» предназначен для студентов начальных курсов факультетов, заинтересованных в подготовке разработчиков программного обеспечения того или иного уровня. Обязательным предварительным для ОС UNIX является вводный курс по программированию на языке С, как базовый, а также курс по основам архитектуры компьютеров. Структура курса предлагает 13 лекций и соответствующие лабораторные работы, помогающие понять общие принципы функционирования операционной системы типа UNIX. Материал лекций представляется в тезисной форме, что оставляет большую степень свободы для глубины презентации тем в лекционном материале. Кроме того, длительность некоторых лекций может варьироваться от 2 до 6 часов, если есть такая необходимость. Лабораторные занятия не предполагают использования специализированной лаборатории или определенного клона UNIX/Linux и могут выполняться на персональных компьютерах студентов с использованием любого доступного программного обеспечения UNIX, Solaris, Linux, FreeBSD, Mac OS X и т.д., при условии установки соответствующих пакетов из депозитариев для разработчиков. Практически, обычно, использовался удаленный доступ к Linux серверу по протоколу SSH, для Windows рабочих станций и PuTTY 1 - в качестве SSH клиента. Заметим, наконец, что все задания выполняются в командном интерпретаторе shell (bash) и здесь не обсуждаются различные существующие X Window (X11) интерфейсы (CDE, GNOME, KDE, Xfwm, Xfce или wmii и др.), что позволяет использовать минимальные конфигурации ядра и сконцентрироваться на изучении ядра ОС с самого начала курса. Почему же, все таки, Linux выбирается для представления основ операционных систем, а, например, не Microsoft Windows,? Причин несколько: открытый код Linux, идеология UNIX, заложенная в нем, основные идеи ОС, реализованные в UNIX/Linux, используются и в Microsoft Windows: многозадачность, иерархическая файловая система, многопользовательская система, виртуальная память, встроенный сетевой стек, многопоточность, и, главное, ядро Linux все чаще выбирается для построения компьютерных систем различного уровня от распределенных и облачных серверов в корпоративной системе до мобильных, и внедренных в управляющие чипы систем. 1 Власов С.В ФКН ВГУ, Воронеж 1

2 Лекция 1. Основные понятия. ОС операционная система это программный продукт, предназначенный для управления ресурсами компьютера: аппаратурой, данными, программами и процессами. Обязательным компонентом ОС является ядро, все остальные компоненты являются приложениями, добавляемыми в ОС при необходимости. Например, когда говорят: «Linux версии...» имеют ввиду ядро (kernel), но под GNU/Linux подразумевают некоторый клон с определенным ядром и набором приложений (Debian, Red Hat, Susse, и т.д.) Ядро ОС обязательный компонент ОС, предоставляющий структуры данных, программы и процессы, а также аппаратно-зависимый код, необходимые для управления ресурсами компьютера. Существуют различные принципы построения ядра: монолитное ядро (Linux) или микроядро (напр., Minix). Ядро можно настраивать, добавляя или удаляя некоторые компоненты (модули, драйверы). Файл определенная последовательность байт. В ОС UNIX почти все представляется файлом. При этом различают только 7 типов файлов (в скобках указан соответствующий символ: в выводе команды ls -l) регулярные файлы (-) специальные файлы: директорий, (d) символическая ссылка, (l) именованный канал, (p) символьное устройство, (c) блочное устройство, (b) UNIX сокет. (s) За распознавание и обработку внутренней структуры файла отвечает приложение, для которого этот файл был предназначен или которым был создан. Иерархическая файловая система абстракция для представления упорядоченности файлов в виде дерева каталогов. Корнем дерева является каталог с именем «/», который называется корневой (root) файловой системой (не путать с /root). Особенность иерархической файловой системы Linux заключается в том, что она является виртуальной, в том смысле, что любой узел в единой иерархии может быть связан с собственной файловой системой определенного типа (ext2fs, ext3fs, riserfs, vfat и т.д.), располагающейся на отдельном устройстве, разделе или непосредственно в памяти. Директорий в иерархии, используемый в каждый данный момент по-умолчанию называется текущим рабочим каталогом. Можно использовать абсолютные имена файлов, начиная от корня /, или относительные имена от текущего рабочего каталога (символ «.» - точка), когда родительский каталог обозначается символами «..» (две точки горизонтально без пробелов). Программа это файл, содержащий исполняемые инструкции. Файл, содержащий печатный текст программы на языке программирования, называется исходным модулем программы. Исходник, написанный на скрипт-языке (shell, perl, python, ruby и т.д.) исполняется непосредственно интерпретатором языка. Исходники на других языках (C, Fortran и т.п.) подлежат компиляции для преобразования исходного текста в исполняемый программный модуль, содержащий инструкции процессора в двоичном формате (эволюционирующем от a.out и COFF до ELF). Процесс это программа во время выполнения. Процессы также организованы в иерархию с отношениями «родитель потомок». Все процессы в UNIX имеют уникальный целочисленный идентификатор (PID). Корневым процессом иерархии является процесс с номером 1 это процесс init, порождаемый при загрузке ядра операционной системы и порождающий другие процессыпотомки. При работе ОС, любой процесс, кроме init, может быть остановлен. Существует также скрытый процесс 0 - swap, отвечающий за страничный обмен виртуальной памяти. Логон процесс это родительский процесс для всех процессов, порождаемых пользователем Власов С.В ФКН ВГУ, Воронеж 2

3 системы, работающей в многопользовательском режиме. Задачей этого процесса является проверка атрибутов безопасности (регистрационного имени и пароля) пользователя и запуск процесса, обеспечивающего интерфейс взаимодействия ОС с пользователем обычно, это интерпретатор командного языка shell. Интерпретатор shell это программа, входящая в состав конкретной ОС для обеспечения взаимодействия пользователя с ОС. В системах UNIX/Linux используются различные интерпретаторы: bash, csh, tcsh, ksh, zsh и многие другие. Стандартным интерпретатором в системах GNU/Linux обычно выбирается bash. Интерпретатор предоставляет командную строку для запуска на выполнение стандартных команд и программ пользователя. Власов С.В ФКН ВГУ, Воронеж 3

4 Практические примеры. Вход в систему через SSH клиент (PuTTY) В MS Windows выберите Start->Run и введите: X:/Putty/Putty.exe В открывшемся окне Putty Configuration введите в поле Host Name (or IP address): www2 Щелчок на Open приведет к соединению с сервером www2 и появлению логон окна, в котором при первой попытке соединения с Linux сервером появится сообщение PuTTY Security Alert об отсутствии в кэше реестра нового RSA ключа согласитесь с включением ключа в кэш для доверительного соединения с сервером теперь и в будущем. Щелкните Yes (Да). В DOS окне появится приглашение Власов С.В ФКН ВГУ, Воронеж 4

5 Logon as: имя password: где вы вводите ваше регистрационное имя (вместо name) и пароль. Будьте внимательны при вводе пароля, поскольку нажимаемые клавиши при вводе никак не отображаются, даже звездочек нет. Если все выполнено правильно, то вы увидите в этом же окне подсказку командной строки интерпретатора shell 2:~$ _ Теперь вы можете взаимодействовать с ОС Linux через интерфейс командной строки. 3 В дальнейшем мы будем использовать только символ $ для обозначения командной строки, хотя у вас перед ним может отображаться путь к текущему рабочему каталогу. Где мы? (домашний директорий) При регистрации в системе каждому пользователю назначается защищенный домашний директорий для сохранения персональных файлов. При входе в систему логон процесс автоматически подключает ваш домашний директорий в качестве текущего рабочего каталога. Три следующие команды должны показать один и тот же результат полный путь к вашему домашнему каталогу. $ pwd $ echo ~ $ echo $HOME Что мы имеем? (автоматически генерируемые файлы) Содержимое текущего рабочего каталога можно вывести командой: $ ls При первом входе в систему этот список обычно пуст. 4 Однако, при регистрации пользователя в его домашнем каталоге создаются некоторые скрытые служебные файлы, которые могут изменяться самим пользователем для настройки требуемой среды. Ключ -a команды ls позволяет увидеть в списке содержимого текущего каталога все скрытые файлы, именованные с префиксом «.» (точка) $ ls -a Кстати, в этот список включены также анонимные имена текущего каталога «.» и родительского каталога «..». Назначая собственному файлу имя с префиксом «.» (точка) вы делаете его скрытым. Какая используется система? Выполнение операций и возможности натройки системы зависят от версии ОС, которую вы используете. Чтобы получить информацию об этом, воспользуйтесь командой $ uname -a Краткую справку о параметрах и ключах команды можно получить используя ключ help, например, 2 При возникновении проблем соединения с сервером или вводом имени и пароля у вас есть только один выход обратитесь к системному администратору сервера. 3 Символ $ перед курсором является признаком командной строки и принят по-умолчанию для обычного пользователя в командном интерпретаторе bash. (Для суперпользователя root используется символ #) 4 Возможно у вас имеется катало public_html, который можно использовать для обмена файлами между Linux и MS Windows системами благодаря соответствующему сервису. Власов С.В ФКН ВГУ, Воронеж 5

6 $ uname --help Подробное описание команд и функций UNIX можно получить из документации, называемой, manстраницы («manual pages» - руководство по системе): $ man pwd $ man ls $ man echo $ man uname Страницы руководства представляются в специальном формате nroff /troff/groff и форматируются при выводе соответствующей утилитой в зависимости от типа устройства вывода. Завершение просмотра страниц руководства осуществляется нажатием клавиши Q $ man man Файлы руководства обычно хранятся в упакованном виде (суффикс.gz или.bz2) и организованы по разделам: 1. Общие команды 2. Системные вызовы 3. Функции библиотеки С 4. Специальные файлы 5. Форматы файлов и конвертация 6. Игры и экранные заставки 7. Дополнительные 8. Команды и демоны для системного администрирования Номер раздела используется при ссылке на используемую команду или функцию, например, printf/3 и указывается первым параметром команды $ man 1 printf $ man 3 printf Директорий, в котором располагается страница руководства по команде можно определить используя ключ -w $ man -w команда Иерархическая файловая система Команда ls может использоваться для просмотра списка содержимого любого каталога в иерархии файловой системы (независимо от физического устройства и типа файловой системы на разделе или в памяти). Например, корневая файловая система отображается командой $ ls / Однако, для того, чтобы вывести на экран структуру всего дерева понадобится изрядная изобретательность, например, $ ls -R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s/^/ /" -e "s/-/ /" где использованы фильтр регулярных выражений grep, потоковый редактор sed и неименованные каналы (pipes), обозначаемые символом (пайп). В своем домашнем каталоге вы можете создать новый (пустой) директорий узел в иерархии, например, lab1 Власов С.В ФКН ВГУ, Воронеж 6

7 $ mkdir lab1 Любой узел в иерархии может быть выбран в качестве текущего $ cd lab1 $ pwd Для возврата в свой домашний директорий (определяемый переменной окружения HOME) используйте команду cd без параметров $ cd $ pwd Удалить пустой директорий можно командой rmdir, например, $ rmdir lab1 Если директорий не пуст, то последняя команда (если lab1 содержит некоторые файлы) выведет сообщения rmdir: lab1: Directory not empty и удаление не будет выполнено. В текущем директории можно создать, например, текстовый (регулярный) файл. Для этого можно воспользоваться перенаправленным выводом команды echo $ echo "echo Print directory tree " > tree Создается файл tree, содержимое которого можно вывести командой $ cat tree или в постранично отформатированном виде $ pr tree Можно даже добавить новую строку в конец существующего файла, например, $ echo using grep and sed >> tree $ cat tree Можно использовать строчный редактор текстов ed стандартный редактор, предназначенный для редактирования текстов с консоли типа пишущей машинки. $ ed tree a ls -R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s/^/ /" -e "s/-/ /". wq $ cat tree Фактически мы создали здесь файл с командами, который можно будет выполнять как новую команду, если объявить его «исполняемым»: $ chmod +x tree $./tree Власов С.В ФКН ВГУ, Воронеж 7

8 Заметим, что попытка выполнить файл без указания текущего директория, т.е. просто tree, а не./tree как показано выше, не приведет к обнаружению файла в текущем каталоге. Это связано с тем, что из соображений безопасности анонимный текущий каталог не включен в переменную окружения PATH, используемую для поиска программы запускаемой на выполнение по имени. $ echo $PATH Полный список переменных окружения и их значения пользователь может получить командой: $ env Для создания текстовых файлов можно также использовать команду cat с перенаправлением вывода в файл $ cat > file текст Ctrl-D Здесь нажатие клавиш Ctrl-D передает во входной поток символ конец файла (EOF) END OF TRANSMISSION. Можно также добавлять текст в конец файла $ cat >> file добавляемый текст Ctrl-D Для создания больших текстовых файлов, например, с исходниками на языке С используются мощные экранные редакторы текстов, такие как vi/vim, nano или emacs. Удаление файла осуществляется командой $ rm файл Кроме прочих, ключ -r или -R позволяет рекурсивно удалять поддерево каталогов. Для безопасного удаления файлов рекомендуется использовать ключ -i, генерирующий требование для подтверждения удаления. Перемещение и переименование файла осуществляется командой Дата и время $ mv старое новое Текущее системное время и дату можно определить командой $ date Для изменения времени и/или даты используется параметр в формате MMDDhhmmYY. Например, для задания 24 января 8:36 PM 2011 года, нужно ввести $ date Отметим также, что команда time, существующая в системах UNIX показывает время, использованное следующим процессом (реальное время, время выполнения в режиме пользователя, и время в режиме ядра), а не текущее системное время. Попробуйте Власов С.В ФКН ВГУ, Воронеж 8

9 $ time date вы должны получить, примерно, следующее на выходе real user sys 0m0.040s 0m0.000s 0m0.040s Кто еще в системе? ОС UNIX является многопользовательской системой, позволяющей одновременно выполнить логон процесс и работать в системе нескольким пользователям независимо друг от друга. Для определения кто сейчас в системе, используется команда $ who показывающая регистрационное имя пользователя, терминал и время инициации логон процесса. В многопользовательской системе один и тот же пользователь может использовать несколько разных терминалов одновременно (например, несколько параллельных SSH сеансов). Для определения - кто использует текущий терминал можно воспользоваться командой $ whoami Зарегистрированные пользователи Итак, для использования системы вам необходимо быть зарегистрированным пользователем. Регистрацию осуществляет администратор системы с правами суперпользователя, имеющего стандартное имя в системах UNIX/Linux - root. 5 Обычно, все регистрационные записи о пользователях хранятся в единственном файле /etc/passwd, который доступен для чтения всем $ cat /etc/passwd В ранних версия системы в этом же файле сохранялся и зашифрованный пароль (хеш) пользователя (второе поле после имени пользователя, разделенные двоеточием). Но в новейших системах принято сохранять хеши паролей в другом файле /etc/shadow не доступном для чтения никому, коме root. В поле пароля в файле /etc/passwd сохраняется лишь скрытая ссылка на запись в /etc/shadow поэтому, отображается только символ «*». Для изменения текущего пароля в UNIX системах используется команда $ passwd Changing password for имя. (current) UNIX password: текщий пароль пользователя new UNIX зфыыцщкв: новый пароль retype new UNIX password: новый пароль (еще раз точно также, как в предыдущей строке) passwd: password updated successfully При ошибке, или слишком простом пароле появляются сообщения, например, или passwd: Authentication token manipulation error BAD PASSWORD: it is too simple simplistic/systematic 5 Обычно, имя root не используется для входа в систему вместо этого администратор создает для себя обычную регистрационную запись, но использует команду su для выполнения операций, требующих привилегий суперпользователя. В Linux системах популярна группа привилегированных пользователей sudoers, которые получают право на выполнение операций с правами root через команду sudo Власов С.В ФКН ВГУ, Воронеж 9

10 При этом необходимо ввести другой пароль. Заметим, что процесс passwd выполняется в специальном режиме суперпользователя и игнорирует сигнал SIGINT, посылаемый нажатием клавиш Ctrl-C, и таким образом не может быть прерван. Простой способ коммуникации Пользователи, одновременно работающие в системе могут передавать друг другу короткие сообщения с помощью команды $ write имя Пользователь с указанным именем/терминалом сразу получит уведомление Message from ваше_имя on tty0 at 10:30.. и если вы продолжите печатать у себя на терминале (здесь на tty0), то сообщение будет немедленно появляться строка за строкой на терминале у пользователя с указанным в команде именем. Для завершения сообщения необходимо ввести Ctrl-D. Однако, если ваш оппонент не желает получать никаких сообщений, то он использует команду $ mesg n для отключения возможности посылки/приема write сообщений. Для включения такой возможности пользователь должен выполнить команду $ mesg y Если необходимо послать сообщение сразу всем пользователям в системе (у которых включен прием сообщений), можно использовать команду $ wall сообщение до 20 строк Ctrl-D Завершение сеанса $ logout Можно также использовать Ctrl-D или $ exit Команда logout может не завершить сеанс, а вывести одно из двух сообщений или There are stopped jobs not login shell: use "exit" Первое сообщение является предупреждением о том, что в вашем сеансе были запущенны и приостановлены (сигналом SIGSTOP или Ctrl-Z) задания. Вы имеете возможность продолжить выполнение заданий (командами jobs и fg) до их нормального завершения. Но если этого не делать, приостановленные задания будут завершены (по сигналу SIGTERM) при повторном выполнении команды logout или Ctrl-D. Второе сообщение означает, что вы порождали процессы-потомки из оболочки запущенной логон процессом, которые выполняют текущий shell сеанс, не связанный с логон процессом. Власов С.В ФКН ВГУ, Воронеж 10

11 Необходимо выполнить команду exit или Ctrl-D в текущей оболочке, чтобы вернуться в shell-процесс, порожденный при логон. Выводы ОС это сложная программная система, состоящая из подсистем управления различными ресурсами Целью курса является изучение основных особенностей функционирования подсистем ядра ОС UNIX/Linux через интерфейс системных вызовов. Власов С.В ФКН ВГУ, Воронеж 11


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «Камская государственная инженерно-экономическая академия» УПРАВЛЕНИЕ

6.31. Циклы. Сдвиг параметров. for переменная in значения do операторы done for var1 in value1 value2 value3 do echo $var1 done for File1 in $(ls *.sh); do echo $File1 >> All.txt done while условие do

Информационные технологии Лекция 3 1 Оболочка bash 2 Основные сведения Оболочка или shell работа в текстовом режиме (интерфейс командной строки) Графический интерфейс пользователя (GUI) работа в графическом

SHELL Определение: Shell [шэлл] интерпретатор команд операционной системы. Shell ы делятся на два типа, в зависимости от организации работы с пользователем: - интерпретатор командной строки; - графический

2 Навигация Первое, что мы попробуем изучить (после пробных нажатий на клавиши), навигацию в файловой системе Linux В этой главе введем в обиход следующие команды: pwd выводит название текущего рабочего

СибГУТИ Кафедра ВС Программирование на языке высокого уровня (ПЯВУ), семестр 1 2009 2010 учебный год Поляков А.Ю. Лабораторная работа 1. Среда программирования ОС Linux. Цель работы: Познакомиться с программным

Лекция 2. Подсистема управления процессами. Управление процессами в многозадачной системе заключается в выделении ресурсов ядра для каждого запущенного процесса, осуществлении переключения контекста процессов

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Н.Э. БАУМАНА Факультет «Информатика и системы управления» Кафедра «Автоматизированные системы обработки информации и управления» Сёмкин П.С., Сёмкин

Работа с ОС GNU/Linux в терминальных классах Кафедры ВС Цель работы: познакомиться с программным обеспечением ОС GNU/Linux написать простейшую программу на языке Си. Операционная система (ОС) GNU/Linux

Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Проблем Передачи Информации РАН Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера Практическое занятие Основы работы

Компоненты ОС Основные компоненты ОС 1. Управление процессами 2. Управление основной памятью 3. Управление файлами 4. Управление системой ввода-вывода 5. Управление внешней памятью 6. Поддержка сетей (networking)

Введение в командную строку Linux How to stop worrying and love the shell Алексей Сергушичев Практическая школа по биоинформатике МНЛ «Компьютерные технологии» 19.02.2014 Командная строка Командная строка

Операционная система Linux Лекция 6 Командная оболочка (shell, bash) является интерфейсом командной строки в Unix-подобных ОС, то есть выполняет команды, которые подает пользователь, или которые читаются

Лабораторная работа 4 ЗНАКОМСТВО С ПРОЦЕССАМИ Цель работы Познакомиться с понятием процесса. Научиться получать список имеющихся в системе процессов и управлять их состоянием. 1. Теоретические сведения

Шаблоны имён файлов, поиск файлов и другие возможности UNIX Регистрация в Linux Запустите программу putty.exe Введите ip-адрес Нажмите Open Имя пользователя studentx Пароль studentx 2 Создайте каталог

Оглавление Предисловие 6 Лекция 1. Сеанс работы в Linux 8 1.1 Пользователи системы........................ 8 1.2 Регистрация в системе........................ 13 1.3 Одновременный доступ к системе..................

Доступно для пользователя-непрофессионала излагаются основы необъятного мира системы UNIX. Пользователь постепенно учиться входить в систему, использовать различные команды, обращаться за помощью, находить

Работа с шаблонами типовых документов Руководство пользователя Cognitive Technologies Москва, 2015 2 АННОТАЦИЯ В настоящем документе приводятся сведения об использовании в программном комплексе «Е1 Евфрат»

Информатика Информационные технологии Лекция 1. Введение в ОС Linux Основные характеристики Linux Реальная многозадачность Многопользовательский доступ Свопирование оперативной памяти на диск Страничная

Другие языки: English русский iridium Server для Raspberry Pi Установка и настройка сервера в проекте i3 lite iridium Sever для Raspberry Pi - это программная реализация iridium Server, которая запускается

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Томский политехнический университет УТВЕРЖДАЮ: Декан АВТФ Гайворонский С.А. 2009 г. ПРОСТЕЙШИЕ СРЕДСТВА SHELL Методические указания к выполнению лабораторных работ

Занятие 3. Тема: Учётные записи в Linux. Вид занятия: лекция, практическое занятие. Учебные вопросы: 1. Понятие учетной записи и аутентификации. Файлы /etc/passwd и /etc/group, /etc/shadow и /etc/gshadow.

Аннотация программы дисциплины «Операционные системы» 1. Цели освоения дисциплины Целями освоения дисциплины «Операционные системы» являются: формирование у студентов базовых знаний, умений и навыков по

Лабораторная работа 2. Навигация по файловой структуре и её обслуживание средствами терминала ОС Xubuntu Практическая часть II. Навигация по файловой структуре и её обслуживание средствами терминала ОС

Page 1 of 7 Новости Техническое оснащение Linux кластер Статистика использования ресурсов Регистрация на Linux кластере Регистрация на SPP-2000 Файловая система AFS Вопросы безопасности в сети Библиотеки

Основные понятия и определения Операционная система (далее ОС) программный комплекс, который осуществляет управление функционированием компьютера и обеспечивает взаимодействие устройств, входящих в его

Глава 1 Выбор операционной системы Тот факт, что вы читаете эту книгу, говорит о том, что вы хотите изучить Linux. Перед тем как начать это путешествие, вы должны понять, что такое операционная система

Практическая работа 10 Работа с файлами в LINUX Цель работы: изучение особенностей работы с файлами в операционной системе Linux. План выполнения работы: 1. Ознакомиться с краткими теоретическими сведениями.

УТВЕРЖДЕН -ЛУ СИСТЕМА ЗАЩИТЫ ИНФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА Dallas Lock Linux Руководство оператора (пользователя) Листов 11 2016 г. 2 Аннотация Настоящее руководство оператора распространяются

Информационные технологии Лекция 2 Команды Linux 2 Команды Linux Команды консоли Linux - взаимодействие между пользователем и ОС Выполняются через командную строку путем ручного ввода За каждой командой

Программно-аппаратный комплекс доверенной загрузки «Блокхост-МДЗ» Руководство по инсталляции ПАК «Блокхост-МДЗ». Руководство по инсталляции. Стр. 2 Аннотация В документе приводится описание инсталляции

Многофункциональный аппаратно-программный комплекс для предоставления услуг связи «ИС РИНО» Базовое ПО Сервер управления СОДЕРЖАНИЕ 1 ВВЕДЕНИЕ... 3 2 СОСТАВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ... 3 3 УСТАНОВКА СЕРВЕРА...

Рутокен Логон. Руководство администратора 2018 Компания «Актив» В этом документе Данный документ содержит ответы на следующие вопросы: Для чего используется программный продукт Рутокен Логон? (см. стр.

Содержание занятия Терминология Средства удаленного доступа Вход в систему 1 User (юзер) пользователь, учетная запись (account). Объект для учета системных действий. Login (логин) 1. Имя пользователя/учетной

Задачи Часть 1. Запуск FTP из командной строки Часть 2. Загрузка FTP-файла с помощью клиента WS_FTP LE Часть 3. Запуск FTP в браузере Исходные данные/сценарий FTP (протокол передачи файлов) входит в набор

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

И настройка сетевой операционной системы FreeBSD FreeBSD FreeBSD - это современная операционная система для серверов, десктопов и встроенных компьютерных платформ. FreeBSD обеспечивает современные сетевые

ООО "Компания "АЛС и ТЕК" ПО семейства коммутаторов АЛС-24000, вер. 6.01 Руководство по инсталляции Листов 13 2017 2 1. ОБЩИЕ СВЕДЕНИЯ 3 1.1. Назначение и область применения 3 2. ТРЕБОВАНИЯ К КОМПЬЮТЕРУ

IV. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ОРГАНИЗАЦИИ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ ПРИ ИЗУЧЕНИИ ДИСЦИПЛИНЫ «ОПЕРАЦИОННЫЕ СИСТЕМЫ» п/п Наименование раздела дисциплины 1. Эволюция операционных систем. Назначение

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

4 Лабораторная работа 1. Установка и конфигурация операционной системы на виртуальную машину 1.1. Цель работы Целью данной работы является приобретение практических навыков установки операционной системы

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Национальный исследовательский Томский политехнический университет» УТВЕРЖДАЮ: Начальник учебного

Лабораторная работа 1. Навигация по файловой структуре и её обслуживание средствами интерпретатора командной строки ОС Windows Теоретическая часть. Каталог файл специального вида, содержащий имена подкаталогов

Операционная система Программное обеспечение Операционная система это самая главная программа Операционная система комплекс программ, обеспечивающих взаимодействие всех аппаратных и программных частей

Система лицензирования и защиты конфигураций платформы 1С:Предприятие 8, версия 3.0 Руководство администратора Поддерживаемые операционные системы... 1 Состав системы... 1 Сервер СЛК... 1 Внешняя компонента...

Введение Работа с операционной системой GNU/Linux В настоящее время основным интерфейсом взаимодействия пользователя и настольной операционной системой является графический интерфейс пользователя (Graphic

ПРАКТИЧЕСКАЯ РАБОТА 2 Командная строка OS Windows Цель работы: изучить интерфейс командной строки ОС Windows, приобрести навыки решения типовых задач администрирования операционной системы Windows с использованием

Лабораторная работа 2 Управление файлами в операционной системе Цели и задачи лабораторной работы получение навыков работы с операционной системой типа Linux; изучение базовых основ управления операционной

ДИСПЕТЧЕР ПОДКЛЮЧЕНИЙ ВИРТУАЛЬНЫХ РАБОЧИХ МЕСТ ТЕРМИДЕСК РУКОВОДСТВО АДМИНИСТРАТОРА (подготовка базового рабочего места) 23811505.6200.001.И5.01-2 Листов 17 МОСКВА 2018 1 СОДЕРЖАНИЕ 1 ВВЕДЕНИЕ...4 1.1

ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем Дисциплины "ЯЗЫКИ ПРОГРАММИРОВАНИЯ" "ПРОГРАММИРОВАНИЕ" Практическое занятие 55 ОС GNU/Linux Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич

Приложение РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Рабочая программа учебной дисциплины Операционные системы и среды разработана на основе Федерального государственного образовательного

2.1. Файлы. Требования к хранению информации: возможность хранения больших объемов данных информация должна сохраняться после прекращения работы процесса несколько процессов должны иметь одновременный

Языки программирования и методы трансляции Презентация к лабораторной работе 2 Операционная система Windows Содержание 2 Содержание 3 Понятие операционной системы Операционная система (ОС) базовое программное

Установка сервера IBM DB2 v11.1 под Linux Для установки IBM DB2 с использованием мастера установки требуется наличие установленного и работающего графического интерфейса, включая базовые пакеты X-Window,

1.1 История ОС Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа. Когда скорость выполнения программ и их количество стало увеличиваться, простои

Управление драйверами Рутокен при помощи групповых политик 2017 Компания «Актив» В этом документе В этом документе описывается, как использовать групповые политики для автоматического распространения комплекта

Тема: Цель: Практическая работа 23. Основы работы в Ubuntu. Познакомиться с интерфейсом ОС Ubuntu, научиться работать с файлами и каталогами, запускать программы, просматривать текстовые и графические

Средство защиты информации Secret Net Инструкция по локальному обновлению клиента Secret Net Данный документ содержит развернутое описание последовательности действий для локального обновления клиента

Об авторах 15 Введение 17 Структура книги 18 От издательства 20 Глава 1. Краткий обзор основ 21 Некоторые основные команды 21 Отображение даты и времени: команда date 21 Выявление пользователей, зарегистрированных

HV Manager Руководство пользователя 2017 AprelTech, llc. All rights reserved 1 ОГЛАВЛЕНИЕ Введение... 3 Установка и конфигурация... 4 Системные требования... 4 Установка... 5 Конфигурация... 6 Настройка

1 Лабораторная работа 3 «ПЕРЕНАПРАВЛЕНИЕ ПОТОКОВ ДАННЫХ» Потоки и файлы Логически все файлы в системе Linux организованы в непрерывный поток байтов. Любой файл можно свободно копировать и добавлять к другому

Прежде чем вы сможете освоить , вы должны свободно ориентироваться в основных понятиях системы Linux. Умение работать с Linux будет очень полезным навыком, потому что на серверах Linux работает большое количество веб-сайтов, электронной почты и других интернет-служб.

В данном разделе мы собираемся разъяснить основные понятия связанные с Linux. Выполняя поставленную перед нами задачу мы полагаем, что вы уже имеете представление о компьютерных системах в целом, включая такие компоненты как центральный процессор (ЦП), оперативная память (ОЗУ), материнская плата, жесткий диск, а также другие контроллеры и устройства, связанные с ними.

3.1

Термин «Linux» часто используется для обозначения всей операционной системы, но на самом деле Linux – это ядро операционной системы, которое запускается начальным загрузчиком, запускаемым BIOS / UEFI. Ядро берет на себя роль, похожую на роль дирижера в оркестре, оно обеспечивает согласованную работу аппаратных средств и программного обеспечения. Данная роль подразумевает под собой управление оборудованием, пользователями и файловыми системами. Ядро представляет собой общую базу для других программ, работающих в данной системе, и чаще всего запускает ring zero, также известное, как пространство ядра (kernel space).

Пользовательское пространство

Мы используем термин «пользовательское пространство», чтобы объединить все, что происходит за пределами ядра.

Среди программ, работающих в пространстве пользователя, много основных утилит из проекта GNU, большинство из которых предназначено для запуска из командной строки. Вы можете использовать их в сценариях для автоматизации различных задач. Дополнительную информацию о наиболее важных командах см. в разделе 3.4 « ».

Давайте быстро рассмотрим различные задачи, выполняемые ядром Linux.

3.1.1 Запуск оборудования

Назначением ядра, прежде всего, является управление и контроль над основными компонентами компьютера. Оно обнаруживает и настраивает их, когда компьютер включается, а также когда устройство монтируется или извлекается (например, USB устройство). Это также делает их доступными для более высокоуровневого программного обеспечения благодаря упрощенному программному интерфейсу, поэтому приложения могут использовать преимущества устройств, не обращаясь к деталям, например к слоту расширения, в который вставлена плата. Программный интерфейс также предоставляет определенный уровень абстракции; это позволяет использовать оборудование для проведения видеоконференций, например, использовать вебкамеру независимо от её модели и производителя. Программное обеспечение может использовать интерфейс Video for Linux (V4L) и ядро будет переводить вызовы интерфейса в реальные аппаратные команды, необходимые для работы конкретной веб-камеры.

Ядро экспортирует данные об обнаруженном оборудовании через виртуальные системы /proc/ и /sys/ . Приложения часто получают доступ к устройствам с помощью файлов, созданных в /dev/ . Особые файлы, представляющие диски (например, /dev/sda ), разделы (/dev/sdal ), мыши (/dev/input/mouse0 ), клавиатуры (/dev/input/event0 ), звуковые карты (/dev/snd/* ), последовательные порты (/dev/ttyS* ) и другие компоненты.

Существует два типа файлов устройств: блочные и символьные. Первые имеют характеристики блока данных: они имеют конечный размер, и вы можете получить доступ к байтам в любой позиции блока. Последние ведут себя как поток символов. Вы можете читать и писать символы, но вы не можете искать заданную позицию и изменять произвольные байты. Чтобы узнать тип файла устройства, проверьте первую букву вывода команды Is -1. Это может быть либо b, для блочных устройств, либо c, для символьных устройств:

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

3.1.2 Объединение файловых систем

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

Отправная точка этого иерархического дерева называется root, представленный символом “/”. Данная директория может содержать именованные суб-директории. Например, домашняя суб-директория «/» называется /home/ . Эта суб-директория, в свою очередь, может содержать другие суб-директории и т.д. Каждая директория также может содержать файлы, в которых будут храниться файлы. Таким образом, home/buxy/Desktop/hello.txt относится к файлу под названием hello.txt , который хранится в суб-директории Desktop, находящейся в buxy суб-директории домашнего каталога, который присутствует в root . Ядро компилирует между данной системой именования и местом хранения на диске.

В отличие от других систем, Linux обладает только одной такой иерархией и может интегрировать данные с нескольких дисков. Один из таких дисков становится root, а другие монтируются на директории в иерархии (эта команда в Linux называется mount). Эти другие диски затем становятся доступными под точками монтирования (mount points ) Это позволяет хранить пользовательские домашние директории (которые обычно хранятся на /home/ ) на отдельном жестком диске, который будет содержать директорию buxy (вместе с домашними директориями других пользователей). После того, как вы установили диск в /home/ , эти каталоги становятся доступными в их обычном месте, а различные пути, такие как /home/buxy/Desktop/hello.txt , продолжают работать.

Существует множество форматов файловой системы в соответствии с множеством способов физического хранения данных на дисках. Наиболее широко известны ext2, ext3 и ext4, но существуют и другие. Например, VFAT является файловой системой, которая исторически использовалась DOS и операционными системами Windows. Поддержка VFAT операционной системой Linux позволяет жестким дискам быть доступными как под Kali, так и под Windows. В любом случае, вы должны подготовить файловую систему на диске, прежде чем смонтировать ее, и эта операция называется форматированием .

Команды, такие как mkfs.ext3 (где mkfs расшифровывается как MaKe FileSystem) обрабатывает форматирование. В качестве параметра эти команды требуют файл устройства, представляющий раздел, который следует отформатировать (например,/dev/sdal , первый раздел на первом диске). Эта операция уничтожает все данные и должна запускаться только один раз, если конечно вы не хотите стереть файловую систему и начать новую работу.

Есть также сетевые файловые системы, такие как NFS , которые не хранят данные на локальном диске. Вместо этого данные передаются через сеть на сервер, который хранит их и выдает по первому требованию. Благодаря абстракции файловой системы вам не нужно беспокоиться о том, как этот диск подключен, так как файлы остаются доступными по своему обычному иерархическому пути.

3.1.3 Управление процессами

Процесс является исполняемым экземпляром программы, для которой требуется хранить память, как самой программы, так и ее рабочих данных. Ядро отвечает за создание и отслеживание процессов. Когда программа запускается, ядро ​​сначала выделяет некоторую память, загружает исполняемый код из файловой системы в эту память, а затем запускает код. Он содержит информацию об этом процессе, наиболее заметным из которых является идентификационный номер, известный как идентификатор процесса (process identifier (PID)).

Большинство современных операционных систем, а именно те, которые работают на основе Unix ядра, включая Linux, способны выполнять множество задач. Другими словами, они позволяют системе запускать множество процессов одновременно.

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

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

Мультипроцессорные Системы (и другие варианты)

Ограничения, описанные выше, о том, что одновременно может работать только один процесс, применимы не во всех ситуациях. Более верно будет сказать, что одно ядро может работать только с одним процессом. Многопроцессорные, многоядерные или гиперпотоковые системы позволяют нескольким процессам работать параллельно. Тем не менее, используется одна и та же система сокращения времени для обработки ситуаций, когда есть более активные процессы, чем доступные процессорные ядра. Это не является чем-то необычным: базовая система, даже полностью бездействующая, почти всегда имеет десятки запущенных процессов.

Ядро позволяет запускать несколько независимых экземпляров одной и той же программы, но каждому разрешается доступ только к собственным временным срезам и памяти. Таким образом, их данные остаются независимыми.

3.1.4 Управление правами

Unix системы поддерживают множество пользователей и групп и позволяют контролировать права доступа. В большинстве случаев, процесс определяется пользователем, который запускает его. Данный процесс может выполнять только те действия, которые разрешены его владельцу. Например, открытие файла требует от ядра проверить процесс на наличие необходимых прав (для получения большей информации конкретно по этому примеру, см. раздел 3.4.4, “Управление правами”)

3.2 Командная строка Linux

Под «командной строкой» мы подразумеваем текстовый интерфейс, который позволяет вводить команды, выполнять их и просматривать результаты. Вы можете запустить терминал (текстовый экран внутри графического рабочего стола или текстовую консоль вне любого графического интерфейса) и интерпретатор команд внутри него (оболочка ).

3.2.1

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


Рисунок 3.1 Запуск терминала GNOME

Например, в системе Kali Linux по умолчанию, GNOME терминал может быть запущен из списка избранных приложений. Также вы можете ввести «terminal» в окне Activities (окно, которое активируется, когда вы передвигаете мышь в левый верхний угол) и нажмите на необходимой вам иконке приложения, которые появятся (Рисунок 3.1, ““).

В случае каких-либо нарушений или некорректной работы вашего графического интерфейса вы все равно можете запустить командную строку на виртуальных консолях (до шести из них могут быть доступны через шесть комбинаций клавиш, начиная с CTRL + ALT + F1 и заканчивая CTRL + ALT + F6 – клавишу CTRL можно не нажимать, если вы уже находитесь в текстовом режиме вне графического интерфейса Xorg или Wayland ).

Вы получаете обычный экран входа, где вы вводите свой логин и пароль, перед тем как получить доступ к командной строке с её оболочкой:

Программа, обрабатывающая введенные вами данные и выполнение ваших команд, называется оболочкой (shell или интерпретатором командной строки). По умолчанию оболочкой, предоставляемой в Kali Linux, является Bash (это означает Bourne Again SHell ). Конечный символ «$» или «#» указывает, что оболочка ожидает вашего ввода. Эти символы также указывают на то, каким образом воспринимает вас Bash, как обычного пользователя (первый случай со значком долларом) или как суперпользователя (последний случай с хэшем).

3.2.2

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

Как только сеанс запущен, команда pwd (которая расшифровывается как print working directory (отобразить рабочий каталог) ) выведет на экран ваше текущее местоположение в файловой системе. Ваше текущее местоположение можно изменить с помощью команды cd название директории (где cd означает (сменить директорию)). В том случае, если вы не указали директорию, куда хотите перейти, вы автоматически вернетесь в вашу домашнюю директорию. Если вы введете cd -, то вы вернетесь в предыдущую рабочую директорию (в ту, в которой вы находились перед вводом последней команды cd). Родительский каталог всегда называется.. (две точки), в то время как текущий каталог обозначается. (одной точкой). Команда ls позволяет вам перечислить содержимое директории. Если вы не указываете дополнительных параметров команда ls, отобразит содержимое текущей директории.

Вы можете создать новую директорию с помощью команды mkdir название директории, а также удалить существующую (пустую) директорию с помощью команды rmdir название директории. Команда mv позволит вам перемещать и переименовывать файлы и директории; удалить файл можно с помощью rm название файла, а копирование файла выполняется с помощью cp исходный-файл целевой-файл.

Оболочка выполняет каждую команду, запуская первую программу с данным именем, которую она находит в каталоге, указанном в переменной среде PATH . Чаще всего эти программы находятся в /bin,/sbin, /usr/bin или /usr/sbin . Например, команда ls находится в /bin/ls; Иногда команда напрямую обрабатывается оболочкой, и в этом случае она называется встроенной командой оболочки (среди них – cd и pwd ); команда type позволяет запросить тип каждой команды.

Обратите внимание на использование команды echo, которая просто отображает строку в терминале. В данном случае, она используется для вывода на экран содержимого переменной среды, т.к. оболочка автоматически заменяет переменные с их значениями пере выполнением командной строки.

Переменные среды

Переменные среды позволяют хранить глобальные настройки для оболочки или других программ. Они являются контекстуальными, но наследуемыми. Например, каждый процесс имеет свой собственный набор переменных среды (они являются контекстуальными). Оболочки, такие как оболочки входа, могут объявлять переменные, которые будут переданы другим исполняемым программам (они наследуются).

Эти переменные могут быть определены как для системы в/etc/profile так и для пользователя в~/ .profile, но переменные, которые не являются характерными для интерпретаторов командной строки, лучше вставлять в /etc/environment, поскольку эти переменные будут введены во все пользовательские сессии благодаря подключаемому модулю аутентификации (Pluggable Authentication Module (PAM)) – даже если никакая оболочка не выполняется.

3.3 Файловая система Linux

3.3.1 Стандарт иерархии файловой системы

Как и другие дистрибутивы Linux, Kali Linux организован в соответствии со стандартом Filesystem Hierarchy Standard (FHS), что позволяет пользователям других дистрибутивов Linux с легкостью ориентироваться в Kali. FHS определяет назначение каждой директории. Директории верхнего уровня описываются следующим образом.

  • /bin/: основные программы
  • /boot/: Ядро Kali Linux и другие файлы, необходимые для его раннего процесса загрузки
  • /dev/: файлы устройства
  • /etc/: файлы конфигурации
  • /home/: личные файлы пользователей
  • /lib/: основные библиотеки
  • /media/*: точки монтирования для съемных устройств (CD-ROM, USB накопители и т.д.)
  • /mnt/: временные точки монтирования
  • /opt/: дополнительные приложения, предоставляемые третьими лицами
  • /root/: личные файлы администратора (файлы root)
  • /run/: непостоянные файлы рабочего процесса, которые не сохраняются после перезагрузки (еще не включённые в FHS)
  • /sbin/: системны программы
  • /srv/: данные, используемые серверами, расположенными в этой системе
  • /tmp/: временные файлы (эта директория часто опустошается после перезагрузки)
  • /usr/: приложения (эта директория в дальнейшем разделяется на bin, sbin, lib согласно такой же логике, что и в директории root). Кроме того, /usr/share/ содержат данные с независимой архитектурой. Каталог / usr / local / предназначен для использования администратором для установки приложений вручную без перезаписи файлов, обрабатываемых системой пакетирования.(dpkg).
  • /var/: переменные данные, обрабатываемые демоном. Это включает в себя файлы журналов, очереди, буферы и кеши.
  • /proc/ и /sys/ являются характерными для ядра Linux (и не являются частью FHS). Они используются ядром для экспортирования данных в пользовательское пространство.

3.3.2 Домашняя директория пользователя

Содержимое пользовательской директории не является стандартизированным, но, тем не менее, существует несколько заслуживающих внимания условностей. Одна из них заключается в том, что пользовательский домашний каталог часто обозначается тильдой (“~”). Это очень полезно знать, потому что интерпретаторы команд автоматически заменяют тильду верной директорией (которая находится в переменной среде HOME и чье обычное значение является /home/user/ ).

Традиционно файлы конфигурации приложения часто хранятся непосредственно в вашем домашнем каталоге, но их имена файлов обычно начинаются с точки (например, клиент электронной почты mutt хранит конфигурацию в ~/.muttrc ). Обратите внимание, что имена файлов, начинающиеся с точки, по умолчанию скрыты; команда ls перечислит их лишь, в том случае если указана опция –a , а графические файловые менеджеры должны быть явно настроены для отображения скрытых файлов.

Некоторые программы также используют несколько файлов конфигурации, организованных в одном каталоге (например, ~ / .ssh / ). Некоторые приложения (например, веб-браузер Firefox) также используют свой каталог для хранения кеша загруженных данных. Это означает, что эти каталоги могут в конечном итоге потреблять много дискового пространства.

Эти файлы конфигурации, которые хранятся прямо в вашей домашней директории, часто коллективно называющиеся dotfiles, долгое время расширяются до такой степени, что эти директории могут быть загромождены ими. К счастью, совместная работа под эгидой FreeDesktop.org привела к созданию спецификации базового каталога XDG (XDG Base Directory Specification) конвенции, целью которой является очистка этих файлов и каталогов. В этой спецификации указано, что файлы конфигурации должны храниться в ~/.config , файлы кэша в -/.cache , а файлы данных приложения в -/.local (или вих суб-директориях). Эта конвенция постепенно набирает обороты.

Графический рабочий стол чаще всего использует ярлыки для отображения содержимого каталога /Desktop/ (или любого другого слова, которое является точным переводом данного, в системах, которые не используют английский язык). Наконец, система электронной почты иногда хранит входящие письма в каталоге – /Mail/ .

Это интересно:

В 1965 году Bell Telephone Laboratories (подразделение AT&T) совместно с peneral jlectric qompang и Массачусетским технологическим институтом (rIT) начали разрабатывать новую операционную систему, названную rULTIqS (rULTipleoed Information and qomputing Service). Перед участниками проекта стояла цель создания многозадачной операционной системы разделения времени, способной обеспечить работу нескольких сотен пользователей. От Bell Labs в проекте приняли участие два участника s Кен Томпсон (ten Tompson) и Дmннис Ритчи (Dennis uitchie) . vотя система rULTIqS так и не была завершена (в 1969 году Bell Labs вышла из проекта), она стала предтечей операционной системы, впоследствии получившей название Unio.

Однако Томпсон, Ритчи ряд других сотрудников продолжили работу над создание удобной системы программирования. Использую идеи и разработки, появившиеся в результате работы над rULTIqS, они создали в 1969 году небольшую операционную систему, включавшую в себя файловую систему, подсистему управления процессами и небольшой набор утилит. Система была написана на ассемблере и применялась на компьютере nDn-7. Эта операционная система получила название UNIX, созвучное rULTIqS и придуманное другим членом группы разработчиков, Брайаном Керниганом (Brian ternigan).

Хотя ранняя версия UNIX много обещала, она не смогла бы реализовать весь свой потенциал без применения в каком-либо реальном проекте. И такой проект нашелся. Когда в 1971 году патентному отделу Bell Labs понадобилась система обработки текста, в качестве операционной системы была выбрана UNIX. К тому времени она была перенесена на более мощный nDn-11, да и сама немного подрослаw 16К занимала собственно система, 8К отводилось прикладным программам, максимальный размер файла был установлен в 64К при 512К дискового пространства.

Вскоре после создания первых ассемблерных версий Томсон начал работать над компилятором для языка FxuTuAN, а в результате разработал язык B. Это был интерпретатор со всеми свойственными интерпретатору ограничениями, и Ритчи переработал его в другой язык, названный q, позволявший генерировать машинный код. В 1973 году ядро операционной системы было переписано на языке высокого уровня С, s неслыханный до mтого шаг, оказавший громадное влияние на популярность UNIX. Это означало, что теперь система UNIX может быть перенесена на другие аппаратные платформы за считанные месяцы и внесение изменений не представляло особых трудностей. Число работающих UNIX-систем в Bell Labs превысило 25, и для сопровождения UNIX была сформирована группа UNIX Sgstem proup (USp).

Исследовательские версии(AT&T Bell Labs)

В соответствии с федеральным законодательством США, AT&T не имела права коммерческого распространения UNIX и использовала ее для собственных нужд, но, начиная с 1974 года, операционная система стала передаваться университетам для образовательных целей.

Операционная система модернизировалась, каждая новая версия снабжалась соответствующей редакцией Руководства Программиста, откуда и сами версии получили название редакций (jdition). Всего с 1971 по 1989 год было выпущено 10 редакций. Ниже перечислены наиболее важные редакции.

Редакция 1 (1971)

Первая версия UNIX, написанная на ассемблере для nDn-11. Включала в себя язык B и много известных комманд и утилит, в том числе cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who. В основном использовалась как инструментальное средство обработки текстов для патентного отдела Bell Labs.

Редакция 3 (1973)

В системе появилась команда сс, запускавшая компилятор языка С. Число установленных систем достигло 16.

Редакция 4 (1973)

Первая система, в которой ядро написано на языке высокого уровня С.

Редакция 6 (1975)

Первая версия UNIX, доступная за пределами Bell Labs. Система полностью переписана на языке С. С mтого времени начинается появление новых версий, разработанных не в Bell Labs и рост популярности UNIX. Эта версия системы была установлена в Калифорнийском университете в Беркли, и на ее основе вскоре была выпущена первая версия BSD (Berheleg Softkare Distributuion) UNIX.

Редакция 7 (1979)

Включала в себя командный интерпретатор Bourne Shell и компилятор С от Кернигана и Ритчи. yдро системы было переписано для переносимости на другие платформы. Лицензия на mту версию была куплена фирмой ricrosoft, которая разработала на ее базе операционную систему XjNIX.

Популярность UNIX росла, и к 1977 году число работающих систем превысило 500. В mтом же году система впервые была портирована на компьютер, отличный от nDn.

Генеалогия UNIX

Не существует некоторой eстандартнойf системы UNIX, все UNIX-подобные системы имеют характерные только для них особенности и возможности. Но за разными названиями и особенностями все же нетрудно заметить архитектуру, пользовательский интерфейс и среду программирования UNIX. Обzясняется mто достаточно просто s все mти операционные системы являются ближними или дальними родственниками. Ниже описаны наиболее яркие представители данного семейства.

System III (1982)

Не желая терять инициативу по развитию UNIX, AT&T в 1982 году обzединила несколько существующих версий ОС и создала версию под названием Sgstem III.

Данная версия была предназначена для распространения за пределами Bell Labs и AT&T, и положила начало мощной ветви UNIX, которая и сегодня жива и развивается.

System V (1983)

В 1983 году выпущена System V, а позже – еще несколько релизов (Release) к ней:

  • SVR2 (1984): InterProcess Communication (IPC) разделяемая память, семафоры
  • SVR3 (1987): Система I/O Streams, File System Switch, разделяемые библиотеки
  • SVR4 (1989): NFS, FFS, сокеты BSD. SVR4 объединила возможности несколькихизвестных версий UNIX – SunOS, BSD UNIX и предыдущих релизов System V.

Многие компоненты этой системы были поддержаны стандартами ANSI, POSIX, X/Open и SVID.

UNIX BSD (1978) (На основе 6-й редакции UNIX)

  • 1981 по заказу DAunA в BSD UNIX был встроен стек Tqn/In (в 4.2BSD)
  • 1983 активно использовала сетевые технологии и могла подключаться к сетиARPANET
  • 1986 выпущена версия 4.3BSD
  • 1993 выпущены 4.4BSD и BSD Lite (последние выпущенные версии).

OSF/1 (1988) (Open Software Foundation)

В 1988 году IBM, DEC, HP объединились с целью создания независимой от AT&T и SUN версии UNIX и создали организацию под названием OSF. Результатом деятельности этой организации стала операционная система OSF/1.

Стандарты

Чем больше появлялось различных вариантов UNIX, тем очевиднее становилась необходимость стандартизации системы. Наличие стандартов облегцает переносимость приложений и защищает как пользователей, так и производителей. В результате возникло несколько организаций, связанных со стандартизацией, и был разработан ряд стандартов, оказывающих влияние на развитие UNIX.

IEEE POSIX (Institute of Electrical and Electronics Engineers Portable Operating System Interface)

  • 1003.1 (1988) cтандартизация API (Application Programming Interface) OC
  • 1003.2 (1992) определение командного интерпретатора и утилит
  • 1003.1b (1993) API приложений реального времени
  • 1003.1c (1995) определений “нитей” (threads)

ANSI (American National Standards Institute)

  • Стандарт X3.159 (1989)
  • Синтаксис и семантика языка С
  • Содержимое стандартной библиотеки libc

X/Open

  • 1992 стандарт Xwindow
  • 1996 создание совместно с OSF прользовательского интерфейса CDE (Common Desktop Environment) и его сопряжение с графической оболочкой Motiff

SVID (System V Interface Definition)

Описывает внешние интерфейсы UNIX версий System V. В дополнение к SVID был выпущен SVVS (System V Verification Suite) – набор текстовых программ,позволяющий определить, соответствует ли система стандарту SVID и достойна ли она носить гордое имя System V.

Известные версии UNIX

  • IBM AIX на базе SVR2 со многими чертами SVR4, BSD, OSF/1
  • HP-UX версия фирмы HP
  • IRIX версия фирмы Silicon Graphics, похожа на SVR4
  • Digital UNIX версия фирмы DEC на основе OSF/1
  • SCO UNIX (1988) одна из первых UNIX систем для PC разработанная на основе SVR3.2
  • Solaris версия UNIX SVR4 компании Sun Microsystems