Odpowiedzi:
type
Wbudowane 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 cmd
pokaże wszystkie polecenia według tej nazwy w kolejności pierwszeństwa, co jest przydatne dla ls
powyż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/ls
zostanie użyty i --color=auto
będzie uwzględniony na liście argumentów, oprócz innych, które sam dodasz.
type
aż trafisz na coś innego niż alias ...
type
analizuje / 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 ls
pokaż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ć alias
w 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 ls
aliasu został alias, możesz to zrobić alias ls
.
alias ls
aby dowiedzieć się, do czego konkretnie ls
jest alias.
type
jednak 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
ls
aliasie bez zmiany tego, co tam jest. Więc idę alias ls="${BASH_ALIASES[ls]} --time-style=iso"
po moją sprawę.
Możesz użyć which
polecenia.
Jeśli ustawisz alias dla ls
as, ls -al
a następnie wpisz which ls
, zobaczysz:
ls: aliased to ls -al
.
which
polecenia.
which
to 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.