Frage Wie erstelle ich einen permanenten "Alias"? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Wenn Sie zum Beispiel einen Alias ​​erstellen:

alias cls="clear"

Es existiert, bis Sie eine Termin-Sitzung beenden. Wenn Sie ein neues Terminalfenster starten, existiert der Alias ​​nicht mehr. Wie erstelle ich einen "permanenten" Alias, der in jeder Terminal-Sitzung existiert?


165
2017-08-06 15:14


Ursprung


In diesem speziellen Beispiel löscht ^ L (Control-l) ebenfalls den Bildschirm. - loevborg


Antworten:


Sie können solche Aliase in die ~/.bash_aliases Datei.

Diese Datei wird von geladen ~/.bashrc. Unter Ubuntu 10.04 müssen die folgenden Zeilen unkommentiert sein, um die Verwendung von zu ermöglichen ~/.bash_aliases. Unter Ubuntu 11.04 und später ist es bereits aktiviert:

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

Der Alias-Befehl wird auf jedem neuen Terminal verfügbar sein. Um den aliased-Befehl auf einem vorhandenen Terminal zu haben, muss man ihn quellen ~/.bashrc von diesem Terminal als

source ~/.bashrc

185
2017-10-06 19:45



+1 Ich empfehle dies über die Bearbeitung ~ / .bashrc. Obwohl ~ / .bashrc tatsächlich für eine Vielzahl anderer Zwecke nützlich ist, hat es einfach zu viele Elemente, die einen Benutzer, der mit den Eigenheiten von Linux-Shells nicht vertraut ist, abwerfen könnten. - ændrük
Beispiel: echo "cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - hobs
@ ændrük Ich finde die Fülle von Shell-Config-Dateien tatsächlich verwirrend. Meiner Meinung nach ist es einfacher, wenn es eine ziemlich lange Konfigurationsdatei mit allen Einstellungen gibt. - haziz
@hobs muss es sein: echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - Amir Ali Akbari
Gracias für die Korrektur - hobs


Fügen Sie Ihre Zeile hinzu ~/.bashrc oder in ~/.profile / ~/.bash_profile für Remote-Logins.

Wenn Sie möchten, dass der Befehl für alle Benutzer ausgeführt wird, fügen Sie ihn ein /etc/bash.bashrc.

Bearbeiten: In den neuesten Versionen von Ubuntu ~/.bashrc automatisch Quellen ~/.bash_aliases, so dass permanente Aliasnamen am besten in diese Datei eingefügt werden.


35
2017-08-06 15:26



Danke, es funktionierte, als ich in ~ / .bachrc P.S schrieb. Es gibt keine ~ / .profiles in meinem Home-Verzeichnis. - Zango
.profile könnte jetzt .bash_profile sein - txwikinger
Wenn die fragliche Datei nicht existiert, können Sie sie einfach erstellen. - Ryan Thompson
Danke, ich habe mich gefragt, was der Unterschied zwischen diesen beiden ist. (bashrc und bash_profile) - emf
joshstaiger.org/archives/2005/07/bash_profile_vs.html für den Unterschied zwischen ~ / .bash_profile und ~ / .bashrc - Indrajeet Gour


Sie können die folgende Funktion zu Ihrer .bashrc-Datei hinzufügen.

function permalias () 
{ 
  alias "$*";
  echo alias "$*" >> ~/.bash_aliases
}

Dann öffne ein neues Terminal oder laufe source ~/.bashrc in Ihrem aktuellen Terminal. Sie können jetzt permanente Aliase erstellen, indem Sie die permalias Befehl zum Beispiel permalias cls=clear.


18
2017-11-17 21:22



Anwendungshinweis: wenn ich getippt habe mkalias smount='sudo mount' die Zitate wurden nicht buchstäblich wiederholt, also war meine Lösung mkalias "smount='sudo mount'" Wenn Sie einen 2+ Wörter Befehl aliasieren, benötigen Sie dies auch. - TecBrat


Halten Sie diesen Befehl in der letzten Zeile Ihres ~/.bash_profile


4
2017-08-06 15:17



Warum nicht ~/.bashrc? - mac9416
Bashrc ist bevorzugt, ich verstehe, obwohl nicht klar warum - emf


Sehen http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html für den Unterschied zwischen ~/.bash_profile und ~/.bashrc

~/.bashrc wird jedes Mal ausgeführt, wenn Sie ein neues Terminal öffnen, während ~/.bash_profile ist nicht. ~/.bashrc enthält das Folgende, das die enthält ~/.bash_aliases Datei. Dies wäre der am besten geeignete Ort, um deinen Alias ​​hinzuzufügen.

# 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

4
2017-07-03 11:00





reset
echo "Enter alias like this:"
echo "alias dir='ls'"
read var
echo "$var" >> /home/$user/.bashrc && . ~/.bashrc
cat .bashrc

-3
2018-04-01 21:18



Bitte erläutern Sie, was Ihre Antwort tut. Nur eine Menge Code zu zeigen ist fast nie gut. Wenn Sie dies tun, ping mich mit einem Kommentar zu @DavidFoerster und ich werde für Ihre Antwort stimmen. - David Foerster