Как создать alias в терминале — и сохранить его навсегда

Открой терминал на Ubuntu и набери ll. Получишь подробный список файлов. А теперь попробуй найти программу ll:
type ll
ll is aliased to `ls -alF'
Такой программы нет. Это alias — короткое имя, которое терминал разворачивает в длинную команду. Ubuntu положила его в твои настройки заранее. Ты пользовался алиасом, даже не зная слова. Давай сделаем свои.
Что такое alias и зачем он
Alias (по-русски «псевдоним») — твоё короткое имя для команды. Набираешь gs — терминал выполняет git status.
Зачем: команды, которые ты набираешь по двадцать раз в день, перестают отнимать время. И в них меньше опечаток. Особенно полезно для длинных команд, которые ИИ-ассистент советует запускать снова и снова.
Шаг за шагом
-
Узнай, какая у тебя оболочка.
echo $SHELLОтвет
/bin/zsh— у тебя zsh (на Mac он стоит по умолчанию с 2019 года). Ответ/bin/bash— bash (почти все Linux). От этого зависит, в какой файл писать. -
Проверь, что имя свободно.
type gsЕсли ответ
not found— бери. Если там уже программа — выбери другое имя. Это не перестраховка:gs— это Ghostscript, и если он стоит у тебя, твой алиас его заслонит. -
Попробуй alias прямо сейчас.
alias gs='git status'Без пробелов вокруг
=. Команду бери в одинарные кавычки. Набериgs— работает. Но только в этом окне: закроешь терминал, и алиас пропадёт. -
Сохрани навсегда. Допиши строку в файл настроек:
echo "alias gs='git status'" >> ~/.zshrcДля bash замени
~/.zshrcна~/.bashrc. Обрати внимание на два знака>>: они дописывают в конец. Один>сотрёт весь файл. Это скрытый файл с точкой в начале — подробнее про такие в статье что такое dotfile. -
Подхвати изменения.
source ~/.zshrcПочему именно
source, а не запуск файла, разобрано в статье source или запуск скрипта. Или просто открой новое окно терминала. -
Проверь.
type gsтеперь должен ответитьgs is an alias for git status.
Когда нужен не alias, а функция
Alias просто подставляет текст. Аргумент он может принять только в конце. А если значение нужно поставить в середину или дважды — нужна функция.
Пример: создать папку и сразу в неё перейти.
mkcd() { mkdir -p "$1" && cd "$1"; }
Пишешь её в тот же .zshrc или .bashrc. Теперь mkcd new-app сделает оба шага. $1 — первое слово после команды. Кавычки вокруг него спасают от папок с пробелами — почему это важно, есть в статье про скрипты, которые ломаются на пробелах.
Что получится
Пять алиасов, которые окупаются в первый же день:
alias gs='git status'
alias gd='git diff'
alias dev='npm run dev'
alias ..='cd ..'
alias ports='lsof -iTCP -sTCP:LISTEN -P -n'
Последний показывает, какие программы слушают порты. Спасает, когда dev-сервер пишет, что порт уже занят, а ты не помнишь кем.
Полный список своих алиасов показывает команда alias без аргументов. Удалить на время — unalias gs. Обойти алиас один раз — поставь обратный слэш: \ls запустит настоящий ls.
Какие команды сокращать
Не угадывай — спроси у истории. Эта строка покажет десять команд, которые ты набираешь чаще всего:
history | awk '{print $2}' | sort | uniq -c | sort -rn | head
В zsh history по умолчанию показывает только последние строки — замени его на history 1, тогда посчитается вся история. Первые строки списка и есть кандидаты в алиасы. Обычно это git, cd, npm и ls — отсюда и пятёрка выше.
Одно правило: не называй алиас именем существующей команды, если меняешь её смысл. alias rm='rm -i' безобиден. А вот алиас, который подменяет cp чем-то другим, однажды сработает в чужом окне — и ты не поймёшь, что произошло.
Почему alias не работает в скрипте?
Скрипт запускается в отдельной оболочке, которая не читает твой .zshrc. А bash в скриптах вообще не разворачивает алиасы. В скриптах пиши полные команды.
Почему ИИ-агент не видит мои алиасы?
Агенты часто запускают команды в своей оболочке, без твоих настроек. Если просишь агента что-то запустить, называй полную команду, а не своё сокращение.
А как на Windows?
В PowerShell есть Set-Alias, но он умеет только переименовать команду, без аргументов. Для git status там пишут функцию в файле $PROFILE.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





