Wednesday, August 3, 2011

bash history: args

Я постоянно забываю, как работают внутренние переменные для работы с историей баша. Вот на днях я потянул руку и тепер на ней на неделю гипс, поэтому всякие мелкие фишечки сокращающие лишние клавиатурные комбинации особенно актуальны. Кстати, ионовские биндинги тоже поменялись, но пока непонятно, как они покажут себя в бою, т.к. пока что идёт "обкатка".

[igor@nastya 10:38:50 ~]
$ gqview /tmp/screenshot-2011-08-03-10\:06.png
[igor@nastya 10:49:13 ~]
$ ^gqview^mv Dropbox/Public/music.png
mv Dropbox/Public/music.png /tmp/screenshot-2011-08-03-10\:06.png
mv: cannot stat `Dropbox/Public/music.png': No such file or directory
[igor@nastya 11:19:44 ~]
$ mv !!:2 !!:1
mv /tmp/screenshot-2011-08-03-10\:06.png Dropbox/Public/music.png

(кстати, да - полчаса это я столько искал и читал гайд по башу %)

Во-первых, баш, как нормальная (читать "не-awk") утилита, нумерует аргументы с нуля. !! - предыдущая команда (sudo !! является, пожалуй, наиболее частым моим применением этой функции. !abracadabra - последняя команда, в которой был текст abracadabra.

Пользуясь случаем, йцукенг - редкостное говно, а dvorak-r почти так же охрененен, как programmer's dvorak