Трюки в bash

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

Особенно удобно стало работать в терминале, когда я узнал о специальных командах bash.

История и bang-bang

История команд — очень удобный инструмент. С помощью стрелок вверх-вниз можно перемещаться по истории введённых команд. Кроме того, с помощью команды history можно просмотреть всю историю команд:

190 ps axu | grep htt
191 /www/bin/apachectl start
192 vi /usr/local/lib/php.ini
193 cat /www/logs/error_log
194 ps -auxw | grep http
195 pwd

Ничего удивительного.
Гораздо интереснее то, что называется bang-bang, или команда !!
!! означает последнюю команду в истории. Т.е. ввод !! в данном случае аналогичен вводу pwd.
Но и это еще не все. Можно ввести ! . ! ps в данном случае вызовет ps -auxw | grep http. Но будьте внимательны и сообщайте восклицательному знаку достаточно символов команды. Например ! p в данном случае будет аналогично pwd, а не ps -auxw | grep http (поскольку pwd ниже в истории) как возможно хотелось бы.

: p не просто смайлик

Для того чтобы избежать конфузов при использовании ! можно добавлять к нему смайлик : p. Это заставит bash вывести то, что он собирался выполнить. Кроме того, : p достаточно умен для того, чтобы добавить выведенную команду в историю.

В качестве примера:
! ps: p в нашем случае вернет ps -auxw | grep http. Убедившись что это именно то что нужно, можно ввести !! и bash выполнит ps -auxw | grep http.

Другие способы использования истории

Наверное самый примитивный способ — вызвать команду history, узнав номер необходимой команды, а затем использовать ! N, где N — номер команды в истории (например, !192). Не следует пренебрегать этой возможностью. Иногда запомнить !123 для какой-то постоянно нужной команды гораздо проще чем пользоваться другими способами.
Кстати, : p работает и тут.

Еще один удобный способ — нажать ^r (Ctrl-r) и начать вводить первые символы нужной команды. bash будет искать в истории подходящие команды.

Работа с агрументами

!$ (bang-dollar) означает последний аргумент последней команды.
К примеру тут:
ls /some/long/path/to/dir/
rm -rf !$

В результате выполниться команда rm -rf /some/long/path/to/dir/.

Кстати, : p тут тоже работает.

!* похожа на !$, но превращается во все аргументы последней команды.

Шапочки

Наверняка вы не раз вводили что-то типа
vi /etc/X22/xorg.conf

Это очень легко поправить с помощью шляпок:
^22^11 заменяет 22 на 11 в предыдущей команде. По аналогии всегда можно использовать ^ошибка^исправление.

Автодополнение

Ну и разумеется не стоит забывать про автодополнение. Один Tab дополняет команду насколько можно понять, второй выводит все варианты дальнейшего написания. Однако не следует этим злоупотреблять. Согласитесь, написать less быстрее, чем написать le и долбить по табу.

Алиасы

Полезно дать короткие имена часто используемым командам. Также полезно дать алиасы наиболее частым опечаткам.
Полезными алиасами могут быть:
alias ls='ls --color=auto'
alias mroe='more'
alias H='kill -HUP'
alias ssh-production='ssh www.myproject.com'
alias ssh-qa='ssh qa.myproject.com'
alias sl='ls'

Печать на принтере, включённом во время работы Ubuntu / CUPS

CUPS - Common UNIX Printing System
У меня к компьютеру с Ubuntu подключён принтер HP 1020. Я уже писал об этом ранее, когда рассказывал как для него (HP 1020) установить драйвера в Ubuntu Linux. После установки драйверов принтер печатает отлично, но есть одна тонкость, которая меня всегда раздражала. Принтер нужно подключать к выключенному компьютеру, а потом уже включать компьютер, иначе принтер ничего печатать не будет. Выполнение команды
sudo /etc/init.d/cupsys restart
не помогало. Может такая проблема возникла только у меня, но факт остаётся фактом.
Сегодня я включил принтер когда уже работал в Ubuntu, а перезапускать настроенную для отдыха систему из-за того чтобы распечатать одну страницу мне очень не хотелось. Зайдя в утилиту Печать ( Система — Администрирование — Печать ) я обнаружил в поле Состояние принтера статус Stopped (Остановлен). Я сразу понял что именно из-за этого принтер и не реагирует ни на какие действия, в том числе перезапуск CUPS.

Обратившись к Интернету, я нашёл очень интересный адрес: http://localhost:631/
Этот адрес обращается к моему же компьютеру по средствам протокола HTTP через 631 порт. Другими словами на 631 порту весит система управления CUPS базирующаяся на WEB технологиях. Мне стало интересно и я туда заглянул. Как оказалось не зря.

Кроме общей информации и возможности тонко настроить CUPS в системе есть ещё раздел отвечающий за подключённые к системе принтеры (раздел меню Printers).

Войдя в него, я увидел информацию о своём принтере, а также кучу функций, которые можно с ним произвести. Среди прочего я нашёл кнопку Start printer. Щелчёк по кнопке и вуаля! Принтер перешёл в состояние Idle (В ожидании), о чём свидетельствовала запись в утилите Печать в поле Состояние принтера (см. нижеследующий снимок экрана), и принтер распечатал ранее отправленный на него файл.

Добавлено 29 июля 2008.
Если при выполнении действий Web интерфейс системы запросит логин и пароль, то вводите те данные которые Вы использовали для авторизации в Ubuntu.

Дополнения к FireFox

Дополнения к FireFox В связи с тем что сейчас повсеместно происходит переход с FireFox версии 2 на FireFox 3 я решил составить список дополнений (плагинов) для FireFox 2, которые я использую практически ежедневно.

Дополнения отсортированы по алфавиту, а не по значимости! Все ссылки ведут на сайт addons.mozilla.org, если это возможно.

Adblock Plus Adblock Plus — думаю, что из названия и слогана (Скажи «нет» рекламе!) становится понятно его назначение.

Del.icio.us Delicious Bookmarks — так как я начал пользоваться сервисом del.icio.us от компании Yahoo задолго до появления bobrdobr.ru и memori.ru, то без дополнения, которое бы помогало быстро работать с моими закладками, я уже обойтись не могу.

FEBE 5.0 FEBE — это дополнение, которое создаёт резервные копии данных FireFox (в том числе и установленных расширений). Позже, используя FEBE, можно восстановить ранее сделанную копию. Таким образом можно за несколько секунд можно из «чистого» FireFox сделать «свой родной» Firefox.

Firebug Firebug — без этого дополнения не обходится ни один из современных WEB-разработчиков, в том числе и я. Firebug позволяет отслеживать потоки данных от сервера клиенту и наоборот, просматривать DOM структуру документа, отлаживать JavaScript и многое другое.

Firecookie Firecookie — дополнение к Firebug. Firecookie позволяет просматривать и манипулировать COOKIE из браузера. Тоже полезный инструмент для WEB-разработчика.

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

Google Reader Notifier Google Reader Notifier — в современном обществе ежесекундно рождается столько информации, что за осмыслением оной невозможно успеть физически. Это же дополнение помогает получить быстрый доступ к тому что из этого потока смог урвать я, используя Google Reader.

Google Toolbar for Firefox Google Toolbar for Firefox — мне кажется, что здесь комментарии излишни. Панель, помогающая получить быстрый доступ к сервисам Google.

MeasureIt MeasureIt — инструмент для WEB-разработчика. Позволяет выделить область на странице и узнать её размеры в пикселях. Иногда бывает очень удобно.

ShowIP ShowIP — Показывает IP адрес(-а) сайта который открыт в данный момент в активной вкладке.

Tab Mix Plus Tab Mix Plus — дополнение позволяющее настраивать поведение закладок, а так же управлять ими. У меня есть предчувствие, что я и 10 части всех возможностей этого дополнения не использую.

