So definieren Sie Aliase dauerhaft in Terminal

18

Ich möchte meiner Umgebung Aliase hinzufügen, damit sie in allen Terminal-Instanzen verfügbar sind.

Ich habe diese Antwort bekommen :

Ja, Sie können es in Ihrem .bashrc, .bash_profile oder .profile ablegen. Auf einigen Systemen geben die Shell-Init-Skripte auch .bash_aliases oder .aliases als Quelle aus. Wenn also eine dieser Dateien auf Ihrem System vorhanden ist, kann es sinnvoll sein, sie zu verwenden. "

Aber ich kann keine dieser Dateien finden.

(Ich habe OS X so konfiguriert, dass versteckte Dateien angezeigt werden. Dennoch sehe ich keine der obigen 4.)

Elad Benda
quelle
Aliase funktionieren nur in der Shell (im Terminal). Was genau verstehen Sie unter dem Hinzufügen von Aliasen zu Ihrer OS X-Umgebung? Möchten Sie einen Alias ​​für alle Benutzer zugänglich machen?
Nohillside
Ich meinte, es wird für jede Terminalinstanz festgelegt, die ich in Zukunft öffne
Elad Benda,
Ich habe Ihre Bearbeitung zurückgesetzt, weil sich der Fokus der Frage geändert hat. Wenn Sie immer noch nach einer Antwort zum Hinzufügen von Aliasnamen zu zsh suchen, stellen Sie eine neue Frage.
Nohillside

Antworten:

23

Wenn Sie bash verwenden, fügen Sie die Alias-Befehle zu ~ / .bashrc hinzu und speichern Sie eine Datei wie die folgende unter dem Namen ~ / .bash_profile:

. ~/.bashrc

Wenn bash als interaktive Shell ohne Anmeldung aufgerufen wird, liest es .bashrc, jedoch nicht .bash_profile. Wenn bash als interaktive Anmeldeshell aufgerufen wird, liest es .bash_profile, jedoch nicht .bashrc.

Terminal und iTerm öffnen standardmäßig neue Shells als Login-Shells. Daher verwenden viele OS X-Benutzer einfach .bash_profile als ihre persönliche Konfigurationsdatei. Zum Beispiel öffnen tmux und der Shell-Modus in Emacs neue Shells als Nicht-Login-Shells.

.profile wird auch von anderen Shells wie ksh gelesen. Wenn sowohl .bash_profile als auch .profile vorhanden sind, liest bash .bash_profile nur, wenn es als interaktive Anmeldeshell aufgerufen wird.

Weitere Informationen finden Sie unter https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html .

Lri
quelle
3
@EladBenda Wenn Sie verwenden zsh, fügen Sie die Alias-Befehle hinzu ~/.zshrc. ~/.zshrcwird sowohl von (interaktiven) Nicht-Login- als auch von Login-Shells gelesen, sodass Sie nicht darauf zugreifen müssen ~/.zprofile.
Lri
Wollten schon immer den Unterschied zwischen .bash_profile und .bashrc kennen, jetzt weiß ich es. Vielen Dank.
Deesbek
Eine bessere Option ist, Aliase in einer Datei mit dem Namen ~ / .aliases zu behalten, wenn Sie oh-my-zsh verwenden. Wenn diese Datei nicht vorhanden ist, kann sie im Basisordner hinzugefügt werden und ist eine versteckte Datei.
Anusha
6

Öffnen Sie ein neues Terminalfenster und wechseln Sie in Ihr Home-Verzeichnis (geben Sie einfach ein cdund drücken Sie die Eingabetaste).

Danach geben ls .bash*und auch ls .profile(bitte jede dieser Dateinamen beginnen mit einem Punkt beachten). Wenn Sie diese Dateien haben (und Sie sollten mindestens die .profile-Datei haben), müssen Sie sie bearbeiten und Ihre Aliase hinzufügen. Ich benutze VI (oder VIM), um diese Dateien zu bearbeiten, aber Sie könnten einen anderen Editor verwenden ( open .bash_profilewenn Sie in Ihr Terminal-Fenster tippen, wird es in TextEditor geöffnet, was möglicherweise benutzerfreundlicher ist, wenn Sie nicht mit VI vertraut sind). . Wenn Sie aus irgendeinem Grund keine dieser Dateien haben, erstellen Sie eine neue (und nennen Sie sie .bashrc), und fügen Sie Ihre Alias-Zeilen hinzu (dies ist also ein Befehl pro Zeile, wie Sie sie eingeben würden) in der Shell) und speichern Sie die Datei. Anschließend können Sie mithilfe von Symlinks zu .bash_profile und .profile erstellen ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Was ich normalerweise mache ist, dass ich .bashrc und .bash_profile symbolische Links zu .profile mache und mich dann nur um eine einzige Datei kümmern muss.

Der Unterschied zwischen diesen Dateien besteht darin, dass Bash je nachdem, ob es als Anmeldeshell (normalerweise würde ein Anmeldevorgang die Shell als Anmeldeshell starten) oder nur als interaktive (aber nicht als Anmeldeshell) gestartet wurde, oder unterschiedliche Quellen verwendet eine nicht interaktive Shell. Alle drei Dateien im Wesentlichen gleich zu haben, gibt mir eine konsistente Umgebung, unabhängig davon, wie die Bash gestartet wurde.

Sie werden weitere Informationen erhalten man bash, aber seien Sie vorbereitet, es ist eine lange Manpage. Sie können sehen, welche der drei Dateien (.bashrc, .profile und .bash_profile) bezogen wurde, je nachdem, in welchem ​​Modus die Bash gestartet wurde.

Hoffe das hilft - wenn nicht, ruf mich an.

Mike
quelle
3

Geben Sie die folgenden Befehle in Terminal ein:

cd /etc
sudo vi bashrc

füge folgendes wie folgt hinzu:

alias ll="ls -lrt"

Schließlich starten Sie Terminal neu.

user172265
quelle
2

Wenn Sie diese Maschine breit benötigen, müssen Sie in den /etcOrdner schauen . Sie sind jedoch möglicherweise nicht standardmäßig vorhanden. In diesem Fall müssen Sie sie nur im obigen Ordner erstellen und das Terminal neu starten. Sie müssen sie höchstwahrscheinlich verwenden sudo, um sie zu erstellen, da der /etcOrdner im Besitz von ist root.

Wenn Sie dies für jedes Terminal benötigen, das Sie öffnen, müssen Sie es nicht maschinenweit ausführen. Sie können diese Dateien in Ihrem eigenen Basisordner erstellen und sie werden bei jedem Start einer Terminalsitzung vom Terminal gelesen.

Wie in den Kommentaren erwähnt, können Sie diese in der Regel nur mit terminal und using sehen ls -lha.

BinaryMisfit
quelle
0

Wenn Sie Ruby installiert haben, lesen Sie dieses Ruby-Skript unter https://github.com/ytbryan/aka

Das Skript bietet Funktionen wie Persistenz und Auto-Sourcing von Punktedateien. Sie können Aliase über das Terminal verwalten, ohne Ihren Workflow zu unterbrechen, und einen Texteditor öffnen.

Haftungsausschluss: Ich habe dieses Skript geschrieben und benutze es jeden Tag. Lassen Sie mich wissen, wenn es einen Fehler / eine Idee gibt. :)

ytbryan
quelle
0

Für diejenigen unter Ihnen, die den Befehl ll wie in Linux BASH suchen, ist er wie folgt erstellt ...

alias ll="ls -laF"

Fügen Sie diese Zeile zu Ihrer .bashrcDatei hinzu und duplizieren Sie die .bashrcDatei als .bash_profile. Sie werden es immer und für immer haben.

Für das, was es wert ist, ist ll unter Linux BASH nur ein Alias ​​von " ls -laF".

Phillip H. Blanton
quelle
-2

Ich hatte das gleiche Problem, dass ich keine .bash oder .profile in meinem Profilverzeichnis hatte. Ich habe es endlich in / etc gefunden

Leo Boulanger
quelle
1
/ etc wird systemweit verwendet. Ich empfehle dringend, diese Dateien nicht zu bearbeiten, sondern eigene Profildateien in Ihrem Home-Ordner zu verwenden, z. B. ~ / .bash_profile.
grg
Ich brauche kein ~ / .bash_profile, es war das erste, was ich ausprobiert habe und wenn ich eines erstelle, wird es auch nach einem Neustart nicht verwendet. Ich glaube, meine Admins haben es irgendwie verhindert. Ich benutze jetzt zsh und die .zshrc funktioniert gut
Leo Boulanger