Wie erstelle ich einen permanenten Bash-Alias?


Zur akzeptierten Antwort gehen


Ich möchte einen Alias ​​für den rm Befehl erstellen, um nach Ausführung dieses Befehls eine Bestätigungsmeldung zu erhalten. Also erstelle ich einen Alias ​​wie diesen alias rm='rm -i' . Aber soweit ich weiß, handelt es sich um einen vorübergehenden Alias, der so lange besteht, bis Sie das Terminal schließen.

Wie es erklärt hier zu speichern Alias dauerhaft muss ich ausführen ~/.bash_aliases oder ~/.bashrc in Terminal - Befehle und fügen Sie mein Alias dort. Beim Ausführen ~/.bashrc erhalte ich jedoch folgende Fehlermeldung:

 bash: /home/bakhtiyor/.bashrc: Permission denied
 

Beim Ausführen ~/.bash_aliases erhalte ich folgende Fehlermeldung:

 bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
 

Was ist das eigentliche Problem und wie kann ich es lösen?


388





2010-12-15




Anzahl der Antworten: 9


Um einen Alias ​​dauerhaft zu erstellen, fügen Sie den Alias ​​zu Ihrer .bashrc Datei hinzu

 gedit ~/.bashrc
 

Und dann füge deinen Alias ​​unten hinzu.


Alt-Text

Führen . ~/.bashrc Sie nun in Ihrem Terminal aus (zwischen . und sollte ein Leerzeichen stehen) ~/.bashrc .

Jetzt können Sie Ihren Alias ​​überprüfen.


Alt-Text


441


2010-12-15

Es gibt viele Möglichkeiten, einen Alias ​​zu erstellen. Die am häufigsten verwendeten Methoden sind:

  1. Fügen Sie Aliase direkt in Ihre ~/.bashrc Datei ein

    Zum Beispiel: Hänge diese Zeile an die ~/.bashrc Datei an

     alias ll='ls -l'
    alias rm='rm -i'
     

    Das nächste Mal (nach dem Abmelden / Anmelden oder Fertigstellen . ~/.bashrc ), wenn Sie rm den rm -i Befehl eingeben, wird ausgeführt.

  2. Mit der zweiten Methode können Sie eine separate Aliase-Datei erstellen, sodass Sie sie nicht .bashrc in einer Datei Ihrer Wahl ablegen müssen. Bearbeiten Sie zunächst Ihre ~/.bashrc Datei und fügen Sie die folgenden Zeilen hinzu, falls sie noch nicht vorhanden sind, oder entfernen Sie die Kommentare, falls dies der Fall ist:

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

    Speichern Sie es und schließen Sie die Datei. Danach müssen Sie nur noch eine ~/.bash_aliases Datei erstellen und dort Ihre Aliase mit demselben Format wie in der ersten Methode hinzufügen.

    Inhalt meiner ~/.bash_aliases Datei:

     alias cs='cd;ls'
     

256


2010-12-15

Es hört sich für mich so an, als ob Ihr einziges Problem darin besteht, einfach .bashrc auszuführen, wenn es nicht ausführbar ist. Dies ist jedoch nicht der richtige Weg. Wann immer Sie eine Änderung an dieser Datei vornehmen, sollten Sie diese mit dem folgenden Befehl "ausführen":

 source ~/.bashrc
 

Andernfalls wird einfach eine neue Shell erstellt, die Datei in der Umgebung der neuen Shell ausgeführt und diese Umgebung beim Beenden verworfen, wodurch Ihre Änderung verloren geht. Durch das Aufrufen des Skripts wird es in der aktuellen Shell ausgeführt, sodass es in Kraft bleibt.

Ich nehme an, der zweite Fehler war, weil bash_aliases nicht existiert. Es ist nicht erforderlich, es wird lediglich empfohlen, Ihre Änderungen getrennt und organisiert aufzubewahren. Es wird nur verwendet, wenn es existiert, und Sie können den Test dafür in .bashrc sehen:

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

Dies besagt, dass wenn die Datei ~ / .bash_aliases existiert, sie ausgeführt wird.


19


2012-01-16

Das Problem ist, dass Sie versuchen, eine nicht ausführbare Datei auszuführen: Sie können dies überprüfen mit:

 ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc
 

