Перейти к содержанию

Нужные команды для DevOps Engineer

Advanced Package Tool

Описание

Команда apt (Advanced Package Tool) — это основной консольный менеджер пакетов в Debian, Ubuntu и производных дистрибутивах Linux. Он используется для установкиобновленияпоиска и удаления программ (пакетов)обеспечивая автоматическое управление зависимостями. apt более удобен для пользователячем apt-get

Отличия apt от apt-get

  • apt: Рекомендуется для использования в интерактивном режиме имеет приятный вывод (прогресс-бар)включает наиболее часто используемые функции из apt-get и apt-cache.
  • apt-get: Низкоуровневая утилита стабильная лучше подходит для использования в скриптах (автоматизации)

Команды

Загрузка списка доступных пакетов из репозиториев

sudo apt update

Установка обновлений дляч тех пакетов которые загружены на сервер

sudo apt upgrade

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

sudo apt install <имя>

Удаление пакета сохраняя конфигурации

sudo apt remove <пакет>

Полное удаление пакета и его конфигураций

sudo apt purge <имя>

Найти пакет в репозиториях

apt search <запрос>

Показать информацию о пакете

apt show <пакет>

Автоматически удалить ненужные пакеты (зависимости)которые больше не требуются

sudo apt autoremove

Systemctl

Описание

Команда

systemctl — это основной инструмент в современных дистрибутивах Linux (с systemd) для управления службами (сервисами)юнитами и состоянием системы. Она используется для запускаостановкиперезагрузкивключения/выключения автозагрузки сервисова также проверки их статусаобеспечивая эффективное администрирование.

Команды

Основные команды управления сервисами (нужен sudo):

Запустить службу

systemctl start <service>

Остановить службу

systemctl stop <service>

Перезапустить службу.

systemctl restart <service>

Перезагрузить конфигурацию службы без остановки

systemctl reload <service>

Показать текущий статус (активен/неактивензапущен/остановленошибки)

systemctl status <service>

Добавить службу в автозагрузку (запуск при загрузке)

systemctl enable <service>

Убрать службу из автозагрузки

systemctl disable <service>

Полностью заблокировать службу (запретить запуск даже вручную)

systemctl mask <service>

Снять блокировку

systemctl unmask <service>

Управление системой (питание):

Перезагрузить систему

systemctl reboot

Выключить систему

systemctl poweroff

Перевести систему в спящий режим

systemctl suspend

Полезные команды диагностики:

Показать все активные службы

systemctl list-units --type=service

Проверитьактивна ли служба

systemctl is-active <service>

Проверитьвключена ли автозагрузка

systemctl is-enabled <service>

Перезагрузить конфигурацию systemd (после создания/изменения файлов юнитов)

systemctl daemon-reload

Tail

Описание

Команда

tail в Linux/UNIX выводит последние 10 строк файла (или потока данных)позволяя просматривать логи в реальном времени с ключом -f. Она удобна для мониторинга обновленийподдерживает настройку количества строк (-n) или байт (-c)а также автоматический перевыбор файла при ротации (-F

Команды

Показывает последние 10 строк

tail filename

Показывает последние 20 строк

tail -n 20 filename

Обновляет вывод при добавлении новых данных

tail -f filename

Следит за именем файладаже если он пересоздан

tail -F filename

Выводит последние 100 байт

tail -c 100 filename

Nano

Описание

Nano — это простой консольный текстовый редактор в Linux/Unixпредназначенный для редактирования файлов через терминал. Он поддерживает подсветку синтаксисапоискзамену и использование мыши. Основные команды:

nano file (открыть/создать)Ctrl+O (сохранить)Ctrl+X (выйти)Ctrl+K (удалить строку)Ctrl+U (вставить)

Основные горячие клавиши (всегда отображаются внизу экрана):

  • Ctrl+O: Записать (сохранить) файл.
  • Ctrl+X: Выйти из редактора.
  • Ctrl+K: Вырезать (удалить) текущую строку.
  • Ctrl+U: Вставить вырезанную строку.
  • Ctrl+W: Поиск по тексту.
  • Ctrl+R: Чтение/вставка другого файла.
  • Ctrl+C: Показать текущую позицию курсора.

Команды

Открыть файл с нумерацией строк

nano -l <файл>

Включить поддержку мыши

nano -m <файл>

Открыть файл в режиме только для чтения

nano -v <файл>

UFW(Сетевой экран/FireWall)

Описание

UFW (Uncomplicated Firewall) — удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей. Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана. В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.

Команды

Состояние UFW

sudo ufw status verbose

Запуск сетевого экрана

sudo ufw enable

Ограничение входящих запросов по умолчанию

sudo ufw default deny incoming

Разрешение исходящих запросов по умолчанию

sudo ufw default allow outgoing

Разрешение входящих запросов для SSH

sudo ufw allow ssh

Разрешение входящих запросов для определенного порта

sudo ufw allow 2222

Добавление диапазонов портов

sudo ufw allow 3000:3100

Добавление IP-адресов

sudo ufw allow from 123.45.67.89

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

sudo ufw allow from 123.45.67.89 to any port 22

Добавление диапозонов IP-адресов

sudo ufw allow from 123.45.67.89/24

Добавление подключения для определенного диапозона IP-адресов под данному порту

sudo ufw allow from 123.45.67.89/24 to any port 22

Ограничение подключений

sudo ufw deny http

sudo ufw deny from 123.45.67.89

Удаление правил интерактивно

sudo ufw status numbered
sudo ufw delete 2

Удаление определенных правил

sudo ufw delete allow http
sudo ufw delete allow 80

Отключение UFW

sudo ufw disable

Сброс правил

sudo ufw reset

Включение логов

sudo ufw logging on
Ufw поддерживает нескоько уровней логгирования:

  • off — отключен.
  • low — регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам.
  • medium — все то, что при значении low. Плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости.
  • high — работает также как и medium. Плюс все пакеты с ограничением скорости.
  • full — также как и high, но без ограниения скорости.

Для просмотра файлов относящихся с логам ufw используйте команду:

ls /var/log/ufw*

UserMod

Описание

Команда

usermod (user modification) в Linux предназначена для изменения параметров существующих учетных записей пользователейтаких как логиндомашний каталог, UID, GID или группы. Она модифицирует системные файлы (/etc/passwd``/etc/group``/etc/shadow)требуя прав суперпользователя (sudo).

Важно: Нельзя использовать usermodесли пользователь в данный момент вошел в систему или использует запущенные процессы. Для смены имени или UID нужно сначала закрыть все сессии пользователя.

Команды

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

sudo usermod -aG sudo username

Изменить домашний каталог и перенести файлы:

sudo usermod -d /home/newdir -m username

Изменить оболочку пользователя:

sudo usermod -s /bin/zsh username

Заблокировать пользователя:

sudo usermod -L username

Основные параметры команды usermod:

  • -a--append: Добавить пользователя в дополнительные группы (используется только с -G).
  • -c--comment: Изменить поле комментария (GECOS).
  • -d--home: Изменить домашний каталог пользователя.
  • -m--move-home: Переместить содержимое старого домашнего каталога в новый (используется с -d).
  • -g--gid: Изменить основную группу пользователя.
  • -G--groups: Указать список дополнительных групп.
  • -l--login: Изменить имя входа (логин) пользователя.
  • -L--lock: Заблокировать пароль пользователя.
  • -U--unlock: Разблокировать пароль пользователя.
  • -s--shell: Изменить командную оболочку (напримерна /bin/zsh).
  • -u--uid: Изменить идентификатор пользователя (UID)

Journalctl

Описание

journalctl

— это мощная утилита командной строки в Linux для просмотра и анализа журналов (логов)создаваемых системой инициализации systemd (systemd-journald). Она позволяет фильтровать сообщения по временислужбеприоритету и другим параметрамчто значительно облегчает поиск ошибоктак как логи хранятся в бинарном формате.

Команды

Просмотр всех логов:

journalctl

В реальном времени (аналог tail -f):

journalctl -f

Логи конкретной службы (например, nginx):

 journalctl -u nginx.service

Логи за сегодня:

journalctl --since today

Логи за определенное время:

journalctl --since "2023-10-25 00:00:00" --until "2023-10-25 12:00:00"

Только ошибки (приоритет 3 и выше):

journalctl -p err

Логи с момента последней загрузки:

journalctl -b

Просмотр логов ядра:

journalctl -k

Очистка логов (установить размер):

journalctl --vacuum-size=100M

Просмотр последних 20 строк:

journalctl -n 20

Фильтрация по приоритету (-p):
Логи делятся на уровни: 0-emerg, 1-alert, 2-crit, 3-err, 4-warning, 5-notice, 6-info, 7-debug. 

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

  • --list-boots: показать список загрузок системы
  • --no-pager: вывести весь лог сразу без разбивки на страницы
  • --disk-usage: показать размер всех лог-файлов

Cat

Описание

Команда

cat (concatenate) в Linux — это ==базовая утилита для выводасоздания и объединения файлов==. Она последовательно читает файлы и выводит их содержимое в стандартный поток вывода (терминал) или перенаправляет в другие файлы/команды. Позволяет быстро просматривать содержимоесклеивать данныенумеровать строки (-n) или удалять лишние пустые (-s)

Команды

Просмотр файла:

cat file.txt

Просмотр нескольких файлов:

cat file1.txt file2.txt

Создание нового файла(ввод текста завершается Ctrl+D):

cat > new_file.txt

Объединение файлов:

cat file1.txt file2.txt > combined.txt

Добавление содержимого в конец файла:

cat file1.txt >> file2.txt

Нумерация строк:

cat -n file.txt

Полезные опции:

  • -n — пронумеровать все строки.
  • -b — пронумеровать только непустые строки.
  • -s — убрать повторяющиеся пустые строки.
  • -E — показать $ в конце каждой строки.
  • -T — отобразить символы табуляции как ^I.

Grep

Описание

Команда

grep (Global Regular Expression Print) в Linux/Unix — это мощная утилита для поиска текстовых строксоответствующих заданному шаблону (включая регулярные выражения)в файлах или в потоке вывода. Она используется для фильтрации данныханализа логов и поиска по содержимомувыводя найденные строки в терминал.

Команды

Поиск слова в файле — ищет строку "error" в файле log.txt

grep "error" log.txt

Поиск без учета регистра (опция -i)

grep -i "error" log.txt

Рекурсивный поиск в папке — ищет "error" во всех файлах внутри директории и поддиректориях

grep -r "error" /var/log/

Фильтрация вывода другой команды — покажет только строкисодержащие ".jpg"

ls -l | grep ".jpg"

Поиск по шаблону (все файлы)

grep "pattern" *

GIT

MkDir

Описание

Команда mkdir (make directory) используется в Linux, macOS, Windows и DOS для создания новых папок (каталогов) через командную строку. Основной синтаксис — mkdir [имя_каталога]. Она позволяет создавать одну или несколько директорий сразу, а также вложенные структуры (с ключом -p). 

Команда входит в состав GNU coreutils и широко применяется в скриптах для организации файловой структуры

Команды

Создать одну папку

mkdir folder1

Создать несколько папок сразу

mkdir dir1 dir2 dir3

Создать вложенные папки (родительские)

mkdir -p /home/user/dir1/dir2

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

mkdir -m 777 new_dir

Показать сообщение о создании

mkdir -v folder