Комбинации команд

Вывести топ 20 самых объёмных папок в текущей директории

du . --max-depth=1 -ah | sort -rh | head -20

Узнать какой WEB сервер установлен

ps aux | grep -E 'apache|nginx'

Русский язык в bash

apt install locales & dpkg-reconfigure locales

Убить процесс по открытому порту fuser -k нужный порт/tcp

fuser -k XXX/tcp

Меняет тему MC на темную

sed -i 's/^skin=default$/skin=gotar/' ~/.config/mc/ini

Трюки терминала Bash

Горячие клавиши” Bash с Ctrl**

Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.

Полезные переменные окружения Bash

Короткие переменные: $0 — оболочка командной строки или путь до запускаемого файла. $1, $2, $3, ... — аргументы запуска скрипта. $# — число аргументов, переданных в скрипт из терминала. $? — код завершения последней команды. $- — текущие опции, установленные для оболочки. $$ — идентификатор текущего процесса. $! — идентификатор процесса, завершённого последним.

Более длинные, но тоже полезные переменные: $DESKTOP_SESSION — текущий менеджер дисплеев. $EDITOR — редактор текста по умолчанию. $LANG — используемый системой язык. $PATH — список директорий, в которых будут искаться исполняемые файлы. $PWD — текущая директория. $SHELL — текущая оболочка командной строки. $USER — имя текущего пользователя. $HOSTNAME — имя текущего хоста (компьютера).

ls Показывает файлы и папки в текущей или указанной директории

КлючОписание
-lПодробный формат (разрешения, владелец, размер, дата)
-aПоказать скрытые файлы (начинаются с .)
-hЧеловекочитаемый формат размеров (КБ, МБ и т.д.)
--sortСортировка (например, --sort=size по размеру)

cd Перемещает пользователя в указанную директорию

КлючОписание
Нет ключей, используются пути (например, .., ~, /)

pwd Выводит полный путь до текущей рабочей директории

КлючОписание
Обычно используется без ключей

cp Копирует файлы или директории из одного места в другое

КлючОписание
-rРекурсивное копирование (для директорий)
-vВыводить информацию о процессе копирования
-iЗапрашивать подтверждение перед перезаписью

mv Перемещает файлы/директории или переименовывает их

КлючОписание
-iЗапрашивать подтверждение перед перезаписью
-vПоказывать процесс перемещения

rm Удаляет указанные файлы или директории

КлючОписание
-rРекурсивное удаление (для директорий)
-fУдаление без подтверждения
-iЗапрашивать подтверждение для каждого файла

cat Выводит содержимое файла в терминал или объединяет файлы

КлючОписание
-nПоказывать номера строк
-EПоказывать символы конца строки ($)

less Позволяет просматривать файлы с возможностью прокрутки

КлючОписание
-NПоказывать номера строк
-SНе переносить длинные строки

grep Поиск по содержимому файла или вывода

Пример grep -r "inactivityTimeout" /etc/ Ищем значение inactivityTimeout в /etc/

КлючОписание
-iИгнорировать регистр
-rРекурсивный поиск в директориях
-nПоказывать номера строк, содержащих нужную информацию
-vПоказывать строки, не соответствующие шаблону Пример: grep -r "error" /var/log — Найти все вхождения слова “error” в логах.
-cПоказывать только количество строк, содержащих нужную информацию

Примеры использования Найти все файлы в папке home/user, содержащие строку “hello”: grep -r "hello" /home/user Обнаружить файлы в папке /etc и ее подпапках, содержащие слово “network”: grep -R "network" /etc Найти объекты в папке /var/log, содержащие сообщение “error”: grep -R "error" /var/log Найти файлы с расширением .txt, содержащие строку “important”, в папке /home/user: grep "important" /home/user/*.txt Поиск объектов, содержащих слово “password”, в папке /etc и сохранить результаты в файле passwords.log: grep -R "password" /etc > passwords.log

find Поиск файлов/директорий

find /где искать/ -name имя файла

КлючОписание
-nameИскать по имени (чувствительно к регистру).
-inameИскать по имени (игнорировать регистр).
-typeТип (f — файл, d — директория).
-execВыполнить команду над найденными файлами. Пример: find / -type f -name
"*.log"Найти все файлы с расширением .log
Примеры использования
Поиск в каталоге /etc/ файла с именем file1
find /etc/ -name file1
Поиск по содержиному, ищем значение opcache.memory_consumption= в /etc
grep -r "opcache.memory_consumption=" /etc/

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

chown Изменение владельца

КлючОписание
-RРекурсивное изменение владельца. Пример: chown -R user:group /home/user

tail Вывода последних строк файла

КлючОписание
-n NUMВыводит последние NUM строк (по умолчанию 10). Пример: tail -n 20 file.txt
-fСледит за файлом в реальном времени (например, для логов). Пример: tail -f /var/log/syslog
-c NUMПоказывает последние NUM байт. Пример: tail -c 100 file.txt
-100Показывает последние 100 строк событий

find Ищет файлы/директории по заданным критериям

КлючОписание
-nameИскать по имени (чувствительно к регистру)
-inameИскать по имени (игнорировать регистр)
-typeТип (f — файл, d — директория)
-execВыполнить команду над найденными файлами

 

jornalctl Просмотр и анализ логов собранных службойsystemd-journald

С определенной даты и времени: journalctl --since "2020-12-18 06:00:00" С определенной даты и по определенное дату и время: journalctl --since "2020-12-17" --until "2020-12-18 10:00:00" Посмотреть журнал определённого сервиса journalctl -u nameservice В реальном времени journalctl -u nameservice -f

  1. -u — Фильтровать логи по указанной службе (unit) journalctl -u nginx.service
    • Что делает: Показывает все логи, связанные с службой nginx.service.
    • Результат: Выводит записи о запусках, остановках, ошибках и других событиях, связанных с Nginx.
  2. -b — Показать логи только для текущей загрузки системы journalctl -u nginx.service -b
    • Что делает: Ограничивает вывод логами nginx.service с момента последней загрузки системы (сегодня, 15 мая 2025, до 19:43 CEST).
    • Результат: Показывает только логи Nginx, относящиеся к текущей сессии работы системы.
  3. -r — Отображать логи в обратном порядке (сначала новые) journalctl -u nginx.service -r
    • Что делает: Выводит логи nginx.service, начиная с самых последних записей.
    • Результат: Удобно для просмотра последних событий, например, недавних ошибок или перезапусков Nginx.
  4. -f — Следить за логами в реальном времени journalctl -u nginx.service -f
    • Что делает: Отображает логи nginx.service в реальном времени, обновляя вывод при появлении новых записей.
    • Результат: Полезно для мониторинга текущей активности Nginx, например, при тестировании конфигурации.
  5. —since — Показать логи с указанного времени journalctl -u nginx.service --since "2025-05-15 10:00"
    • Что делает: Показывает логи nginx.service, начиная с 10:00 15 мая 2025 года.
    • Результат: Фильтрует записи, начиная с указанного времени, например, для анализа событий после утреннего обновления.
  6. —until — Показать логи до указанного времени journalctl -u nginx.service --until "2025-05-15 12:00"
    • Что делает: Показывает логи nginx.service до 12:00 15 мая 2025 года.
    • Результат: Ограничивает вывод логами до указанного времени, например, для анализа событий до полудня.
  7. -p — Фильтровать по приоритету сообщений journalctl -u nginx.service -p 3
    • Что делает: Показывает логи nginx.service с приоритетом error (уровень 3) и выше (критические ошибки).
    • Результат: Выводит только серьезные проблемы, например, сбои при запуске Nginx или ошибки конфигурации.
  8. -o — Изменить формат вывода journalctl -u nginx.service -o json
    • Что делает: Выводит логи nginx.service в формате JSON.
    • Результат: Удобно для автоматизированной обработки логов, например, в скриптах или для отправки в системы мониторинга.

Фильтры по уровню важности сообщений:

Пример journalctl -p 1 0: emergency — чрезвычайная ситуация 1: alerts — предупреждения, требуется вмешательство 2: critical — критическое состояние 3: errors — ошибки 4: warning — предупреждения 5: notice — уведомления 6: info — информационные сообщения 7: debug — отладочные сообщения

Комбинирование ключей

Ключи можно комбинировать для более точной фильтрации. Например: journalctl -u nginx.service -b -r -p 4 --since "2025-05-15 09:00"

  • Что делает: Показывает логи nginx.service с приоритетом warning (уровень 4) и выше, начиная с 09:00 15 мая 2025, для текущей загрузки, в обратном порядке.
  • Результат: Позволяет быстро найти последние предупреждения или ошибки после утреннего рестарта системы.

Примечания

  • Права доступа: Для некоторых логов может потребоваться sudo, например: sudo journalctl -u nginx.service
  • Формат времени: Для —since и —until можно использовать форматы вроде “today”, “yesterday”, или “2025-05-15 10:00:00”.
  • Проверка службы: Убедитесь, что nginx.service активна:

 

mount монтирует файловую систему

!Важно так же знать про файл fstab

Подробнее о команде mount можно почитать тут Проект OpenNet: MAN mount (8) Команды системного администрирования (FreeBSD и Linux)

Полный набор параметров, который будет использован при работе команды mount в первую очередь включает параметры, извлекаемые из таблицы файла /etc/fstab для определенной файловой системы, затем добавляются параметры, которые задаются аргументом -o и, наконец, если они указаны, добавляются параметры -r или -w.

КлючОписание
-VВыводит информацию о версии программы.
-hВыводит подсказку.
-vПодробно информирует о выполняемых действиях.
-aМонтирует все файловые системы указанного типа, описания которых содержатся в файле /etc/fstab.
-F(Используется совместно с параметром -a.) Позволяет подключать файловые системы на различных устройствах или на серверах NFS параллельно. Это благоприятно сказывается на производительности; также параллельно обслуживаются тайм-ауты NFS. Неудобством является только то, что процессы монтирования происходят в неопределенном порядке. Поэтому параметр -F нельзя применять, например, для одновременного монтирования и /usr и /usr/spool.
-fПытается делать все возможное для выполнения системного вызова; если это невозможно, тогда создаётся видимость успешного выполнения монтирования файловой системы. Этот параметр полезен в сочетании с -v , чтобы отследить попытки, предпринимаемые командой mount . С помощью параметра -f можно также добавить элементы описаний тех устройств, которые ранее монтировались с параметром -n.
-iНе вызывать помощника монтирования /sbin/mount. даже если он существует.
-lвыводу информации добавляет описания файловых систем ext2, ext3 и XFS. Для работы этого параметра, монтирование должно разрешать операцию чтения дискового устройства (т.е. активизирован suid root). Описание файловой системы можно задать для ext2 или ext3 с помощью утилиты e2label(8), а для XFS - используя утилиту xfs_admin(8). или для reiserfs используя reiserfstune(8).
-nМонтирует без записи в /etc/mtab. Необходимость в этом возникает когда, например, /etc находится на файловой системе с режимом доступа “только для чтения”.
-p numВ случае применения loop-монтирования с шифрованием, читает ключевую фразу из файлового дескриптора num, а не с терминала.
-sИзбегая аварийного завершения, допускает даже неподходящие параметры монтирования. При этом параметры, не поддерживаемые файловой системой, будут проигнорированы. Не все файловые системы поддерживают этот параметр. Этот параметр предназначен для поддержки в Linux авто-монтирования при помощи autofs.
-rМонтирует файловую систему в режиме “только для чтения”. В качестве синонима можно использовать: -o ro.
-WМонтирует файловую систему в режиме “чтения/запись”. Это является режимом по умолчанию. В качестве синонима можно использовать: -o rw.
-L labelМонтирует раздел (специальное устройство), который имеет метку label. Начиная с ядра Linux 2.1.116 требует наличие файла /proc/partitions
И другие с более длинным описанием

apt Менеджер пакетов

apt — менеджер пакетов с интерфейсом командной строки. Он предоставляет команды для поиска и управления, а также запросов информации о пакетах. apt выполняет те же задачи, что и специализированные инструменты APT, например apt-get и apt-cache, но по умолчанию задействует параметры, которые больше подходят для интерактивного использования.

Основные команды: list - показать список пакетов на основе указанных имён search - искать в описаниях пакетов show - показать дополнительные данные о пакете install - установить пакеты reinstall - переустановить пакеты remove - удалить пакеты autoremove - автоматически удалить все неиспользуемые пакеты update - обновить список доступных пакетов upgrade - обновить систему, устанавливая/обновляя пакеты full-upgrade - обновить систему, удаляя/устанавливая/обновляя пакеты edit-sources - редактировать файл с источниками пакетов modernize-sources - преобразовать файлы .list в файлы .sources satisfy - удовлетворить строки зависимостей

Отличия upgrade от full-upgrade

Основное различие между командами apt upgrade и apt full-upgrade заключается в том, как они обрабатывают изменения в зависимостях пакетов.

Для наглядности ключевые различия собраны в таблице:

Аспектapt upgrade (стандартное обновление)apt full-upgrade (полное обновление)
Основное действиеБезопасно обновляет уже установленные пакеты.Обновляет систему в целом, решая сложные зависимости.
Обработка зависимостейНе устанавливает новые пакеты и не удаляет существующие для обновления.Устанавливает новые и удаляет мешающие пакеты, если это необходимо для установки обновлений.
Обновление ядра LinuxОбычно не обновляет ядро, если для этого требуется установить новый пакет.Обновляет ядро, так как может установить новый пакет ядра.
РискМинимальный, консервативный подход.Выше, так как может удалить пакеты.
Аналог в apt-getapt-get upgradeapt-get dist-upgrade

🛡️ Когда какую команду использовать

  • Используйте sudo apt upgrade для регулярного, безопасного обновления всех программ в стабильной системе. Это основной вариант для рядовых обновлений безопасности и исправлений ошибок.

  • Используйте sudo apt full-upgrade, когда:

    • Система сообщает, что upgrade не может выполнить обновление из-за неудовлетворённых зависимостей.
    • Необходимо обновить ядро Linux.
    • Выполняется обновление до новой версии дистрибутива (например, с Ubuntu 22.04 до 24.04).
    • Вы работаете с нестабильной (развивающейся) версией дистрибутива, где изменения зависимостей часты.

🔧 Важные рекомендации по использованию

  1. Всегда начинайте с sudo apt update: Перед любой командой обновления (upgrade или full-upgrade) необходимо обновить локальную базу данных о доступных пакетах, выполнив sudo apt update.
  2. Внимательно читайте список изменений: Перед подтверждением установки (Yfull-upgrade выводит список пакетов, которые будут установлены, обновлены или удалены. Всегда просматривайте его.
  3. Очистка после обновления: После любого обновления полезно выполнить sudo apt autoremove, чтобы удалить оставшиеся неиспользуемые зависимости
  4. Не используйте флаг -y с full-upgrade: Автоматическое подтверждение всех действий с этой командой может быть рискованным. Лучше видеть, какие пакеты планируется удалить.

dd Побайтовое копирование (по)

фыв

template Описание

Содержание

template Описание

Содержание