Привет, гуру Linux-оболочки!
Ты тратишь время на рутину: многострочный поиск, управление ресурсами и сбор метаданных.
Эти утилиты позволяют тебе быстро решать сложные задачи, избегая написания длинных скриптов.
1. ⚙️
stat: Вся информация о файлеstat выдает подробную и многословную статистику о заданном файле, каталоге или устройстве. Сюда входит тип файла, права доступа, inode, размер и время.# Получить детальные метаданные о файле
stat /etc/passwd
# Извлечь конкретные данные (например, inode и тип файла)
# -c%i - inode number, -c%F - file type
stat -c%i,%F /etc/passwd
stat используется, чтобы быстро получить всю информацию, включая время последнего доступа (atime), модификации (mtime) или изменения статуса (ctime).2. 🚀
xargs: Параллельное выполнение командИспользуй
xargs для передачи аргументов команде из потока ввода (stdin), что особенно полезно, когда список аргументов слишком длинный для обычной подстановки.# Найти все файлы *.log и удалить их, даже если их миллион
find /var/log/ -name "*.log" -print0 | xargs -0 rm -f
# Найти все .mp3-файлы и вывести их размер (с использованием xargs)
find ~/ -name "*.mp3" -print0 | xargs -0 du -h
xargs разбивает поток данных на достаточно маленькие блоки для обработки, что позволяет тебе ускорить операции с большим количеством файлов.3. 💾
mktemp: Создание безопасного временного файлаВсегда создавай временные файлы с помощью
mktemp для обеспечения "уникального" имени файла. Это предотвращает атаки, связанные с гонкой (race condition).# Создать временный файл в /tmp с уникальным именем
TMP_FILE=$(mktemp)
echo "Рабочие данные" > $TMP_FILE
# После использования, не забудь удалить
rm $TMP_FILE
Когда
mktemp вызывается без аргументов, он создает файл нулевой длины в /tmp.4. 🔗
lsof: Найди, что держит ресурсЕсли ты не можешь размонтировать файловую систему (
umount fails), lsof показывает все открытые файлы и связанные с ними процессы.# Узнать, какие процессы используют директорию /mnt/data
lsof /mnt/data
# Показать, какие процессы открыли файл /usr/bin/vim
fuser -u /usr/bin/vim
lsof помогает тебе определить, какие файлы все еще открыты, чтобы ты мог безопасно убить соответствующие процессы.5. 🔑
which, whereis, whatis: Быстрый поиск документацииЭти три команды помогают тебе быстро найти исполняемый файл или узнать его назначение, что критически важно при работе в новой системе:
# Показать полный путь к исполняемому файлу (только bin)
which rm
# Вывод: /usr/bin/rm
# Показать путь к bin, исходникам И man-странице
whereis rm
# Вывод: rm: /bin/rm /usr/share/man/man1/rm.1.bz2
# Получить краткое описание команды из базы данных whatis
whatis whatis
# Вывод: whatis (1) - search the whatis database for complete words
6. 📊 Комбинирование:
cut, sort, uniqИспользуй эти три фильтра вместе для анализа структурированных текстовых файлов или вывода команд (например,
/etc/passwd).# Найти 5 самых популярных оболочек в системе
cut -d':' -f7 /etc/passwd | sort | uniq -c | sort -rn | head -5
# cut -d':' -f7: извлекает поле 7 (оболочку).
# sort: сортирует, чтобы uniq работал.
# uniq -c: подсчитывает последовательные дубликаты.
# sort -rn: сортирует в обратном порядке по числам (самые популярные сверху).
💡 Вывод
Эти хаки и утилиты — настоящий золотой фонд командной строки. Используя
xargs, stat и связку фильтров (cut, sort, uniq), ты сможешь превратить рутинные задачи в быстрые однострочники.#Шпаргалка #Хаки #CLI #Bash #Скрипт #Утилиты