watch me

Иногда бывает, что у вас пропал интернет и соединение к консоли сервера оборвалось, а когда вы залогиниваетесь снова, то обнаруживаете, что консоль не умерла, а в ней еще запущен какой-то процесс. Убивать ту консоль очень не хочется, а запустить команду в скрине (screen) вы забыли. Что делать?

watch vs screen

screen – очень удобная утилита. Если нужно надолго запустить команду и/или отсоедниться от консоли не закрывая, нужно зайти в screen, запустить команду, выйти из скрина и можно даже уйти с сервера. Когда вернетесь, в скрине будет выполняться (или уже выполнена) ваша команда, например:

screen
find / -name a1*.txt
[CTRL-A-D]

# screen detached

# logout/login

screen -r

# search results

[CTRL-D]

# screen closed

Для подробностей, читайте man screen. Если вы до сих пор не знали эту утилиту, уверен, вы ее полюбите =)

Но как может помочь watch с "умершей" консолью?

Командой watch -W можно подключиться к консоли в режиме управления, тогда можно не только наблюдать, но и полноценно управлять ею, словно это ваш сеанс.

watch ttyp1

# or

watch p1

[CTRL-G]

# watch detached

watch -W p1

# "rw mode"

Может кому-то пригодится. =)

N.B.

ядро должно быть собрано с устройством snp:

device snp

иначе при запуске команды watch вы получите сообщение:

watch: snp module not available: No such file or directory
watch: open /dev/snp0: No such file or directory

Теги: , , , , , , ,

Интерактивное наблюдение

Все *nix’оиды знают команду top и аналоги – htop, mytop и т.д.  Аналогичны эти программы в своем принципе работы – постоянном (интерактивном) обновлении информации на экране.

А если нужно постоянно выводить на экран результат работы какой-то команлы или команд? Да еще и в удобном виде – с обновлением (очисткой) экрана. Как быть?

Способ #1

watch (для FreeBSD его родственник – gnu-watch)

Команда (gnu-)watch позволяет многократно запускать заданную команду или команды, выводя результат на экран. Примеры:

gnu-watch --differences=cumulative ls –la

Данная команда позволяет следить за файлами, при этом у измененных файлов будет подсвечен размер. Если не указывать cumulative, то изменение на экране будет подсвечено только один раз, при первом обнаруженном изменении во время обновления.
Я люблю наблюдать, как идет процесс сборки рейда:

gnu-watch -t gmirror status
Способ #2

работает везде при наличии bash

bash -c 'while true; do echo '^L'; gmirror status; echo; date; sleep 2; done'
# или так
bash -c 'while :; do clear; gmirror status; echo; date; sleep 2; done'

^L – в данном случае это !один! символ “Control-L”. Если вы просто нажмете эту комбинацию, то ничего не произойдет, точнее – вы очистите экран. Чтобы напечатался символ нужно прибегнуть к хитрости:

CTRL+V+L – о таком способе ввода непечатаемых символов я уже упоминал в этой статье.

Может пригодится ;)


Теги: , , , , , , , ,

Make and Enter

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

bash:

echo 'mkcd() { mkdir -p "$@" && cd "$_"; }' >> ~/.bashrc

csh (tcsh):

alias mkcd 'mkdir -p \!*; cd \!*'
(добавьте эту же строку в .cshrc)

ksh

alias mkcd='_(){ mkdir -p $1; cd $1; }; _'

Теперь пользуйтесь:

mkcd foo/bar

Enjoy!


Теги: , , , , , , , ,

Цветик-семицветик

Маленькое дополнение к статье о раскраске tcsh.

Если, после настроек цветов, нажать TAB, то файлы и каталоги выведутся раскрашенными, согласно наших настроек, и будут раскрашены определенные типы файлов (по названиям расширений). Но если просто набрать ls, ничего подобного не произойдет. Почему?

Все потому, что tcsh использует цвета из переменной LSCOLORS, а не LS_COLORS. Вместо ls можно использовать ls-F, встроенный в tcsh:

