Как создавать псевдонимы оболочки для длинных команд
Если вы ежедневно пользуетесь терминалом, вы, вероятно, много раз вводили одни и те же длинные команды. Алиасы оболочки (shell aliases) позволяют создавать короткие псевдонимы, чтобы избежать повторений.
Проблема
Я регулярно использую Claude Code и иногда мне нужно запускать его с флагом --dangerously-skip-permissions. Постоянно вводить это утомительно:
claude --dangerously-skip-permissions
Это 42 символа. Мне хотелось чего-то, что можно было бы набрать, не задумываясь.
Простое решение: алиасы
Самый быстрый способ — использовать обычный алиас оболочки. Добавьте это в ваш файл ~/.zshrc (или ~/.bashrc, если вы используете bash):
# Сокращения для Claude
alias cl="claude"
alias cld="claude --dangerously-skip-permissions"
Затем перезагрузите вашу оболочку:
source ~/.zshrc
Вот и всё. Теперь:
clзапускаетclaude(2 символа вместо 6)cldзапускаетclaude --dangerously-skip-permissions(3 символа вместо 42)
Оба варианта также принимают дополнительные аргументы. cld -m "fix the bug" будет работать точно так же, как claude --dangerously-skip-permissions -m "fix the bug".
Прежде чем выбрать имя: проверьте конфликты
Прежде чем создавать алиас, убедитесь, что это имя еще не занято другой командой в вашей системе:
which cl 2>/dev/null
which cld 2>/dev/null
type cl 2>/dev/null
type cld 2>/dev/null
Если ничего не выводится, значит, имя свободно. Избегайте переопределения встроенных команд, таких как cd, ls или rm, если вы точно не знаете, что делаете.
Когда нужен больший контроль: функции
Алиасы отлично подходят для простого сопоставления. Но что, если вам нужна подкоманда вроде claude danger? Алиасы не поддерживают пробелы в именах. Для этого вам понадобится функция оболочки:
claude() {
if [[ "$1" == "danger" ]]; then
shift
command claude --dangerously-skip-permissions "$@"
else
command claude "$@"
fi
}
Это перехватывает первый аргумент. Если это danger, он заменяет его полным флагом. В противном случае он передает все остальное настоящему бинарному файлу claude без изменений.
Ключевое слово command здесь важно. Оно указывает оболочке вызвать фактический исполняемый файл, а не рекурсивно вызывать саму функцию.
В итоге я остановился на более простом варианте с алиасами cl и cld. Меньше нажатий клавиш — лучше.
Примеры использования
# Запустить claude в обычном режиме
cl
# Запустить claude в опасном режиме
cld
# Передать дополнительные аргументы
cld -m "fix the auth bug"
cl -m "explain this function"
Примените шаблон ко всему
Это работает для любой команды, которую вы вводите часто:
# Сокращения для Docker
alias dc="docker compose"
alias dcu="docker compose up -d"
alias dcd="docker compose down"
# Сокращения для Git
alias gs="git status"
alias gp="git push"
alias gl="git log --oneline -10"
Начните с команд, которые вы вводите чаще всего. Выполните history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10, чтобы найти самые используемые команды, и создайте алиасы для самых длинных из них.
Алиасы оболочки — один из самых простых способов повысить продуктивность в терминале. Три символа вместо сорока двух быстро дают ощутимый результат.