Современному разработчику в своей повседневной деятельности часто требуется вводить большое количество длинных консольных команд. Особенно это касается Докер’a, так как приходится сначала обращаться к одному из контейнеров, а уже после этого выполнять требуемые операции. Конечно, есть вариант подключаться к разным контейнерам для выполнения команд, но это тоже дело довольно хлопотное и надоедает практически сразу же. В этой статье будет описан один из возможных вариантов решения этой проблемы — создание алиасов.
Если вы используете Windows, то для применения приемов работы из этой статьи вам необходимо установить WSL, так как они основаны на командной оболочке (консоли) Bash и утилите для сборки программ make.
Памятка команд работы с алиасами:
# Отображение списка алиасов текущей сессии работы с консолью. alias # Добавление алиаса в текущую сессию работы с консолью. alias my-super-mega-ls='ls -la' # Удаление алиаса из текущей сессии работы с консолью. unalias my-super-mega-ls # Удаление всех алиасов для текущей сессии работы с консолью. unalias -a
При запуске консоли Bash выполняет файл свой файл настроек «~/.bashrc» из домашней директории пользователя.
Тильда «~» обозначает домашнюю директорию текущего пользователя.
При желании можно добавлять свои алиасы команд в него, но это не очень удобно, да и может привести к случайным ошибкам. В файле «.bashrc» рекомендуется создавать отдельный файл «.bash_aliases» в корневой директории пользователя и добавлять свои команды туда.
... # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi ...
Такой вариант уже неплох, но все же недостаточно удобен. При передаче проекта другим участникам команды разработки, им придется обновлять у себя этот файл. Одни будут забывать это делать, другие лениться, пока использование этот файла не сойдет на нет. Поэтому, размещать его желательно в корне проекта, чтобы он был на виду, также как и другие важные файлы наподобие «docker-compose.yml», «ReadMe.md», «.env», «.gitignore» и так далее.
Пример файла с алиасами (.bash_aliases):
alias my-super-ls='ls -l' alias my-super-puper-ls='ls -la' alias migrate-fresh='docker exec CONTAINER_NAME php migrate:fresh --all'
Для активации алиасов из файла .bash_aliases введите в консоль:
cd YOUR_PROJECT_DIRECTORY source .bash_aliases
или
cd YOUR_PROJECT_DIRECTORY
. .bash_aliases
Все это дело можно автоматизировать путем создания символической ссылки с .bash_aliases из вашего текущего проекта на .bash_aliases в корневой директории пользователя. Таким образом, при каждом запуске Bash’a ваши алиасы будут подхватываться без каких-либо лишних телодвижений. Если вы работаете над одним большим проектом, то это самый удобный и простой вариант — один раз настроил и забыл.
ln -s ПУТЬ_ДО_ДИРЕКТОРИИ_ПРОЕКТА/.bash_aliases ~/.bash_aliases
Алиасы помогают существенно сэкономить время на вбивание команд в консоль, но бывают ситуации когда и их мощи недостаточно. Например, иногда требуется выполнить сразу несколько больших команд для сброса всех кешей проекта, зачистки базы данных с последующим заполнением тестовыми данными или переустановки прав доступа для текущего пользователя. Можно было бы и в этом случае использовать алиасы Bash’a со склейкой команд через &&, но поддерживать и редактировать подобные монструозные конструкции станет сложно, а это уже может привести к ошибкам.
Для подобных задач можно использовать утилиту make. Реализуется это очень просто — создайте файл Makefile в корне проекта и добавьте в него требуемые наборы команд, например:
my-super-ls-command: ls ls -a ls -l ls -la
Команды необходимо размещать на отдельных строках через Tab от края файла.
Вызов команды:
make my-super-ls-command
Все команды добавленные в Makefile будут автокомплититься через Tab аналогично любым системным командам.
Полезные ссылки
- Создание алиасов в оболочке Bash — meliorem.ru/tools/linux/sozdanie-aliasov-v-obolochke-bash
- Полезные alias Linux — losst.ru/poleznye-alias-linux
- Символические и жесткие ссылки Linux — losst.ru/simvolicheskie-i-zhestkie-ssylki-linux
- Терминал Linux. Создание alias (псевдонима) в Ubuntu — linuxrussia.com/terminal-alias.html
- How save my «alias» entries forever — askubuntu.com/questions/194111/how-save-my-alias-entries-forever
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.