Надо оживить рубрику с однострочниками на bash. Раньше регулярно публиковал, так как вижу очень большой отклик на подобные заметки. Да я и сам их люблю. С удовольствием читаю у других и забираю к себе в закладки то, что посчитаю полезным. У меня большая структурированная коллекция bash команд, разбитая по темам и приложениям. Пополняется уже лет 15. Складываю туда только то, что реально использую, а не всё подряд. Иначе смысл теряется. Рекомендую поступать так же.
Работа с файлами и директориями
📌 Создание сразу нескольких директорий dir1, dir2, dir3:# mkdir -p -v /home/user/{dir1,dir2,dir3}
То же самое, только с файлами. Создаём 3 файла:# touch file0{1,2,3}
Переименовываем файл:# mv file.{old,new}
Удобный приём с оператором { }, можно использовать в различных командах.
📌 Смотрим файл конфигурации без комментариев (начинаются с ; или #) и пустых (^$) строк:# grep -E -v '^;|^#|^$' /etc/php.ini
Этим постоянно приходится пользоваться, особенно в конфигах php, asterisk, postgresql.
📌 Удаляем комментарии и пустые строки и записываем чистый конфиг в новый файл:# sed '/^;\|^$\|^#/d' php.ini > php.ini.clean
Изменение параметра в конфиге post_max_size на новое значение:# sed -i 's/^post_max_size =.*/post_max_size = 16M/g' php.ini
Сначала запустите команду без ключа -i и проверьте результат. Файл не изменится.
📌 Сравниваем содержимое файлов двух директорий с выводом результата в файл:# diff -Naur /var/www/site.ru/ /mnt/backup/site.ru/ > ~/site.diff
Удобно для поиска изменений в файлах сайта после взлома. Сравниваете с бэкапом и сразу все изменения перед глазами.
📌 Считаем размер всех файлов определённого типа в директории. # i=0; for n in $(find /mnt/files -type f -name '*.iso' -print \
| xargs stat --printf "%s "); do ((i+=n)); done; echo $i
Результат будет в байтах.
Вам было бы интересно увидеть разбор каких-то длинных и на первый взгляд непонятных конструкций на bash? Я хоть и не пишу сам ничего сложного, но всегда понимаю, что реально происходит в выполняемых конструкциях, даже если они очень длинные и кажутся обфусцированными.
#bash
>>Click here to continue<<