Taboo Taboo — дополнение позволяющее запомнить положение в тексте открытой в
кладки до куда Вы уже дочитали, чтобы потом не искать это место. Очень удобно, если Вы читаете большие статьи с монитора и Вам постоянно нужно отвлекаться и куда-то отходить от компьютера.

У меня есть ещё установленные дополнения, но они либо работают в фоновом режиме, либо я ими редко пользуюсь:

Вот и всё чем я пользуюсь. Кто ещё какие знает полезные дополнения?

P.S. (Добавлено 1 октября 2010)
Подборка Web Developer Netbook Add-ons на сайте Mozilla.

Установка и настройка Linux Mint Elyssa R1

Недавно я прочитал в ленте новостей о новой сборке Linux Mint, которая основывается на Ubuntu Linux 8.04 и полностью с ним совместима. По заявлению разработчиков они всего лишь изменили несколько устанавливаемых по-умолчанию пакетов и незначительно переработали интерфейс.

Linux Mint, так же как и Ubuntu Linux имеет LiveCD и перед установкой можно посмотреть на то как будет выглядеть система после инсталяции на жёсткий диск. Но в отличие от Ubuntu Linux Mint пока имеет только Gnome в качестве среды рабочего стола.
Интерфейс по-умолчанию разработчикам видимо очень хотелось подогнать под Windows.
Linux Mint Elyssa R1 сразу после установки / MeAndUbuntu.Blogspot.Com

Но для меня интерфейс Ubuntu намного удобнее. Поэтому я его изменил, благо в Linux это делается парой кликов мыши.
Linux Mint Elyssa R1 с закосом под Ubuntu / MeAndUbuntu.Blogspot.Com

Меню в Linux Mint идентично меню в OpenSuse:
Меню Linux Mint похоже на меню в OpenSuse / MeAndUbuntu.Blogspot.Com

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

Ну а теперь про дополнительные пакеты в Linux Mint:

  • EnvyNG который помогает установить драйвера для видео карты
  • Gnome Do, который помогает быстро искать нужные приложения и документы (Do things as quickly as possible (but no quicker) with your files, bookmarks, applications, music, contacts, and more!)
  • mintDesktop, который помогает вывести на рабочий стол привычные пользователям Windows ссылки (Компьютер, Домашняя папка, Сеть, Корзина, Подключенные накопители)
  • APTonCD, который помогает создавать ISO образы с установленными пакетами, а потом восстанавливать пакеты в другой системе.
  • Windows Wireless Drivers, который поможет установить в Linux драйвера для WiFi из Windows
  • Ещё есть пакеты «Выбор мультимедийной системы», «Настройка действий в Nautilus», mintAssistant, mintBackup, mintInstall, mintUpdate, а так же те которые я за день работы не заметил

А вот чего не найти в системе после установки так это игры, но это же не проблема ведь есть Synaptic.

P.S.
Если кто не хочет мучаться с обновлением до последней (на 6 июля 2008) версии пакетов системы и установкой русскоязычных пакетов, а также необходимых пакетов (java, msfonts и т.д.), то может скачать сделанный мной при помощи APTonCD ISO образ и восстановить его при помощи всё того же APTonCD.

Pidgin и ICQ в Ubuntu

ICQ Logo / MeAndUbuntu.Blogspot.ComВ связи с внедрением AOL (компании владеющей ICQ) новой версии протокола (Oscar 6) все клиенты с иными версиями протокола не могут связаться с сервером. Есть несколько выходов из этой ситуации:
1. Начать использовать Jabber и соединяться с ICQ через ICQ-транспорт;
2. Скачать новую версию Pidgin (2.4.3) в исходных кодах и собрать его самостоятельно;
3. Найти уже собранный deb-пакет с Pidgin.

Или есть ещё один вариант:

4. Заменить всего один файл в /usr/lib/purple-2/

Вариант 4 работает и в Ubuntu 7.10 и в Ubuntu 8.04.

