В вычислительной технике псевдоним — это команда в различных интерпретаторах командной строки ( оболочках ), которая позволяет заменять слово другой строкой. [1] В основном используется для сокращения системной команды или для добавления аргументов по умолчанию к регулярно используемой команде. alias
доступен в оболочках Unix , AmigaDOS , 4DOS / 4NT , FreeDOS , KolibriOS , Windows PowerShell , ReactOS и оболочке EFI . [2] Функциональность псевдонимов в операционных системах MS-DOS и Microsoft Windows обеспечивается утилитой командной строки DOSKey .
Псевдоним будет существовать в течение всего сеанса оболочки. Регулярно используемые псевдонимы можно задать из rc-файла оболочки (например, .bashrc
), чтобы они были доступны при запуске соответствующего сеанса оболочки. Команды псевдонима можно либо прописать в файле конфигурации напрямую, либо получить из отдельного файла.
В Unix псевдонимы были введены в оболочку C , чтобы выжить в дочерних оболочках, таких как tcsh и bash . Псевдонимы оболочки C были строго ограничены одной строкой. Это было полезно для создания простых команд быстрого доступа, но не более сложных конструкций. Более старые версии оболочки Bourne не предлагали псевдонимов, но предоставляли функции, которые являются более мощными, чем концепция псевдонимов csh. Концепция псевдонимов из csh была импортирована в оболочки Bourne Again (bash) и Korn (ksh). С оболочками, которые поддерживают как функции, так и псевдонимы, но не имеют параметризованных встроенных скриптов оболочки, рекомендуется использовать функции везде, где это возможно. Случаи, когда необходимы псевдонимы, включают ситуации, когда требуются цепочечные псевдонимы (bash и ksh). Команда alias также была перенесена в операционную систему IBM i . [3]
Непостоянные псевдонимы можно создавать, предоставляя пары имя/значение в качестве аргументов для команды alias. В оболочках Unix синтаксис следующий:
псевдоним gc = 'git commit'
Соответствующий синтаксис в оболочке C или tcsh выглядит следующим образом:
псевдоним gc "git commit"
Этот псевдоним означает, что при чтении команды gc
в оболочке она будет заменена на git commit
и вместо нее будет выполнена эта команда.
cp
В оболочке 4DOS/4NT для определения псевдонима для команды 4DOS используется следующий синтаксис copy
:
псевдоним cp копия
Чтобы создать новый псевдоним в Windows PowerShell, new-alias
можно использовать командлет:
новый-алиас ci копировать-элемент
Это создаст новый псевдоним с именем ci
, который будет заменен командлетом copy-item
при выполнении.
В PowerShell псевдоним не может использоваться для указания аргументов по умолчанию для команды. Вместо этого это должно быть сделано путем добавления элементов в коллекцию $PSDefaultParameterValues, одну из переменных предпочтений PowerShell.
Для просмотра определенных псевдонимов можно использовать следующие команды:
alias # Используется без аргументов; отображает список всех текущих псевдонимов alias -p # Перечисляет псевдонимы таким образом, чтобы их можно было воссоздать, используя вывод; недоступно в 4DOS/4NT и PowerShell alias myAlias # Отображает команду для определенного псевдонима
В оболочках Unix можно переопределить псевдоним, заключив в кавычки любой символ в имени псевдонима при использовании псевдонима. Например, рассмотрим следующее определение псевдонима:
псевдоним ls = 'ls -la'
Чтобы переопределить этот псевдоним и выполнить ls
команду так, как она была определена изначально, можно использовать следующий синтаксис:
'лс'
или
\лс
В оболочке 4DOS/4NT можно переопределить псевдоним, добавив к нему префикс в виде звездочки. Например, рассмотрим следующее определение псевдонима:
псевдоним dir = *dir /2/p
Звездочка во 2-м экземпляре dir
вызывает вызов unaliased dir
, предотвращая рекурсивное расширение псевдонима. Также пользователь может получить unaliased поведение dir
в командной строке, используя тот же синтаксис:
*реж.
В Windows PowerShell этот set
глагол можно использовать с alias
командлетом для изменения существующего псевдонима:
установить-алиас ci cls
Теперь псевдоним ci
будет указывать на cls
команду.
В оболочке 4DOS/4NT eset
команда предоставляет интерактивную командную строку для редактирования существующего псевдонима:
eset /a cp
Приводит к редактированию /a
псевдонима cp
, в отличие от переменной среды с тем же именем.
В оболочках Unix и 4DOS/4NT псевдонимы можно удалить, выполнив unalias
команду:
unalias copy # Удаляет копию псевдонима unalias -a # Ключ -a удалит все псевдонимы; недоступно в 4DOS/4NT unalias * # Эквивалент `unalias -a` в 4DOS/4NT - поддерживаются подстановочные знаки
В Windows PowerShell псевдоним можно удалить с диска alias:\ с помощью remove-item
:
remove-item alias : ci # Удаляет алиас ci
Обычно псевдоним заменяет только первое слово. Но некоторые оболочки, такие как bash
и ksh
, позволяют заменять последовательность или слова. Эта конкретная функция недоступна через механизм функций.
Обычный синтаксис — определить первый псевдоним с завершающим пробелом. Например, используя два псевдонима:
alias list = 'ls ' # обратите внимание на завершающий пробел для запуска цепочки alias long = '-Flas' # параметры ls для длинного списка
позволяет:
список длинных myfile # становится "ls -Flas myfile" при запуске
для длинного списка, где «long» также рассматривается как псевдоним.
В C Shell аргументы могут быть встроены в команду с помощью строки \!* . Например, с помощью этого псевдонима:
псевдоним ls-more 'ls \!* | more'
ls-more /etc /usr
расширяется до ls /etc /usr | more
списка содержимого каталогов /etc и /usr, останавливаясь после каждого экрана. Без \!* ,
псевдоним ls-more 'ls | more'
вместо этого расширится до ls | more /etc /usr
того, что неправильно попытается открыть каталоги в большем количестве . [4]
Вместо этого оболочки Bash и Korn используют функции оболочки — см. § Альтернативы ниже .
Псевдонимы обычно должны быть простыми. Там, где это не просто, обычно рекомендуется использовать одно из следующих:
PATH
(например, /bin
). Этот метод полезен для предоставления дополнительного способа вызова команды и в некоторых случаях может обеспечить доступ к скрытой функции команды для небольшого числа команд, которые используют свое имя вызова для выбора режима работы.rm
, и т. д.).cp
mv
Наиболее распространенную форму псевдонимов, которые просто добавляют несколько параметров к команде, а затем включают остальную часть командной строки, можно легко преобразовать в функции оболочки, следуя следующему шаблону:
alias ll = 'ls -Flas' # длинный список, alias
ll () { ls -Flas " $@ " ; } # длинный список, функция
Чтобы запретить функции вызывать себя рекурсивно , используйте command
:
ls () { команда ls --color = auto " $@ " ; }
В старых оболочках Bourne используйте /bin/ls
вместо command ls
.