Dbus — средство межпроцессного взаимодействия. Другими словами, средство позволяющее одной программе «отдавать приказы» другой программе.
В сети легко найти примеры, как из командной строки с помощью DBus управлять различными программами. Но слабо раскрыта тема, как отслеживать сигналы исходящие от других программ. В данной стать хочу исправить эту несправедливость и разобрать пример обработки событий получаемых от системы по средствам Dbus.
Читать полностью »
Рубрика «bash» - 21
Скрипт обрабатывающий события системы с помощю DBus
2014-05-16 в 18:25, admin, рубрики: bash, dbus, метки: bash, dbusБыстрое создание виртуальных хостов Apache при помощи bash скрита
2014-01-22 в 12:34, admin, рубрики: Apache, apache2, bash, Веб-разработка, веб-сервер, метки: apache2, bash, веб-серверНе так давно переехал с VPS на выделенные сервер и передо мной остро встал вопрос по переносу сайтов со на новый сервер, а именно по быстрому созданию виртуальных хостов и баз данных. Конечно же в довесок к серверу шла панель управления ISPmanager, но в этом случае мне не нравилось две вещи:
- Панель делает все за тебя, а мне хочется прокачать скил в области адмиистрирования.
- Не нравится способ создания сайтов через панель, а именно создаваемые пути до папки с сайтом (/var/www/user_name/data/www/site.ru)
В силу этого решил все настраивать ручками. Про установку Apache и php, писать не буду, так как и на Хабре и в интернете очень много материалов по данной теме. Нас же больше интересует быстрое создание пользователя, виртуального хоста, и базы данных. Кому интересно прошу в подкат.
Читать полностью »
Несколько бесплатных книг по программированию на русском языке
2014-01-16 в 11:26, admin, рубрики: bash, mongodb, redis, reverse engineering, rspec, ruby, smalltalk, vim, книги по программированию, Программирование, Учебный процесс в IT, электронные книги, метки: bash, mongodb, redis, reverse engineering, rspec, ruby, smalltalk, vim, книги по программированиюПредставляю вашему вниманию небольшую подборку бесплатных книг по программированию, думаю они могут многим оказаться полезными.
Александр Круглов — Ruby — Эту книгу можно использовать как справочник и как отдельный учебник по Ruby. Для изучающих Rails считаю исчерпывающим руководством по языку. Версия языка изучаемая в этой книге — 2.0.0p247.
Слова автора: Не думайте, что прочитав эту книгу вы сразу станете писать высоконагруженные приложения. Максимум чему вы научились — это программирование небольших скриптов, способных немного облегчить вашу повседневную работу. Еще множество необходимых знаний о стиле кода, тестировании и отладке, архитектуре и оптимизации (и т.д.) отделяет вас от гордого звания программиста. Могу лишь надеяться, что удовольствия от работы с Ruby поможет преодолеть все эти препятствия и сообщество получит еще одного единомышленника. Github репозиторий
Удобная работа в консоли, или красим STDERR в красный цвет
2013-12-28 в 21:23, admin, рубрики: bash, usability, Программирование, метки: bash
Работа в консоли
Многие из нас пользуются консолью каждый день, и, наверное, каждый задавал себе вопрос: как я могу сделать свою работу в консоли эффективнее? Что я могу сделать, чтобы тратить меньше времени на выполнение рутинных операций? В этой статье я бы хотел вкратце рассказать о нескольких простых, но полезных вещах при работе с bash, о которых вы, возможно, не знали.
Читать полностью »
Универсальный способ быстро сделать скриншот в linux
2013-11-28 в 8:17, admin, рубрики: bash, DropBox, imagemagick, linux, screenshot, велосипед, метки: bash, DropBox, imagemagick, screenshot, велосипедКак дошло до жизни такой
С переходом ubuntu на unity как-то резко пришло просветление и жажда чего-то такого, что не приходилось бы раз в пол года переделывать с нуля. Поставил себе arch, а там дошло до минимализма и нежной любви к xfce.
Правда, лень моя тогда ещё была не столь развита и скриншоты делались при помощи GIMP'а.
За подробностями — прошу под кат.
Как я вешал горячие клавиши на Unity sound indicator
2013-11-25 в 9:09, admin, рубрики: bash, Ubuntu, unity, Убунтариум, метки: bash, Ubuntu, unity Я, как и многие кого мог заинтересовать этот пост, люблю оболочку Unity за удобные горячие клавиши и различные плюшки по интеграции с самым разнообразным софтом.
Одна из этих плюшек это интеграция плееров поддерживающих интерфейс mpris2 в sound indicator.
Что примечательно, веб-приложения, которые могут вести себя как плеер, так же попадают в этот замечательный список. И всё было бы круто, но эта прелесть, по страному капризу разработчиков не поддерживает никаких горячих клавиш, кроме изменений уровня громкости.
Читать полностью »
Auto provisioning для grandstream или вынимаем и вкладываем душу в GXP1165
2013-11-05 в 18:53, admin, рубрики: auto provisioning, bash, grandstream, ip-телефония, provisioning, voip, метки: auto provisioning, bash, grandstream, provisioning, voip До недавнего времени в качестве VoIP аппаратов мы использовали продукцию Fanvil. И в целом всем были довольны. Управление из единой точки есть, качество связи удовлетворительное, но оставалось ощущение какой-то незаконченности или даже недосказанности (понимайте как хотите :))) В общем поиск «идеального телефона» в фоновом режиме, но все время продолжался. И вот мне в руки попал Grandstream GXP1165. Имея более именитого производителя данная модель находится в той же ценовой категории, что и китайские Fanvil-ы. Обладает всеми необходимыми функциями и имеет более интуитивное обозначение на кнопках и портах подключения. Кроме того, с некоторых пор, одним из решающих факторов при выборе IP телефона для меня является функция авто провижинга. Данная модель grandstream его обещала. Об этом дальше и пойдет речь.
Читать полностью »
Десятка лучших консольных команд
2013-10-21 в 21:30, admin, рубрики: bash, linux, mtr, sudo, консоль, Оболочки, рейтинг, системное администрирование, метки: bash, http server, linux, mtr, sudo, консоль, рейтинг, системное администрирование В данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Читать полностью »
Это не статья, а краткий how to по кастомизации bash'a.
Думаю каждый, не очень опытный, пользователь производных от линукса систем работает с консолью, и иногда сталкивается с разными проблемами или неудобностями. Однажды, точнее сегодня утром, я подумал «хватит это терпеть» и нагуглил путь к интересному файлу, который помог мне решить все мои проблемы:
~/.bashrc
Если вы о нем не знали, то загляните под кат, там найдете пару костылей
Небольшое оглавление:
1. Подсветка
2. Алиасы
3. Функции
3. Все сломалось, как вернуть?
Linux pipes tips & tricks
2013-09-25 в 9:22, admin, рубрики: bash, linux, pipe, метки: bash, linux, pipePipe — что это?
Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN
Например:
$ grep -i “error” ./log | wc -l
43
grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.
Логика
Конвеер обеспечивает асинхронное выполнение команд с использованием буферизации ввода/вывода. Таким образом все команды в конвейере работают параллельно, каждая в своем процессе.
Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.
Простой дебаг
Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726 <– PID основного процесса
...
pipe([3, 4]) <– системный вызов для создания конвеера
....
clone(....) = 13727 <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo", ["/bin/echo", "foo"], [/* 61 vars */]
.....
[pid 13726] clone(....) = 13728 <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать полностью »