关于根文件系统中命令行提示符的显示

转载 2013年12月03日 23:14:39

我们经常用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] #

根文件系统中命令行提示符的显示

我们经常用busybox生成根文件系统,可是根文件系统起来以后命令行提示符只有一个“#”号,没有像linux发行版那样是[user@hostname currentpath] #(例如,root@ub...
  • yicao821
  • yicao821
  • 2011年09月07日 17:49
  • 1022

busybox 显示用户名及路径 -----[\u@\h\W]\# busybox 在制作根文件系统的处理方法

转载自:http://blog.csdn.net/zhaole20094463/article/details/6817987 不管是在移植根文件系统还是移植内核的时候我们总是希望可以添...
  • G1036583997
  • G1036583997
  • 2014年12月22日 09:47
  • 3041

Linux命令提示符显示格式的配置

linux用户登录以后,命令提示符上一般有形如 [root@hostname /usr/local ] $ 这样的格式,如果要修改命令提示符的显示方式,可以通过修改环境变量PS1来实现。 ...
  • allenlinrui
  • allenlinrui
  • 2016年01月27日 19:51
  • 3299

修改MySql提示符

MySQL常用命令 (1)显示当前服务器版本  SELECT VERSION ((2)显示当前日期时间  SELECT NOW()) (3) 显示当前用户 SELECT USER() MySQL语句的...
  • Vincentlmeng
  • Vincentlmeng
  • 2017年03月12日 10:57
  • 460

Ubuntu下添加命令行提示符颜色

用ubuntu的终端时间长了会眼花,因为输入和输出都是一个颜色的,当然 ls不算了,这个还是有颜色的,就想如果终端的输入和输出能用颜色区分该多好啊,google后,搜到的大部分都不是我这个意思。偶然看...
  • miromelo
  • miromelo
  • 2010年03月31日 21:58
  • 4868

Linux_Linux命令行提示符配置

源址:http://liuhongjiang.github.io/hexotech/2013/01/16/shell-prompting/ linux下shell提示符可以任意配置的。 首先...
  • u010003835
  • u010003835
  • 2016年09月29日 21:56
  • 2461

修改Bash命令行提示符

打开用户家目录下的.bashrc文件,找到如下内容: if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chr...
  • simmerlee
  • simmerlee
  • 2016年10月11日 10:01
  • 1786

Linux/Unix修改命令提示符当前路径的显示方式

要修改命令提示符的显示方式,我们可以修改环境变量PS1,使用vi编辑/etc/profile文件在最后加上一行语句。 1. 命令行提示符完全显示完整的工作目录名称: export PS1=’[\u@\...
  • juxua_xatu
  • juxua_xatu
  • 2014年03月11日 18:36
  • 2914

Mac 终端命令行提示符更改方法

你是否每次打开 Mac 上的终端,看着一长串的提示符很不爽。 是否终端字体颜色都一样的时候,查找上一次的命令输入让你很抓狂。 那么你是时候该修改一波命令行提示符了~ 主要是通过~...
  • xxq_2011
  • xxq_2011
  • 2017年06月11日 14:14
  • 1306

Linux 修改命令提示符当前路径的显示方式

要修改命令提示符的显示方式,我们可以修改环境变量PS1,使用vi编辑/etc/profile文件在最后加上一行语句。 1. 命令行提示符完全显示完整的工作目录名称: export ...
  • conconbenben
  • conconbenben
  • 2014年09月16日 09:56
  • 4023
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于根文件系统中命令行提示符的显示
举报原因:
原因补充:

(最多只允许输入30个字)