
我的主目錄中有這些檔案:
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
我的預設 shell 是 Korn shell。當我嘗試.profile
像這樣輸入別名時:
alias l='ls -lrt'
並嘗試在重新登入後運行它:
$ l
ksh: l: not found.
如何使這個別名起作用?
答案1
.profile
僅在登入時讀取。以後的修改不會影響目前環境。您必須.profile
透過以下方式重新載入:
- 取得文件:(
. .profile
影響目前的外殼,不是全部貝殼) su -l <user>
(新登入)- 登出+登入
答案2
它確實有效。
我可以看到我自己的 .profile 的唯一區別是雙引號:
alias l="ls -l"
該行適用於我在 AIX 中使用 ksh 作為 shell 的情況。
關於斷開和重新連接...您確定預設 shell 是 ksh 嗎?在 /etc/passwd 中檢查您的使用者。
答案3
這.profile
不是您的 shell 配置文件,而是您的登入會話設定檔案。它只能被登入時啟動的 shell 讀取,而不能被登入工作階段中啟動的其他互動式 shell 讀取。
ksh
本身沒有專用的自訂文件,但它將變數$ENV
視為互動式 shell 會話的自訂檔案的路徑。
所以你會添加類似的內容:
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