Скрипт быстрого поиска в интернете для Ubuntu

Интернет обладает огромным запасом информации.
В нем можно найти практически все что угодно.

Как люди ищут нужную им информацию? 

Открывают браузер, заходят на сайт поисковика, Яндекс, например, вводят ключевые слова и нажимают кнопку Найти.
То есть совершают N-ное количество действий.
Я предлагаю убыстрить и сделать более удобным поиск в интернете в ОС Ubuntu с помощью скрипта.


Для начала устанавливаем нужные для работы скрипта программы, открываем терминал и вводим следующую команду:sudo apt-get install zenity xclip

Потом создаем (для примера - в домашней папке, но местоположение может быть любым) файл скрипта, написав в терминале:gedit ~/searche
Файл создаться и откроется в редакторе Gedit. Вставляем в файл следующий текст:

#!/bin/bash
# Ищет введенный или выделенный текст в интернете
# Должны быть установлены zenity и xclip!!!!!!

out="/tmp/searche.$$"

zenity --width=350 --title  "Введите текст" --text "Введите текст для поиска в интернете" --entry --entry-text="$(xclip -o)" > "$out"

if [ $? -eq 0 -a "`cat "$out"`" != "" ]
then #echo "Искать: `cat "$out"`"

# В следующей строке идет перечисление названий поисковиков. Если оно состоит из двух и более слов, то должно быть заключено в кавычки:
site=$(zenity --title Поисковик --list --text "Выберите поисковик" --hide-header --column="" Яндекс Google "Wikipedia Ru" КиноПоиск Vidal)
# Чтобы удалить ненужный поисковик, удаляем его название в предыдущей строке.
# А чтобы добавить, добавляем название и соответствующую команду ниже под оператором case.

if [ $? -eq 0 -a "`echo $site`" != "" ]
then
case "$site" in
# А в следующей строке перечисляются названия поисковиков и команды поиска в формате
#   <название поисковика> ) <команда поиска>;; 
    "Wikipedia Ru" )    url="http://ru.wikipedia.org/wiki/`cat "$out"`";;
    Яндекс)    url="http://www.yandex.ru/yandsearch?text=`cat "$out"`";;
    Google)    url="http://www.google.com/search?q=`cat "$out"`";;
    Vidal)     url="http://www.vidal.ru/poisk_preparatov/result.htm?search=`cat "$out" | sed 's/а/%E0/g;s/б/%E1/g;s/в/%E2/g;s/г/%E3/g;s/д/%E4/g;s/е/%E5/g;s/ё/%B8/g;s/ж/%E6/g;s/з/%E7/g;s/и/%E8/g;s/й/%E9/g;s/к/%EA/g;s/л/%EB/g;s/м/%EC/g;s/н/%ED/g;s/о/%EE/g;s/п/%EF/g;s/р/%F0/g;s/с/%F1/g;s/т/%F2/g;s/у/%F3/g;s/ф/%F4/g;s/х/%F5/g;s/ц/%F6/g;s/ч/%F7/g;s/ш/%F8/g;s/щ/%F9/g;s/ъ/%FA/g;s/ы/%FB/g;s/ь/%FC/g;s/э/%FD/g;s/ю/%FE/g;s/я/%FF/g;s/А/%E0/g;s/Б/%E1/g;s/В/%E2/g;s/Г/%E3/g;s/Д/%E4/g;s/Е/%E5/g;s/Ё/%B8/g;s/Ж/%E6/g;s/З/%E7/g;s/И/%E8/g;s/Й/%E9/g;s/К/%EA/g;s/Л/%EB/g;s/М/%EC/g;s/Н/%ED/g;s/О/%EE/g;s/П/%EF/g;s/Р/%F0/g;s/С/%F1/g;s/Т/%F2/g;s/У/%F3/g;s/Ф/%F4/g;s/Х/%F5/g;s/Ц/%F6/g;s/Ч/%F7/g;s/Ш/%F8/g;s/Щ/%F9/g;s/Ъ/%FA/g;s/Ы/%FB/g;s/Ь/%FC/g;s/Э/%FD/g;s/Ю/%FE/g;s/Я/%FF/g'`&start=any&searchtype=tnmn";;
    КиноПоиск)  url="http://www.kinopoisk.ru/index.php?first=no&what=&kp_query=`cat "$out" | sed 's/а/%E0/g;s/б/%E1/g;s/в/%E2/g;s/г/%E3/g;s/д/%E4/g;s/е/%E5/g;s/ё/%B8/g;s/ж/%E6/g;s/з/%E7/g;s/и/%E8/g;s/й/%E9/g;s/к/%EA/g;s/л/%EB/g;s/м/%EC/g;s/н/%ED/g;s/о/%EE/g;s/п/%EF/g;s/р/%F0/g;s/с/%F1/g;s/т/%F2/g;s/у/%F3/g;s/ф/%F4/g;s/х/%F5/g;s/ц/%F6/g;s/ч/%F7/g;s/ш/%F8/g;s/щ/%F9/g;s/ъ/%FA/g;s/ы/%FB/g;s/ь/%FC/g;s/э/%FD/g;s/ю/%FE/g;s/я/%FF/g;s/А/%E0/g;s/Б/%E1/g;s/В/%E2/g;s/Г/%E3/g;s/Д/%E4/g;s/Е/%E5/g;s/Ё/%B8/g;s/Ж/%E6/g;s/З/%E7/g;s/И/%E8/g;s/Й/%E9/g;s/К/%EA/g;s/Л/%EB/g;s/М/%EC/g;s/Н/%ED/g;s/О/%EE/g;s/П/%EF/g;s/Р/%F0/g;s/С/%F1/g;s/Т/%F2/g;s/У/%F3/g;s/Ф/%F4/g;s/Х/%F5/g;s/Ц/%F6/g;s/Ч/%F7/g;s/Ш/%F8/g;s/Щ/%F9/g;s/Ъ/%FA/g;s/Ы/%FB/g;s/Ь/%FC/g;s/Э/%FD/g;s/Ю/%FE/g;s/Я/%FF/g'`";;
    *)        url="http://www.yandex.ru/yandsearch?text=`cat "$out"`";;
