Erstellen mehrerer temporärer Aliase

9

Ich bin kein Root-Benutzer und habe keinen Zugriff auf die globale Aliasdatei, in der alle Aliase erstellt wurden. Ich möchte jedoch einige Aliase erstellen, die nur für die Sitzung aktiv bleiben, in der ich angemeldet bin. Ich verwende den Befehl alias x='cd /parent/child'zum Erstellen Ein Alias, mit dem ich einfach xauf der Konsole tippen kann und das Verzeichnis in / Parent / Child ändere.

Ich möchte jedoch mehrere Aliase erstellen und nicht jeden Alias ​​eingeben, den ich jedes Mal erstelle.

Ich habe versucht, alle alias = 'do this'-Zeilen in eine Datei einzufügen (mit der Berechtigung 777), in der Hoffnung, dass beim Ausführen der Datei alle diese Aliase bei jeder Anmeldung erstellt werden. Aber das ist nicht passiert.

Ex :

alias x='cd /parent/child'
alias y='cd /a/b/c'
alias z='tail -0f some.log'

Ich habe dies auch in der Datei versucht, aber vergebens:

alias x='cd /parent/child';alias y='cd /a/b/c';alias z='tail -0f some.log'

Keiner der Aliasnamen, die ich ausprobiert habe, war bereits im globalen Alias ​​vorhanden. (Ich habe Alias ​​eingegeben und die Ausgabe auf dem Bildschirm gesehen).

Web Nash
quelle
Sie können alle Ihre Aliase in eine .bashrcDatei einfügen .
Cuonglm
@ Web Nash: Aber wenn Sie unterschiedliche Argumente an unterschiedliche Befehle übergeben möchten, funktioniert dies nicht
Thushi

Antworten:

12

Generieren Sie Ihren gesamten Sitzungsalias in einer Datei, z. B. alias.txt

alias x='cd /parent/child'
alias y='cd /a/b/c'
alias z='tail -0f some.log'

dann benutze

 . ./alias.txt

Sie sollten für diese einzelne Sitzung alle Alias-Namen in der Alias-Liste haben.

Bearbeiten:

Achten Sie darauf, zu verwenden

. ./alias.txt

nicht

./alias.txt

Im ersten Fall wird der Inhalt "wie eingegeben" gelesen, während im zweiten Fall ein Alias ​​in einer Shell definiert wird, die beendet wird.

Archemar
quelle
Ich habe anfangs etwas Ähnliches gemacht, bevor ich diese Frage gestellt habe. Anstelle einer Textdatei habe ich diese Zeilen einfach in eine Datei ohne Erweiterung eingefügt und das hat nicht funktioniert. Aber selbst als ich es mit einer .txt-Erweiterung versuchte, funktionierte es nicht
Web Nash
Das hat perfekt funktioniert. Ich danke dir sehr. Ich habe den Unterschied zwischen der Verwendung dieser drei Formen 1) alias.txt 2) ./alias.txt 3) nicht verstanden. ./alias.txt
Web Nash
Form 1) und 2) sind äquivalent, wenn. ist in deinem $ PATH. Sie werden eine neue Shell aufrufen und den Befehl ausführen. In den meisten Fällen ist dies in Ordnung. Wenn Sie jedoch einen Alias ​​oder eine Funktion wünschen, wird die Definition beim Beenden der Shell nicht mehr angezeigt.
Archemar