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

Linux/Unix中的命令提示符prompt的更多相关文章

  1. 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类

    今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在W ...

  2. 在linux/unix中查找大文件

    在linux/unix中查找大文件,如查找大于100M文件的位置路径,查找等于10M文件的位置路径等等,下面就介绍几个实现快速查找的命令: 1. 查找指定目录下所有大于100M的文件,命令为 find ...

  3. Linux/Unix 中 wheel 组的来源

    使用过 Linux/Unix 的朋友应该知道,将用户添加都 wheel用户组,让用户可以通过在命令在前加 sudo 临时获取 root 用户的权限.但是有没有朋友会想知道为何这个用户组要交 wheel ...

  4. Linux/Unix中系统级IO

    Linux/unix I/O:将设备映射为文件的方式,允许Unix内核引出一个简单.低级的应用接口. Linux/unix IO的系统调用函数很简单,它只有5个函数:open(打开).close(关闭 ...

  5. Linux/Unix中的#!和!#

    是不是在Terminal输入命令的时候,输入了很长的一个路径,然后发现还有在同一条命令中再输一次的时候很恼火,其实Shell是提供了trick的,就是使用!#(和#!不同哦) 习惯写脚本的猿,通常对于 ...

  6. Linux/UNIX 下 “command not found” 原因分析及解决

    在使用 Linux/UNIX 时,会经常遇到 "command not found" 的错误,就如提示的信息,Linux /UNIX 没有找到该命令.原因无外乎你命令拼写错误或 L ...

  7. 获得Unix/Linux系统中的IP、MAC地址等信息

    获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 ...

  8. Linux/Unix shell 脚本中调用SQL,RMAN脚本

    Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...

  9. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

随机推荐

  1. JavaScript for循环实现表格隔行变色

    本代码主要演示的是for循环, <!doctype html> <html lang="en"> <head> <meta charset ...

  2. 我的Java开发学习之旅------>Java使用Fork/Join框架来并行执行任务

    现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机.多核处理器已被广泛应用.在未来,处理器的核心数将会发展的越来越多. 虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这 ...

  3. Flask:程序结构

    在Flask中需要配置各种各样的参数.比如设置秘钥,比如上一章介绍到的配置数据库类型. app.config['SECRET_KEY']=os.urandom(20) app.config['SQLA ...

  4. ORACLE DATABASE 10g EXPRESS EDITION LICENSE AGREEMENT

     启动Tomcat之后出现全是英文错误: ORACLE DATABASE 10g EXPRESS EDITION LICENSE AGREEMENT To use this license, yo ...

  5. save create

    其中 create 和 create!就等於 new 完就 save 和 save!,有無驚嘆號的差別 在於 validate 資料驗證不正確的動作,無驚嘆號版本會回傳布林值(true 或 false ...

  6. Django的模型层(2)---多表操作

    多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对 ...

  7. Swift 烧脑体操(三) - 高阶函数

    前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...

  8. 关于connect: network is unreachable 问题的解决【转】

    本文转载自:https://blog.csdn.net/liukun321/article/details/6662950 由于发现原创文章,在未署名作者及出处的情况下被转载.在以后所有的原创文章开头 ...

  9. SDUT OJ 之 人活着系列之寻找最完美的人生

    人活着系列之寻找最完美的人生 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 也许,人活着就是要尝试人世间的酸甜苦辣,喜怒哀乐,经 ...

  10. entity framework WithRequiredDependent和WithRequiredPrincipal

    A->WithRequiredDependent->B 表示 A中包含B的不为null实例 ,A是主键实体  B是外键实体 A->WithRequiredPrincipal-> ...