Московский государственный технический университет

имени Н.Э. Баумана

(национальный исследовательский университет)

Факультет «Информатика и системы управления»

Кафедра «Компьютерные системы и сети»


В.Ю. Мельников



Исследование процесса загрузки ОС Linux

Электронное учебное издание



Методические указания по выполнению лабораторных работ

по дисциплине "Операционные системы"





























2019

Введение

Цель работы - исследование процесса загрузки Linux на примере дистрибутива Debian. Освоение работы с интерпретатором командной строки «bash». А так же освоение подключения репозиториев и установки пакетов.


Продолжительность работы - 2 часа.

Задание

Согласно данному пособию:

  • Выполнить загрузку без ввода пароля и смену пароля суперпользователя

  • Научиться пользоваться «bash»

  • Научиться пользоваться «vi»

  • Добавить в список репозиториев официальный репозиторий Debian

  • Установить предложенные пакеты

  • Отобразить в w3m произвольную страницу.

Включить в отчёт основные действия и результаты этих действий - снимки экрана.

НЕ включать в отчёт:

  • Не надо приводить команды, выполняемые в процессе освоения «bash»

  • Процесс редактирования файла «sources.list» описывать не надо. Только, какие строки добавили, для чего и снимок экрана после редактирования.

Этапы загрузки компьютера

BIOS

Сначала из ПЗУ копируется в оперативную память BIOS — базовая система ввода вывода. BIOS проверяет исправность процессора, памяти и видеоадаптера. Не экран выводится информация об этом процессе.

Первичный загрузчик

Затем, с заданного в BIOS физического жёсткого диска из 0-сектора считывается Master Boot Record (MBR). В MBR хранится таблица разделов, на которые разбит жесткий диск и первичный загрузчик. Помните, при установке Debian установил первичный загрузчик GRUB в MBR.

Если бы не был установлен GRUB, а более простой первичный загрузчик, он нашёл бы в таблице разделов раздел, помеченный как активный, считал из него 0-сектор и передал управление на вторичный загрузчик.

GRUB устроен сложнее. Первичный загрузчик GRUB считывает несколько секторов, лежащих сразу за MBR — полуторный заргузчик.

Полуторный загрузчик GRUB уже умеет работать с файловой системой. Он читает вторичный загрузчик из определённого файла и передаёт управление ему.

GRUB при установке или настройке подготовил меню выбора операционных систем, установленных в разные разделы. При загрузке он выводит это меню и предлагает пользователю выбрать операционную систему, которую надо загрузить.

По умолчанию будет выбрана заданная в настройках ОС и через несколько секунд она будет автоматически загружена. Для ускорения процесса можно нажать «Enter»

Вторичный загрузчик

Загружает из каталога «/boot» файловой системы образ образа ядра и образ «initrd» (о нем позже). Затем передаёт управление ядру операционной системы.

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

Ядро Linux

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

При загрузке ядро монтирует «initrd» (Initial RAM Disk). Это диск в оперативной памяти, на котором расположена временная файловая система, используемая ядром Linux при начальной загрузке. На диске «initrd» расположен минимальный набор утилит и драйверы используемых файловых систем.

Далее ядро linux монтирует разделы реального диска, демонтирует «initrd» и запускает программу /sbin/init

Init (systemd)

init первая программа, запускаемая при загрузке операционной системы. Начиная с Debian 8, «init» представляет собой ссылку на программу «systemd», который является родителем всех процессов.

systemd запускает в несколько этапов службы и переходит в режим ожидания. Он снова активируется при завершении работы компьютера и останавливает службы.

Когда потеряли пароль суперпользователя

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

  • Перезагрузите компьютер

  • Когда появится меню GRUB нажмите клавишу «e»

  • клавишами «↓» «↑» опустите курсор вниз текста и продолжаем опускаться дальше. При этом прокручивается текст сценария загрузки. Ближе к концу текста, конце строки, начинающийся с "linux /boot/vmlinuz-...", поставьте пробел и допишите «init=/bin/bash». Строка длинная, чтобы переместить курсор в конец строки используйте клавишу «End». Теперь, вместо запуска служб linux будет запущен интерпретатор командной строки (bash).

  • Нажмите ctrl+x

Ну вот, мы вошли в linux без пароля. Можем давать команды!

  • Но надо сначала перемонтировать файловую систему с правами на запись.

mount -rw -o remount /

Теперь можно сменить пароль.

  • Дайте команду «passwd» и введите новый пароль (2 раза)

  • Осталось перезагрузиться. Для этого дайте из меню «Машина» виртуальной машины команду «Перезапустить».

Запуск программ, командная оболочка «bash»

Когда linux загрузился запускается программа «login» которая запрашивает имя пользователя и его пароль. Когда вы ввели правильный пароль, «login» запускает интерпретатор команд (или командную оболочку) «bash». Именно этот процесс обеспечивает ввод команды и её выполнение. Рассмотрим подробнее его возможности.

Нажмите клавишу «↑» на клавиатуре. Высвечивается предыдущая набранная команда. Повторные нажатия «↑» высвечивают предыдущие команды. Всегда можно повторить введённую ранее команду, при необходимости отредактировав её. Историю команд можно получить командой «history»

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

Команду не обязательно набирать полностью. Наберите «hi» и нажмите клавишу «Tab». Интерпретатор команд допишет за вас команду «history». А вот «h», для авто дополнения недостаточно, поскольку несколько команд начинается на эту букву. Нажмите клавишу «Tab» дважды. Высветится список команд, начинающихся на введённую строку:

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

А ещё, интерпретатор команд «bash» выполняет командные сценарии. Когда администратору надоедает выполнять ежедневно одни и те же команды, он создаёт файл, пишет в него сценарий, и впредь выполняет эти действия одной командой. Сценарий для выполнения несложной задачи написать проще, чем программу на языке «C» и не надо устанавливать пакеты компилятора и сборщика. Язык сценариев имеет все конструкции языка программирования (циклы, условия, переменные):

#!/bin/sh

s1='строка 1'

s2='строка 2'

if [["$s1" == "$s2"]]

then

echo 'условие выполняется'

else

echo 'условие не выполняется'

fi


i=0

until [[$i -eq 10]]

do

echo "$i"

i=$(($i+1))

done

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


Но вернёмся к выполнению команды. Мы ввели команду и нажали клавишу «ENTER». Интерпретатор команд разбирает введённый текст. Первое слово (до пробела) это имя программы. Может быть задан путь к программе (например, «/usr/bin/ps») или только имя программы, (например, «ps»).

Программа это файл, помеченный признаком «выполняемый». Если команда начинается с «/», значит задан полный путь к программе, начиная с корневого каталога. Интерпретатор команд запускает соответствующую программу.

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

Это был суперпользователь. А вот, пути для поиска программ пользователя «user»

Обратите внимание, на отсутствие путей «/sbin», «/usr/sbin» и«/usr/local/sbin». В этих каталогах лежат инструменты системного администратора, часть из них обычный пользователь не имеет прав запускать, но многие команды и обычный пользователь может использовать для получения информации, надо только указать полный путь к команде.

При необходимости, в эту переменную можно добавить нужные Вам пути. Например, команда «export PATH=$PATH:/home/user/my_programs» добавляет путь «/home/user/my_programs» к имеющимся на время работы данного интерпретатора команд. Если надо добавить этот путь постоянно, добавьте эту команду в конец файла «.bashrc». Мы ещё заглянем в этот файл в работе «Исследование методов защиты»

После имени программы, через пробел следуют параметры, которые уточняют, что должна сделать команда. Например, «cat /proc/meminfo» выводит на экран содержимое файла «/proc/meminfo».

Необязательные параметры называют опциями. В команде «free -h» опция «-h» говорит команде, что надо выводить объём памяти в килобайтах и мегабайтах. Без этого параметра команда «free» выводит объём памяти в байтах.

Параметров может быть несколько, и разделяются они пробелами. Если параметр (например, имя файла) содержит пробел, параметр следует заключить в апострофы или кавычки. Например, команда «mkdir 'Операционные системы'» создаст каталог «Операционные системы». Если апострофы не поставить, интерпретатор команд передаст программе 2 параметра и «mkdir» создаст 2 каталога «Операционные» и «системы».

Если имя файла содержит служебные символы, «& | > < ; $ ( )» следует использовать апострофы, в этом случае служебные символы рассматриваются, как обычные. И наоборот, если вам надо подставить в команду значение переменной окружения, следует использовать кавычки. Сравните:

