Warum funktioniert Alias ​​in AIX (Korn-Shell, .profile) nicht?

Warum funktioniert Alias ​​in AIX (Korn-Shell, .profile) nicht?

Ich habe diese Dateien in meinem Home-Verzeichnis:

drwxr-xr-x    3 meuser staff           256 Oct 12 13:11 .
drwxr-xr-x  102 bin      bin            4096 Sep 30 12:28 ..
-rw-------    1 meuser staff          5349 Oct 11 20:44 .bash_history
-rwx------    1 meuser staff           466 Jun 26 22:12 .profile
-rw-------    1 meuser staff          7074 Oct 12 13:11 .sh_history
drwx------    2 meuser staff           256 Aug 16 15:28 .ssh

.profileMeine Standard-Shell ist die Korn-Shell. Als ich versuchte, einen Alias ​​wie folgt einzugeben :

alias l='ls -lrt'

und habe versucht, es nach dem erneuten Anmelden auszuführen:

$ l
ksh: l:  not found.

Wie lässt sich dieser Alias ​​zum Laufen bringen?

Antwort1

.profilewird nur beim Login gelesen. Spätere Änderungen wirken sich nicht auf die aktuelle Umgebung aus. Sie müssen neu laden .profiledurch:

  • Quelle der Datei: . .profile(betrifft dieaktuellSchale, nichtalleMuscheln)
  • su -l <user>(neuer Login)
  • Abmelden + Anmelden

Antwort2

Es funktioniert.

Der einzige Unterschied, den ich bei meinem eigenen .profile sehe, sind die doppelten Anführungszeichen:

alias l="ls -l"

Diese Zeile funktioniert bei mir unter AIX mit ksh als Shell.

Bezüglich der Trennung und Wiederherstellung der Verbindung … sind Sie sicher, dass die Standard-Shell ksh ist? Überprüfen Sie Ihren Benutzer in /etc/passwd.

Antwort3

Dies .profileist nicht Ihre Shell-Konfigurationsdatei, sondern Ihre AnmeldesitzungEinstellungsdatei. Es wird nur von der Shell gelesen, die beim Anmelden gestartet wird, nicht von anderen interaktiven Shells, die während Ihrer Anmeldesitzung gestartet werden.

kshverfügt an sich nicht über eine dedizierte Anpassungsdatei, behandelt die $ENVVariable jedoch als Pfad zu einer Anpassungsdatei für interaktive Shell-Sitzungen.

Sie würden also etwas hinzufügen wie:

ENV="$HOME/.kshrc" export ENV

zu Ihrem ~/.profileund:

alias 'l=ls -lrt'

zu Ihrem ~/.kshrc.

Die Änderung würde erst beim nächsten Login wirksam werden.

Antwort4

Die Aliase funktionieren in AIX mit Korn Shell.

Fügen Sie am Ende Ihres /etc/profileLikes einige Befehle ein:

export PS1="`hostname`# "
alias ll="/usr/bin/ls -lF $*"
alias h="history 50"

Wenn Sie diese Variablen in Ihrer Umgebung festlegen möchten, starten Sie:

. /etc/profile

verwandte Informationen