用惯了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. EasyRTMP+EasyDSS实现一套完整的紧急视频回传直播与存储回放方案

    需求来源 紧急视频回传云端:即拍即传.云端存储.紧急录像.云拍云录!这些需求现在可能对于我们来说比较远,大部分也是在行业中才会用到,但相信在不就的将来肯定会落地到每个人的手中,因为这是一个自我保护.自 ...

  2. N皇后问题算法

    N皇后问题的两种主要算法是试探回溯法和位运算法.前一种是经典算法,后一种是目前公认的最高效算法,后者比前者效率提高了至少一个数量级.很多问题可以借鉴位运算的思想. 以下是转载的我认为写的比较好的一篇N ...

  3. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  4. flask的请求上下文源码解读

    一.flask请求上下文源码解读 通过上篇源码分析( ---Flask中的CBV和上下文管理--- ),我们知道了有请求发来的时候就执行了app(Flask的实例化对象)的__call__方法,而__ ...

  5. python环境的caffe配置

    基本按照这个教程来 http://blog.csdn.net/zb1165048017/article/details/52980102 步骤 安装Anaconda2,去官网上下载,注意下载对应自己p ...

  6. visual studio for mac 安装文件

    安装步骤参考: http://jingyan.baidu.com/article/00a07f3869b81082d028dca8.html 所需安装文件:[注 我只下载了javajdk, 需要and ...

  7. IE不支持HTML5表单属性placeholder的解决办法

    1. [代码][JavaScript]代码 (function ($) {    $.fn.placeholder = function (options) {        var defaults ...

  8. 分享知识-快乐自己:Struts2文件上传及文件下载

    1)Struts2单文件上传 action:类文件 package com.mlq.action; import com.opensymphony.xwork2.ActionSupport; impo ...

  9. 发现eclipse红叉,查看markers发现Target runtime Apache Tomcat v8.0 is not defined

    导入以前的项目(Markers中注意查看,就在console选项卡旁边),报以下错误,但不影响操作: Faceted Project Problem        Target runtime Apa ...

  10. windows与Linux操作系统的差别

    用户需要记住:Linux和Windows在设计上就存在哲学性的区别.Windows操作系统 倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合:而Linux不同 于Windows,它的内核空间 ...