псевдоним (команда)
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2013 г. ) |
Оригинальный автор(ы) | Билл Джой |
---|---|
Разработчик(и) | Различные с открытым исходным кодом и коммерческие разработчики разработчики |
Операционная система | Unix , Unix-подобные , AmigaDOS , FreeDOS , Microsoft Windows , ReactOS , AROS , KolibriOS , IBM i |
Платформа | Кросс-платформенный |
Тип | Команда |
В вычислительной технике псевдоним — это команда в различных интерпретаторах командной строки ( оболочках ), которая позволяет заменить слово другой строкой. [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 Shell (bash) и Korn (ksh). В оболочках, которые поддерживают как функции, так и псевдонимы, но не поддерживают параметризованные встроенные сценарии оболочки, рекомендуется использовать функции везде, где это возможно. Случаи, когда псевдонимы необходимы, включают ситуации, когда требуются связанные псевдонимы (bash и ksh). Команда alias также была перенесена в операционную систему IBM i . [3]
Использование
[ редактировать ]Создание псевдонимов
[ редактировать ]Общие оболочки Unix
[ редактировать ]Непостоянные псевдонимы можно создать, указав пары имя/значение в качестве аргументов для команды alias. В оболочках Unix синтаксис следующий:
alias gc='git commit'
оболочка C
[ редактировать ]Соответствующий синтаксис в оболочке C или tcsh :
alias gc "git commit"
Этот псевдоним означает, что когда команда gc
читается в оболочке, он будет заменен на git commit
и эта команда будет выполнена вместо этого.
4DOS
[ редактировать ]В оболочке 4DOS/4NT для определения cp
как псевдоним для 4DOS copy
команда:
alias cp copy
Windows PowerShell
[ редактировать ]Чтобы создать новый псевдоним в Windows PowerShell, new-alias
командлет можно использовать:
new-alias ci copy-item
Это создаст новый псевдоним под названием ci
который будет заменен на copy-item
командлет при выполнении.
В PowerShell псевдоним нельзя использовать для указания аргументов по умолчанию для команды. Вместо этого это необходимо сделать, добавив элементы в коллекцию $PSDefaultParameterValues, одну из привилегированных переменных PowerShell.
Просмотр определенных в данный момент псевдонимов
[ редактировать ]Для просмотра определенных псевдонимов можно использовать следующие команды:
alias # Used without arguments; displays a list of all current aliases
alias -p # List aliases in a way that allows re-creation by sourcing the output; not available in 4DOS/4NT and PowerShell
alias myAlias # Displays the command for a defined alias
Переопределение псевдонимов
[ редактировать ]В оболочках Unix можно переопределить псевдоним, заключив в кавычки любой символ в имени псевдонима при его использовании. Например, рассмотрим следующее определение псевдонима:
alias ls='ls -la'
Чтобы переопределить этот псевдоним и выполнить команду ls
команде, как она была изначально определена, можно использовать следующий синтаксис:
'ls'
или
\ls
В оболочке 4DOS/4NT можно переопределить псевдоним, добавив к нему звездочку. Например, рассмотрим следующее определение псевдонима:
alias dir = *dir /2/p
Звездочка во втором экземпляре dir
вызывает отсутствие псевдонимов dir
быть вызван, предотвращая рекурсивное расширение псевдонима. Также пользователь может получить поведение без псевдонимов dir
в командной строке, используя тот же синтаксис:
*dir
Изменение псевдонимов
[ редактировать ]В Windows PowerShell set
глагол может использоваться с alias
командлет для изменения существующего псевдонима:
set-alias ci cls
Псевдоним ci
теперь укажу на cls
команда.
В оболочке 4DOS/4NT eset
Команда предоставляет интерактивную командную строку для редактирования существующего псевдонима:
eset /a cp
The /a
вызывает псевдоним cp
для редактирования, в отличие от переменной среды с тем же именем.
Удаление псевдонимов
[ редактировать ]В оболочках Unix и 4DOS/4NT псевдонимы можно удалить, выполнив команду unalias
команда:
unalias copy # Removes the copy alias
unalias -a # The -a switch will remove all aliases; not available in 4DOS/4NT
unalias * # 4DOS/4NT equivalent of `unalias -a` - wildcards are supported
В Windows PowerShell псевдоним можно удалить с диска alias:\, используя remove-item
:
remove-item alias:ci # Removes the ci alias
Функции
[ редактировать ]Цепочка
[ редактировать ]Псевдоним обычно заменяет только первое слово. Но некоторые оболочки, такие как bash
и ksh
, позволяет заменить последовательность или слова. Эта конкретная функция недоступна через функциональный механизм.
Обычный синтаксис заключается в определении первого псевдонима с завершающим пробелом. Например, используя два псевдонима:
alias list='ls ' # note the trailing space to trigger chaining
alias long='-Flas' # options to ls for a long listing
позволяет:
list long myfile # becomes "ls -Flas myfile" when run
для длинного списка, где «long» также оценивается как псевдоним.
Аргументы команды
[ редактировать ]В C Shell строки аргументы можно встроить внутрь команды с помощью \!* . Например, с этим псевдонимом:
alias ls-more 'ls \!* | more'
ls-more /etc /usr
расширяется до ls /etc /usr | more
для вывода списка содержимого каталогов /etc и /usr, делая паузу после каждого экрана. Без \!* ,
alias ls-more 'ls | more'
вместо этого расширился бы до ls | more /etc /usr
который неправильно пытается открыть каталоги в других файлах . [4]
Вместо этого оболочки Bash . и Korn используют функции оболочки — см. § Альтернативы ниже
Альтернативы
[ редактировать ]Псевдонимы обычно должны быть простыми. Если это не так просто, обычно рекомендуется использовать одно из следующих действий:
- Скрипты оболочки , которые по сути предоставляют полную возможность создания новых системных команд.
- Символические ссылки в пользовательском
PATH
(такой как/bin
). Этот метод полезен для предоставления дополнительного способа вызова команды и в некоторых случаях может обеспечить доступ к скрытой командной функции для небольшого количества команд, которые используют свое имя вызова для выбора режима работы. - Функции оболочки, особенно если создаваемая команда должна изменить внутреннюю среду выполнения самой оболочки (например, переменные среды оболочки ), изменить текущий рабочий каталог или должна быть реализована таким образом, чтобы гарантировать ее появление в путь поиска команды для чего угодно, кроме интерактивной оболочки (особенно для любой «более безопасной» версии
rm
,cp
,mv
и так далее).
Наиболее распространенная форма псевдонимов, которая просто добавляет к команде несколько параметров, а затем включает остальную часть командной строки, может быть легко преобразована в функции оболочки по следующему шаблону:
alias ll='ls -Flas' # long listing, alias
ll () { ls -Flas "$@" ; } # long listing, function
Чтобы функция не вызывала себя рекурсивно , используйте command
:
ls () { command ls --color=auto "$@" ; }
В старых оболочках Bourne используйте /bin/ls
вместо command ls
.
Ссылки
[ редактировать ]- ^ Ругхаймер, Ханнес (10 июня 2020 г.). Краткий справочник AmigaDOS: Рюгхаймер, Ханнес: Бесплатная загрузка, заимствование и потоковая передача: Интернет-архив . ISBN 9781557550491 . Проверено 12 сентября 2020 г. - из Интернет-архива.
- ^ «Оболочки EFI и сценарии» . Интел . Проверено 25 сентября 2013 г.
- ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
- ^ «Примеры передачи аргументов, присвоенных псевдониму команды» . UNIXhelp . Эдинбургский университет . Архивировано из оригинала 25 ноября 2012 г.
Дальнейшее чтение
[ редактировать ]- МакЭлхерн, Кирк (2006). Командная строка Mac OS X: Unix под капотом . Джон Уайли и сыновья . ISBN 978-0470113851 .
Внешние ссылки
[ редактировать ]- Единая спецификация UNIX , версия 4 от The Open Group : определение или отображение псевдонимов — Справочник по командной строке и утилитам,
- Страница руководства Bash для псевдонима
- Команда псевдонима от Linux Information Project (LINFO)