ls-F [-Option(s)] [file ...]
	       This built-in is just like `ls -F', but much faster.


Если ls-F вызывать с параметрами, он передаст их обычному ls:

ls-F passes its arguments to ls if it is given any switches,
so `alias ls ls-F' generally does the right thing.


Итак, добавляем алиас:

alias ls ls-F


и радуемся цветам :)


Теги: , , , , , , ,

Настраиваемое приветствие в консоли

Каждый раз, когда вы логинитесь по ssh на сервер или компьютер, вы видите унылое говно одну и ту же картину:

Last login: Mon Aug 17 15:02:25 2009 from ip.com
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California.  All rights reserved.

FreeBSD x.y-RELEASE-pZ (KERNEL) #A: Thu Apr 17 11:21:34 EDT 2008

Welcome to FreeBSD!
For information on the web, visit us at www.pcbsd.org
“man tuning” gives some tips how to tune performance of your FreeBSD system.
— David Scheidt <dscheidt@tumbolia.com>

Т.е., информацию Last login, копирайт, содержимое /etc/motd (версию системы) и какой-нибудь fortune. Скучно? Скучно!

Кастрация Кастомизация

“Проснись, Нео!”

Wake up, Neo!

Читать остальную часть заметки »


Теги: , , , , , , , , , , , , , , , , , , , , , ,

Еще раз о настройках tcsh

Хочу продолжить тему о настройках tcsh. Как можно улучшить уже раскрашенный интерфейс? Правильно, раскрасить его еще больше :)

Рисуем радугу

Добавьте в файл .cshrc следующие строки:

setenv LS_COLORS “no=00:fi=00:di=01;36:ln=01;37;44:pi=40;33:so=01;35″
setenv LS_COLORS “$LS_COLORS”:”bd=40;33;01:cd=40;33;01:or=40;31;01″
setenv LS_COLORS “$LS_COLORS”:”ex=01;32;40:*.tar=01;31:*.tgz=01;31″
setenv LS_COLORS “$LS_COLORS”:”*.arj=01;31:*.taz=01;31:*.lzh=01;31″
setenv LS_COLORS “$LS_COLORS”:”*.zip=01;31:*.z=01;31:*.Z=01;31″
setenv LS_COLORS “$LS_COLORS”:”*.gz=01;31:*.deb=01;31:*.jpg=01;35″
setenv LS_COLORS “$LS_COLORS”:”*.gif=01;35:*.bmp=01;35:*.ppm=01;35″
setenv LS_COLORS “$LS_COLORS”:”*.tga=01;35:*.xbm=01;35:*.xpm=01;35″
setenv LS_COLORS “$LS_COLORS”:”*.tif=01;35:*.mpg=01;37:*.avi=01;37″
setenv LS_COLORS “$LS_COLORS”:”*.gl=01;37:*.dl=01;37:*.tex=01;35″
setenv LS_COLORS “$LS_COLORS”:”*.ps=01;35″
setenv LS_COLORS “$LS_COLORS”:”*.php=01;33″
setenv LS_COLORS “$LS_COLORS”:”*.sh=00;31″
setenv LS_COLORS “$LS_COLORS”:”*.txt=01;37:*.conf=01;37:*.config=01;37″

Переменная LS_COLORS содержит список файлов и их цвета. Вы можете добавить любые другие расширения файлов. Разберем один пример:

Читать остальную часть заметки »


Теги: , , , , , , , , , , , , , , ,

Настройка строки приглашения tcsh

Так исторически сложилось, что мне больше по вкусу tcsh, а не bash. Я не спорю, bash очень мощный и удобный шелл, я пользовался им, когда программировал на Mac OS X, но сейчас часто пользуюсь FreeBSD, а там по умолчанию именно tcsh.

Если вы тоже им пользуетесь, можете попробовать красивые и удобные настройки. Напомню, что прописать их нужно в свой файл настроек – ~/.cshrc .

Читать остальную часть заметки »

Теги: , , , ,