← Назад в блог

Linux-команды для работы с файлами и поиском: Ubuntu, CentOS и практические примеры для Bitrix, Laravel и WordPress

Подробный и практический разбор Linux-команд для работы с файлами и поиска: find, grep, ripgrep, locate, xargs, rsync, tar. Примеры из реальной серверной практики на BitrixVM, Laravel и WordPress.

Linux-команды для работы с файлами и поиском: Ubuntu, CentOS и практические примеры для Bitrix, Laravel и WordPress

Linux-команды для работы с файлами и поиска

Ubuntu и CentOS — разбор с практическими примерами

Есть два подхода к работе на сервере:

  1. Понимать, где что лежит, и находить это командами.
  2. Открывать файловый менеджер, долго смотреть и в итоге ничего не найти.

Эта статья — про первый подход.

Здесь собраны базовые и продвинутые команды 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);
  • читать логи;
  • контролировать дисковое пространство;
  • аккуратно работать с правами;

то сервер перестаёт быть источником хаоса и превращается в предсказуемую систему.

0 просмотров

Комментарии

Загрузка комментариев...