Ruby on Rails
1 December 2013

Настроим Ubuntu shell под себя

Tutorial
Итак. Абстрагируемся от мощных высокотехнологичных постов на хабре — я им апплодирую. Но жизнь рядового программиста начинается с его рабочего места, куда он неустанно возвращается снова и снова.
Если это про вас. Если вы хотите добавить в свою жизнь немного изюминки — отвлекитесь на минутку, расслабьтесь и открывайте хабракат!



Большинство из нас работают в среде Ubuntu (Linux). Это стало своего рода стандартом для многих веб-разработчиков, это как один раз попробовать, и понять… Вся магия на начальных порах ограничивается возможностью установки пакетов (программ) из-под эмулятора коммандной строки Terminal, затем интерес утихает. Но, задайтесь пожалуйста вопросом: что для вас представляет окно Терминала? Безцветная, бездушная оболочка с базовым набором комманд? Или друг и помошник в повседневных делах? Открою вам маленький секрет: лично я адаптирую его под каждый свой новый проект. И всё благодаря Алиасам (alias).

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

Открываю для вас свой Terminal (Ctrl+Alt+T):

terminal_window

Думаю, мало кто из читателей видит то же самое. Настроен автоматический переход в корень проекта. Выводится список определенных комманд, которые мне наиболее часто приходится использовать в работе. Конечно, это личное дело каждого, но у меня это следующий список:

Пароли

Обычно, клиент/заказчик высылает нам логины/пароли к своим сервисам. В любой момент времени, мне достаточно вызвать комманду pass чтобы вывести на консоль все пароли имеющие отношение к проекту:

image

Удобно, не правда ли?

alias pass=printSecure

printSecure() {

 # вы же не будете  против, если я вставлю сюда палитру:

 green="\e[32m"

 cyan="\e[36m"
 blue="\e[34m"
 lightblue="\e[94m"
 black="\e[30m"
 red="\e[31m"
 darkgray="\e[90m"
 bold="\e[1m"
 norm="\e[0m"

 title=$bold$black
 url=$blue$norm
 l=$red
 p=$cyan
  
 echo -e "
   $title AWS Storage $url http://aws.amazon.com
      $l login@gmail.com $p password
   $title Heroku WebServers $url https://api.heroku.com/login
      $l login@gmail.com $p password
 "
}


Email в буффер обмена

Везёт людям, с емэйлом вида «a@a». Я конечно утрирую, но по долгу службы мой корпоративный емэйл имеет длинну в 29 символов.
Частый ввод такого емэйла для меня всегда являлся рутиной, а напоследок заканчивался тем что я впопыхах путал как назло местами две соседние буквы.
Проблема исчезла как только я создал алиас на копирование своего емэйла в буффер обмена. Алиас называется лаконично «m», и стоит не более секунды моего времени: Alt+Ctrl+T -> m -> Enter -> Alt+F4

image

mailToClipboard() {
echo "vitalyp@softwareplanet.uk.com" | xclip -selection clipboard
echo "email vitalyp@softwareplanet.uk.com in clipboard buffer!!"
}
alias m=mailToClipboard


Wiki Manual

Это мануал по всем возможным командам, которые я использую во время деплоев / удаленных бэкапов и т.д. Пишется один раз, но здорово разгружает мозги. У меня копия такого мануала находится ещё в текстовичке, и открывается через блокнот по алиасу «snips» (всё-же из блокнота легче копипастить), но можно юзать и консольный вариант:

image

Edit hosts / .bashrc

Когда какое-то действие выполняется часто, бывает неплохо автоматизировать этот процесс.
С hosts файлом всё понятно, а вот .bashrc я часто открывал, когда хотел добавить какой-то новый безумный алиас к своему терминалу:

alias edit="gedit ~/.bashrc&"
alias hosts="sudo gedit /etc/hosts&"


С помощью амперсанта, файлы открываются в отдельном потоке, а консоль — освобождается для дальнейших инструкций.

Edit temp / daily

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

alias temp="gedit ~/Desktop/temp&"


В файл Daily я иногда вношу заметки, которые нужно будет не забыть включить в свой дневной отчёт (daily report) заказчику:

alias daily="gedit ~/Desktop/daily&"


— Боюсь, что на вступительную часть хватит. Добавлю только, что я использую в работе помимо этих типов, ещё GUI-шные алиасы, которые выводят оконные диалоги на экран. Если кому интересно, могут попробовать установить пакет «zenity». Popup окно создаётся так:

zenity --error --title="Service checker" --text="$service1 is not running! Start it, and click OK."


— Ну вот, а я буду надеяться что эта статья хоть кому-то была интересна.

+29
29.9k 192
Comments 41
Top of the day