Beachten Sie, dass sich in der ersten Spalte kein Buchstabe "x - ausführbar" befindet (Dateiberechtigungen).

Profildateien sind keine ausführbaren Dateien, statt sie auszuführen, laden Sie sie mit:

 source /home/bakhtiyor/.bashrc
 

oder

 . /home/bakhtiyor/.bashrc
 

17


2010-12-15

 echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc
 

Dies ist ein Beispiel, das ich gesucht habe, eine Möglichkeit, einige Buchstaben am Terminal ("vps") einzugeben, um sich remote bei einem Server anzumelden und die X11-Weiterleitung zu aktivieren, damit ich GUI-Apps wie "gedit" über das Netzwerk ausführen kann.

Was auch immer der Befehl / Alias-Befehl ist, dieser Weg mit der Echo-Anweisung, den Anführungszeichen und dem Symbol zum Anhängen der Ausgabe eines Befehls an eine Datei (>>) funktioniert für mich. Ersetzen Sie einfach meinen Befehl durch den gewünschten Alias-Befehl und geben Sie ihn in Ihr Terminal ein.


7


2013-06-15

Wenn Sie Ruby verwenden, können Sie auch Rubygem installieren.

gem install aka2

Verwendung

 aka generate hello="echo helloworld" #add an alias
aka g hello="echo helloworld"  #add alias for lazy people

aka destroy hello #remove alias
aka d hello #remove alias for lazy people
 

Das Rubygem generiert automatisch eine Quelle für Ihre Punktedatei, sodass Sie dies nicht benötigen. Hör zu.


5


2015-01-21

Ich habe diese hilfreiche Funktion geschrieben, um schnell einen neuen Alias ​​zu erstellen und dann die Aliasdefinition an ~/.bash_aliases (falls vorhanden) oder zu schreiben ~/.bashrc .

TIPP : Stellen Sie sicher ~/.bash_aliases , dass & in ausgeführt wird ~/.bashrc .

 # -----------------------------------
#  Create a new permanent bash alias
#
#  @param $1 - name
#  @param $2 - definition
# -----------------------------------
new-alias () { 
  if [ -z "$1" ]; then
    echo "alias name:" && read NAME
  else
    NAME=$1
  fi

  if alias $NAME 2 > /dev/null > /dev/null; then
    echo "alias $NAME already exists - continue [y/n]?" && read YN
    case $YN in
      [Yy]* ) echo "okay, let's proceed.";;
      [Nn]* ) return;;
      * ) echo "invalid response." && return;;
    esac
  fi

  if [ -z "$2" ]; then
    echo "alias definition:" && read DEFINTION
  else
    DEFINTION="$2"
  fi

  if [ -f ~/.bash_aliases ]; then
    echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases
  else
    echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc
  fi

  alias $NAME="$DEFINTION"
}
 

4


2013-12-17

Ich würde vorschlagen, mit /etc/bash.bashrc

Sie können eine Zeile am Ende dieser Datei hinzufügen.

 alias ok="ping google.com"
 

Nachdem Sie die Aliase pro Zeile eingegeben haben, müssen Sie neu starten oder sich neu anmelden.


0


2015-08-09

Soweit ich mich erinnere, bashrc gab oder gab es eine Zeile, die vorschlug, sie nicht direkt für Aliase zu verwenden. Die Lösung besteht darin, eine oder mehrere externe Dateien zu verwenden. Die Aliase foo und bar wurden hinzugefügt, aber um baz die bashrc Datei hinzuzufügen , muss sie "Quelle" sein (oder öffnen Sie einfach ein neues Terminal). Beispiel als:

 [email protected]:~$ 
[email protected]:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias bar='echo foo'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias foo='echo foo'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
[email protected]:~$ 
[email protected]:~$ cat .bash_aliases 
alias foo='echo foo'
alias bar='echo foo'
alias baz='echo baz'

[email protected]:~$ 
[email protected]:~$ source .bashrc 
[email protected]:~$ 
[email protected]:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias bar='echo foo'
alias baz='echo baz'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias foo='echo foo'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
[email protected]:~$ 
[email protected]:~$ baz
baz
[email protected]:~$ 
 

jetzt baz funktioniert der alias. Ich erst jetzt erkannt , dass eine vorherige Antwort hatte erwähnt , diese Technik, aber sie hatten die lede begraben.


0


2018-12-22