[Перевод] Научитесь создавать собственные команды bash менее чем за 4 минуты

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

TL; DR В первой части описывается, почему псевдонимы — это так важно, сколько времени они экономят и т.д., но, если вы просто хотите узнать, как создать собственные псевдонимы, то перейдите к шагу 1.

b0ed-9z1xqnmwbkf3vktxxpioqy.png

Повышение производительности


Чем старше мы становимся (знаю, время бежит), тем больше на наши плечи ложится ответственности: мы содержим семью, контролируем личный бюджет, проводим время с родными, отводим детей в детский сад и занимаемся прочими взрослыми делами.

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

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

Мир программиста


Нам программистам часто приходится в рамках одного проекта много раз запускать одни и те же команды bash, например  cd ..,  ls -l или pwd. От того, что мы раз в неделю запускаем эти команды производительность не снизится, а вот если запускать их приходится по два раза в день, в конце концов эффективность упадет.

Некоторые команды bash короткие, другие — длинные. Некоторые запомнить сложно, другие — легко. Главное — ускорить рабочий процесс (повысить эффективность), а для этого можно создать декларативные команды (читаемый код), которые легко запомнить и написать.

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

Сделайте команды git короче


Я провел простое испытание, чтобы продемонстрировать, сколько времени уходит на внесение изменений на Github. У среднестатистического программиста как правило уходит около 20–25 секунд на то, чтобы сделать push изменений на github.com.

# Test
git add .
git commit - m "minor changes"
git push -u origin master

Допустим, каждую неделю вы выполняете git push 15 раз, а на пуш в целом уходит 20 секунд.

  • В неделю уходит 5 минут
  • В месяц уходит 20 минут
  • В год — 4 часа


Эти 3 команды можно заменить одним псевдонимом lazyman "minor changes", и вместо 20 секунд мы получим 5.

  • В неделю уйдет 1,25 минут
  • В месяц уйдет 5 минут
  • В год —1 час


В целом производительность увеличится на 75% (в четыре раза). Речь шла о простом примере. Теперь представьте сколько времени можно сэкономить на таких командах как run apache server && run tests && report data && close или gcc project-source-code.c -o executable-file-name, которые мы запускаем 15–30 раз в день.

Как я рассчитал повышение производительности? (для зануд)


# Formula
((old - new) / old) * 100%

= ((20 sec - 5 sec) / 20 sec) * 100%
= 75 % (performance increase)

Перед тем, как приступать к созданию псевдонимов


При создании псевдонимов их обычно размещают в файле ~/.bashrc. Это скрытый файл в домашнем каталоге, доступный отовсюду. Однако, хорошим тоном считается хранить системные файлы отдельно от личных. Для этого создаем новый файл под названием  ~/.custom_aliases и добавляем все псевдонимы туда. Также не забывайте после этого выполнять source ~/.custom_aliases,  иначе они не будут работать.

Шаг 1 —  Создать файл custom_aliases


Все создаваемые псевдонимы следует хранить в этом файле.

# create file
touch ~/.custom_aliases

Шаг 2 — Открыть файл custom_aliases


Откройте файл в текстовом редакторе, либо через gedit или code (Visual Studio Code), либо как считаете нужным.

Visual Studio Code (если установлен)
# opens file
code ~/.custom_aliases

Gedit
# opens file
code ~/.custom_aliases

Шаг 3 — Создать псевдонимы (aliases)


Давайте сделаем простой псевдоним: когда мы вводим «welcome«в bash терминал на экране появится «Welcome John Doe.».

alias welcome='echo "Welcome $USER."'

Шаг 4 — Обновить изменения


Перед запуском недавно созданной команды bash необходимо обновить файл custom_aliases.

# update file
source ~/.custom_aliases

Шаг 5 — Выполнить новую команду bash


Напечатайте следующее в вашей любимой командной оболочке.

# command line
welcome
> Welcome John Doe.

Молодцы! Вы только что создали собственный файл для хранения псевдонимов. А теперь давайте рассмотрим, какие виды команд можно создавать.

Собственные псевдонимы команд bash (персональные)


Ниже перечислено несколько команд bash, которые я использую для ускорения рабочего процесса.

Рекомендация: Для сохранения структуры при добавлении большого количества псевдонимов разделите их на группы — как в примере ниже — при помощи комментариев.

# Version Control
alias gs="git status"
alias gd="git add ."
alias gp="git push -u origin master"

# Directory
alias diskusage=«df -h»
alias folderusage=«du -ch»
alias totalfolderusage=«du -sh»

# Various
alias opencustomaliases=«code ~/.custom_aliases»
alias updatecustomaliases=«source ~/.custom_aliases»
alias updatethenupgrade=«sudo apt-get update && sudo apt-get upgrade»

Учтите, что операционные системы имеют различия, поэтому эти команды нужно сначала запустить в терминале и проверить их работоспособность перед тем, как добавлять их в файл custom_aliases.

Запуск нескольких команд


Можно создать одну команду bash, благодаря которой можно выполнять несколько команд. Есть два способа: можно написать функцию или создать псевдоним.

Пример 1 —  Создание функции


# Multiple commands

function lazyman() {
git add .
git commit -a -m "$1"
git push -u origin master
}

Пример 2 —  Создание псевдонима


# Multiple commands

alias lazyman="git add . && git commit -a -m '$i' && git push -u origin master"

Не забудьте обновить файл custom_aliases, для чего нужно запустить source ~/.custom_aliases и ввести lazyman "First commit".

y_yt-wuvgsowt5sze71h8ccc9wm.png

Рекламная пауза. Хочу представить новый проект LOOKING.HOUSE — на нем собрано более 150 точек looking glass в 40 странах. Можно быстро выполнить команды host, ping, traceroute и mtr.

© Habrahabr.ru