Я думаю, не нужно объяснять, что из себя представляет программа Fortune в дистрибутивах Linux. Для тех кто еще никогда не сталкивался с подобной программой, если в двух словах, она пишет некую случайную цитату из своей базы данных. По умолчанию при установке программы вы получите цитаты на английском языке, если хотите, чтобы цитаты были на русском языке из соответствующей базы данных, то необходимо доустановить пакет fortune-ru из стандартного репозитория Ubuntu. Но и эти цитаты со временем надоедают, хочется иметь более «живые» цитаты в своей консоли («терминале»), например, цитаты с bash.org.ru, пусть башорг утратил уже свою былую популярность, но для fortune он еще все же сгодится. |
Сначала устанавливаем пакеты «фортуны»:
sudo apt-get install fortunes fortune-mod fortunes-min fortunes-ruЕсли вас не интересуют цитаты с bash.org.ru, то после установки этих пакетов вам достаточно только добавить в глобальный файл настроек /etc/bash.bashrc в самый конец одну только строчку «fortune» и на этом закончить все телодвижения в направлении цитат в «Терминале». Это можно сделать командой:
sudo sh -c 'echo "fortune" >> /etc/bash.bashrc'Тем же, кто решил идти до конца, пока не нужно добавлять эту строку в /etc/bash.bashrc, мы сделаем это позже и команда будет несколько иначая, а пока необходимо установить пакет ruby:
sudo aptitude install ruby-full
В своей домашней директории создаем папку, где будут храниться цитаты с bash.org.ru полученные с помощью RSS. Я предпочла, чтобы эта папка была скрытой папкой, поэтому я в названии папки установила точку первым сисволом:
mkdir .bash-org-ruПосле успешного создания папки для цитат, создадим в ней скрипт, который и будет выполнять загрузку цитат на ваш компьютер :
gedit ~/.bash-org-ru/bash-org-ru.rbв содержимое скрипта добавляем следующие строки:
require 'rss/2.0'
require 'cgi'
require 'net/http'
host = Net::HTTP.new('bash.im', 80)
resp, data = host.get('http://bash.im/rss/', nil)
parsed = RSS::Parser.parse(data.gsub(/\< hr\>/, '< hr />'), false)
parsed.items.each { |x| puts CGI::unescapeHTML(x.description.gsub("\n", "").gsub("< br >", "\n")); puts "%\n" }
В вышеуказанном листинге нужно убрать пробелы перед и после «br» в последней строке скрипта. Просто невозможно тут по другому опубликовать данную строчку, браузер понимает это выражение как html-тэг для этого пришлось добавить эти пробелы, которые вы у себя удалите для правильной работы скрипта.
Сохраняем файл и проверяем его работу, выполнив команду в «Терминале»:ruby ~/.bash-org-ru/bash-org-ru.rb > ~/.bash-org-ru/bash-org-ru
Если скрип работает правильно, то в папке .bash-org-ru должен появиться текстовый файл bash-org-ru, в котором будут находиться цитаты с bash.org.ru (Если в тексте у вас наблюдаются символы «br», то значи вы не убрали лишние пробелы из текста скрипта, как описаноу меня выше) .
Далее проверим работу команды, которая формирует из полученных цитат dat-файл для fortune:
strfile ~/.bash-org-ru/bash-org-ru ~/.bash-org-ru/bash-org-ru.datВ результате выполнения команды в папке ~/.bash-org-ru должен появиться файл bash-org-ru.datТаким образом проверив работу разных частей единого процесса, мы создаем последний скрипт, который при каждой загрузке системы будет получать новые цитаты с bash.org.ru и формировать dat-файл для fortune:
gedit ~/.bashorgru.shв котором прописываем:
ruby ~/.bash-org-ru/bash-org-ru.rb > ~/.bash-org-ru/bash-org-ru && strfile ~/.bash-org-ru/bash-org-ru ~/.bash-org-ru/bash-org-ru.datсохраняем и делаем этот файл исполняемым:
chmod +x .bashorgru.shДобавляем этот скрипт в автозапуск командой gnome-session-properties или выбираем Система → Параметры → Запускаемые приложения, приписав его выполнение в командной строке:
sh /home/USER/.bashorgru.sh(вместо USER имя вашей учетной записи)
И последний штрих — чтобы ваш «Терминал» и консоль отображали данные цитаты достигается добавлением строки: fortune /home/USER/.bash-org-ru/ (где вместо USER имя вашей учетной записи):
sudo sh -c 'echo "fortune /home/USER/.bash-org-ru/" >> /etc/bash.bashrc'Если в вашем файле /etc/bash.bashrc ранее была добавлена строка «fortune», то отредактируйте этот файл, убрав данную строку и оставив только «fortune /home/USER/.bash-org-ru/»:
sudo gedit /etc/bash.bashrcДля написания блога использован материал: http://linux.vsevteme.ru/2009/05/29/blog/bash-org-ru-i-fortune
Комментариев нет:
Отправить комментарий