Jump to content

псевдоним (команда)

(Перенаправлено с псевдонима (команда EFI) )
псевдоним
Оригинальный автор(ы) Билл Джой
Разработчик(и) Различные с открытым исходным кодом и коммерческие разработчики разработчики
Операционная система 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/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.

  1. ^ Ругхаймер, Ханнес (10 июня 2020 г.). Краткий справочник AmigaDOS: Рюгхаймер, Ханнес: Бесплатная загрузка, заимствование и потоковая передача: Интернет-архив . ISBN  9781557550491 . Проверено 12 сентября 2020 г. - из Интернет-архива.
  2. ^ «Оболочки EFI и сценарии» . Интел . Проверено 25 сентября 2013 г.
  3. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
  4. ^ «Примеры передачи аргументов, присвоенных псевдониму команды» . UNIXhelp . Эдинбургский университет . Архивировано из оригинала 25 ноября 2012 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ae51d82af18c38c00575ea9249e51190__1713071220
URL1:https://arc.ask3.ru/arc/aa/ae/90/ae51d82af18c38c00575ea9249e51190.html
Заголовок, (Title) документа по адресу, URL1:
alias (command) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)