C Shell (csh):將以下的東西加入你的 .cshrc 裡。alias setprompt 'set prompt="${cwd}% "' setprompt # to set the initial prompt alias cd 'chdir \!* && setprompt'假如你有用 pushd 與 popd, 把底下的東西也加進去。alias pushd 'pushd \!* && setprompt' alias popd 'popd \!* && setprompt'若你的 C shell 沒有 $cwd 這個變數,那就得用 `pwd` 代替之。若你想要的只是 prompt 裡有目前所在目錄的最後一個成分 ("mail%" 而非 "/usr/spool/mail%") 則用
alias setprompt 'set prompt="$cwd:t% "'有些舊版的 csh 將 && 和 || 的意義弄反了。你可以試試看:false && echo bug若結果是印出 "bug",那就把 && 和 || 對調,或找一個沒有這種 bug 的 csh 來用。Bourn Shell (sh):
如果你有較新版的 Bourn Shell(SVR2 或更新的版本),那麼你就可 以用一個 shell function 來造你自己的命令,譬如 "xcd":xcd() { cd $* ; PS1="`pwd` $ ";}如果你的 Bourn Shell 是比較舊的版本,也是可以做到,但是方法比 較複雜。這裡提供一個方法。把以下的內容加入你的 .profile:LOGIN_SHELL=$$ export LOGIN_SHELL CMDFILE=/tmp/cd.$$ export CMDFILE # 16 is SIGURG, pick a signal that's not likely to be used PROMPTSIG=16 export PROMPTSIG trap '. $CMDFILE' $PROMPTSIG然後把以下的部份寫成一個可執行的 script (不需要縮排),名字就 叫做 "xcd",放在你的 PATH 中: xcd directory - change directory and set prompt : by signalling the login shell to read a command file cat >${CMDFILE?"not set"} <<EOF cd $1 PS1="\`pwd\`$" EOF kill -${PROMPTSIG?"not set"} ${LOGIN_SHELL?"not set"}那麼,現在就可已用 "xcd /some/dir" 來改變工作目錄了。Korn Shell (ksh):
把下面這行加入你的 .profile 中:PS1='$PWD $ '如果你只想顯示最後一個部分,那麼就用PS1='${PWD##*/} $ 'T C shell (tcsh)
Tcsh 是常用的 csh 加強版,增加了一些內建變數(及許多其他的功 能):%~ the current directory, using ~ for $HOME %/ the full pathname of the current directory %c or %. the trailing component of the current directory所以你可以直接用set prompt='%~'BASH (FSF's "Bourne Again Shell")
$PS1 中若放 w 表示工作目錄的完整路徑 (以~
表示 $HOME ): 而 W 則是 表示工作目錄的最後一個部份。所以,只要把前面所提 有關 sh 和 ksh 的方法做以下的修改PS1='\w $ '或PS1='\W $ '