AIX (Korn シェル、.profile) でエイリアスが機能しないのはなぜですか?

AIX (Korn シェル、.profile) でエイリアスが機能しないのはなぜですか?

ホームディレクトリに次のファイルがあります:

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

.profile私のデフォルトのシェルは Korn シェルです。次のようにエイリアスを設定しようとしました。

alias l='ls -lrt'

再ログイン後に実行してみました:

$ l
ksh: l:  not found.

このエイリアスを機能させるにはどうすればいいでしょうか?

答え1

.profileログイン時にのみ読み込まれます。その後の変更は現在の環境には影響しません。次の.profile方法で再読み込みする必要があります。

  • ファイルのソース: . .profile(影響は現在シェルではなく全て貝殻
  • su -l <user>(新規ログイン)
  • ログアウト + ログイン

答え2

それは機能します。

私の .profile との唯一の違いは二重引用符です。

alias l="ls -l"

この行は、シェルとして ksh を使用する AIX では機能します。

切断と再接続に関してですが、デフォルトのシェルは ksh ですか? /etc/passwd でユーザーを確認してください。

答え3

これは.profileシェル設定ファイルではなく、ログインセッションです設定ファイルこれはログイン時に起動されたシェルによってのみ読み取られ、ログイン セッション内で起動された他の対話型シェルによって読み取られることはありません。

ksh専用のカスタマイズ ファイル自体はありませんが、変数は$ENV対話型シェル セッションのカスタマイズ ファイルへのパスとして扱われます。

したがって、次のような内容を追加します。

ENV="$HOME/.kshrc" export ENV

あなた~/.profileと:

alias 'l=ls -lrt'

あなたの に~/.kshrc

変更は次回のログイン時にのみ有効になります。

答え4

エイリアスは Korn Shell を使用した AIX で機能します。

次のようなコマンドを最後に追加します/etc/profile:

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

これらの変数を環境内で設定したい場合は、以下を起動します。

. /etc/profile

関連情報