Нужные команды для 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
- 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