Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 109, ЯНВАРЬ 2008 г.

Tips'n'tricks юниксоида

Andrey Matveev

Хакер, номер #109, стр. 102

(andrushock@real.xakep.ru)

Доблестный юниксоид! Представляю твоему вниманию очередную подборку различных трюков, рекомендаций и советов, касающихся *nix-систем.

Подсчет количества строк в текстовом файле с помощью утилиты sed:

$ sed -ne '$=' ~/.vimrc

В zsh вот так можно просмотреть содержимое файла, не прибегая к утилитам вроде more и less:

$ < ~/.viminfo

При большой многовложенности каталогов, возможно, стоит отказаться от использования команды cd:

$ vi ~/.zshrc

setopt autocd

alias -g ...='../..'

alias -g ....='../../..'

$ . ~/.zshrc

Теперь, чтобы вернуться на три директории вверх, достаточно набрать «....».

Сокращенный вывод при подсчете размера текущего каталога (исключаем перечисление всех файлов, оставляем только подкаталоги):

$ du -h . | grep -v '/.*/' | sort -n

Одна из самых маленьких реализаций форк-бомбы:

$ :(){:|:&};:

В состав практически любой *nix-системы входит мощный калькулятор, который может использоваться в интерактивном режиме или обрабатывать сценарии, написанные на языке, похожем на С. Для примера превратим его в конвертор валют:

% echo "scale=2; 1000/24.92" | bc

40.12

Также с помощью bc удобно выполнять перевод между различными системами исчисления. Например, переведем 20 из dec в hex и обратно:

$ echo "obase=16;20" | bc

14

$ echo "ibase=16;20" | bc

32

Показать календарь на текущий месяц:

$ cal 12 2007

Просматриваем разницу между двумя версиями файла со скроллингом и в цвете:

(~/devel/www)% cvs -fq -d andrey@cvs.openbsd.ru:/cvs diff -u -p \

-r1.23 -r1.24 docs/howto-bridge.html | vim -

Запрет обращения к doubleclick.com с помощью демона named (этот способ позволяет ускорить загрузку некоторых web-страниц):

# vi /var/named/conf/named.conf:

zone "doubleclick.com" {

type master;

file "master/doubleclick.com";

};

# vi /var/named/master/doubleclick.com:

[[ здесь идет стандартная SOA-запись ]]

ad.doubleclick.com.INA127.0.0.1

*.doubleclick.com.INA127.0.0.1

# rndc reload

Чтобы в OpenBSD выполнить полный и быстрый бэкап файловой системы /var на раздел d второго диска, следует ввести следующую комбинацию команд:

# newfs wd1d

# mkdir /mnt/var

# mount -o async /dev/wd1d /mnt/var

# dump 0f - /var | (cd /mnt/var; restore rf -)

Если нужно скопировать только часть файловой системы (в данном случае каталог /var/named), можно воспользоваться командой tar:

# cd /var

# tar cf - named | (cd /mnt/var; tar xpf -)

Используем псевдографику для отображения аптайма:

% uptime | awk '{ while($3--) a=a"="; print "|" a ">"}'

|=====================>

Для того чтобы определить, к какому установленному пакету относится файл foobar, набираем одну из следующих команд:

fedora$ rpm -qf foobar

gentoo$ equery belongs foobar

debian$ dpkg -S foobar

freebsd$ pkg_info -W foobar

openbsd$ pkg_info -E foobar

Обновление в FreeBSD всех установленных пакетов в автоматическом, неинтерактивном режиме:

# export BATCH=yes; portupgrade -a

Вот так в иксах можно копировать в буфер обмена содержимое файлов и вывод различных утилит без выделения мышью и использования комбинации <Ctrl-C>:

$ xclip /etc/passwd

$ uptime | xclip

Пример вставки из буфера (здесь мы пастим URL из другой программы):

$ firefox 'xclip -o'

Кстати, чтобы в терминалке при выделении двойным кликом мыши спецсимволы не считались разделителем слова (то есть выделялись вместе с нужным словом), добавь в файл ~/.Xdefaults или ~/.Xresources запись:

;; для xterm

CharClass: 33:48,37:48,45-47:48,58:48,64:48,126:48,161-255:48

;; для rxvt

Rxvt*cutchars: "`'&()*,;=?@[]{|}><

Чтобы быстро вытащить из груды окон IRC-клиент:

$ wmctrl -R xchat

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001