Параметры у каждой программы свои. Можно получить краткую справку по большинству программ, указав параметр «--help». Например, команда «free --help» выдаёт справку по команде «free». Часто даже краткая справка не умещается на экране. Можно просмотреть её постранично, добавив «|more». Например, «cat —help|more». Для перелистывания страниц используется клавиша «пробел», для выхода клавишу «q»..

Более подробную информацию по параметрам команд можно найти в Интернете или используя команду «man КОММАНДА» (от слова «manual» - руководство). Например, «man cat». Для листания страниц используйте «PgUp», «PgDown», для выхода клавишу «q».

После возврата в «bash» хочется очистить экран от результатов предыдущей команды. Для этого нажмите «Ctrl»+«L».

Установка программ из репозиториев Debian

Репозитории

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

Кроме того имеется множество репозиториев от сторонних разработчиков. Они содержат множество полезных программ. Желательно пользоваться репозиториями, рекомендованными разработчиками вашего релиза Linux и остерегаться подмены репозиториев злоумышленниками.

Настроим наш Debian на работу с официальным репозиторием.

Для Linux характерно хранение настроек в текстовых файлах. В Debian перечень репозиториев хранится в файле «/etc/apt/sources.list»

Редактор vi

Заодно, освоим доисторический текстовый редактор «vi». Этот редактор имеет непривычный интерфейс (хотя есть фанаты этого интерфейса и современная версия этого редактора «vim»). Однако, хотелось бы, чтобы вы умели пользоваться этим редактором, потому что он включён абсолютно во все релизы Linux и в условиях недоступного интернета на сервере, рано или поздно вам придётся им воспользоваться. Кроме того, это единственный редактор, который не загружает весь файл в оперативную память и позволяет отредактировать очень большой файл.

Чтобы отредактировать файл «/etc/apt/sources.list» в редакторе «vi» надо дать команду:

vi /etc/apt/sources.list

Когда будете набирать имя файла, обязательно воспользуйтесь автодополнением. Наберите «vi /etc/apt/s» и нажмите «Tab». Если на указанную букву начинается только один файл, его имя автоматически допишется в командную строку. Если вы ошиблись при наборе пути, имя не дополнится, а если правильно, то меньше набирать символов.

Для выполнения команды нажмите клавишу «Enter».

Запускается редактор vi, который выводит текст заданного файла.

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

Когда разрабатывали «vi» на клавиатуре не было функциональных клавиш. Поэтому команды отдаются обычными символами. Редактор «vi» может находится в 3 режимах:

  • Командный

  • Ввода команд

  • Ввода текста

Нажмите клавишу «:». В левом нижнем углу экрана должен был появиться символ «:». Это значит вы перешли в режим ввода команд. Если «:» не появилось, то вы находились в режиме ввода текста. Значит надо нажать клавишу «ESC» и снова «:».

Продолжим ввод команды. Надо набрать «:q!» и нажать «Enter».

Мы вышли из редактора. Снова появилась подсказка интерпретатора команд

Снова запускаем редактор. Не спешите набирать заново команду.

Воспользуемся историей команд. Нажмите клавишу «». Появится предыдущая команда. Осталось нажать «Enter»

Посмотрим содержимое файла «/etc/apt/sources.list».

Строки, которые начинаются с символа «#» это комментарии.

Обратите внимание на строки, начинающиеся с «deb cdrom:» эти строки задают использование установочного CD в качестве репозитория. В данной версии они закомментированы. Но в более ранних версиях Debian их надо закромментировать. Установочный CD извлечён из привода и любая попытка установить программу будет выдавать предупреждение «репозиторий недоступен». В Debian 10 для тренировки допишем второй символ «#» в начало строки.

Клавишами «» «» «» «» подведите курсор в начало строки «deb cdrom:» и нажмите клавишу «i». Мы перешли в режим вставки текста. Теперь можно вводить текст. В нашем случае «#». Если начнёте вводить текст, не перейдя в режим вставки — испортите текст. Большинство символов соответствуют командам (включая, удалить слово, удалить строку...). Когда закончите вводить текст, нажмите клавишу «Esc» (или клавишу перемещения курсора).

Сохраняем текст. Для этого наберите «:w» и нажмите «Enter». Внизу появилось:

Файл записан.

Теперь надо добавить официальный репозиторий Debian