P.S.
Сегодня ещё наткнулся на deb-пакеты самого Pidgin и библиотеки отвечающей за протоколы связи для Ubuntu 8.04. Их устанавливать не пробовал, но если кто установит, то милости прошу рассказать свои впечатления и ощущения в комментариях. А вот и сами пакеты:
Версия для 32 битных Операционных Систем (i386)
pidgin_2.4.3-1~getdeb1_i386.deb
libpurple0_2.4.3-1~getdeb1_i386.deb

Версия для 64 битных Операционных Систем (amd64)
pidgin_2.4.3-1~getdeb1_amd64.deb
libpurple0_2.4.3-1~getdeb1_amd64.deb

Online TV и gstreamer

После установки и настройки Ubuntu 8.04 Hardy Heron я захотел посмотреть записанную ранее передачу в corbina.tv. В Ubuntu 7.10 всё было отлично и качество изображения и звук, а в Ubuntu 8.04 качество картинки было очень плохое. Если на экране появлялся текст, то его прочитать не представлялось возможным, да и лица людей больше походили на квадратные головы роботов. Звук тоже оставлял желать лучшего.

Просмотрев установленные пакеты в Ubuntu 7.10 и Ubuntu 8.04 я заметил два пакета, которые у меня вызвали подозрение. А именно, в Ubuntu 8.04 отсутствовал пакет gstreamer0.10-esd, но зато присутствовал totem-gstreamer.

Установка пакета gstreamer0.10-esd в Ubuntu 8.04 никаких изменений в качество картинки и звука не принесла, а вот удаление пакета totem-gstreamer дало поразительный результат! После удаления пакета totem-gstreamer картинка стала такой же чёткой как и в Ubuntu 7.10 и звук тоже стал получше.

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

Установка и настройка Ubuntu 8.04 (Hardy Heron)

После выхода новой версии ОС Ubuntu Linux (Ubuntu Linux 8.04 Hardy Heron) я скачал её используя официальный торрент (torrent). После записи на диск образа диска я приступил к её установки на ноутбук iRU Intro 2614L Combo.

Хотя ноутбук и продавался с предустановленным Линуксом на нём за всё время работы Linux запускался только один раз — в самом начале для проверки работоспособности аппарата. После этого на него был установлен Windows XP SP2 и работа осуществлялась исключительно в нём.

Но вернёмся к новой Ubuntu. Установка с LiveCD настолько проста, что с ней справится даже ребёнок. Как и всегда на шаге разбития жёсткого диска при установке я выбрал режим «в ручную» и разбил жёсткий диск на следующие разделы (это нужно чтобы не потерять свои данные при переустановке системы):

раздел файловая система объём (GB) комментарий
/ ext3 5 По опыту знаю,что 5 ГБ хватает. Журналируемая файловая система ext3 на мой взгляд самая надёжная, раньше я использовал ReiserFS, но она меня один раз подвела (подробнее о файловых системах можно прочитать здесь). Корень (/) это что-то типа диска С в Windows. В нём хранятся все системные файлы.
/swap swap 1 Раздел подкачки. Рекомендуется делать swap в два раза больше оперативной памяти.
/home ext3 всё оставшееся пространство На этом разделе будут храниться мои файлы, а также файлы настроек установленных программ в скрытых (начинающихся с точки) папках и файлах, поэтому он должен быть самым большим. Так как в этом разделе хранятся все настройки программ, то при переустановке системы все программы будут знать настройки которые были до переустановки. Это что-то типа диска D в Windows.

Это всё, что я сделал в процессе установки. Остальное за меня сделал Linux. С картинками и более подробно о процессе установки можно прочитать здесь. В статье рассказывается об установке Ubuntu 7.10, но установка Ubuntu 8.04 ничем не отличается от установки Ubuntu 7.10.

После того как все пакеты были скопированы на жёсткий диск и настроены установщик предложил мне либо продолжить работать с LiveCD, либо перезапустить компьютер и начать работать установленной ОС. Я, естественно, выбрал второе.

