Инструменты пользователя

Инструменты сайта



// Примитивный SMTP клиент

Про SMTP протокол знают все: текстовый, простой, можно почту отослать и при помощи telnet. Собственно, при помощи оного и сделан скрипт ниже.

// Си, прекрасное

http://eli.thegreenplace.net/2011/02/15/array-initialization-with-enum-indices-in-c-but-not-c/ - это воистину прекрасно! Использовать enum для именованной инициализации массива. Можно делать в C99, не работает в C++

Ну и ссылки, на правах мемориза:

  • http://www.advancedlinuxprogramming.com/alp-folder - по названию сайта уже понятно, что это такое :) книжка «Advanced Linux Programming» в сободном доступе. На просторах интернета встречается русский перевод, можно поискать.
  • http://mij.oltrelinux.com/devel/unixprg/ - «UNIX programming examples» - примеры кода на Си для unix, в частности - сокеты, IPC, потоки.

// Не люблю цитатники, но...

это меня проняло:

Еще один процесс, который может породить множество зомби, это демон… Иногда я должен напоминать себе, что пишу статью по программированию, а не сценарий фильма ужасов.

Отсюда: http://ibash.org.ru/quote.php?id=12598 по наводке l1feh4ck3r'а

// Porting Unix Software

Пользительная книжка, не лишне держать под рукой:
http://www.lemis.com/grog/Documentation/PUS/

Книжка представлена в виде единого PDF и отдельных PDF для каждой части.

И прицепом: Object-Oriented Programming With ANSI-C

Если у кого есть ссылка на переводы - киньте в комменты.

// info с человеческим лицом

Все знают про man страницы (man чаво?) и удобную программу apropos, все, надеюсь, ими активно пользуются.

Все знают и про info-страницы, рожденные в недрах проекта GNU, но, управление у программы info достаточно… неудобное, just for me.

Вчера дошли руки, посмотреть альтернативный браузер документации в формате инфо. Но моей лени хватило только набрать команду pacman -Ss info, среди вывода нашел такое:

community/pinfo 0.6.9-3
    A hypertext info file viewer

Поставил, запустил… Ну все, теперь и info активно пользоваться будут:

  • навигация в стиле links/elinks/w3m, вперед-назад - по Enter и стралками влево-вправо
  • выход - q
  • поиск - s или /
  • список всех топиков - d или b
  • переход к узлу - g

просто и со вкусом. Внешние ссылки открываются, по умолчанию, в lynx, но, думаю (не разбирался пока), заменить на что-то своё будет не проблема.

Ну и снимок:

// Solaris: Обзорная статистика по использованию CPU

Опять скрипт небольшой, я обозвал его loadcpu

#!/bin/sh
 
### CPU loading summary (wrapper for 'mpstat')
 
if [ x"$1" != x"---run_in_bash" ]; then
    bash $0 ---run_in_bash $@
    exit $?
fi
 
shift
 
# currently unused
cpu_count=`mpstat | grep -v CPU | wc -l`
 
mpstat | grep -v CPU | nawk '
{
    usr+=$13;
    sys+=$14;
    wt+=$15;
    idl+=$16;
    CPU_COUNT++;
}
END{
    printf("            %5s %5s %5s %5s %5sn", "count", "usr", "sys", "wt", "idl");
    printf(" cpu total: %5d %5d %5d %5d %5dn", CPU_COUNT, usr, sys, wt, idl);
    printf("cpu middle: %5d %5d %5d %5d %5dn", 1, usr/CPU_COUNT, sys/CPU_COUNT, wt/CPU_COUNT, idl/CPU_COUNT);
}'

Ну и сразу небольшой обзорный скриптик, показывает утилизацию просессора, памяти, свопа, подсистемы ввода-вывода, среднюю нагрузку, использует скрипт ''free'' и loadcpu что представлен выше, скрипт обозвал sysstat:

#!/bin/sh
 
### System stat (cpu/mem/io/load average/uptime) summary
 
if [ x"$1" != x"---run_in_bash" ]; then
    bash $0 ---run_in_bash $@
    exit $?
fi
 
shift
 
echo "** CPU"
`dirname $0`/loadcpu
 
echo "** MEM"
`dirname $0`/free
 
echo "** IO"
iostat -xn
 
echo "** Load average and Uptime"
uptime