Для этого надо добавить строку

Для Debian 10:

deb http://deb.debian.org/debian/ buster main

Для Debian 9:

deb http://ftp.debian.org/debian/ stretch main

Для Debian 8:

deb http://ftp.debian.org/debian/ jessie main

Каждая версия имеет собственное имя

Не спешите вводить новую строку в тексте есть закомментированная похожая строка:

# deb http://deb.debian.org/debian/ buster-updates main

Подведите курсор и удалите (клавишей «Delete») «#» и «-updates»

Сохраняем и выходим «:wq»


В репозиториях устанавливаемые программы хранятся в составе пакетов.

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

apt-get update

Если этого не сделать, Debian скажет, что пакет отсутствует и не установит его.

Просмотрите вывод команды «apt-get update» и убедитесь что отсутствуют сообщения об ошибках. Возможны 2 варианта — не доступна сеть или вы ошиблись при редактировании файла. В случае ошибки дайте команду «ping -с 1 deb.debian.org» и убедитесь, что сервер доступен по сети. Часто просто сетевой кабель не подключён.

Установка пакетов

Установим несколько пакетов, содержащие команды, не входящие ныне в стандартные утилиты, но которые нам понадобятся.

apt-get install psmisc net-tools w3m

Кроме запрошенных пакетов будут установлены ещё несколько пакетов, содержащих нужные им библиотеки. Команда спрашивает разрешение на установку.

Удобнее вводить не «Д» а «y».

Поиск пакета в котором есть программа

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

apt-cache search КОМАНДА

Если в при выполнении этих лабораторных работ выдаётся сообщение «команда не найдена» (и команду вы указали правильно) найдите пакет и установите его.

Обновление установленных пакетов

Жизнь течёт. Хакеры пишут новые вредоносные программы, использующие уязвимости операционной системы и установленных программ, разработчики исправляют старые ошибки и делают новые. Поэтому, время от времени желательно обновлять Вашу ОС и установленные программы. Для этого надо дать команды:

apt-get update

apt-get upgrade

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

Другие команды установки пакетов

Есть 2 случая, когда мы не можем воспользоваться командой apt-get для установки пакетов.

  • Не всегда на сервере доступен интернет, необходимый для установки пакетов из сетевых репозиториев. В этом случае, можно скачать необходимые пакеты и принести их на сервер на флешке. Для скачивания пакета используйте команду «apt-get download ПАКЕТ»

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


Лучше всего, если вы скачали пакет с расширением «.deb».

Для его установки надо дать команду:

dpkg -i ФАЙЛ.deb

В «.deb» пакете содержится не только программа, но и список зависимостей, в котором указано, какие пакеты и каких версий необходимы для работы устанавливаемого пакета. Если какого то пакета из списка зависимостей нет в системе, команда сообщит каких пакетов не хватает завершится с ошибкой. Придётся скачать недостающие пакеты и установить их. При этом выяснится, что эти пакеты, в свою очередь имеют свои зависимости. Поэтому, прежде чем нести файлы на сервер, просмотрите список зависимостей командой «dpkg --info ФАЙЛ.deb» и скачайте эти пакеты.

Скачайте пакет «psmisc» и определите его зависимости.

Если Вы скачали файл с расширением «.rpm»

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

Текстовый браузер w3m

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

Введите команду:

w3m bmstu.ru

Текстовый браузер выводит заданную страницу (ну как может)

Перемещайте курсов клавишами «↑» «↓» «←» «→» «PgUp» «PgDown». Ссылки и поля для ввода текста активизируются при попадании в них курсора и нажатия клавиши «ENTER»

Вот некоторые управляющие клавиши:

Shift-U – открывает строку ввода URL

Shift-B – переход на предыдущую страницу

Shift-T – открыть новую вкладку

Shift-[ – предыдущая вкладка

Shift-] – следующая вкладка

Shift-H – страница помощи

Ну и самое главное, как и во многих других программах - «q» – выход

Контрольные вопросы

Откуда загружается BIOS?
Откуда у нас загружается первичный загрузчик?
Что хранится в initrd?
Что такое bash?
Для чего нужен bash?
Как повторить предыдущую команду?
Как выполнить автодополнение команды?
Как выполнить автодополнение имени файла?
Что означает «/» в начале имени файла
Где bash ищет итсполняемый файл, соответствующий команде?
Как задать в команде файл с именем, содержащим пробелы?
Как задать в команде файл с именем, содержащим «$»?
Как называется хранилище, из которого мы устанавливали программы?
Где в Debian хранится перечень репозиториев?
Как называется единица хранения в репозитории (что мы устанавливали командой apt-get)?
Как помечаются комментарии в конфигурационных файлах linux
Зачем мы давали команду «apt-get update»?
Зачем используется команда «apt-get upgrade»?
Какой командой можно найти пакет, в котором лежит нужная программа?
Какой командой мы устанавливали пакеты?

Приложения

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

В описании команд в квадратных скобках указываются опции (необязательные параметры.)

Текстовый редактор «vi / vim»

В настоящее время существуют 2 версии этого редактора vi и vim (vi Improved). По умолчанию устанавливается усечённая версия vim, которая и запускается по команде vi. Если Вам нужна полная функциональность, установите пакет «vim» командой «apt-get install vim»

Чтобы открыть файл на редактирование надо дать команду:

vi [опции] файл[ файл2...]

Если вместо имени файла указать «-» текст для редактирования будет считан из stdin.

Может быть задано несколько файлов, для переключения при редактированиии используются команды «:next» и «:prev»

Опции:

«+номер» - переместить курсор на заданную строку текста файла.

«+/шаблон» - выполнить поиск в тексте файла по шаблону и переместить курсор на найденное место

«-c команда» - выполнить команду после загрузки первого файла

«-b» - двоичный режим, для редактирования исполняемых и других не текстовых файлов.

«-d» - режим поиска различий в файлах (нужно указать несколько файлов).

«-R» - режим только для чтения. Править можно, нодля записи надо использовать команду «:w!».

«-m» - изменение файла запрещено

«-w файл» - сохранить все действия в файл.

«-s файл» - выполнить действия, сохранённые в файле.

«-x» - шифровать файл при записи. Будет выдано приглашение ввести пароль.

«-C» - режим совместимости с Vi.

Работа в основном (командном) режиме:

При запуске редактора он переходит в командный режим. В этот же режим редактор переходит при нажатии клавиш «Esc», « ← ↑ ↓ → », «PgUp», «PgDn» в командном режиме следующие клавиши выполняют следующие действия;

Клавиша

или

Действие



Перемещение по файлу

h

на один символ влево

l

на один символ вправо

j

на одну строку вниз;

k

а одну строку вверх

w


на слово вправо

b


на слово влево

Home

^

в начало текущей строки

End

$

в конец текущей строки

Ctrl-b

PgUp

на экран вверх

Ctrl-f

PgDown

на экран вниз

H


вверх экрана

gg


в начало файла

G


в конец файла

номер<CR>


перейти на строку «номер»

/текст<CR>


найти заданный текст и перейти туда

n


повторить поиск

N


повторить поиск назад



Переход в режим редактирования

i


перейти в режим ввода с текущей позиции

a


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

I


переместиться в начало строки и перейти в режим ввода

A


переместиться в конец строки и перейти в режим ввода

o


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

O


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

S


удаляет всю текущую строку и переходит в режим ввода

2S


удалит 2 строки включая текущую (вместо 2 можно набрать любое число строк)

R


перейти в режим замещения



Удаление и вставка

x

Delete

удалить символ под курсором

X

Backspace

удалить символ слева от курсора

dЧИСЛОd


удалить заданное ЧИСЛО строк

dw


удаляет символы с текущего до конца слова. включая пробел после слова

dE


удаляет символы с текущего до конца слова, включая символы пунктуации, но оставляет пробел после слова,

div


удаляет слово под курсором

dd


удалить текущую строку

d0


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

d$

D

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

yy

Y

скопировать текущую строку в буфер

yЧИСЛОy


скопировать заданное ЧИСЛО строк в буфер

v


включить режим выделения текста

y


скопировать выделенный текст в буфер

p


вставить содержимое буфера и переместить курсор в конец вставленного текста.

u


отмена последней команды

Работа в режиме командной строки:

Команда

Описание

:w

сохранить файл

:q

выход

:q!

выход без сохранения

:e файл

прочитать содержимое файла в позицию курсора

:r!

выполнить команду оболочки и вставить ответ в редактор

set tabstop=4

установить шаг позиций табуляции


