Как увидеть команду, прикрепленную к псевдониму bash?

Предположим, у меня есть псевдоним в оболочке bash. Есть ли простая команда, чтобы распечатать, какую команду будет запускать псевдоним?

339
задан 8 February 2012 в 03:59

5 ответов

Мне очень нравится Ctrl + Alt + E , как я узнал из этого ответа . Он «раскрывает» набранную в настоящее время командную строку, что означает расширение псевдонима (среди прочего).

Что это значит? Он превращает любой псевдоним, который в данный момент может быть записан в командной строке, в псевдоним.

Например, если я наберу:

$ ls

, а затем нажмите Ctrl + Alt + E , это превращается в

$ ls --time-style=locale --color=auto
0
ответ дан 8 February 2012 в 03:59

Вы можете использовать команду which.

Если вы установите псевдоним для ls как ls -al, а затем наберете which ls, вы увидите:

ls: aliased to ls -al.

0
ответ дан 8 February 2012 в 03:59

Просто введите alias в командной строке. Он должен вывести список всех активных в настоящее время псевдонимов.

Или, вы можете набрать alias [command], чтобы увидеть, к какому псевдониму добавлен псевдоним, например, если вы хотите узнать, к какому псевдониму ls был добавлен псевдоним, вы можете сделать alias ls.

]
0
ответ дан 8 February 2012 в 03:59

Встроенный 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 будет включен в список аргументов, в дополнение к любым другим, которые вы добавляете сами.

0
ответ дан 8 February 2012 в 03:59

Строго говоря, правильный ответ использует массив BASH_ALIASES, например :

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
0
ответ дан 8 February 2012 в 03:59

Другие вопросы по тегам:

Похожие вопросы: