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

Вывести топ 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

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” в логах.

Примеры использования Найти все файлы в папке 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 В команде grep можно использовать различные опции, чтобы настроить поиск: -i – игнорировать регистр символов при поиске -n – выводить номера строк, содержащих нужную информацию -c – выводить только количество строк, содержащих нужную информацию -v – искать строки, которые не содержат нужной информации.

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 активна:

    bash

    Копировать

    systemctl status nginx

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

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

 fuser -k XXX/tcp

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

  grep [опции] [шаблон] [файлы]

 # Примеры использования:

 # Найти все файлы в папке 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

 # В команде grep можно использовать различные опции, чтобы настроить поиск:

 -i – игнорировать регистр символов при поиске

 -n – выводить номера строк, содержащих нужную информацию

 -c – выводить только количество строк, содержащих нужную информацию

 -v – искать строки, которые не содержат нужной информации.

 # ZSH Оболочка , установка на Debian

 #Centos/RHEL

 pkg install zsh

 sudo yum update && sudo yum -y install zsh

 #Ubuntu / Debian