Гайды

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

Иллюстрация: тяжёлая связка длинных ключей лежит в стороне, а один маленький ключ открывает ту же дверь

Открой терминал на Ubuntu и набери ll. Получишь подробный список файлов. А теперь попробуй найти программу ll:

type ll
ll is aliased to `ls -alF'

Такой программы нет. Это alias — короткое имя, которое терминал разворачивает в длинную команду. Ubuntu положила его в твои настройки заранее. Ты пользовался алиасом, даже не зная слова. Давай сделаем свои.

Что такое alias и зачем он

Alias (по-русски «псевдоним») — твоё короткое имя для команды. Набираешь gs — терминал выполняет git status.

Зачем: команды, которые ты набираешь по двадцать раз в день, перестают отнимать время. И в них меньше опечаток. Особенно полезно для длинных команд, которые ИИ-ассистент советует запускать снова и снова.

Шаг за шагом

  1. Узнай, какая у тебя оболочка.

    echo $SHELL
    

    Ответ /bin/zsh — у тебя zsh (на Mac он стоит по умолчанию с 2019 года). Ответ /bin/bash — bash (почти все Linux). От этого зависит, в какой файл писать.

  2. Проверь, что имя свободно.

    type gs
    

    Если ответ not found — бери. Если там уже программа — выбери другое имя. Это не перестраховка: gs — это Ghostscript, и если он стоит у тебя, твой алиас его заслонит.

  3. Попробуй alias прямо сейчас.

    alias gs='git status'
    

    Без пробелов вокруг =. Команду бери в одинарные кавычки. Набери gs — работает. Но только в этом окне: закроешь терминал, и алиас пропадёт.

  4. Сохрани навсегда. Допиши строку в файл настроек:

    echo "alias gs='git status'" >> ~/.zshrc
    

    Для bash замени ~/.zshrc на ~/.bashrc. Обрати внимание на два знака >>: они дописывают в конец. Один > сотрёт весь файл. Это скрытый файл с точкой в начале — подробнее про такие в статье что такое dotfile.

  5. Подхвати изменения.

    source ~/.zshrc
    

    Почему именно source, а не запуск файла, разобрано в статье source или запуск скрипта. Или просто открой новое окно терминала.

  6. Проверь. 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.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →