Коротко: алиасы и функции в ~/.bashrc или ~/.zshrc — самый дешёвый способ ускорить работу в терминале; готовый набор и как писать свои функции.

Команды, которые вы набираете по 50 раз в день, можно сократить до пары букв. Алиасы и функции в ~/.bashrc или ~/.zshrc — самый дешёвый способ ускорить работу в терминале. Ниже — набор, который стоит завести, и как писать свои функции с аргументами.

Куда складывать

Добавляйте в ~/.bashrc (bash) или ~/.zshrc (zsh). После правки — source ~/.zshrc, чтобы применить без перезапуска терминала. Чтобы не захламлять основной файл, удобно вынести в ~/.aliases и подключить: [ -f ~/.aliases ] && source ~/.aliases.

Базовая навигация

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ll='ls -lah'
alias l='ls -CF'
alias c='clear'
alias path='echo -e ${PATH//:/\\n}'   # PATH по строкам

Git

alias gs='git status -sb'
alias ga='git add'
alias gc='git commit -m'
alias gco='git checkout'
alias gsw='git switch'
alias gl='git log --oneline --graph --decorate -20'
alias gd='git diff'
alias gp='git push'
alias gpl='git pull --rebase'
alias gb='git branch'
# быстрый коммит-всего:
gac() { git add -A && git commit -m "$1"; }

Docker

alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
alias dcl='docker compose logs -f'
dce() { docker compose exec "${1:-php}" "${2:-bash}"; }  # dce php bash / просто dce

PHP / Symfony

alias pa='php artisan'
alias sf='php bin/console'
alias cda='composer dump-autoload -o'
alias ci='composer install'
alias pu='vendor/bin/phpunit'
alias cs='vendor/bin/php-cs-fixer fix'

Функции с аргументами

Алиас не принимает аргументы внутри — для этого нужны функции. Несколько полезных:

# mkcd: создать каталог и сразу зайти
mkcd() { mkdir -p "$1" && cd "$1"; }

# extract: распаковать что угодно одной командой
extract() {
  case "$1" in
    *.tar.gz|*.tgz) tar xzf "$1" ;;
    *.tar.bz2)      tar xjf "$1" ;;
    *.zip)          unzip "$1" ;;
    *.gz)           gunzip "$1" ;;
    *) echo "не знаю, как распаковать $1" ;;
  esac
}

# port: кто слушает порт
port() { lsof -i ":$1"; }

# killport: убить процесс на порту
killport() { lsof -ti ":$1" | xargs -r kill -9; }

# serve: быстрый http-сервер из текущей папки
serve() { php -S localhost:"${1:-8000}"; }

История и автодополнение

# больше истории и без дублей (в .bashrc/.zshrc)
export HISTSIZE=100000
export HISTCONTROL=ignoreboth   # bash: без дублей и команд с пробелом
setopt HIST_IGNORE_ALL_DUPS     # zsh-аналог
# поиск по истории: Ctrl+R (с fzf — ещё удобнее)

Совет

Не копируйте чужой огромный .zshrc целиком — добавляйте по одному алиасу, когда ловите себя на повторе команды. Так вы запомните их и не получите «магический» конфиг, в котором сами не разберётесь. Для zsh удобна Oh My Zsh, но и голый zsh с десятком своих алиасов закрывает 90% потребностей.

Маленькие сокращения дают ощутимую экономию за месяцы работы. Если хотите выстроить удобное и единообразное окружение для команды — обращайтесь за консультацией.