Виртуальный диск в памяти: как создать ramdisk в Linux?



15 коммент.
Бывают задачи, когда нужно работать с большим количеством мелких файлов и делать это по возможности быстро, без завязок на меееедленную файловую подсистему. Ветераны вспомнят о том, что есть такой виртуальный диск, он же - RAM-дисках (ramdisk) и будут совершенно правы - это действительно выход, а сделать ramdisk в Linux можно буквально в один клик на клавиатуре.

Собственно, в ядре должна быть поддержка tmpfs, и если вы (или авторы вашего дистрибутива) не любители усложнять себе жизнь, она там должна быть.
Быстренько создаём новую точку монтирования:
# mkdir /mnt/tmpfs/
# chmod 777 /mnt/tmpfs/
и даём все права на использование. После этого даём команду (от рута или через sudo):
# mount -t tmpfs -o size=xxxM tmpfs /mnt/tmpfs/
или
$ sudo mount -t tmpfs -o size=xxxM tmpfs /mnt/tmpfs/
где xxxM есть размер RAMdisk в Мегабайтах.
Будьте осторожны и не размахивайтесь слишком широко: если вы попросите создать ramdisk больше, чем имеете оперативной памяти, система начнёт сгружать всё в swap-файл и дела пойдут очень медленно и грустно.

Если же вы хотите изменить размер ramdisk - это просто:
# mount -o remount -o size=yyyM /mnt/tmpfs/
или
$ sudo mount -o remount -o size=
yyyM /mnt/tmpfs/
При этом содержимое диска не пропадёт, но его размер тут же увеличится (при уменьшении также ничего не пропадёт, если только данных не больше, чем диск).

Другие способы создания виртуальных дисков в памяти хорошо описываются в англоязычном посте.

Предупреждаю особо горячих финских парней: это RAM-диск, а это значит, что всё его содержимое после отключения питания машины будет безвозвратно потеряно. Будьте бдительны.

Ссылки
Есть толковые посты о том, как в Linux сделать виртуальный диск в памяти здесь и тут.
Читать далее

Быстрая смена каталогов в консоли Linux с помощью WCD



15 коммент.
Для того, чтобы быстро прыгать по каталогам в Linux, можно использовать разные продвинутые оболочки типа zsh, а можно прикрутить маленький костылёк wcd к старому-доброму bash. О том и пост - самому не забыть и читателя потешить :-)

Итак, что мы имеем после установки wcd? Набираем часть имени каталога, нажимаем Enter и видим варианты - выбираем один из них и тут же перелетаем в нужный нам каталог.




Как установить Wcd?
Установка проста:

aptitude install wcd
Далее создаём ссылку на wcd.exec в домашнем каталоге:
ln -s /usr/lib/wcd/wcd.exec ~/bin
либо (для новых версий)

ln -s /usr/bin/wcd.exec ~/bin

и добавляем следующую функцию в стартовый файл .bashrc оболочки bash:
function wcd
{
$HOME/bin/wcd.exec $*
. $HOME/bin/wcd.go
}
 
После этого следует перезалогиниться или создать новую оболочку (открыть новый таб).

Как использовать WCDДля этого сначала создадим деревья директорий. Например

$ wcd -A .
Точка в конце говорит о том, что создаём деревья директорий, начиная с текущей. Должно ответить просто:
Wcd: Please wait. (re)Scanning disk. Building treedata-file from /home/beast
И всё. Теперь получаем удовольствие.
Итак, есть каталог /home/beast/docs/matlab/Sci/cvkonnik
Но набирать это всё долго и лениво. Вместо этого пишем:


$ wcd cvk*
И нажимаем большую и любимую клавишу Enter. При этом в консоли выдаётся менюшка вида:
a /home/beast/docs/matlab/Sci/cvkonnik
b /home/beast/docs/matlab/docus/Work/otherscidocs/Sci/cvkonnik

Wild match for 2 directories. w=up x=down ?=help Page 1/1
Please choose one ( to abort):

Нажимаю букву b и тут же перелетаю в нужный мне каталог:

beast@notebeast:~/docs/matlab/docus/Work/otherscidocs/Sci/cvkonnik$
И все дела. Очень удобно и очень здорово!

Ещё веселее, если такой каталог у вас один - переход произойдёт сразу же:

wcd IST*
-> /home/beast/docs/matlab/docus/articles/SPIEproceedings/IST2009
beast@notebeast:~/docs/matlab/docus/articles/SPIEproceedings/IST2009$


Обновление дерева каталогов
Если у вас добавился новый каталог, то wcd автоматом его, увы, не подхватит. Но это не беда - просто пересоздадём деревья директорий:

$ wcd -A .

И после этого ваши новые каталоги снова в строю.

Ссылки
На всякий случай WCD расшифровывается как Wherever Change Directory. Сайт автора программы, но он очень аскетичен. Также толковую статью по wcd можно найти на ЛинСовете
тут. Замечательная статья по поводу WICD есть на блоге Максима Иванова.
Читать далее