Ответы:
type
Встроенный полезен для этого. Он расскажет вам не только о псевдонимах, но и о функциях, встроенных функциях, ключевых словах и внешних командах.
$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep ()
{
ps -ef | {
read -r;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
type -a cmd
покажет все команды с этим именем в порядке приоритета, что полезно для указанного ls
выше псевдонима, где сам псевдоним вызывает ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Это говорит вам, что когда вы запустите ls
, /bin/ls
будет использоваться и --color=auto
будет включен в список аргументов, в дополнение к любому другому, который вы добавляете сами.
type
пока не нажмешь что-то кроме псевдонима ...
type
будет анализировать / интерпретировать любые кавычки, чтобы вы могли убедиться, что они верны.
ls is aliased to 'ls --color=auto'
, но как я могу получить один слой глубже, чтобы увидеть, использует ли он / bin / ls или / usr / local / bin / ls или как?
type -a ls
покажет все команды ls, найденные в порядке предпочтения. В зависимости от того, что находится под псевдонимом, будет выполняться псевдоним.
Просто введите alias
в командной строке Shell. Он должен вывести список всех текущих активных псевдонимов.
Или вы можете напечатать, alias [command]
чтобы увидеть, к какому псевдониму привязан конкретный псевдоним. Например, если вы хотите узнать, к какому ls
псевдониму добавлен псевдоним, вы можете сделать это alias ls
.
alias ls
чтобы узнать, к чему конкретно ls
привязан.
type
однако работает в обоих случаях.
Мне очень нравится Ctrl+ Alt+ , Eкак я узнал из этого ответа . Он «раскрывает» набранную в настоящее время командную строку, что означает расширение псевдонима (среди прочего).
Что это обозначает? Он превращает любой псевдоним, который может быть записан в командной строке, в псевдоним.
Например, если я наберу:
$ ls
а затем нажмите Ctrl+ Alt+ E, она превращается в
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R
вместоsqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Строго говоря, правильный ответ - использование массива BASH_ALIASES, например:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
ls
псевдоним, не меняя того, что там. Так что я собираюсь alias ls="${BASH_ALIASES[ls]} --time-style=iso"
для моего случая.
Вы можете использовать which
команду.
Если вы установите псевдоним ls
как, ls -al
а затем введите which ls
, вы увидите:
ls: aliased to ls -al
,
which
команды.
which
плохой способ поиска псевдонимов, как описано здесь: unix.stackexchange.com/questions/10525/… У меня даже не работает псевдонимы в bash на Ubuntu.