免费注册 查看新帖 |

Chinaunix

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

关于根文件系统中命令行提示符的显示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-19 16:38 |只看该作者 |倒序浏览


作者:曹忠明,
华清远见嵌入式学院
讲师。
我们经常用busybox生成根文件系统,可是根文件系统起来以后命令行提示符只有一个“#”号,没有像linux发行版那样是[user@hostname currentpath] #,那么我们这里就说说如何让我们的根文件系统按这个方式显示。
要修改命令行提示符,首先我们需要知道一个环境变量PS1,我们可以查看bash的帮助文档查看关于PS1的说明:
bash有两级命令提示符,我们这里说的是第一级,这一级缺省的提示符是字符“$”(超级用户是“#”),我们可以通过修改PS1修改这个提示符,格式为:
        PS1=”command list”
命令列表有很多参数如下:
        \! 显示该命令的历史记录编号。
        \# 显示当前命令的命令编号。
        \$ 显示$符作为提示符,如果用户是root的话,则显示#号。
        \\ 显示反斜杠。
        \d 显示当前日期。
        \h 显示主机名。
        \n 打印新行。
        \nnn 显示nnn的八进制值。
        \s 显示当前运行的shell的名字。
        \t 显示当前时间。
        \u 显示当前用户的用户名。
        \W 显示当前工作目录的名字。
        \w 显示当前工作目录的路径
我们查看我们发行版linux中的PS1.
$echo echo $PS1
        [\u@\h \W] \$
看了发行版是如何显示命令行提示符,那么我们再看一下为什么我们做的根文件系统只显示一个#,用busybox生成的根文件系统使用的是ash,我们看下busybox中关于ash的文件。
在busybox-1.15.4/shell/ash.h中有这样的语句
/*
        * PS1 depends on uid
        */
#if ENABLE_FEATURE_EDITING && ENABLE_FEATURE_EDITING_FANCY_PROMPT
        vps1.text = "PS1=\\w \\$ ";
#else
        if (!geteuid())
                vps1.text = "PS1=# ";
#endif
结合上面PS1参数我们可以看出在busybox生成的根文件系统中可能出现两种显示方式,一种是“currentpath $”另一种是 “#”这两种显示在较老的版本中都有。
按照上面的方法修改我们的根文件系统中的命令行提示符。首先我们需要修改buxybox中配置,添加如下两个选项:
Busybox Settings --->
                Busybox Library Tuning --->
                        
  • Username completion
                            
  • Fancy shell prompts
    如果不选择上面两项,文件系统是不是别PS1这个环境变量的参数的。
    创建/etc/hostname添加如下内容(我们的主机名):
            farsight
    修改/etc/init.d/rcS添加如下内容(导入主机名配置文件):
            /bin/hostname –F /etc/hostname
    修改根文件系统中/etc/profile文件添加如下内容:
    HOSTNAM=`/bin/hostname`
            PS1=`[\u@\h \W]\# `
            export PS1 HOSTNAME
    创建/etc/passwd添加如下内容:
            root:x:0:0:root:/root:/bin/sh
    这个时候我们重新启动我们的开发板会发现命令行提示符已经是我们想要的那种现实了:
            [root@farsight /etc] #


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

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP