С чего начать Первые шаги трек · 15 ступеней
Linux Labs

alias — псевдонимы команд

3 мин bash

Короткие имена для длинных команд; временно и навсегда через ~/.bashrc; почему alias не виден в скриптах.

Шпаргалка

5 команд Версия для печати
  • alias ll='ls -lah' создать
  • alias список
  • unalias ll удалить
  • \cmd / command cmd запуск оригинала, минуя alias
  • echo "alias ..='cd ..'" >> ~/.bashrc навсегда

Обзор

alias — псевдоним: короткое имя, которое оболочка разворачивает в команду. Удобно для частых команд с флагами. Это функция интерактивной оболочки — в скриптах alias'ы по умолчанию не работают (там пиши функции, см. bash-scripting).

Ключи

2

У alias почти нет флагов: он принимает пары имя='команда'. Из полезного — -p (печатать список в виде, пригодном для повторного выполнения, как без аргументов) и unalias -a (удалить сразу все псевдонимы текущей сессии).

Псевдоним из командной строки живёт только до закрытия терминала. Чтобы был всегда — добавь в ~/.bashrc (для конкретного пользователя):

bash
echo "alias ll='ls -lah'" >> ~/.bashrc
source ~/.bashrc              # применить в текущей сессии (или открой новый терминал)

Системные значения по умолчанию в Ubuntu лежат в ~/.bash_aliases (его подключает ~/.bashrc). Подробнее про профили и $PATH — env-vars.

Псевдоним не принимает аргументы так, как ожидает новичок: alias gl='git log' подставляется перед остальной строкой, поэтому gl -5 работает (превращается в git log -5), а вставить аргумент в середину команды псевдоним не может — для этого нужна функция оболочки (см. bash-scripting).

Ключ Что делает Пример
-p Напечатать все текущие псевдонимы в виде, пригодном для повторного выполнения (как без аргументов). alias -p
-a Удалить сразу все псевдонимы текущей сессии. опасно unalias -a

Ничего не найдено. Попробуй запрос короче.

Рецепты

1

Примеры

bash
alias                         # показать все текущие псевдонимы
alias ll='ls -lah'            # создать псевдоним
alias gs='git status'
alias ..='cd ..'
alias grep='grep --color=auto'
type ll                       # проверить, во что развернётся (см. which/type)
unalias ll                    # удалить один
\ls                           # запустить ОРИГИНАЛ, минуя alias (обратный слеш)
command ls                    # то же — без alias-расширения

Неполадки

3

Псевдоним пропал после перезахода

Ты создал его в строке, но не сохранил в ~/.bashrc. Добавь туда.

alias не работает в скрипте / по sudo

Это норма: alias'ы не наследуются неинтерактивной оболочкой и sudo. Решения: функция в ~/.bashrc, или sudo с полной командой. Для повтора под root — sudo bash -ic 'alias_name' (грубо) либо просто разверни команду руками.

Нужно временно запустить настоящую команду

Префикс \ (\rm file) или command rm file — выполнит оригинал без alias.

См. также

  • env-vars — env, export, $PATH, ~/.bashrc vs профили; почему «command not found».
  • which — Найти, какой бинарь выполнится, builtin это или alias, где лежит и man к нему.
  • bash-scripting — Переменные, условия, циклы, аргументы и безопасный режим set -euo pipefail.
Загрузка…