apt-get

apt-get [опции] КОМАНДА пакет [пакет2 ...]

Утилита «apt-get» обеспечивает управление пакетами через интерфейс командной строки.

Команды:

«update» - используется для загрузки перечней доступных пакетов из источников, перечисленных в «/etc/apt/sources.list». Эту команду всегда следует выполнять перед «upgrade» и «dist-upgrade».

«upgrade» - используется для установки новейших версий всех пакетов, установленных в настоящее время в системе, из источников, перечисленных в «/etc/apt/sources.list». Если для установленного пакета доступна более новавя версия, то она загружается, извлекается и обновляются. Установленные в настоящее время пакеты не удаляются. Если нельзя установить новую версию пакета без изменения состояния другого пакета, оставляется текущая версия. Сначала необходимо выполнить «apt-get update», чтобы apt-get знал, что доступны новые версии пакетов.

«dist-upgrade» в дополнение к выполнению функции «upgrade», также интеллектуально обрабатывает изменения зависимостей с новыми версиями пакетов; У apt-get есть «умная» система разрешения конфликтов, и она попытается обновить более важные пакеты за счет менее важных. Поэтому команда dist-upgrade может удалить некоторые пакеты.

«install» устанавливает (или обновляет) один или несколько пакетов. В команде следует указывать имя пакета, а не полное имя файла (например, apt-utils, а не apt-utils_1.8.2_amd64.deb). Все пакеты, требуемые пакетами, указанными для установки, также будут установлены. Если к имени пакета добавить префикс «-» (без пробела), этот пакет будет удален, если он установлен. А если к имени пакета добавить префикс «+» то этот пакет будет установлен. Это можно использовать для отмены решений, принятых системой разрешения конфликтов apt-get.

Конкретную версию пакета можно выбрать для установки, указав после имени пакета ыбранную версию пакета. В качестве альтернативы можно выбрать конкретный дистрибутив, добавив после имени пакета через «/» версию дистрибутива stable, testing, unstable). Оба механизма выбора версий могут понижать версию пакетов и должны использоваться с осторожностью.

«reinstall» - переустанавливает уже установленные пакеты. При этом устанавливается новейшая версия.

«remove» - удаляет заданные пакеты. Обратите внимание, что удаление пакета оставляет его конфигурационные файлы в системе. Если к имени пакета добавлен знак плюс (без пробела), указанный пакет будет установлен, а не удален.

«purge» - так же удаляет пакеты. В отличии от «remove» удаляет так же конфигурационные файлы.

«source» - используется для получения пакетов с исходным кодом. APT проверит доступные пакеты, чтобы решить, какой исходный пакет выбрать. Затем он найдет и загрузит в текущий каталог самую новую доступную версию этого пакета исходного кода.

Пакеты исходных колов отслеживаются отдельно от двоичных пакетов. Вам нужно будет добавить строку deb-src в файле sources.list для каждого репозитория, из которого вы хотите получить исходные коды.

Если указан параметр --compile, то пакет будет скомпилирован в двоичный файл .deb. Если указан параметр --download-only, исходный пакет не будет распакован.

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

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

«check» - обновляет кэш пакета и проверяет наличие нарушенных зависимостей.

«download» - загружает заданный двоичный пакет в текущий каталог.

«clean» - очищает локальный репозиторий загруженных файлов пакетов. Он удаляет все, кроме файла блокировки, из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/.

«autoclean» - Так же как и «clean» очищает локальный репозиторий загруженных файлов пакетов. Разница в том, что он удаляет только те файлы пакетов, которые больше не могут быть загружены и в основном бесполезны.

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

Опции:

-y, --yes, --assume-yes — Автоматически отвечает «yes» на все вопросы.

-a, --host-architecture — Задаёт архитектуру с которой пакеты будут собраны командой «apt-get source –compile»

-b, --compile, --build — Компилирует пакет исходников после его загрузки.

-h, --help — Выводит краткую справки по данной команде.

Литература

Вывод команды «man»

https://ru.wikipedia.org/

https://wiki.debian.org/

Терминал Linux. Горячие сочетания клавиш для Bash (https://linuxrussia.com/keyboard-shortcuts-for-bash.html)

Основные команды текстового редактора VI / VIM (https://neoserver.ru/help/osnovnie-komandi-redaktora-vi-vim)