Ответы:
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.