Antworten:
Das type
eingebaute ist dafür nützlich. Hier erfahren Sie nicht nur mehr über Aliase, sondern auch über Funktionen, integrierte Schlüsselwörter und externe Befehle.
$ 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
Zeigt alle Befehle mit diesem Namen in der Rangfolge an, was für den ls
obigen Alias nützlich ist , den der Alias selbst aufruft ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Dies sagt Ihnen , dass , wenn Sie laufen ls
, /bin/ls
verwendet werden, und --color=auto
wird in der Liste der Argumente, zusätzlich zu jedem anderen Sie selbst hinzufügen enthalten sein.
type
bis Sie etwas anderes als ein Alias
type
Anführungszeichen analysiert / interpretiert werden, damit Sie sicherstellen können, dass die Anführungszeichen richtig sind.
ls is aliased to 'ls --color=auto'
, aber wie kann ich eine Ebene tiefer gehen, um zu sehen, ob / bin / ls oder / usr / local / bin / ls verwendet wird oder was?
type -a ls
zeigt alle gefundenen ls-Befehle in der Reihenfolge ihrer Präferenz an. Was sich direkt unter dem Alias befindet, wird vom Alias ausgeführt.
Geben Sie einfach alias
an der Shell-Eingabeaufforderung ein. Es sollte eine Liste aller derzeit aktiven Aliase ausgegeben werden.
Sie können auch alias [command]
eingeben, um zu sehen, auf welchen Alias ein bestimmter Alias angewendet wird. Wenn Sie beispielsweise herausfinden ls
möchten, auf welche Weise der Alias angewendet wurde, können Sie dies tun alias ls
.
alias ls
, um herauszufinden, worauf genau ls
abgestellt ist.
type
Funktioniert jedoch in beiden Fällen.
Ich mag wirklich Ctrl+ Alt+ , Ewie ich aus gelernt dieser Antwort . Es "erweitert" die aktuell eingegebene Befehlszeile, dh es führt (unter anderem) eine Alias-Erweiterung durch.
Was bedeutet das? Es verwandelt jeden Alias, der aktuell in der Befehlszeile geschrieben ist, in das, wofür der Alias steht.
Zum Beispiel, wenn ich tippe:
$ ls
und dann Ctrl+ Alt+ drücken E, wird es in gedreht
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R
stattsqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Genau genommen verwendet die richtige Antwort das Array BASH_ALIASES, z.
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
ls
Alias stapeln, ohne zu ändern, was da ist. Also gehe ich alias ls="${BASH_ALIASES[ls]} --time-style=iso"
für meinen Fall.
Sie könnten den which
Befehl verwenden.
Wenn Sie einen Alias für ls
as festlegen ls -al
und dann Folgendes which ls
eingeben, wird Folgendes angezeigt:
ls: aliased to ls -al
.
which
Befehl.
which
Es ist eine schlechte Möglichkeit, Aliase zu suchen, wie hier erklärt: unix.stackexchange.com/questions/10525/… Es funktioniert nicht einmal für Aliase in Bash auf Ubuntu.