Алиасы в *nix системах это короткие имена для сокращения длинных команд. Очень удобно привязать к какой нибудь часто используемой команде короткое имя и использовать его.
Думаю самый популярный алиас — это ll. В современных дистрибутивах GNU/Linux он частенько прописан в bashrc по умолчанию после установки ОС и представляет собой просто ls -alF.
Сами алиасы как правило прописаны либо в ~/.bashrc, либо в собственном файле ~/.bash_alias, подключаемом в bashrc.
Подключение bash_alias можно произвести вручную в текущей сессии с помощью команды source ~/.bash_alias
Также убедитесь что в вашем .bashrc/.zshrc они также подключаются:
[[ -s ${HOME}/.bash_alias ]] && source ${HOME}/.bash_alias
Алиас представляет собой вызов встроенной команды alias с передачей ей аргумента вида: сокращение='команда'
Пример алиаса:
alias ll='ls -alF'
Я много и часто работаю в терминале и со временем выработал себе несколько удобных сокращений команд, которые таскаю с собой из системы в систему и хочу поделиться накопленными наработками с вами.
Кстати, мои дотфайлы можешь найти на флике — https://gitflic.ru/project/ikenfin/dotfiles, там все основные конфиги которые кочуют со мной из ОС в ОС с помощью программы chezmoi.
Алиасы общего назначения
Алиасов общего назначения у меня немного — указанный ранее ll и пара дополнительных трюков:
- alias ll='ls -alFh' # Более информативный вывод для ls
- alias la='ls -A' # Выводит скрытые файлы/папки, кроме . и ..
- alias duh='du -sh * | sort -h' # выводит список каталогов с их размерами, отсортированный по возрастанию (duh -r выведет с сортировкой по убыванию)
- alias md='function () { mkdir -p "$@"; cd "$_"; }' # создать каталог и перейти в него, например md 1/2/3/4/5
Алиасы Git
Когда-то давно я смотрел выступление Mike McNeil (создатель nodejs фреймворка sailsjs) и подметил интересную команду gls - у него это был простой алиас над git status. В общем-то тогда я, пожалуй, и узнал про алиасы.
Вот список простых алиасов для git:
- alias gad='git add'
- alias gcm='git commit -m'
- alias gca='git commit --amend'
- alias gp='git push'
- alias gpl='git pull'
- alias gls='git status -s .'
- alias gck='git checkout'
- alias gbra='git branch'
- alias gbr='git branch --show-current'
- alias gdf='git diff'
- alias gdfc='git diff --cached'
Кроме простых обёрток, я сделал пару небольших скриптов, например алиас rgls позволяет вывести на экран статус репозитория для каждой папки в текущем каталоге, а rgbr выведет информацию о ветках — бывает удобно, когда работаешь с кучей репозиториев, быстро проверить все репозитории разом:
rgls, как и rgbr использует команду find и в параметре -exec проверяет является ли каталог git репозиторием — если это так, то запускает команду.
Алиас для rgls:
alias rgls="find ./ -maxdepth 1 -type d -not -path '\.*/' -exec sh -c '([ -d {}/.git ] && echo {} && git -C {} status -s)' \;"
Алиас для rgbr:
alias rgbr="find ./ -maxdepth 1 -type d -not -path '\.*/' -exec sh -c '([ -d {}/.git ] && echo -ne \"{}\t\" && git -C {} branch --show-current | column -t)' \;"
Алиасы Docker
Для докера я использую довольно простые алиасы, но они действительно экономят много времени:
- alias dx='docker exec -ti'
- alias dps='docker ps'
- alias dcx='docker-compose exec'
- alias dcu='docker-compose up'
- alias dcd='docker-compose down'
- alias dce='docker-compose exec'
- alias dcs='docker-compose start'
- alias dcps='docker-compose ps'
- alias dcl='docker-compose logs'
- alias dclf='docker-compose logs -f --tail=50'