Wie erstelle ich einen Bash-Alias?

189

Ich bin unter OSX und muss so etwas alias blah="/usr/bin/blah"in eine Konfigurationsdatei einfügen, aber ich weiß nicht, wo sich die Konfigurationsdatei befindet.

schick
quelle
Tangential ist dieser bestimmte Alias ​​grundsätzlich redundant, es sei denn, Sie versuchen speziell, die PATHAuflösung der Shell für diesen bestimmten Befehl zu überschreiben . Wenn /usr/bines in Ihrem ist PATH(was es wirklich sein muss), dann blahläuft es von dort auch ohne diesen Alias ​​einwandfrei, es sei denn, es gibt auch ein Wort /usr/local/bin/blahund /usr/local/binist vorher /usr/binin Ihrem, PATH aber Sie möchten es immer noch bevorzugen /usr/bin/blahund können es aus irgendeinem Grund nicht einfach entfernen oder umbenennen /usr/local/bin/blah.
Tripleee
Selbst dann ist dies eine zweifelhafte, hackige Lösung, die mit einem großen, fetten, hässlichen Kommentar mit einer Warnmeldung einhergehen sollte, die Ihnen sagt, wie dies Ihren wohlgeformten Unterbauch beißen wird, und einem weiteren Spruch "Ich habe es Ihnen gesagt" für jedes Mal, wenn dies geschah.
Tripleee
1
Für alle Automatisierungsliebhaber: Ich persönlich füge addAlias() { echo "alias $1='$2' " >> ~/.bash_profile mein bash_profile hinzu und beschaffe es dann und führe es aus addAlias hi 'echo "hi" '. Quell-Bash-Profil und Typ hi, um es zu sehen.
Devssh

Antworten:

268

Sie können ein aliasoder ein functionin Ihre Startskriptdatei einfügen. Normalerweise ist dies .bashrc, .bash_loginoder .profileDatei in Ihrem Home - Verzeichnis.

Da diese Dateien ausgeblendet sind, müssen Sie eine ls -aausführen, um sie aufzulisten. Wenn Sie keine haben, können Sie eine erstellen.


Wenn ich mich richtig erinnere, war die .bash_loginDatei nicht da , als ich meinen Mac gekauft hatte. Ich hatte es für mich zu schaffen , so dass ich setzen könnte prompt info, alias, functionsusw. drin.

Hier sind die Schritte, wenn Sie einen erstellen möchten:

  1. Starten Sie das Terminal
  2. Geben Sie ein cd ~/, um zu Ihrem Home-Ordner zu gelangen
  3. Geben Sie ein touch .bash_profile, um Ihre neue Datei zu erstellen.
  4. Bearbeiten Sie .bash_profilemit Ihrem bevorzugten Editor (oder geben Sie ihn einfach ein open -e .bash_profile, um ihn in TextEdit zu öffnen.
  5. Geben Sie . .bash_profileneu zu laden .bash_profileund aktualisieren jede Alias Sie hinzufügen.
jaypal singh
quelle
8
Super, danke @jaypal! Ist der Befehl source .bash_profileeine Alternative zu Schritt 5?
Ian Campbell
10
Ja, auf meinen OSX Mavericks gab es kein .bash_profilein meinem Home-Verzeichnis. Das Erstellen, Hinzufügen des Alias ​​und anschließendes Initiieren mit dem . .bash_profileBefehl hat funktioniert.
Bradley Flood
1
.bash_profile funktioniert bei mir! :) .bashrc nicht auf El Capitan
Parth
5
Unter OSX .bash_profilefunktioniert El Capitan . Wenn es beim Öffnen eines Terminalfensters nicht automatisch geladen wird, liegt dies wahrscheinlich daran, dass es ohne ausführbare Berechtigung erstellt wurde. Dieser Befehl wird es beheben und es sollte automatisch für zukünftige Sitzungen geladen werden:chmod u+x .bash_profile
Mischinab
1
.bash_profile Profil ist gesperrt, wie kann ich diese Datei aktualisieren
amit gupta
31

Unter OS X möchten Sie ~ / .bash_profile verwenden. Dies liegt daran, dass Terminal.app standardmäßig für jedes neue Fenster eine Anmeldeshell öffnet.

Weitere Informationen zu den verschiedenen Konfigurationsdateien und deren Verwendung finden Sie hier: Was ist der Unterschied zwischen .bashrc, .bash_profile und .environment?

und in Bezug auf OSX hier: Über .bash_profile, .bashrc und wo sollte ein Alias ​​geschrieben werden?

Mike Gardiner
quelle
31

Ich öffne zshrc einfach mit sublime und bearbeite es.

subl .zshrc

Und füge dies auf erhaben hinzu:

alias blah="/usr/bin/blah"

Führen Sie dies im Terminal aus:

source ~/.bashrc

Getan.

Gui Yoshi
quelle
4
Das ist verwirrt. Wenn Ihre Shell Bash ist, sind viele andere Antworten auf dieser Seite detaillierter und hilfreicher. Wenn Sie Zsh anstelle von Bash verwenden, sollten Sie source .zshrcam Ende natürlich die Änderungen laden, die Sie an Ihrer aktuell ausgeführten Shell-Instanz vorgenommen haben.
Tripleee
18

In meiner .bashrcDatei waren standardmäßig die folgenden Zeilen vorhanden:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Daher ist auf meiner Plattform .bash_aliasesdie Datei, die standardmäßig für Aliase verwendet wird (und die, die ich verwende). Ich bin kein OS X-Benutzer, aber ich denke, wenn Sie Ihre .bashrcDatei öffnen , können Sie feststellen, welche Datei üblicherweise für Aliase auf Ihrer Plattform verwendet wird.

jcollado
quelle
Wenn das Profil beim Öffnen eines Terminalfensters nicht automatisch geladen wird, fehlt wahrscheinlich die ausführbare Berechtigung. Dieser Befehl wird es beheben und sollte automatisch für zukünftige Sitzungen geladen werden:chmod u+x .bash_profile
Mischinab
1
@Mischinab Nein, die Datei muss nur lesbar sein, damit Bash sie als Konfigurationsdatei lesen kann. Es ausführbar zu machen ist technisch harmlos, aber unnötig. Ich würde es aus nichttechnischen Gründen entmutigen (Sie könnten sich und / oder andere verwirren).
Tripleee
9
cd /etc
sudo vi bashrc

Fügen Sie Folgendes hinzu:

alias ll="ls -lrt"

Starten Sie schließlich Terminal neu.

user3613987
quelle
1
Nach dem Hinzufügen eines Alias. Führen Sie 'source' in Ihrer '.bash_profile'-Datei aus. Beispiel: source ~ / .bash_profile (Befehl, der die Bash-Aliase aktiviert / neu lädt)
UIResponder
8

Es funktioniert für mich unter macOS Majave

Sie können einige einfache Schritte ausführen:

1) Terminal öffnen

