Консольные этюды Andrey Matveev Хакер, номер #071, стр. 071-102-5 # ln -s /tmp /var/tmp Единственное ограничение - файловая система /tmp должна быть смонтирована без опции -noexec. А чтобы в разы повысить быстродействие производимых операций, можно весь /tmp (в данном случае размером 64 Mb) разместить в оперативной памяти: openbsd# vi /etc/fstab swap /tmp mfs rw,nodev,nosuid,noatime,-s=131072 0 0 openbsd# mount -a openbsd% mount | grep mfs mfs:21734 on /tmp type mfs (asynchronous, local, noatime, nodev, nosuid, size=65536 1K-blocks) И при желании на лету криптовать данные с помощью AES: openbsd# sysctl -w vm.swapencrypt.enable=1 vm.swapencrypt.enable: 0 -> 1 Пользователи FreeBSD смотрят в сторону md и mdconfig: freebsd# vi /etc/fstab md /tmp mfs rw,-s64m 0 0 Семь способов создания текстового файла нулевой длины % :> example.txt % echo > example.txt % touch example.txt % cp /dev/null example.txt % cat /dev/null > example.txt % cat > example.txt Ctrl+D % > example.txt Ctrl+D Стандартные потоки Большинство команд, в том числе и оболочка, для своей работы автоматически открывают три файла: fd 0 (stdin) - стандартный поток ввода, обеспечивает ввод данных для программ fd 1 (stdout) - стандартный поток вывода, как правило, вывод поступает на экран fd 2 (stderr) - стандартный поток ошибок, как правило, вывод поступает на экран Конвейерная обработка Конвейеры (pipes) занимаются только тем, что перенаправляют вывод одной команды на вход другой, образуя так называемые цепочки команд. В одной командной строке может быть несколько конвейеров: % mysql --user=jabberd2 --password=noidea jabberd2 -e 'SELECT * FROM active' | fgrep -v collection-owner | sort | awk '{ print $1 }' > /var/www/htdocs/jabber2_users.txt Логин под калькой Если требуется произвести журналирование интерактивной сессии, то стоит воспользоваться одним из этих приемов: % ksh -i |& tee Xsession.log % script ntpd_hacking.log За подробностями обращайся к страницам справочных руководств tee(1) и script(1). |