esac

# Чтобы изменить браузер, в котором будет открываться результаты поиска, измените команду в строке ниже.
firefox -new-tab "$url" &

fi
fi

rm "$out"
У вас должно получиться так (для увеличения щелкните по картинке):


Сохраняем файл и закрываем редактор.

Сейчас нам надо сделать скрипт исполняемымчтобы Ubuntu могла запустить его как программу. Для этого выполняем в терминале:chmod +x ~/searche

Проверяем, как работает наш скрипт.
Выполняем в терминале:~/searche
Должно открыться такое окно:


Можно ввести нужный текст и нажать Enter или на кнопку ОК.

Чтобы закрыть окошко, можно нажать Esc или на кнопку Отмена.

При этом если перед запуском скрипта выделить какой-нибудь текст в любом приложении, то выделенный текст автоматически вставиться в строку поиска.

Допустим, мы ввели текст для поиска и нажали ОК. Откроется следующее окно:


Здесь мы кнопками вверх-вниз или мышкой выбираем, где будем искать. Потом нажимаем кнопку ОК или Enter на клавиатуре.

Результаты поиска открываются в браузере. У меня это Firefox, но можно поставить любой, Chromium, например.

Теперь поговорим о том, как изменить этот скрипт. 

Ведь тем и хорош linux, что можно переделать почти все так, как нравиться вам.
Поисковик описывается в этом скрипте двумя параметрами, назовем их условновно "Название поисковика" и "Команда поиска".

Где они написаны, обозначено в самом скрипте в комментариях.

Допустим вам не нравиться перечень поисковиков.
Вам не нужен, например, поиск по фармакологическому справочнику Vidal.
Открываем скрипт gedit'ом. 
Находим строку (это список названий всех поисковиков): 
site=$(zenity --title Поисковик --list --text "Выберите поисковик" --hide-header --column="" Яндекс Google "Wikipedia Ru" КиноПоиск Vidal)
Удаляем Vidal.

Затем находим строку (это команда поиска):