2) sudo nano /.bash_profile

3) Fügen Sie Ihre Aliase als Beispiel hinzu:

# some aliases
alias ll='ls -alF'
alias la='ls -A'
alias eb="sudo nano ~/.bash_profile && source ~/.bash_profile"
#docker aliases
alias d='docker'
alias dc='docker-compose'
alias dnax="docker rm $(docker ps -aq)"
#git aliases
alias g='git'
alias new="git checkout -b"
alias last="git log -2"
alias gg='git status'
alias lg="git log --pretty=format:'%h was %an, %ar, message: %s' --graph"
alias nah="git reset --hard && git clean -df"
alias squash="git rebase -i HEAD~2"

4) source /.bash_profile

Getan. Nutzen und genießen!

Ultimatum
quelle
7

Die Konfigurationsdatei für Skripte und Programme ist ~/.bashrcund die Konfigurationsdatei, die geladen wird, wenn Sie Terminal verwenden, ist ~/.bash_login.

Ich denke, der beste Weg ist, einfach alles dabei zu haben ~/.bashrc.

Geben Sie für Ihre spezielle Frage einfach ein (dies überschreibt alle vorhandenen ~ / .bashrc):

echo "alias blah=\"/usr/bin/blah\"" >>~/.bashrc

in das Terminal und eine ~/.bashrcDatei wird mit Ihren neuen Alises erstellt. Danach bearbeiten Sie einfach die Datei, um neue Aliase, Funktionen, Einstellungen usw. hinzuzufügen.

kmikael
quelle
5
Sollten Sie nicht >>stattdessen verwenden, >damit es an die Datei angehängt wird, anstatt alles darin zu ersetzen?
Jonny
6
  1. Zur Startseite
  2. Öffnen Sie .bashrc
  3. Erstellen Sie einen Alias ​​am Ende der Datei

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. Speicher die Datei

  5. Quelle .bashrc

    source ~/.bashrc
  6. Öffnen Sie das Terminal (Strg + Alt + T), geben Sie cdDesktop ein und drücken Sie die Eingabetaste

Pranav VR
quelle
4

Wenn Sie blah="/usr/bin/blah"Ihre eingeben, ~/.bashrckönnen Sie sie $blahin Ihrer Login-Shell als Ersatz für die Eingabe verwenden/usr/bin/blah

SiegeX
quelle
Das Dollarzeichen ist hier nachdrücklich in keiner Weise notwendig, nützlich oder korrekt.
Tripleee
4

MacOS Catalina und höher

Apple hat gerade seine Standard-Shell auf zsh umgestellt , daher enthalten die Konfigurationsdateien ~/.zshenvund ~/.zshrc. Das ist genau so ~/.bashrc, aber für zsh. Bearbeiten Sie einfach die Datei und fügen Sie hinzu, was Sie benötigen. Es sollte jedes Mal bezogen werden, wenn Sie ein neues Terminalfenster öffnen:

nano ~/.zshenv alias py=python

Drücken Sie dann Strg + x, y und geben Sie zum Speichern ein.

Diese Datei scheint unabhängig davon ausgeführt zu werden (Login, Nicht-Login oder Skript), scheint also besser als die ~/.zshrcDatei zu sein.

High Sierra und früher

Die Standard-Shell ist bash, und Sie können die Datei bearbeiten ~/.bash_profileund Aliase hinzufügen:

nano ~/.bash_profile alias py=python

Dann Strg + x, y und Eingabe zum Speichern. Weitere Informationen zu diesen Konfigurationen finden Sie in diesem Beitrag . Es ist ein wenig besser , es mit Ihrem Alias einzurichten in ~/.bashrc, dann Quelle ~/.bashrcaus ~/.bash_profile. Darin ~/.bash_profilewürde dann aussehen:

source ~/.bashrc

Worte dafür
quelle
3

Sie möchten wahrscheinlich die .bashrcDatei in Ihrem Home-Verzeichnis bearbeiten .

Ghoti
quelle
1

Erstellen Sie ein bash_profile bei Ihrem Benutzer root - ex

/user/username/.bash_profile

Datei öffnen

vim ~ / .bash_profile

Alias ​​als Beispiel hinzufügen. (speichern und schließen)

alias mydir="cd ~/Documents/dirname/anotherdir"

Geben Sie im neuen Terminal einfach mydir ein - es sollte sich öffnen

/user/username/Documents/dirname/anotherdir
Pravin
quelle
0

Ich denke es ist richtig:

1) Gehen Sie zum Teminal. open ~/.bashrc. Hinzufügen, falls nicht vorhanden

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

2) open ~/.bash_aliases. Wenn nicht vorhanden:touch ~/.bash_aliases && open ~/.bash_aliases

3) Um einen neuen Alias ​​hinzuzufügen,
bearbeiten Sie die .bash_aliasesDatei und starten Sie das Terminal neu oder drucken Sie source ~/.bash_aliases
- drucken Sie, echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliaseswo sich Ihr Alias ​​befindet alias clr='clear'.

4) Zeile source ~/.bash_aliaseszur ~/.bash_profileDatei hinzufügen. Es muss Aliase in jeden Init des Terminals laden .

Nik Kov
quelle
0

Für Benutzer von macOS Catalina:

Schritt 1: Erstellen oder aktualisieren Sie die .zshrc-Datei

vi ~/.zshrc

Schritt 2: Fügen Sie Ihre Alias-Zeile hinzu

alias blah="/usr/bin/blah"

Schritt 3: Quelle .zshrc

source ~/.zshrc 

Schritt 4: Überprüfen Sie, ob Sie ein Alias ​​sind, indem Sie an der Eingabeaufforderung einen Alias ​​eingeben

alias
Shirish Singh
quelle
0

Um eine permanente Alias-Verknüpfung zu erstellen, legen Sie sie in der Datei .bash_profile ab und zeigen Sie die Datei .bashrc auf die Datei .bash_profile. Befolgen Sie diese Schritte (ich erstelle einen Alias-Befehl namens bnode, um babel transpiler auf ES6-Code auszuführen):

  1. Gehen Sie zur Terminal-Eingabeaufforderung und geben Sie "cd" ein (dies bringt Sie zum Ausgangsverzeichnis. Hinweis: Obwohl sich Ihre Programmierdateien möglicherweise auf Ihrem "D: Laufwerk" befinden, befinden sich Ihre ".bash" -Dateien möglicherweise auf Ihrem "D: Laufwerk". C: Laufwerk ”)
  2. Um den Speicherort des Home-Verzeichnisses anzuzeigen, geben Sie "pwd" ein (dies zeigt Ihnen den Pfad des Home-Verzeichnisses und wo sich die .bash-Dateien wahrscheinlich befinden).
  3. Um alle Punkte "." Zu sehen. Geben Sie im Ausgangsverzeichnis "ls -la" ein (hier werden ALLE Dateien einschließlich versteckter Punktdateien angezeigt.)
  4. Sie sehen 2 Dateien: ".bash_profile" und ".bashrc"
  5. Öffnen Sie die .bashrc-Datei im VS Code Editor oder in Ihrer IDE und geben Sie in der ersten Zeile "source ~ / .bash_profile" ein (um die .bashrc-Datei auf .bash_profile zu verweisen).
  6. Öffnen Sie die Datei .bash_profile im VS-Code-Editor und geben Sie "alias bnode = '. / Node_modules / .bin / babel-node'" ein (um eine permanente bnode-Verknüpfung zu erstellen, die als Bash-Befehl ausgeführt werden soll).
  7. Speichern und schließen Sie beide Dateien
  8. Öffnen Sie nun die Datei, die Sie ausführen möchten (index.js), öffnen Sie sie in der Terminal-Eingabeaufforderung und führen Sie die Datei mit dem Befehl "bnode index.js" aus.
  9. Jetzt wird Ihre index.js-Datei ausgeführt, aber bevor Sie einen bnode-Alias ​​in der .bash_profile-Datei erstellen, wird der Fehler "bash: bnode-Befehl nicht gefunden" angezeigt, und es werden keine ES6-Codes erkannt und Fehler ausgegeben.
  10. Hilfreicher Link zum Erfahren von Dotfiles: https://dotfiles.github.io/

Ich hoffe das hilft! Viel Glück!

Kean Amaral
quelle