Załóżmy, że mam alias w powłoce bash. Czy istnieje proste polecenie do wydrukowania, które polecenie zostanie uruchomione przez alias?
command-line
bash
alias
Casebash
źródło
źródło
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óregols
aliasu został alias, możesz to zrobićalias ls
.źródło
alias ls
aby dowiedzieć się, do czego konkretniels
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ę:
a następnie naciśnij Ctrl+ Alt+ E, zmieni się w
źródło
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 .:
źródło
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 wpiszwhich ls
, zobaczysz:ls: aliased to ls -al
.źródło
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.