🔍 Поиск и просмотр файлов в Linux
🧭 Введение
Linux предоставляет множество мощных инструментов для поиска, фильтрации и просмотра файлов. Эти команды позволяют быстро находить нужные данные даже в огромных системах с тысячами файлов.
🗂️ 1. Поиск файлов и каталогов — find
Команда find — универсальный инструмент для поиска по файловой системе.
📘 Примеры базового использования
find /etc -name "nginx.conf"
find /var/log -type f -name "*.log"
find /home -type d -name "Documents"
| Опция | Значение |
|---|---|
-name "имя" |
поиск по имени (регистрозависимый) |
-iname "имя" |
поиск без учёта регистра |
-type f |
искать только файлы |
-type d |
искать только каталоги |
-mtime |
по дате изменения |
-size |
по размеру |
-user |
по владельцу |
🔍 Примеры
# Найти все файлы изменённые за последние сутки
find /var/log -type f -mtime -1
# Найти файлы больше 100 МБ
find /home -type f -size +100M
# Найти и удалить временные файлы
find /tmp -type f -name "*.tmp" -delete
[!TIP] Добавь ключ
-lsдля вывода подробной информации о найденных файлах:find /var/log -type f -name "*.log" -ls
⚡ 2. Быстрый поиск по индексам — locate
locate ищет файлы по базе данных, а не в реальном времени, что делает его значительно быстрее find.
📘 Пример
locate nginx.conf
locate -i sshd
| Команда | Описание |
|---|---|
locate имя |
поиск по базе |
updatedb |
обновить базу данных |
-i |
игнорировать регистр |
-c |
показать количество найденных файлов |
[!NOTE] Если система только установлена, сначала выполни:
sudo updatedb
🧮 3. Поиск текста внутри файлов — grep
grep "Listen" /etc/httpd/conf/httpd.conf
grep -r "server" /etc/nginx/
| Опция | Значение |
|---|---|
-r |
рекурсивный поиск в подкаталогах |
-i |
игнорировать регистр |
-n |
показывать номера строк |
--color=auto |
подсветка найденного текста |
📘 Примеры:
# Найти упоминания "root" в файлах /etc
grep -R --color=auto "root" /etc
# Найти строки с ошибками в логах
grep -i "error" /var/log/syslog
[!TIP] Для поиска по бинарным файлам можно использовать
strings | grep.
📄 4. Просмотр содержимого файлов — cat
cat /etc/os-release
Выводит содержимое файла в стандартный поток вывода.
🔹 Полезные опции
| Опция | Описание |
|---|---|
-n |
пронумеровать строки |
-b |
нумеровать только непустые строки |
-A |
показать все символы (включая невидимые) |
📘 Примеры:
cat -n /etc/passwd
cat -A /etc/hostname
[!TIP]
catотлично подходит для объединения файлов:cat part1.txt part2.txt > full.txt
📜 5. Пошаговый просмотр больших файлов — less
less /var/log/syslog
Удобная утилита для чтения больших файлов постранично.
Команда внутри less |
Действие |
|---|---|
↑ / ↓ |
перемещение по строкам |
PgUp / PgDn |
листание страниц |
/текст |
поиск по тексту |
n / N |
повтор поиска вперёд / назад |
q |
выход |
📘 Пример:
sudo less /var/log/auth.log
[!TIP] Можно комбинировать:
grep "error" /var/log/syslog | less
🔚 6. Просмотр конца файла — tail
tail /var/log/syslog
Показывает последние строки файла (по умолчанию 10).
| Опция | Описание |
|---|---|
-n |
указать количество строк |
-f |
следить за изменениями в реальном времени |
-F |
то же, но с авто-переподключением при изменении файла |
📘 Примеры:
tail -n 50 /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
[!TIP] Очень полезно при отладке:
tail -f /var/log/messages | grep "sshd"
🔝 7. Просмотр начала файла — head
head -n 20 /etc/passwd
Показывает первые строки файла.
📘 Пример:
head -n 5 /var/log/syslog
[!TIP]
headиtailможно комбинировать для извлечения нужного диапазона строк.
🧠 8. Просмотр метаданных файла — stat
stat /etc/hosts
Показывает:
- размер файла;
- время последнего доступа/изменения;
- права доступа;
- владельца и группу.
📘 Пример:
stat /var/log/syslog
[!NOTE] Альтернатива:
ls -lh --time-style=long-iso /etc/hosts
🧰 9. Поиск файлов по размеру и дате
# Найти файлы больше 500 МБ
find /home -type f -size +500M
# Найти файлы изменённые за последние 7 дней
find /etc -type f -mtime -7
📘 Комбинированный пример:
find /var/log -type f -name "*.log" -mtime -3 -size +10M
[!TIP] Можно автоматически сжимать найденные логи:
find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;
⚙️ 10. Быстрые приёмы и комбинации
🔹 Найти и просмотреть сразу:
find /etc -name "sshd_config" -exec cat {} \;
🔹 Найти файл и вывести первые строки:
find /var/log -name "*.log" -exec head -n 3 {} \;
🔹 Смотреть файл “вживую” при обновлении:
tail -f /var/log/syslog | grep "systemd"
🔹 Найти большие файлы и отсортировать по размеру:
find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -hr | head
🚀 Заключение
Команды find, locate, grep, cat, less, head, tail и stat
— это набор инструментов, без которых невозможно представить администрирование Linux.
Освоив их, ты сможешь:
- быстро находить нужные файлы;
- анализировать их содержимое;
- мониторить изменения в реальном времени;
- автоматизировать задачи поиска и анализа.
[!TIP] Для ускорения работы добавь алиасы в
~/.bashrc:alias ff='find . -type f -name' alias fgrep='grep -R --color=auto' alias logs='cd /var/log && ls -lh'Применить:
source ~/.bashrc