Система запустилась без вопросов! Но как слегка продвинутый пользователь я знал, что кое-что нужно настроить под себя.

1. Настройка сети. Это первое что я сделал. В отличие от Ubuntu 7.10 в Ubuntu 8.04 все настройки можно менять только после того как разблокируешь доступ к интерфейсу, то есть докажешь что ты администратор (не root, а sudo). Паниковать не надо — ничего в этом страшного нет. Нужно только щёлкнуть по кнопке Unlock (Разблокировать) и ввести свой пароль.

Больше изменений никаких в настройках системы замечено не было. После того как сеть была настроена я выполнил в терминале:
sudo apt-get update && sudo apt-get upgrade
Для того чтобы получить список доступных пакетов и проверить на наличие новых версий.

2. Перевод интерфейса на русский. Как говорят на форуме,если настроить сеть при установки, то пакеты локализации скачаются и настроятся автоматически. Но у меня не была настроена сеть на момент установки,поэтому я установил пакеты вручную. Для этого я зашел в Synaptic и при помощи поиска нашёл все пакеты, которые содержат в имени слог «ru». Пакетов оказалось много так как мне были показаны не только пакеты локализации. На мой взгляд нужные пакеты:
aspell-ru (version 0.99g4-6)
gimp-help-ru (version 2.4.0-2)
irussian (version 0.99g4-6)
language-pack-gnome-ru (version 1:8.04+20080415)
language-pack-gnome-ru-base (version 1:8.04+20080415)
language-pack-ru (version 1:8.04+20080415)
language-pack-ru-base (version 1:8.04+20080415)
language-support-extra-ru (version 8.04+20080214)
language-support-input-ru (version 8.04+20080214)
language-support-ru (version 1:8.04+20080214)
language-support-translations-ru (version 1:8.04+20080407)
language-support-writing-ru (version 1:8.04+20080409)
mozilla-firefox-locale-ru-ru (version 2.0.0.7+1-0ubuntu4)
mueller7-dict (version 2002.02.27-6)
myspell-ru (version 0.99g4-6)
openoffice.org-help-ru (version 1:2.4.0-3ubuntu1)
openoffice.org-l10n-ru (version 1:2.4.0-3ubuntu1)
openoffice.org-thesaurus-ru (version 1:2.4.0~m240-1ubuntu1)
scim-modules-table (version 0.5.7-2ubuntu1)
scim-tables-additional (version 0.5.7-2ubuntu1)
thunderbird-locale-ru (version 1:2.0.0.0+1-0ubuntu1)

Для тех, кто только сейчас приобщается к миру Linux я только что придумал маленькое задание: напишите команду для терминала, которая бы устанавливала все эти пакеты.

3. Кодеки и плагины. Да,без них сейчас никуда, поэтому смело выполняем в терминале:
sudo apt-get install totem-xine xine-ui gxine mplayer mpg321 mpg123 vorbis-tools mpg123-esd gstreamer0.10-ffmpeg gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-pitfdll gstreamer0.10-plugins-bad-multiverse gsfonts gsfonts-x11 libdvdnav4 qdvdauthor msttcorefonts flashplugin-nonfree sun-java6-plugin

4. Жёсткий диск. Если Linux устанавливается на ноутбук, то понятие Load Cycle очень даже актуально. В интернете полно советов о том как его остановить и даже я создавал тему по этому поводу на форуме, но мне,к сожалению, не помог не один. Если кто найдёт решение, то я буду очень рад его услышать.

Вот вроде и всё.Если что ещё вспомню, то буду дополнять данный топик.

P.S.
Рекомендую прочитать ещё вот эту заметку. На мой взгляд она идеально дополняет мою.

Проверка орфографии в FireFox2

Я уже писал о том как сделать проверку орфографии в FireFox сразу на двух языках.
Оказалось что есть способ проще!

