Комбинации команд
Вывести топ 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
- -u — Фильтровать логи по указанной службе (unit)
journalctl -u nginx.service- Что делает: Показывает все логи, связанные с службой nginx.service.
- Результат: Выводит записи о запусках, остановках, ошибках и других событиях, связанных с Nginx.
- -b — Показать логи только для текущей загрузки системы
journalctl -u nginx.service -b- Что делает: Ограничивает вывод логами nginx.service с момента последней загрузки системы (сегодня, 15 мая 2025, до 19:43 CEST).
- Результат: Показывает только логи Nginx, относящиеся к текущей сессии работы системы.
- -r — Отображать логи в обратном порядке (сначала новые)
journalctl -u nginx.service -r- Что делает: Выводит логи nginx.service, начиная с самых последних записей.
- Результат: Удобно для просмотра последних событий, например, недавних ошибок или перезапусков Nginx.
- -f — Следить за логами в реальном времени
journalctl -u nginx.service -f- Что делает: Отображает логи nginx.service в реальном времени, обновляя вывод при появлении новых записей.
- Результат: Полезно для мониторинга текущей активности Nginx, например, при тестировании конфигурации.
- —since — Показать логи с указанного времени
journalctl -u nginx.service --since "2025-05-15 10:00"- Что делает: Показывает логи nginx.service, начиная с 10:00 15 мая 2025 года.
- Результат: Фильтрует записи, начиная с указанного времени, например, для анализа событий после утреннего обновления.
- —until — Показать логи до указанного времени
journalctl -u nginx.service --until "2025-05-15 12:00"- Что делает: Показывает логи nginx.service до 12:00 15 мая 2025 года.
- Результат: Ограничивает вывод логами до указанного времени, например, для анализа событий до полудня.
- -p — Фильтровать по приоритету сообщений
journalctl -u nginx.service -p 3- Что делает: Показывает логи nginx.service с приоритетом error (уровень 3) и выше (критические ошибки).
- Результат: Выводит только серьезные проблемы, например, сбои при запуске Nginx или ошибки конфигурации.
- -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