Поменять дату изменения файла в интерактивном режиме

Иногда читаешь ленту с сайта консольных гуру и думаешь: «Ну нафига, нафига кому-то понадобилось делать вот такое?»

touch -d $(zenity --calendar --date-format=%F) filename


А потом присмотришься — ничего приемчик, может и пригодиться. Да и вспомнить возможности утилиты touch не помешает (я ей обычно пустые файлы создаю).

ПоздравляVim!

У консольщиков праздник: 20-летний юбилей культового текстового редактора Vim.



Vim изначально развивался для платформы Amiga как редактор для работы с исходными текстами. Порт для Unix появился спустя год после первого релиза, в это же время была изменена расшифровка имени проекта с Vi IMitation на Vi IMproved. Вначале редактор Vim был очень близок к Vi, обладая лишь единичными усовершенствованиями, такими как многоуровневый откат изменений. Позднее к работе над Vim подключились другие энтузиасты и в редактор были добавлены такие средства, как многооконный режим редактирования, визуальный режим выделения блоков, работа с макросами, гибкие механизмы поиска и замены, подсветка синтаксиса, автоформатировние кода и прочие атрибуты интегрированных сред разработки.

Подробности.

ImageMagick: печатаем большое изображение на нескольких листах

С помощью ImageMagick можно поделить огромное изображение (например, разрешения 7000x4000) на несколько небольших для печати:

convert -crop 1500x2000 file.jpg file%02d.jpg


Получаем файлы вида file00.jpg, file01.jpg разрешением 1500x2000.

Подсмотрел тут.

ImageMagick: конвертируем pdf в png

Благодаря ImageMagick это очень просто, для png приемлемого качества:

convert -density 300 ./Desktop/srkt.pdf -resize 50% ./Desktop/srkt.png

Запрет на удаление файлов

Делается так (в текущей директории):

find . -maxdepth 1 -type f -exec chmod +a "everyone deny delete" {} \;


Источник.

Консольный калькулятор bc

В моем повседневном обиходе остается всё меньше остается GUI-приложений. Вот и калькулятору нашлась замена: утилита bc. С помощью неё можно не только выполнять типовые арифметические операции,

echo "56.8 + 77.7" | bc


но и выполнять, например, приведения из одной системы счисления в другую:

echo "obase=16; ibase=10; 56" | bc


А вот как можно перевести количество секунд в соличество минут и секунд:

echo "obase=60; 777" | bc


Еще одна интересная возможность — регулирование количества знаков после запятой с помощью параметра scale:

echo "scale=6;  60/7.02" | bc

"Бесшумная" функция

Иногда нужно запустить команду так, чтобы она не выводила ничего на экран. Без этого, например, не всегда удается поместить процесс в бэкграунд. На этот случай предлагается такое решение:

function quietly () { $* 2> /dev/null > /dev/null; };


или даже

function quietly () { $* 2 & > /dev/null }


Пример использования:

quietly lighttpd -D


Источник.

Выделить уникальные строки

Сравнить 2 файла и вывести в третий строки, встречающиеся только во втором:

$ comm -13 <(sort file1) <(sort file2) > file-new


Источник.

Дождаться включения хоста

Вот как можно пинговать временно недоступные хосты, дожидаясь момента их появления в сети:

while [[ 1 ]]; do ping $REMOTE_HOST -c 1 -w 2 2&>/dev/null; if [[ $? -eq 0 ]]; then echo " $REMOTE_HOST is alive\!"; break; else echo -n '.'; fi; done


Команда печатает на экране точки с интервалом 2 секунды до тех пор, пока пинги не начнут достигать цели.

Скринкаст посредством ffmpeg

Следующая команда позволяет записать в mp4-файл происходящее на экране компьютера + звук с микрофона:

ffmpeg -f alsa -i default -f x11grab -s sxga -r 10 -i :0.0 -f mp4 -s vga -sameq out.mp4


Источник.