Комбинации команд
Вывести топ 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
- -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 активна:
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 заключается в том, как они обрабатывают изменения в зависимостях пакетов.
Для наглядности ключевые различия собраны в таблице:
🛡️ Когда какую команду использовать
-
Используйте
sudo apt upgradeдля регулярного, безопасного обновления всех программ в стабильной системе. Это основной вариант для рядовых обновлений безопасности и исправлений ошибок. -
Используйте
sudo apt full-upgrade, когда:- Система сообщает, что
upgradeне может выполнить обновление из-за неудовлетворённых зависимостей. - Необходимо обновить ядро Linux.
- Выполняется обновление до новой версии дистрибутива (например, с Ubuntu 22.04 до 24.04).
- Вы работаете с нестабильной (развивающейся) версией дистрибутива, где изменения зависимостей часты.
- Система сообщает, что
🔧 Важные рекомендации по использованию
- Всегда начинайте с
sudo apt update: Перед любой командой обновления (upgradeилиfull-upgrade) необходимо обновить локальную базу данных о доступных пакетах, выполнивsudo apt update. - Внимательно читайте список изменений: Перед подтверждением установки (
Y)full-upgradeвыводит список пакетов, которые будут установлены, обновлены или удалены. Всегда просматривайте его. - Очистка после обновления: После любого обновления полезно выполнить
sudo apt autoremove, чтобы удалить оставшиеся неиспользуемые зависимости - Не используйте флаг
-yсfull-upgrade: Автоматическое подтверждение всех действий с этой командой может быть рискованным. Лучше видеть, какие пакеты планируется удалить.
dd Побайтовое копирование (по)
фыв
template Описание
Содержание
template Описание
Содержание