Когда я впервые узнал об утилитах dialog, xdialog, zenity я был поражен тем, что буквально из пары строк можно было создать графический интерфейс для скрипта.
Однако, когда я пошел дальше и захотел создать что-то более сложное, чем просто окошко со списком или диалог «Да/нет» — я был слегка разочарован, т.к. не смог найти требуемого. В итоге, мое знакомство с этой областью приостановилось на несколько лет.
Недавно я вспомнил о своем желании и попытался узнать о прогрессе в этом деле. Увы, и сейчас результат оказался не таким как ожидалось — я по-прежнему ничего не находил. По этой причине я и написал программу papagaj. Она позволяет из гов… и палок из xml-файла и пары скриптов построить несложный графический интерфейс для вашего консольного приложения.
Метка «shell» - 3
papagaj — GUI обертка для shell-скриптов. Yet another another *dialog
2012-10-24 в 8:46, admin, рубрики: gnustep, GUI, iup, shell, ненормальное программирование, Оболочки, метки: gnustep, gui, iup, shellЦветной терминал. Повышаем комфортабельность работы в консоли
2012-10-06 в 20:22, admin, рубрики: linux, shell, метки: shellНа хабре уже создавались топики по разукрашиванию вывода терминала, но каждый топик в основном касался одной конкретной задачи — раскрасить собственные скрипты, раскрасить приглашение терминала и т.п. Я же решил написать обобщенную статью, в который вы узнаете, как внести больше красок в ваш терминал.
Многие не всегда понимают смысла делать вывод терминала цветным и считают это пустой тратой времени. Я же считаю, что это очень облегчает восприятие текстовой информации. Смотрим ли мы логи или просто делаем трэйсроут до своего сервера. Выделение цветом поможет сконцентрировать внимание на важных вещах и отделить мух от котлет.
Читать полностью »
Создание красивого образа .dmg для программы в [Mac] OS X
2012-10-01 в 8:39, admin, рубрики: apps, bash, dmg, mac os x, osx, script, shell, разработка, метки: apps, bash, dmg, mac os x, osx, script, shellПриветствую достопочтенных жителей !
Сегодня я расскажу вам о том, как красиво преподнести пользователю инсталлятор своей программы. Наверняка каждый, кто пользуется не только программами из AppStore, сталкивался с красивыми образами диска .dmg, как вот у Адиума, к примеру. Такой образ представляет из себя, так сказать, интерактивный инсталлятор, в котором дана чёткая подсказка: перетащи значок вот сюда. Всё предельно понятно и просто.
Конечно, для бывалого маковода и zip-архив сгодится, но ведь все любят, чтоб было красиво и удобно. Так что мы с вами, дорогие читатели, озаботимся сегодня созданием такого вот красивого образа диска для своей (ну или чужой) программы.
Можно, конечно, проделать это всё вручную, но это не_наш_метод™, так что мы будем писать shell-скрипт для автоматизации сего процесса. Автоматизация нам так же пригодится в случае ввода в эксплуатацию билд-сервера, тогда этот сервер будет не только собирать программу из исходников, но и делать образ диска для дистрибьюции.
Если Вам не нужно знать как работает такой скрипт, а нужен лишь инструмент — в конце имеется ссылка на весьма универсальный скрипт, готовый к применению.
Читать полностью »
Здравствуйте, уважаемыее!
На днях я написал простого бота для смс-переписки. Он может принимать входящие сообщения, обрабатывать их и (если слова из сообщения есть в его «памяти») отправлять назад логичные ответы.
Все, что мне понадобилось:
— Ubuntu 12.04 на домашнем компьютере
— Установленный gnokii (посмотреть как его установить можно тут)
— shell скрипт
— cron, регулярно запускающий этот скрипт
— телефон с деньгами на счету (подойдет почти любая старая Nokia с блютузом, а также SonyEricsson k серии)
— Bluetooth адаптер
— пара часов свободного времени.
+ Плюсом стало отсутствие необходимости в Интернет-подключении.
Если заинтересовались — прошу под кат.
Какая команда в консоли отнимает у вас больше всего времени?
2012-09-14 в 9:12, admin, рубрики: golang, linux, shell, UNIX, метки: golang, shell, unixУ меня — 'cd'.
Хожу по папкам часто и начал замечать, что даже автодополнение не спасает. Тогда я начал искать возможные способы упрощенной навигации в консоли.
Но должны же быть решения!
В моей любимой оболочке zsh есть такая возможность — «разворачивание» путей по нажатию <Tab>
: например, "/u/in/sy" -> "/usr/include/sys/"
В остальных оболочках можно приноровиться и использовать $CDPATH
или pushd/popd
, но лично мне это до сих пор кажется неудобным.
А еще есть пара утилиток для ускоренной навигации. Самая известная из них, пожалуй, autojump. Она следит в каких папках пользователь проводит больше всего времени и позволяет указывать только фрагмент пути к папке. Например «incl» приведет вас в "/usr/include", если вы там часто бываете.
Autojump вдохновила другого разработчика на создание утилиты «z». «Z» использует в качестве критерия для перехода т.н. «frecency» — комбинацию частоты посещений папки (frequency) и времени последнего перехода туда (recency).
Обе утилиты хороши по-своему, и я так бы и пользовался autojump или z, однако что-то мне не давало покоя. А недавно я услышал одну фразу:
If the product is used as a tool, its interface should be as unintelligent as
possible. Stupid is predictable; predictable is learnable; learnable is usable.
И тут я понял что самое время придумать свой велосипед. Не-intelligent. Тупой и удобный.Читать полностью »
Как установить и настроить оболочку rediculous fish в Debian Squeeze
2012-08-25 в 10:27, admin, рубрики: Debian, fish, linux, shell, squeeze, Оболочки, метки: Debian, fish, shell, squeeze Совсем недавно я открыл для себя оболочку Rediculous fish, которая принципиально отличается от bash и zsh с которыми я работал ранее. На моем MacBook Pro под Mac OS X оболочка установилась без каких либо проблем и замечательно работала. Освоившись в новой оболочке, я решил что пришло время установить и настроить ее так же и на серверах, на которых установлен 64-разрядный Debian Squeeze. Тут то я и столкнулся с тем, что 32-разрядный deb пакет, который лежит у них на сайте, на 64-разрядный Debian не устанавливается. И я решил собрать любимую оболочку из исходников. Этот процес и будет описан в статье.
Читать полностью »
Как установить и настроить оболочку ridiculous fish в Debian Squeeze
2012-08-25 в 10:27, admin, рубрики: Debian, fish, linux, shell, squeeze, Оболочки, метки: Debian, fish, shell, squeeze Совсем недавно я открыл для себя оболочку Ridiculous fish, которая принципиально отличается от bash и zsh с которыми я работал ранее. На моем MacBook Pro под Mac OS X оболочка установилась без каких либо проблем и замечательно работала. Освоившись в новой оболочке, я решил что пришло время установить и настроить ее так же и на серверах, на которых установлен 64-разрядный Debian Squeeze. Тут то я и столкнулся с тем, что 32-разрядный deb пакет, который лежит у них на сайте, на 64-разрядный Debian не устанавливается. И я решил собрать любимую оболочку из исходников. Этот процес и будет описан в статье.
Читать полностью »
Вызов shell из Oracle
2012-08-21 в 12:09, admin, рубрики: oracle, shell, базы данных, метки: oracle, shell, базы данных Буквально на днях появилась у меня очень интересная задачка — вызвать shell скрипт из триггера в Oracle. Самым простым выходом в данной ситуации является хранимая процедура на Java, но редакция Oracle для которой было необходимо произвести действия — XE, в которой таковая возможность отсутствует.
Google выдает достаточно много советов по тому, как реализовать процедуру, ссылающуюся на C библиотеку, но в чистом виде такие инструкции у меня не заработали, пришлось несколько допиливать советы, в чем мне все также помогал Google. Ссылок на ресурсы, где я получал ответы, уже не помню, но всю цепочку действий попробую рассказать.
Читать полностью »
Можно ли в UNIX обнулять (truncate) файл, в который пишет некоторый процесс?
2012-08-03 в 10:30, admin, рубрики: bash, linux, shell, truncate, UNIX, операционные системы, перенаправление, метки: bash, linux, shell, truncate, unix, перенаправлениеДовольно популярный и актуальный вопрос, который возникает, например, при чистке интенсивно растущих журналов постоянно запущенных процессов.
Ответ в двух словах
Обнулять можно, но для этого пишущий процесс должен открывать этот файл с использованием флага O_APPEND
. Ниже приводится соответствующий отрывок из open(2)
:
…
O_APPEND
The file is opened in append mode. Before eachwrite(2)
, the file offset is positioned at the end of the file, as if withlseek(2)
.O_APPEND
may lead to corrupted files on NFS file systems if more than one process appends data to a file at once. This is because NFS does not support appending to a file, so the client kernel has to simulate it, which can't be done without a race condition.
…
Несколько процессов, пишущих в один файл на NFS — это отдельный клинический случай. Пусть у нас есть один-единственный процесс, пишущий в файл.
Читать полностью »
Конвертируем flac в mp3 одним движением
2012-07-20 в 14:50, admin, рубрики: flac, flac2mp3, mp3, shell, метки: flac, flac2mp3, mp3, shellДоброго времени суток.
Накачал я тут себе однажды гору музыки, не разбираясь, в каком она формате, во flac или же в mp3. Думал «ну а что, есть же куча утилит, которые все это конвертируют, потом разберусь». Скачал, поискал в сети, чем можно конвертировать, нашел программку All2mp3 (сижу на маке)… Какого же было моё удивление, когда я узнал, что не могу в неё закинуть просто папку Music и ждать, пока она пробежится по всем подпапкам, найдет все файлы flac и конвертирует их в mp3! Начал гуглить, но никакого вменяемого решения так и не нашел.