13 нояб. 2010 г.

Включение profiler в xdebug для php-cli

#~apt-get install php5-xdebug

#~php -d xdebug.profiler_enable=On myfile.php

30 окт. 2010 г.

devilspie - Запуск приложения на определенном рабочем столе

Необходимо : запускать приложения на разных виртуальных рабочих столах в Gnome при старте. Например браузер на втором, терминал на третьем
Нашел только такое решение(по ощущениям это костыль):

#apt-get install devilspie gdevilspie

собственно сама утилита и морда к ней

В морде прописать нужные опции запуска
В итоге будут записаны следующие файлы (к примеру)

doc@:~/.devilspie$ cat chrominum.ds 
; generated_rule chrominum
( if 
( begin 
( is ( application_name ) "chromium-browser" )

( begin 
( maximize )
( set_viewport 2 )
( println "match" )
)
)


Утилиту логично стартовать автомататически, это тоже настраивается в морде. Ссылки по теме:
http://welinux.ru/post/3233/

14 окт. 2010 г.

Использование значения по умолчанию в bash

Синтаксис

${parameter:-defaultValue}
var=${parameter:-defaultValue}
Пример скрипта:
a=${1:-10}
echo $a

Результаты работы:
[root@vps]# sh test.sh 1
1
[root@vps]# vim test.sh
5

26 сент. 2010 г.

Преобразование чисел в разных системах счисления средствами shell

С помощью bc:
vm1:~$ echo 'obase=2;254'| bc 
11111110
obase - основание той СС, в которою переводим, в данном примере - 2. Исходное число записано в 10-ой СС

Преобразование в десятичную СС
vm1:~$ echo 'ibase=2;111110'| bc
62
В данном случае 2 - основание той СС, из которой переводим в десятичную. В случае неверной записи числа, например двоичного в виде "102", оно будет обработано как "101"

20 сент. 2010 г.

Настройка сети и доступа в интернет из гостевой ОС в VirtualBox

По умолчанию, когда ставил гостевой Debian в VirtualBox, создается виртуальный сетевой интерфейс c NAT, я оставил также по-умолчанию DHCP - включено. В хост-ОС интернет - через VPN. Для экспериментов внутри гостевого Debian был установлен OpenVZ и поднято 2 VPS.
При таких условиях у меня работал интернет в гостевой ОС, не работал на vps, и vps не были видны из хоста.
В итоге проблему решил, но вполне вероятно криво:
1. Отключил DHCP
2. Хосту для этого интерфейса присвоил IP 192.168.0.1, гостевой - 192.168.0.2, vps'ам 192.168.0.101-102, gateway для Debian соответственно 192.168.0.1

3. В настройках интерфейса в VirtualBox вместо NAT поставил Host Interface Networking
4. Те DNS, которые предлагает провайдер в такой схеме у меня не заработали, в итоге я прописал отсюда freedns в гостевом Debian
/etc/resolve.conf
и на vps'ах
vzctl set 101 --nameserver 4.2.2.1 --nameserver 4.2.2.3 --save
и все завелось.

17 сент. 2010 г.

Регулярные выражения в awk

Пример:  awk 'BEGIN {FS=":"} $1 ~ "^l.*" {print $0}' /etc/passwd
Что делает : выводит все строки из /etc/passwd, в которых первое поле начинается с новой строки и на букву "l"
Объяснение:
блок BEGIN в начале задает разделитель, аналогично ключу -F
Далее для каждой строки сравнивается $1 и регулярное выражение "^l.*". Если $1 подпадает под регулярное выражение (символ ~, аналогично, если необходимо, чтобы НЕ подпадало, то !~ ), то выполняется блок print $0
В данном примере условие может быть проще, вместо $1 ~ "^l.*" просто регулярное выражение:
awk 'BEGIN {FS=":"} /^l.*/ {print $0}' /etc/passwd

15 сент. 2010 г.

Присвоение значения переменной в awk вне сценария

echo $min | awk --assign format="%12s|" '{printf(format,$1)}'
Чем удобно? в переменную формат можно передать значение, например аргумента функции в виде --assign format="%$1|", параметр $1 использовать внутри awk-программы будет менее прозрачно, как минимум, и вообще не факт, что такое можно сделать.