免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 704 | 回复: 0
打印 上一主题 下一主题

Linux/Unix中的命令提示符prompt [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-25 15:15 |只看该作者 |倒序浏览
用惯了DOS的伙计刚用Unix时最想干的事情就是想把Unix搞得像DOS一些,
其中的一条就是把Unix的提示符设置成$p$g那样的。下面就说一说做的方法。
不同的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='%~ ' # %~ 表示当前路径
Sample:
Solaris中的不同做法:如何在命令行显示目录?
用惯了DOS的伙计刚用Unix时最想干的事情就是想把Unix搞得像DOS一些,
其中的一条就是把Unix的提示符设置成$p$g那样的。下面就说一说做的方法。
    不同的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='%~ '        # %~ 表示当前路径


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93338/showart_1878950.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP