admin 管理员组

文章数量: 887021


2023年12月22日发(作者:dede装修模板)

更换Linux的Shell为csh后,终端命令行就只剩一个 #,不显示当前目录,很是别扭,若是你也有此烦恼,请继续阅读此文。

显示当前路径的方法:

打开.cshrc文件,复制如下代码到其末尾,

alias setprompt 'set prompt="[`whoami`@${cwd}]# "'

setprompt# to set the initial prompt

alias cd 'chdir !* && setprompt'

保存,重新打开终端,伊人再现

附:

Unix使用技巧:如何让提示符中包含当前路径

不同的SHELL设置的方法不同,比较方便的是GNU bash(Bourne Again Shell)

和ksh(Korn Shell)以及tcsh(csh的增强版,Linux中的csh就是到tcsh的一个

符号连接)。普通的sh(Bourne Shell)和csh设置比较罗嗦。下面就一个一个的

说各种Shell的设置方法:

ksh:

由于ksh把提示符变量PS1作为一个特殊的变量看待,cd的时候ksh会自动更

新PS1的值所以只要简单的把当前路径对应的环境变量$PWD加到PS1里就行了:

PS1=’$PWD $ ’

sh:

由于Bourne Shell只把PS1作为一个普通的变量,而且不支持别名,因此无

法完美地实现DOS中相同的功能,解决的方法是重新定义一个命令(比如xcd)

将其实现为一个函数:

xcd() { cd $* ; PS1="`pwd` $ "; }

然后每次用xcd切换目录。

csh:

csh虽然不对提示符变量$prompt作特殊处理,但它支持别名,可以修改一下

cd的语义,使其自动修改提示符:

alias setprompt ’set prompt="${cwd}% "’

setprompt# to set the initial prompt

alias cd ’chdir !* && setprompt’

bash:

bash提供了一些特殊的变量来支持提示符的设置,w表示当前路径,并把

等同于$HOME的部分替换成~,以缩短提示符的长度。

PS1=’w $ ’

Linux中是把hostname也加上了:

PS1=’h:w $ ’ # h 表示hostname

为了更象DOS,可以把不同的命令分得更清楚,我通常加上一个换行符:

PS1=’

h:w $ ’

tcsh:

tcsh的做法类似于bash,只不过变量的名字不同:

set prompt=’%~ ’ # %~ 表示当前路径


本文标签: 提示符 变量 路径 方法 设置