Vidal)     url="http://www.vidal.ru/poisk_preparatov/result.htm?search=`cat "$out" | sed 's/а/%E0/g;s/б/%E1/g;s/в/%E2/g;s/г/%E3/g;s/д/%E4/g;s/е/%E5/g;s/ё/%B8/g;s/ж/%E6/g;s/з/%E7/g;s/и/%E8/g;s/й/%E9/g;s/к/%EA/g;s/л/%EB/g;s/м/%EC/g;s/н/%ED/g;s/о/%EE/g;s/п/%EF/g;s/р/%F0/g;s/с/%F1/g;s/т/%F2/g;s/у/%F3/g;s/ф/%F4/g;s/х/%F5/g;s/ц/%F6/g;s/ч/%F7/g;s/ш/%F8/g;s/щ/%F9/g;s/ъ/%FA/g;s/ы/%FB/g;s/ь/%FC/g;s/э/%FD/g;s/ю/%FE/g;s/я/%FF/g;s/А/%E0/g;s/Б/%E1/g;s/В/%E2/g;s/Г/%E3/g;s/Д/%E4/g;s/Е/%E5/g;s/Ё/%B8/g;s/Ж/%E6/g;s/З/%E7/g;s/И/%E8/g;s/Й/%E9/g;s/К/%EA/g;s/Л/%EB/g;s/М/%EC/g;s/Н/%ED/g;s/О/%EE/g;s/П/%EF/g;s/Р/%F0/g;s/С/%F1/g;s/Т/%F2/g;s/У/%F3/g;s/Ф/%F4/g;s/Х/%F5/g;s/Ц/%F6/g;s/Ч/%F7/g;s/Ш/%F8/g;s/Щ/%F9/g;s/Ъ/%FA/g;s/Ы/%FB/g;s/Ь/%FC/g;s/Э/%FD/g;s/Ю/%FE/g;s/Я/%FF/g'`&start=any&searchtype=tnmn";;
Удаляем ее. Сохраняем файл.
Все, больше этого поисковика не будет в списке.

Как добавить свой поисковик?

Допустим, вам нужен поиск по Яндекс.Картинкам.
Заходим на сайт Яндекс.Картинок и вводим произвольный текст для поиска, например, linuxrussia. Затем смотрим на адресную строку:


Параметр text=linuxrussia передает на сервер искомый текст. Другие параметры (&uinfo=sw-1352-sh-684-fw-1127-fh-478-pd-1) попробуем пока просто отбросить.
Название поисковика может быть любым, его выбираем мы. Возьмем "Яндекс Картинки". В кавычках, потому что два слова. Одно слово можно без кавычек.
Команда поиска будет:
"Яндекс Картинки" )    url="http://images.yandex.ru/yandsearch?text=`cat "$out"`";;
То есть в начале название поисковика, а в кавычках после url - написанное в адресной строке, где мы заменили текст для поиска на команду `cat "$out"` , которая вставляет наш текст.  
Закрывающаяся скобка после названия поисковика и двойная точка с запятой в конце обязательны.

Открываем скрипт gedit'ом и добавляем название поисковика в список и команду поиска в нужные места.
В итоге получается так:
#!/bin/bash
# Ищет введенный или выделенный текст в интернете
# Должны быть установлены zenity и xclip!!!!!!

out="/tmp/searche.$$"

zenity --width=350 --title  "Введите текст" --text "Введите текст для поиска в интернете" --entry --entry-text="$(xclip -o)" > "$out"

if [ $? -eq 0 -a "`cat "$out"`" != "" ]
then #echo "Искать: `cat "$out"`"

# В следующей строке идет перечисление названий поисковиков. Если оно состоит из двух и более слов, то должно быть заключено в кавычки:
site=$(zenity --title Поисковик --list --text "Выберите поисковик" --hide-header --column="" Яндекс Google "Wikipedia Ru" КиноПоиск Vidal "Яндекс Картинки")
# Чтобы удалить ненужный поисковик, удаляем его название в предыдущей строке.
# А чтобы добавить, добавляем название и соответствующую команду ниже под оператором case.

