Ich bin ziemlich neu bei Zsh und Bash.
Ich möchte benutzerdefinierte Befehle einrichten, desktop
die mich beispielsweise zu meinem Desktop bringen. Das Hinzufügen der folgenden Zeilen zur Datei .bash_profile würde mit Bash funktionieren.
desktop() {
cd /Users/me/Desktop
}
Mit Zsh scheint es nicht zu funktionieren.
Kommt es nur darauf an, wo ich den Code platziere, oder gehe ich das völlig falsch an?
Antwort1
Bearbeiten Sie die Datei ~/.bashrc. Suchen Sie den Alias-Abschnitt und fügen Sie den folgenden
Alias hinzu: desktop='cd /path/to/desktop'
Dabei deklarieren Sie einige Aliase. Sie können jeden beliebigen Alias erstellen!
(Ich habe z. B. den Alias ne='emacs -nw' und jedes Mal, wenn ich
ne „some file“ ausführe
, wird die Datei im Shell-basierten Emacs geöffnet.)
Wann immer Sie „Desktop“ schreiben, gelangen Sie dorthin :-) (theoretisch)
Antwort2
Bei zsh sollten Sie ~/.zshrc bearbeiten (erstellen, falls es nicht existiert -> Beispielvorlagehttps://github.com/robbyrussell/oh-my-zsh/blob/master/templates/zshrc.zsh-template)
Also:
nano ~/.zshrc
und fügen Sie den gewünschten Alias hinzu, z. B.
Alias mein_Projekt_runserver='cd mein_Projektpfad; . venv/bin/aktivieren; ./manage.py runserver'
Mit dem obigen Alias gehe ich zu meinem Projektordner, aktiviere virtualenv und starte django server
;
trennt Befehle, so dass Sie mit einem Alias mehrere Befehle ausführen können
und führen Sie Folgendes aus, damit die Änderungen wirksam werden:
. ~/.zshrc
Antwort3
Erstellen Sie eine globale ausführbare Z-Shell-Skriptdatei
Es ist besser, eine eigene Skriptdatei zu erstellen, die global verfügbar und unabhängig von der Shell-Konfiguration ist.
1. Erstellen Sie eine Textdatei mit folgendem Inhalt (benennen Sie die Datei „Desktop“):
#!/usr/bin/env zsh
cd /Users/me/Desktop
#or any shell commands you want
2.Speichern Sie die Datei im Pfad
/usr/local/bin
3.Führen Sie den folgenden Befehl aus, um das Skript mit den richtigen Berechtigungen ausführbar zu machen:
cd /usr/local/bin
sudo chmod -x ./desktop
Sudo chmod 755 desktop
4. Starten Sie das Terminal neu.