Если вы ещё не поняли, то это самый классный канал в телеграме про IT.
ag это наверное самая мощная утилитка для поска по тексту в файлах, в огромной куче всего она может искать очень быстро
Изначально мне было не очень понятно почему он по умолчанию не ищет в скрытых файлах, и я писал что-то типа
ag blah .*Но эта команда ищет ТОЛЬКО в скрытых файлах, поэтому потом надо искать еще и в обычных. Но можно их обьединить
ag blah .* .Но в обоих вариантах игнорируется
.agignore, .gitignore, etc, что собственно немного замедляет поиск
Но сегодня я взял и почитал документацию. Оказыается, есть такой параметр как --hidden
При нем ag будет искать в обычных файлах и в скрытых файлах, но при этом будет учитываться .agignore в котором можно явно задать всякий треш типа .git, *.tmp, *.logdf -h может показывать нам, что место еще есть.
Оказывается, что такое может быть тогда, когда вы испольлзуете максимум "inode". inode это собственно, ограничение на количество файлов и директорий на разделе.
Посмотреть можно командой
df -i Filesystem Inodes IUsed IFree IUse% Mounted on dev 16468626 910 16467716 1% /dev run 16483830 1441 16482389 1% /run /dev/mapper/volumegroup-root 6553600 304721 6248879 5% / tmpfs 16483830 100 16483730 1% /dev/shm tmpfs 16483830 4399 16479431 1% /tmp /dev/nvme0n1p2 128016 376 127640 1% /boot /dev/mapper/volumegroup-home 118407168 1140966 117266202 1% /home tmpfs 16483830 10865 16472965 1% /home/dm/.cache /dev/nvme4n1p1 122101760 54 122101706 1% /mnt/backup /dev/nvme0n1p1 0 0 0 - /boot/EFI tmpfs 3296766 159 3296607 1% /run/user/1000А еще узнал, что оказыавется hardlink, в отличие от symlink, можно делать только на одном разделе.
grep или awk за то, что это довольно мощные инструменты. Но иногда люди их применяют там, где можно обойтись без них.
Например, у нас есть команда sensors как на скриншоте и мы хотим взять оттуда температуру диска (только число) для того чтобы выводить куда-нибудь в бар.
В большинстве случаев человек будет мучаться и напишет что-то подобное
sensors | grep "Tccd1:" | cut -d\ -f9Хотя так можно было и не мучаться, тот же sensors может выдавать все в человеческом json формате.
sensors -jСогласитесь, значительно удобнее
sensors -j | jq '."k10temp-pci-00c3" ."Tctl" ."temp1_input"'81067507712 bytes (81 GB, 76 GiB) copied, 69.983 s, 1.2 GB/sБез него
81067507712 bytes (81 GB, 76 GiB) copied, 56.8034 s, 1.4 GB/sdd if=/dev/zero of=./test bs=128M count=604 oflag=directДля теста чтения команду
dd if=./test of=/dev/zero bs=128M count=604 oflag=dsyncКоманда для чтения работает только первый раз, запуская ее повторно файл берется из кэша и скорость показывается огромной Так же, все диски, которые были в тесте были под хорошим охлаждением, ни у одного температура не доходила до критической.