Odpowiedzi:
typeWbudowane jest przydatna dla. Informuje nie tylko o aliasach, ale także funkcjach, wbudowanych funkcjach, słowach kluczowych i poleceniach zewnętrznych.
$ 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 cmdpokaże wszystkie polecenia według tej nazwy w kolejności pierwszeństwa, co jest przydatne dla lspowyższego aliasu, do którego wywołuje sam alias ls.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Mówi ci to, że kiedy uruchomisz ls, /bin/lszostanie użyty i --color=autobędzie uwzględniony na liście argumentów, oprócz innych, które sam dodasz.
typeaż trafisz na coś innego niż alias ...
typeanalizuje / interpretuje wszelkie cytaty, dzięki czemu możesz się upewnić, że cytaty są poprawne.
ls is aliased to 'ls --color=auto', ale jak mogę uzyskać jedną warstwę głębiej, aby zobaczyć, czy używa / bin / ls lub / usr / local / bin / ls, czy co?
type -a lspokaże wszystkie polecenia ls znalezione w kolejności preferencji. Cokolwiek znajduje się bezpośrednio pod aliasem, to to, które zostanie wykonane przez alias.
Wystarczy wpisać aliasw wierszu poleceń powłoki. Powinien wyświetlić listę wszystkich aktualnie aktywnych aliasów.
Możesz też wpisać, alias [command]aby zobaczyć, do jakiego aliasu jest alias, na przykład, jeśli chcesz dowiedzieć się, do którego lsaliasu został alias, możesz to zrobić alias ls.
alias lsaby dowiedzieć się, do czego konkretnie lsjest alias.
typejednak działa w obu przypadkach.
Naprawdę podoba mi się Ctrl+ Alt+, Ejak dowiedziałem się z tej odpowiedzi . „Rozszerza” aktualnie wpisany wiersz poleceń, co oznacza, że wykonuje rozwinięcie aliasu (między innymi).
Co to znaczy? Zmienia dowolny alias, który może być obecnie zapisany w wierszu poleceń, w to, co oznacza alias.
Na przykład, jeśli napiszę:
$ ls
a następnie naciśnij Ctrl+ Alt+ E, zmieni się w
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R zamiastsqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Ściśle mówiąc poprawną odpowiedzią jest użycie tablicy BASH_ALIASES, np .:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
lsaliasie bez zmiany tego, co tam jest. Więc idę alias ls="${BASH_ALIASES[ls]} --time-style=iso"po moją sprawę.
Możesz użyć whichpolecenia.
Jeśli ustawisz alias dla lsas, ls -ala następnie wpisz which ls, zobaczysz:
ls: aliased to ls -al.
whichpolecenia.
whichto zły sposób na wyszukiwanie aliasów, jak wyjaśniono tutaj: unix.stackexchange.com/questions/10525/... To nawet nie działa dla mnie dla aliasów w bash na Ubuntu.