if [ $? -eq 0 -a "`echo $site`" != "" ]
then
case "$site" in
# А в следующей строке перечисляются названия поисковиков и команды поиска в формате
#   <название поисковика> ) <команда поиска>;; 
    "Яндекс Картинки" )    url="http://images.yandex.ru/yandsearch?text=`cat "$out"`";;
    "Wikipedia Ru" )    url="http://ru.wikipedia.org/wiki/`cat "$out"`";;
    Яндекс)    url="http://www.yandex.ru/yandsearch?text=`cat "$out"`";;
    Google)    url="http://www.google.com/search?q=`cat "$out"`";;
    Vidal)     url="http://www.vidal.ru/poisk_preparatov/result.htm?search=`cat "$out" | sed 's/а/%E0/g;s/б/%E1/g;s/в/%E2/g;s/г/%E3/g;s/д/%E4/g;s/е/%E5/g;s/ё/%B8/g;s/ж/%E6/g;s/з/%E7/g;s/и/%E8/g;s/й/%E9/g;s/к/%EA/g;s/л/%EB/g;s/м/%EC/g;s/н/%ED/g;s/о/%EE/g;s/п/%EF/g;s/р/%F0/g;s/с/%F1/g;s/т/%F2/g;s/у/%F3/g;s/ф/%F4/g;s/х/%F5/g;s/ц/%F6/g;s/ч/%F7/g;s/ш/%F8/g;s/щ/%F9/g;s/ъ/%FA/g;s/ы/%FB/g;s/ь/%FC/g;s/э/%FD/g;s/ю/%FE/g;s/я/%FF/g;s/А/%E0/g;s/Б/%E1/g;s/В/%E2/g;s/Г/%E3/g;s/Д/%E4/g;s/Е/%E5/g;s/Ё/%B8/g;s/Ж/%E6/g;s/З/%E7/g;s/И/%E8/g;s/Й/%E9/g;s/К/%EA/g;s/Л/%EB/g;s/М/%EC/g;s/Н/%ED/g;s/О/%EE/g;s/П/%EF/g;s/Р/%F0/g;s/С/%F1/g;s/Т/%F2/g;s/У/%F3/g;s/Ф/%F4/g;s/Х/%F5/g;s/Ц/%F6/g;s/Ч/%F7/g;s/Ш/%F8/g;s/Щ/%F9/g;s/Ъ/%FA/g;s/Ы/%FB/g;s/Ь/%FC/g;s/Э/%FD/g;s/Ю/%FE/g;s/Я/%FF/g'`&start=any&searchtype=tnmn";;
    КиноПоиск)  url="http://www.kinopoisk.ru/index.php?first=no&what=&kp_query=`cat "$out" | sed 's/а/%E0/g;s/б/%E1/g;s/в/%E2/g;s/г/%E3/g;s/д/%E4/g;s/е/%E5/g;s/ё/%B8/g;s/ж/%E6/g;s/з/%E7/g;s/и/%E8/g;s/й/%E9/g;s/к/%EA/g;s/л/%EB/g;s/м/%EC/g;s/н/%ED/g;s/о/%EE/g;s/п/%EF/g;s/р/%F0/g;s/с/%F1/g;s/т/%F2/g;s/у/%F3/g;s/ф/%F4/g;s/х/%F5/g;s/ц/%F6/g;s/ч/%F7/g;s/ш/%F8/g;s/щ/%F9/g;s/ъ/%FA/g;s/ы/%FB/g;s/ь/%FC/g;s/э/%FD/g;s/ю/%FE/g;s/я/%FF/g;s/А/%E0/g;s/Б/%E1/g;s/В/%E2/g;s/Г/%E3/g;s/Д/%E4/g;s/Е/%E5/g;s/Ё/%B8/g;s/Ж/%E6/g;s/З/%E7/g;s/И/%E8/g;s/Й/%E9/g;s/К/%EA/g;s/Л/%EB/g;s/М/%EC/g;s/Н/%ED/g;s/О/%EE/g;s/П/%EF/g;s/Р/%F0/g;s/С/%F1/g;s/Т/%F2/g;s/У/%F3/g;s/Ф/%F4/g;s/Х/%F5/g;s/Ц/%F6/g;s/Ч/%F7/g;s/Ш/%F8/g;s/Щ/%F9/g;s/Ъ/%FA/g;s/Ы/%FB/g;s/Ь/%FC/g;s/Э/%FD/g;s/Ю/%FE/g;s/Я/%FF/g'`";;
    *)        url="http://www.yandex.ru/yandsearch?text=`cat "$out"`";;
esac

# Чтобы изменить браузер, в котором будет открываться результаты поиска, измените команду в строке ниже.
firefox -new-tab "$url" &

fi
fi

rm "$out"
Сохраняем файл. Запускаем - все работает!

Таким образом можно составить необходимый именно вам список ресурсов для поиска информации, а запуск скрипта повесить на сочетание клавиш, например, Alt+V, как у меня. Сам процесс задания таких "горячих клавиш" выходит за рамки данной статьи, можно использовать стандартный для UnityПараметры системы - Клавиатура - Комбинации клавиш:

Если данная команда не сработает, то пропишите полностью путь до скрипта в поле команда: /home/имя_пользователя/searche

И после добавления нажимаем по строчке справа для ввода нужной сочетании клавиш. 

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

Сложновато получилось, конечно, но, надеюсь, понятно объяснил.

Возникшие вопросы можете задавать в коментариях, чем смогу - помогу. Приветствуются коментарии по поводу кода скрипта, т.к. я знаю, что он не идеален.