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'
. Soweit ich weiß, handelt es sich jedoch um einen vorübergehenden Alias, der so lange besteht, bis Sie das Terminal schließen.
Wie erläutert , wird hier alias permanent speichern muss ich ausführen ~/.bash_aliases
oder ~/.bashrc
Befehle in Terminal und mein Alias dort hinzuzufügen. 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?
alias rm='rm -i'
löst nicht das problem derAntworten:
Um einen Alias dauerhaft zu erstellen, fügen Sie den Alias zu Ihrer
.bashrc
Datei hinzuUnd dann füge deinen Alias unten hinzu.
Führen
. ~/.bashrc
Sie nun in Ihrem Terminal aus (zwischen.
und sollte ein Leerzeichen stehen)~/.bashrc
.Jetzt können Sie Ihren Alias überprüfen.
quelle
source
. Mit. ~/.bashrc
beschaffen Sie Ihre Bash. Das Ausführen der Datei würde einen untergeordneten Prozess starten, die Befehle in diesem Prozess ausführen und dann zurückkehren. Alles, was im untergeordneten Prozess ausgeführt wird, hat keine Auswirkungen auf den übergeordneten Prozess (die Bash, von der aus Sie ausgeführt haben). Stattdessen verhält sich das Sourcing (mit dem Punkt) genau so, als ob Sie den Inhalt der Datei in das Terminal geschrieben hätten. Das ist, was du willst..bashrc
wird jedes Mal bezogen, wenn Sie eine Bash starten. Wenn Sie Änderungen vornehmen, werden diese erst wirksam, wenn Sie eine neue Bash oder Quelle manuell starten.Es gibt viele Möglichkeiten, einen Alias zu erstellen. Die am häufigsten verwendeten Methoden sind:
Fügen Sie Aliase direkt in Ihre
~/.bashrc
Datei einZum Beispiel: Hänge diese Zeile an die
~/.bashrc
Datei anDas nächste Mal (nach dem Abmelden / Anmelden oder Fertigstellen
. ~/.bashrc
), wenn Sierm
denrm -i
Befehl eingeben, wird ausgeführt.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: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:quelle
~/.bash_aliases
.alias aliases="xdg-open ~/.bash_aliases && source ~/.bash_aliases"
, also wurde der Alias beim Speichern nutzbar, und wenn Sie einen Fehler machen, wird er Sie ankündigen.alias ls='ls -althr'
, haben einige der angegebenen Flags keine Wirkung gezeigt. In diesem Fall hat das -t-Flag keine Wirkung gezeigt. wissen Sie, warum?~/.bashrc
enthält Inklusion für~/.bash_aliases
, muss nicht bearbeitet werden.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":
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, nur zu empfehlen, Ihre Änderungen getrennt und organisiert zu halten. Es wird nur verwendet, wenn es existiert, und Sie können den Test dafür in .bashrc sehen:
Dies besagt, dass wenn die Datei ~ / .bash_aliases existiert, sie ausgeführt wird.
quelle
~/.bash_aliases
ist besser. askubuntu.com/questions/194111/…source
Befehl funktionierten meine Aliase. +1. ~/.bash_aliases
hat dieselbe Bedeutung wie der in die Shell integrierte Befehlsource
. Ich finde das die richtige Antwort und erkläre, was los ist.Das Problem ist, dass Sie versuchen, eine nicht ausführbare Datei auszuführen: Sie können dies überprüfen mit:
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:
oder
quelle
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.
quelle
Wenn Sie Ruby verwenden, können Sie auch Rubygem installieren.
gem install aka2
Verwendungszweck
Das Rubygem generiert automatisch eine Quelle für Ihre Punktedatei, sodass Sie dies nicht benötigen. Hör zu.
quelle
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
.quelle
.bashrc
mit mehrerenalias
Befehlsinstanzen führen. Ihre Funktion muss auf jeden Fall einige Überprüfungen durchführen, um eine solche Unordnung zu vermeiden.Ich würde vorschlagen, mit
/etc/bash.bashrc
Sie können eine Zeile am Ende dieser Datei hinzufügen.
Nachdem Sie die Aliase pro Zeile eingegeben haben, müssen Sie neu starten oder sich neu anmelden.
quelle
source /etc/bash.bashrc
Sie in diesem Beispiel alles tun, was Sie wollen. Aber sollte verwenden~/.bashrc
oder~/.bash_aliases
stattdessenWie 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 Aliasefoo
undbar
wurden hinzugefügt, aber umbaz
diebashrc
Datei hinzuzufügen , muss sie "Quelle" sein (oder öffnen Sie einfach ein neues Terminal). Beispiel als:jetzt
baz
funktioniert der alias. Ich habe nur realisiert gerade jetzt , dass eine frühere Antwort hatte erwähnt , diese Technik, aber sie hatten die lede begraben.quelle