В любом поле для ввода щёлкаем правой клавишей мышки и в открывшемся меню ставим галочку в пункте Проверять орфографию в этом поле. Также действую выбираем пункт Языки и в нём выбираем Russian-English.
Вот и всё.
Есть только маленькая проблемка — некоторые слова написанные с заглавной буквы (в частности с буквы Я) подчёркиваются как с ошибкой.

Скрипты для Nautilus

Если честно, то я давно ими пользуюсь, но всё забывал о них рассказать. Для начала что такое Nautilus.
Nautilus — официальный файловый менеджер для рабочей среды GNOME. Другими словами при открытие почти любого пункта из меню Переход открывается Nautilus.
Скрипты для Nautilus — это обычные bash-сценарии с тем лишь отличием, что запускать Вы их будете из контекстного меню (меню, которое появляется при щелчке правой клавишей мышки) файл-менеджера.

Все доступные скрипты (на данный момент 125) расположены на сайте Nautilus File Manager Scripts. Но из всего этого многообразия я пользуюсь только тремя:

  • root-nautilus-here — этот скрипт позволяет открыть открытую Вами папку в новом окне, но уже с правами root. Скачать.
  • root-gedit — этот скрипт открывает файл в gedit, но с правами root. Скачать. Если честно, то ссылка ведёт на скачивание скрипта gedit. Для того чтобы его сделать root-gedit необходимо открыть его в любом текстовом редакторе (можно и gedit) и перед командой gedit поставить команду gksudo (надеюсь о пробеле после gksudo напоминать не надо?).
  • terminal-here — этот скрипт открывает в термимале папку открытую в Nautilus с правами пользователя под которым Вы вошли. Скачать.

Как же их установить? Очень просто! Скачиваете файлы с сайта, сохраняете их в папке
/home/<имя_пользователя>/.gnome2/nautilus-scripts
После этого, щелкнув на файле правой клавишей мышки, выбираете в открывшемся контекстном меню пункт Свойства. В открывшемся окне нужно перейти на вкладку Права и поставить галочку в чекбоксе около пункта Выполнение. Закрываем окно, щёлкнув по кнопке Закрыть. Эту операцию необходимо проделать со всеми скриптами, которые хотите использовать.
Теперь закройте все окна Nautilus. Открыв любое окно и щёлкнув в его области правой кнопкой мыши Вы увидите новый пункт меню, а именно Сценарии. Вот и всё.

P.S.
Если у Вас при скачивании скриптов они открылись в браузере в виде текста, то проделайте следующее: Файл — Сохранить как… и сохраните этот файл в дирректории
/home/<имя_пользователя>/.gnome2/nautilus-scripts.

Автозапуск программ при старте в Ubuntu

Пока писал заметку о torrent клиенте подумал, а не поставить ли его в автозагрузку? Скорость отдачи у меня в 4 раза меньше нежели скорость скачивания, а значит чтобы не уйти в ноль по отношению Upload/Download нужно как минимум в 4 раза больше времени раздавать файлы.

Задача понятна, теперь перейдём к её реализации.
Для начала нужно узнать какая команда выполняется, когда я щёлкаю по пункту меню Приложения — Интернет — Deluge BitTorrent Client.
Для этого перейдём в меню Система — Параметры — Главное меню:

В левом списке выберем пункт Интернет, а в появившемся справа списке щёлкнем правой кнопкой мыши на Deluge BitTorrent Client и в контекстном меню выберем пункт Свойства:

В поле Команда расположено именно то, что нам нужно.

Закрываем все открытые только что окна и переходим в меню Система — Параметры — Сеансы:

Вот он, список программ запускаемых при старте системы. Щёлкаем по кнопке Добавить:

В поле Имя вводим название для данной задачи. Я введу Deluge.
В поле Комманда вводим то, что мы узнали из Главного меню.
А поле Примечание можно вообще оставить пустым, но я заполняю так как люблю красоту 🙂
Щёлкаем везде ОК и при следующих запусках системы наслаждаемся результатом своей работы.

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru