![Wo ist das Skript für den Alias-Befehl in Linux?](https://rvso.com/image/134425/Wo%20ist%20das%20Skript%20f%C3%BCr%20den%20Alias-Befehl%20in%20Linux%3F%20.png)
Ich möchte ein Argument zum Bash-Alias-Skript hinzufügen, damit ich es einfach ausführen kann
alias -p l='ls -l'
und es würde dauerhaft zu meiner .zshrc hinzugefügt. Aber ich kann das Shell-Skript für den Alias nicht finden.
Ich habe es versucht whereis alias
, aber ohne Erfolg. Sogar man alias
die Anzeige „Alias“ hat keinen Eintrag.
Ich habe nachgeschaut, /usr/bin, /usr/share/local/bin
aber ohne Erfolg. Kann mir jemand den Standort zeigen?
EDIT: Ich habe auch versucht, in allen möglichen Pfaden zu suchen, indemls $(echo $PATH| tr ':' '\n') | grep alias
Antwort1
alias
ist ein eingebauter Befehl, der also weder als Skript in einer Datei noch als Funktion angezeigt wird. Der type
Befehl zeigt Folgendes:
$ type alias
alias is a shell builtin
Sie können es aber trotzdem überschreiben. Eine Funktion mit demselben Namen maskiert das integrierte Element, sofern sie nicht explizit mit dem builtin
integrierten Element aufgerufen wird.
Also, so etwas sollte funktionieren:
alias() {
if [ "$1" = "-p" ]; then
echo "-p was given";
shift;
fi;
builtin alias "$@";
}
Wenn Sie die gleiche Aliaszuweisung in eine Datei drucken möchten, müssen Sie darauf achten, dass die Anführungszeichen richtig sind, damit sie als Eingabe für die Shell verwendet werden kann.
So etwas könnte funktionieren (direkt nach der shift
Funktion hinzugefügt), aber testen Sie es:printf "alias %q\n" "$@" >> ~/my.alias.file
Was das Problem Bash vs. Zsh angeht, denke ich, dass das oben genannte bei beiden funktioniert, aber ich bin kein Zsh-Experte.
Übrigens möchten Sie vielleicht auch beachten, dass Bash alias
bereits über eine -p
Option verfügt help alias
, die lautet:
Options:
-p print all defined aliases in a reusable format
Ich weiß nicht, ob es irgendeinen Nutzen hat, da das Standardverhalten alias
ohne Argumente auch darin besteht, alle Aliase in einem wiederverwendbaren Format zu drucken.
Antwort2
Ihr alias
Befehl ist höchstwahrscheinlich ein Shell-Builtin und kein Skript. Sie können dies mit dem folgenden type
Befehl überprüfen:
user@host:~$ type alias
alias is a shell builtin
Um eine Dokumentation zu den alias
integrierten Funktionen zu erhalten, sehen Sie sich die bash
Manpage an:
man bash
Um einen Alias dauerhaft zu machen, fügen Sie den Befehl normalerweise zu einer Ihrer Bash-Profildateien hinzu - höchstwahrscheinlich Ihrer ~/.bashrc
Datei, z. B.:
user@host:~$ echo "alias l='ls -l'" >> ~/.bashrc
Antwort3
Soweit ich das beurteilen kann, zsh
werden keine dauerhaften Aliase unterstützt.
Wenn Sie persistente Aliase mögen, empfehle ich Ihnen,http://schilytools.sourceforge.net/man/man1/bosh.1.htmlfür eine Implementierung von Aliasnamen mit dauerhafter Verfügbarkeit.
Für andere Shells können Aliase nur als Alias-Befehle in die zugehörige .*shrc
Datei geschrieben werden.
Antwort4
Ich arbeite hauptsächlich mit der Bash und habe meine Aliase in .bashrc.
Es befindet sich in meinem Home-Verzeichnis unter /home/myuser/.bashrc