Linux-команды для работы с файлами и поиска
Ubuntu и CentOS — разбор с практическими примерами
Есть два подхода к работе на сервере:
- Понимать, где что лежит, и находить это командами.
- Открывать файловый менеджер, долго смотреть и в итоге ничего не найти.
Эта статья — про первый подход.
Здесь собраны базовые и продвинутые команды Linux для работы с файлами и поиска:
на Ubuntu и CentOS, в окружениях BitrixVM, Laravel и WordPress.
Без абстрактной теории — только то, что действительно используется в ежедневной серверной практике.
Типовая структура проектов на сервере
Bitrix / BitrixVM
- корень сайта:
/home/bitrix/ext_www/DOMAIN/public_html/
- логи nginx:
/var/log/nginx/
- логи Apache:
/var/log/httpd/ (CentOS) или /var/log/apache2/ (Ubuntu)
- cron-задачи:
/etc/crontab, /etc/cron.d/, crontab -e
Laravel
- корень проекта:
/var/www/project или /home/user/project
- логи приложения:
storage/logs/laravel.log
- конфигурация:
.env, каталог config/
WordPress
- корень сайта:
/var/www/site или /home/.../public_html
- конфигурация:
wp-config.php
- плагины и загрузки:
wp-content/
Просмотр файлов и структуры каталога
Список файлов и размеры
ls -lah
ls -lahS
Подробная информация о файле
stat wp-config.php
Команда полезна, когда нужно проверить:
- дату изменения;
- владельца и группу;
- реальные права доступа.
Быстрый просмотр структуры
tree -L 2
Поиск файлов: команда find
Поиск по имени
find . -type f -name "wp-config.php"
find /home/bitrix/ext\_www -type f -name ".env"
Поиск без учёта регистра
find . -type f -iname "\*.log"
Поиск недавно изменённых файлов
find . -type f -mtime -2
Пример из практики:
После взлома сайта нужно понять, какие PHP-файлы появились или изменились за последние сутки.
cd /home/bitrix/ext\_www/DOMAIN/public\_html
find . -type f -name "\*.php" -mtime -1
Поиск подозрительных файлов в upload-каталогах
Bitrix и WordPress часто становятся жертвами загрузки PHP-файлов в каталоги для медиа.
find upload -type f -name "\*.php"
find wp-content/uploads -type f -name "\*.php"
Поиск файлов по размеру
find . -type f -size +200M
Полезно, когда заканчивается место на диске и нужно быстро найти источник проблемы.
Поиск текста внутри файлов
grep — классический инструмент
grep -RIn "eval(" .
grep -RIn "base64\_decode" .
Флаги:
- -R — рекурсивно;
- -I — игнорировать бинарные файлы;
- -n — показывать номера строк.
Пример из практики WordPress:
Сайт начал делать редиректы на сторонние ресурсы.
grep -RIn "gzinflate" wp-content
grep -RIn "base64\_decode" wp-content
ripgrep (rg) — современная альтернатива
Если доступен, использовать его предпочтительнее: быстрее и удобнее.
rg -n "APP\_KEY"
rg -n "DB\_HOST"
Пример из практики Laravel:
Нужно найти, где используется конкретная переменная окружения.
rg -n "PAYMENT\_PROVIDER" .
Комбинация find и xargs
Позволяет выполнять действия над результатами поиска.
find . -type f -name "\*.php" -print0 | xargs -0 grep -n "eval("
Использование -print0 и -0 защищает от проблем с пробелами в именах файлов.
Быстрый поиск по системе: locate
locate php.ini
locate wp-config.php
Важно помнить, что locate ищет по базе, которая может быть неактуальной.
Обновление базы:
updatedb
Работа с логами
Просмотр последних записей
tail -n 200 /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
Чтение с поиском
less /var/log/nginx/error.log
systemd-журналы
journalctl -u nginx -n 200 --no-pager
journalctl -u php-fpm -n 200 --no-pager
journalctl -xe
Проверка дискового пространства
df -h
du -sh \*
Поиск самых “тяжёлых” файлов:
du -ah . | sort -hr | head -n 30
Архивирование: tar
tar -czf site.tar.gz public\_html
Исключение кешей и временных файлов:
tar -czf site.tar.gz public\_html \
--exclude="public\_html/bitrix/cache" \
--exclude="public\_html/bitrix/managed\_cache" \
--exclude="public\_html/upload/tmp"
Синхронизация и переносы: rsync
Пробный запуск:
rsync -avhn --delete ./ public\_html/
Реальный перенос:
rsync -avh --delete ./ user@server:/var/www/site/
Права и владельцы
Проверка:
ls -lah
stat index.php
Исправление владельца (BitrixVM):
chown -R bitrix:bitrix /home/bitrix/ext\_www/DOMAIN/public\_html
Рекомендуемые права:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Итог
Команды Linux — это не “магия для администраторов”, а рабочий инструмент разработчика.
Если уметь:
- искать файлы (find);
- искать текст (grep, rg);
- читать логи;
- контролировать дисковое пространство;
- аккуратно работать с правами;
то сервер перестаёт быть источником хаоса и превращается в предсказуемую систему.
Top comments (0)