Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​Надо оживить рубрику с однострочниками на 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