Основы работы в командной строке Linux

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

1. Введение в терминал и навигация по файловой системе

Введение в терминал и навигация по файловой системе

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

Многие новички боятся командной строки. Черный экран, мигающий курсор и непонятные символы часто вызывают ассоциации с фильмами про хакеров из 90-х. Однако, как только вы поймете логику работы терминала, он станет для вас самым мощным и быстрым инструментом. В этой статье мы разберем, что такое терминал, как устроена файловая система Linux и как по ней перемещаться.

Что такое терминал и зачем он нужен?

В современном мире мы привыкли к графическому интерфейсу пользователя (GUI — Graphical User Interface). Это окна, кнопки, иконки и курсор мыши. Это удобно и интуитивно понятно. Но под красивой оболочкой скрывается CLI (Command Line Interface) — интерфейс командной строки.

Терминал (или консоль) — это программа, которая принимает текстовые команды от пользователя и передает их операционной системе для выполнения.

Оболочка (Shell) — это интерпретатор, который «понимает» ваши команды. Самая популярная оболочка в Linux называется Bash (Bourne Again Shell), хотя существуют и другие (zsh, fish).

!Схема взаимодействия пользователя с железом через командную строку

Почему стоит использовать терминал?

  • Скорость. Набрать команду часто быстрее, чем искать нужную настройку в десяти вложенных меню.
  • Автоматизация. Любую последовательность команд можно записать в файл (скрипт) и выполнять автоматически.
  • Удаленное управление. Серверы в интернете обычно не имеют графического интерфейса. Управление ими происходит исключительно через консоль.
  • Ресурсы. Командная строка потребляет ничтожно мало оперативной памяти по сравнению с графическими оболочками.
  • Первый запуск и приглашение командной строки

    Когда вы открываете терминал, первое, что вы видите — это приглашение к вводу (prompt). Обычно оно выглядит примерно так:

    bash pwd bash /home/user bash ls text Desktop Documents Downloads Music Pictures Public Templates Videos bash ls -l bash cd Documents ``

    Теперь ваше приглашение командной строки изменится, показывая, что вы внутри ~/Documents.

    Абсолютные и относительные пути

    Это концепция, которую критически важно понять.

  • Абсолютный путь — это полный адрес файла или папки, начиная от самого корня /. Он всегда начинается со слэша. Это как почтовый адрес с указанием страны, города и улицы. Он работает одинаково, где бы вы ни находились.
  • * Пример: cd /home/user/Downloads

  • Относительный путь — это путь относительно того места, где вы находитесь сейчас. Он не начинается со слэша. Это как сказать «иди в соседнюю комнату».
  • * Пример: Если вы уже в
    /home/user, то чтобы попасть в Downloads, достаточно написать cd Downloads.

    Специальные символы навигации

    В Linux есть специальные обозначения для быстрого перемещения:

    * .. (две точки) — Родительская директория (на уровень выше). Если вы в /home/user/Documents и введете cd .., вы попадете в /home/user. * . (одна точка) — Текущая директория. Используется реже, обычно для запуска скриптов в текущей папке. * ~ (тильда) — Домашняя директория. Где бы вы ни были, команда cd ~ (или просто cd без аргументов) мгновенно вернет вас домой. * - (дефис) — Предыдущая директория. Возвращает вас туда, где вы были до последней команды cd. Это как кнопка «Назад» на пульте телевизора.

    Полезные приемы

    Автодополнение (Tab)

    Вам не нужно печатать длинные названия папок полностью. Это долго и чревато опечатками. Linux умный.

    Начните вводить название, например cd Do, и нажмите клавишу Tab. Если папка с таким началом имени одна (например, Documents), терминал сам допишет слово и поставит слэш в конце. Если вариантов несколько (например, Downloads и Documents), нажмите Tab дважды — терминал покажет все возможные варианты.

    Чувствительность к регистру

    Запомните: Linux чувствителен к регистру (Case Sensitive).

    Папки File.txt, file.txt и FILE.TXT — это три разных файла. Если вы напишете cd documents вместо cd Documents, вы получите ошибку «No such file or directory».

    Заключение

    Сегодня мы сделали первый шаг в освоении командной строки. Мы узнали, что терминал — это не магия, а структурированный способ общения с системой. Мы разобрали структуру файловой системы, научились определять свое местоположение с помощью pwd, осматриваться с помощью ls и перемещаться с помощью cd`.

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

    2. Создание, копирование, перемещение и удаление файлов и директорий

    Создание, копирование, перемещение и удаление файлов и директорий

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

    В этой статье мы разберем «большую четверку» операций: создание, копирование, перемещение и удаление. Это фундаментальные навыки, без которых работа в терминале невозможна. Мы также затронем тему безопасности, потому что в командной строке (спойлер!) нет корзины, из которой можно легко восстановить удаленные файлы.

    Создание директорий: команда mkdir

    Начнем с наведения порядка. Чтобы создать новую папку (в Linux их называют директориями), используется команда mkdir. Это сокращение от Make Directory.

    Базовое использование

    Допустим, вы находитесь в своей домашней папке и хотите создать папку для проектов. Введите:

    Если вы теперь введете ls, вы увидите новую папку Projects в списке. Вы можете создать сразу несколько папок одной командой, перечислив их через пробел:

    Создание вложенных структур

    Представьте, что вам нужно создать структуру папок 2023/October/Reports. Если папки 2023 еще не существует, обычная команда mkdir 2023/October/Reports выдаст ошибку: «No such file or directory». Система не может создать Reports, потому что ей некуда ее положить.

    Для этого существует полезнейший ключ -p (parents). Он говорит команде: «Создай все недостающие родительские директории по пути».

    Теперь Linux молча создаст папку 2023, внутри нее October, а внутри нее — Reports.

    !Схема работы команды mkdir с ключом -p, создающей сразу цепочку папок.

    Создание файлов: команда touch

    Для создания файлов существует множество способов. Часто файлы создаются текстовыми редакторами (например, nano или vim), о которых мы поговорим в будущих уроках. Но иногда нам нужно просто создать пустой файл-заглушку или быстро проверить права доступа.

    Для этого используется команда touch.

    Эта команда создаст пустой файл с именем notes.txt.

    > Интересный факт: Изначальное назначение команды touch — не создание файлов, а обновление времени последнего доступа к файлу (как бы «потрогать» файл). Но если файла не существует, команда по умолчанию создает его. Это стало стандартом де-факто для создания пустых файлов.

    Копирование: команда cp

    Копирование файлов — одна из самых частых задач. Для этого используется команда cp (Copy).

    Синтаксис команды прост: cp [что_копируем] [куда_копируем].

    Копирование файлов

    Чтобы сделать копию файла notes.txt и назвать ее notes_backup.txt, выполните:

    Если вы хотите скопировать файл в другую папку, укажите путь к ней:

    В этом случае файл notes.txt появится внутри папки Projects с тем же именем. Если вы хотите скопировать и сразу переименовать:

    Копирование директорий

    Здесь новички часто совершают ошибку. Если вы попытаетесь скопировать папку командой cp folder1 folder2, терминал выдаст ошибку: «-r not specified; omitting directory».

    Дело в том, что папка — это не просто один объект, это контейнер, в котором могут быть сотни других файлов и папок. Чтобы скопировать папку со всем ее содержимым, нужно использовать ключ -r (recursive — рекурсивно).

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

    [VISUALIZATION: Схематичное изображение процесса копирования папки. Слева папка с документами, стрелка с надписью

    3. Работа с содержимым файлов: просмотр, поиск и потоки ввода-вывода

    Работа с содержимым файлов: просмотр, поиск и потоки ввода-вывода

    В предыдущих модулях мы научились управлять файлами как объектами: мы создавали их, копировали, перемещали и удаляли. Мы строили структуру директорий и наводили порядок в системе. Но файл — это не просто «кирпич» с названием. Внутри него хранится информация: код, настройки, логи или просто текст.

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

    Просмотр содержимого: от кота до пейджера

    Самая простая задача — посмотреть, что написано в текстовом файле. В графическом интерфейсе вы бы открыли «Блокнот». В терминале у нас есть целый арсенал инструментов.

    Команда cat

    Самая известная команда для чтения файлов — cat. Название происходит от слова concatenate (сцеплять), так как изначально она предназначалась для склеивания нескольких файлов в один. Но чаще всего её используют просто для вывода текста на экран.

    Когда вы вводите эту команду, терминал читает файл от начала до конца и «выплескивает» всё содержимое на экран. Это отлично работает для коротких заметок или конфигурационных файлов на 5-10 строк.

    Но что, если файл огромный? Если вы попытаетесь открыть лог-файл на 10 000 строк с помощью cat, текст промелькнет перед глазами за долю секунды, и вы увидите только самый конец файла. Прокручивать терминал вверх — неудобно и долго.

    Команда less

    Для чтения длинных текстов используется пейджер (pager) — программа для постраничного просмотра. Самый популярный пейджер в Linux — less.

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

    Управление в less:

    * Стрелки вверх/вниз или j/k: прокрутка по одной строке. * Пробел (Space): прокрутка на один экран вперед. * b (Back): прокрутка на один экран назад. * / (слэш): поиск текста. Нажмите /, введите слово и нажмите Enter. Клавиша n (next) перенесет к следующему совпадению. * q (Quit): выход из режима просмотра.

    > Существует старая шутка: «less is more». Дело в том, что до less была популярна программа more, которая умела листать только вперед. less умеет листать и назад, поэтому она «больше», чем more.

    !Схематичное различие между полным выводом cat и постраничным просмотром less

    Голова и хвост: head и tail

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

    head — показывает первые 10 строк файла.

    Если нужно другое количество строк, используйте ключ -n:

    tail — показывает последние 10 строк файла.

    У команды tail есть уникальная функция, которую обожают системные администраторы — ключ -f (follow — следовать).

    В этом режиме программа не завершается после вывода последних строк. Она «висит» и ждет. Как только какая-то другая программа допишет новую строку в конец файла server.log, tail мгновенно выведет её на экран. Это идеальный способ наблюдать за работой сервера в реальном времени.

    Поиск внутри файлов: grep

    Представьте, что у вас есть папка с сотней текстовых отчетов, и вам нужно найти тот, в котором упоминается «Project X». Открывать каждый файл вручную — безумие. На помощь приходит grep.

    Название расшифровывается как Global Regular Expression Print. Это мощнейший инструмент фильтрации текста.

    Базовый синтаксис: grep "что_ищем" где_ищем

    Эта команда выведет на экран только те строки из файла application.log, в которых встречается слово «error».

    Полезные ключи grep

  • -i (ignore case): Игнорировать регистр. Найдет и «Error», и «ERROR», и «error».
  • -r (recursive): Искать во всех файлах внутри указанной папки и её подпапках.
  • -n (line number): Выводить номера строк, где найдено совпадение. Очень удобно для программистов.
  • Потоки ввода-вывода и перенаправление

    Теперь мы подходим к самой сути философии Unix/Linux. В Linux всё есть файл, и взаимодействие программ тоже происходит через потоки данных, похожие на файлы.

    У каждой запущенной программы есть три стандартных потока:

  • STDIN (Standard Input, дескриптор 0) — Стандартный ввод. Обычно это ваша клавиатура.
  • STDOUT (Standard Output, дескриптор 1) — Стандартный вывод. Обычно это ваш экран (терминал).
  • STDERR (Standard Error, дескриптор 2) — Стандартный вывод ошибок. Тоже летит на экран, но технически это отдельный канал.
  • !Визуализация потоков ввода, вывода и ошибок

    Мы можем перенаправлять эти потоки, меняя источники и приемники данных. Для этого используются операторы перенаправления (redirection).

    Перенаправление вывода: > и >>

    Допустим, вы хотите сохранить результат работы команды ls в текстовый файл, а не просто вывести на экран.

    Используйте символ >:

    Терминал останется пустым, но в текущей папке появится файл file_list.txt, внутри которого будет список файлов.

    ВАЖНО: Оператор > перезаписывает файл. Если file_list.txt уже существовал и содержал важные данные, они будут безвозвратно удалены и заменены новым выводом.

    Чтобы добавить данные в конец файла, не стирая старые, используйте двойной символ >>:

    Конвейер (Pipe): |

    Символ вертикальной черты | (пайп) — это главный «клей» командной строки. Он берет STDOUT (вывод) одной команды и передает его прямо в STDIN (ввод) другой команды.

    Это позволяет строить цепочки действий.

    Пример 1: У нас есть папка с тысячей файлов. ls выводит огромный список. Давайте передадим его в less, чтобы удобно листать.

    Пример 2: Давайте узнаем, запущен ли процесс python в системе. Команда ps aux выводит список всех процессов. Мы отфильтруем этот список через grep.

    Как это работает:

  • ps aux генерирует список процессов.
  • Этот текст не летит на экран, а летит в «трубу» |.
  • grep принимает текст из трубы и ищет в нем слово «python».
  • Результат выводится на экран.
  • Пример 3: Сколько файлов в папке? Мы можем использовать команду wc -l (word count lines), которая считает строки.

    ls выдает список (один файл на строку), а wc -l считает количество этих строк. Мы получили точное число файлов, не считая их пальцем.

    Заключение

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

    * Быстро читать файлы (cat, head, tail). * Комфортно изучать большие документы (less). * Находить иголку в стоге сена (grep). * Сохранять результаты работы команд в файлы (>, >>). * Строить конвейеры из команд (|).

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

    4. Управление пользователями и правами доступа к файлам

    Управление пользователями и правами доступа к файлам

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

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

    Многопользовательская природа Linux

    В отличие от персональных версий Windows, где часто есть один пользователь-администратор, Linux изначально проектировался как система для совместной работы. Даже если вы единственный человек, использующий свой ноутбук, в вашей системе работают десятки служебных «пользователей» (daemon, bin, sys), которые управляют фоновыми процессами.

    Суперпользователь (Root)

    В Linux существует иерархия пользователей. На вершине пирамиды находится root (корень) — суперпользователь.

    * Root может всё: читать любые файлы, останавливать любые процессы, форматировать диски. * Обычный пользователь ограничен своей домашней директорией (/home/user) и не может повредить системные файлы.

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

    Чтение прав доступа: ls -l

    В первой статье мы упоминали команду ls -l. Давайте посмотрим на её вывод внимательнее, сфокусировавшись на самой первой колонке.

    Вывод может выглядеть так:

    Нас интересует загадочная строка: -rw-r--r--. Это и есть маска прав доступа. Она состоит из 10 символов.

    !Структура строки прав доступа в Linux

    1. Тип файла (первый символ)

    Самый первый символ указывает на тип объекта:

    * - (дефис) — обычный файл. * d (directory) — директория (папка). * l (link) — символическая ссылка.

    2. Три триады прав

    Оставшиеся 9 символов разбиты на три группы по три символа:

  • Права владельца (User, u): Первые три символа (в примере rw-). Определяют, что может делать хозяин файла.
  • Права группы (Group, g): Вторые три символа (в примере r--). В Linux каждый пользователь входит в одну или несколько групп. Права применяются ко всем членам группы, владеющей файлом.
  • Права остальных (Others, o): Последние три символа (в примере r--). Это права для всех остальных пользователей системы, кто не является владельцем и не входит в группу.
  • 3. Расшифровка символов (r, w, x)

    Внутри каждой триады могут встречаться следующие буквы:

    * r (read) — Чтение. Для файла:* можно открыть и прочитать содержимое (cat, less). Для директории:* можно просмотреть список файлов внутри (ls). * w (write) — Запись. Для файла:* можно изменять содержимое, дописывать или очищать файл. Для директории:* можно создавать, удалять и переименовывать файлы внутри этой папки. Важно: если у вас есть право записи на папку, вы можете удалить в ней файл, даже если у вас нет права записи на сам этот файл! * x (execute) — Исполнение. Для файла:* файл можно запустить как программу или скрипт. Для директории:* право «прохода». Позволяет зайти внутрь папки командой cd и получить доступ к метаданным файлов. * - (дефис) — Отсутствие права.

    Изменение прав доступа: chmod

    Команда chmod (Change Mode) позволяет менять права доступа. Существует два способа её использования: символьный и числовой.

    Символьный режим

    Этот способ интуитивно понятен. Синтаксис: chmod [кто][действие][что] файл.

    * Кто: u (user), g (group), o (others), a (all — все сразу). * Действие: + (добавить), - (убрать), = (установить точно). * Что: r, w, x.

    Примеры:

    Добавить право исполнения для владельца (сделать скрипт запускаемым):

    Запретить группе и остальным писать в файл:

    Разрешить всем читать файл:

    Числовой (октальный) режим

    Этот способ чаще используется профессионалами, так как он быстрее. Здесь права представляются в виде цифр. Это основано на двоичной системе счисления, где наличие права — это 1, а отсутствие — 0.

    Каждому праву присвоено числовое значение:

    * r (read) = 4 * w (write) = 2 * x (execute) = 1 * - (нет права) = 0

    Чтобы получить права для одной группы (например, владельца), нужно просто сложить эти числа.

    Формула расчета прав для одной группы пользователей:

    где — итоговое числовое значение прав (Permission), — значение права на чтение (4 или 0), — значение права на запись (2 или 0), — значение права на исполнение (1 или 0).

    Примеры комбинаций:

    * rwx (читать, писать, исполнять) -> * rw- (читать и писать) -> * r-x (читать и исполнять) -> * r-- (только читать) ->

    Команда chmod принимает три цифры: первую для владельца, вторую для группы, третью для остальных.

    Классические примеры:

    chmod 755 script.sh * Владелец (7): rwx (полный доступ). * Группа (5): r-x (чтение и запуск). * Остальные (5): r-x (чтение и запуск).

    chmod 644 document.txt * Владелец (6): rw- (чтение и запись). * Группа (4): r-- (только чтение). * Остальные (4): r-- (только чтение).

    chmod 600 secret.key * Владелец (6): rw- (чтение и запись). * Группа (0): --- (нет доступа). * Остальные (0): --- (нет доступа).

    Смена владельца: chown

    Иногда нужно передать файл другому пользователю. Для этого используется команда chown (Change Owner).

    Синтаксис: chown новый_владелец файл.

    Можно сразу сменить и группу, разделив их двоеточием:

    > Важно: Обычно менять владельца файла может только суперпользователь (root). Обычный пользователь не может «подарить» свой файл другому пользователю без прав администратора из соображений безопасности.

    Суперсила: sudo

    Мы говорили, что root может всё. Но работать под root постоянно — плохая практика. Одно неверное движение может уничтожить систему. Поэтому в Ubuntu и многих других дистрибутивах учетная запись root по умолчанию отключена.

    Вместо этого используется утилита sudo (SuperUser DO).

    Она позволяет обычному пользователю выполнить одну команду с правами суперпользователя. Для этого ваш пользователь должен находиться в специальной группе sudo (или wheel).

    Пример установки программы (требует прав администратора):

    Вы получите ошибку «Permission denied». Используйте sudo:

    Система попросит ввести ваш пароль (не пароль root). При вводе пароля символы на экране отображаться не будут — это нормально, просто вводите и нажимайте Enter.

    Заключение

    Понимание прав доступа — это то, что отличает новичка от уверенного пользователя Linux. Теперь вы знаете, как защитить свои файлы от посторонних глаз с помощью chmod, как передавать файлы коллегам через chown и как безопасно выполнять административные задачи через sudo.

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

    5. Мониторинг процессов и управление программным обеспечением

    Мониторинг процессов и управление программным обеспечением

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

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

    Что такое процесс и PID?

    Когда вы запускаете программу (исполняемый файл), операционная система загружает её код в оперативную память и выделяет ей ресурсы. Этот экземпляр запущенной программы называется процессом.

    У каждого процесса есть уникальный идентификатор — PID (Process ID). Это просто число, которое система присваивает процессу при старте. Например, если вы запустите три окна терминала, это будет три разных процесса с тремя разными PID, хотя программа одна и та же.

    Наблюдение за системой: ps и top

    Как узнать, что происходит в системе прямо сейчас? Для этого есть инструменты мониторинга.

    Мгновенный снимок: команда ps

    Команда ps (Process Status) показывает список процессов. Если ввести её без аргументов, она покажет только процессы, запущенные в текущем терминале вашим пользователем. Это не очень информативно.

    Стандарт де-факто для просмотра всех процессов — комбинация ключей aux:

    Разберем ключи: * a — показать процессы всех пользователей (all). * u — показать владельца процесса и использование ресурсов (user). * x — показать процессы, не привязанные к терминалу (фоновые службы).

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

    !Структура вывода команды ps aux с пояснением ключевых колонок.

    Основные колонки, которые вам нужны: * USER: Имя пользователя, запустившего процесс. * PID: Уникальный номер процесса. * %CPU и %MEM: Процент использования процессора и памяти. * COMMAND: Команда, которая запустила процесс.

    Мониторинг в реальном времени: команда top

    Команда ps делает статический снимок. Но ситуация меняется каждую секунду. Для наблюдения в динамике используется утилита top.

    Запустив её, вы увидите таблицу, которая обновляется каждые несколько секунд. Самые «прожорливые» процессы (потребляющие больше всего CPU) будут наверху списка.

    В верхней части экрана top показывает общую статистику системы, включая Load Average (средняя загрузка). Это три числа, показывающие среднюю нагрузку на систему за 1, 5 и 15 минут. Если эти числа превышают количество ядер вашего процессора, значит, компьютер перегружен.

    Чтобы выйти из top, нажмите клавишу q.

    > Существует более современная и красивая альтернатива top под названием htop. Она не всегда установлена по умолчанию, но её интерфейс гораздо дружелюбнее и поддерживает управление мышью.

    Управление процессами: Signals и Kill

    Иногда программы зависают. В Windows мы привыкли нажимать Ctrl+Alt+Del и открывать Диспетчер задач. В Linux мы используем команду kill.

    Вопреки названию, команда kill не просто «убивает». Она посылает процессу сигнал. А уж как процесс отреагирует на сигнал — зависит от типа сигнала.

    Синтаксис прост: kill [опции] PID.

    SIGTERM (Сигнал 15) — Вежливая просьба

    По умолчанию команда kill PID посылает сигнал SIGTERM (Termination). Это вежливая просьба к программе завершиться. Программа получает сигнал, сохраняет данные, закрывает файлы и корректно выключается.

    (где 1234 — это PID процесса, который мы узнали через ps или top)

    SIGKILL (Сигнал 9) — Выстрел в голову

    Если программа зависла намертво и не реагирует на вежливые просьбы, используется «тяжелая артиллерия» — сигнал SIGKILL. Этот сигнал обрабатывается не программой, а ядром операционной системы. Ядро просто стирает процесс из памяти, не давая ему шанса сохранить данные.

    Используйте -9 только в крайних случаях!

    killall — Убить по имени

    Если вы не хотите искать PID, а хотите закрыть все процессы с определенным именем (например, все окна Firefox), используйте killall:

    Фоновый и активный режимы (Jobs)

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

    Запуск в фоне (&)

    Если добавить амперсанд & в конце команды, она запустится в фоновом режиме (background). Терминал сразу вернет вам управление, а программа будет работать «за кулисами».

    Управление задачами

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

  • Нажать Ctrl+Z. Это приостановит (pause) процесс и вернет вас в консоль.
  • Ввести команду bg (background). Приостановленный процесс продолжит работу, но уже в фоне.
  • Ввести команду fg (foreground), чтобы вернуть фоновый процесс обратно на передний план.
  • Посмотреть список всех запущенных в текущем терминале задач можно командой jobs.

    !Схема переключения режимов работы процессов в терминале.

    Управление программным обеспечением: Пакетные менеджеры

    В Linux редко скачивают .exe файлы с сайтов в интернете. Вместо этого используется концепция репозиториев — централизованных хранилищ проверенного софта. Это похоже на App Store или Google Play, но появилось в Linux на десятилетия раньше.

    Управление установкой программ осуществляется через пакетный менеджер. В дистрибутивах на базе Debian (Ubuntu, Mint, Kali) это apt (Advanced Package Tool).

    Так как установка программ затрагивает системные файлы, все команды apt нужно выполнять с правами суперпользователя (sudo).

    1. Обновление списка пакетов

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

    Эта команда не обновляет программы, она только скачивает свежие списки пакетов.

    2. Обновление установленных программ

    Чтобы обновить все установленные у вас программы до последних версий, используйте:

    3. Установка программы

    Допустим, вы хотите установить знаменитый файловый менеджер Midnight Commander (mc).

    Система автоматически найдет пакет, скачает его и все необходимые библиотеки (зависимости), и установит.

    4. Удаление программы

    Чтобы удалить программу:

    Заключение

    Сегодня вы получили власть над процессами. Вы знаете, как найти «виновника» тормозов системы с помощью top, как аккуратно завершить его через kill и как установить нужные инструменты через apt.

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