zoukankan      html  css  js  c++  java
  • Linux/Unix中的命令提示符prompt

    用惯了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='%~ '        # %~ 表示当前路径

  • 相关阅读:
    贪心-poj-3040-Allowance
    [置顶] .net技术类面试、笔试题汇总3
    数据对接—kettle使用之二
    做好先期工作,才能有效沟通
    cc++复习基础要点08--c++单例模式
    android 限制adb的访问目录
    我奋斗18年,和你或者咖啡没有任何关系
    (3)选择元素——(15)总结(Summary)
    (3)选择元素——(16)延伸阅读(Further reading)
    网络协议复习
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4369137.html
Copyright © 2011-2022 走看看