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

转载 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] #

相关文章推荐

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

http://my.chinaunix.net/space.php?uid=24319701&do=blog&id=160135作者:曹忠明,我们经常用busybox生成根文件系统,可是根文件系统起来...

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

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

Linux根文件系统无法正常显示命令提示符

制作的根文件系统,使用NFS挂载之后,无法正常显示命令提示符,而是显示[\u@\h \w],如下图:   解决方案: 配置busybox: #make menuconfig 依次选择Busy...

如何不通过内核命令行rootfstype指定根文件系统类型

今天发现sqashfs制作的根文件系统不需要像jffs2那样需要增加内核命令行:rootfstype=jffs2。看了一下内核挂载根文件系统个过程,发现是JFFS2注册文件系统时少设置了一个标志:FS...
  • hansel
  • hansel
  • 2012-09-25 15:00
  • 2198

Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统

实验环境:Oracle 11g R2 RAC (11.2.0.3.5)                Oracle Enterprise Linux 5.6 x86 1、创建 ASM 磁盘组 在两...

hadoop学习笔记--13.hive 属性配置、交互式命令行和文件系统交互

一、hive 配置文件常见属性 1.在cli命令行上显示当前的数据库名以及查询的行头信息   在hive-site.xml中添加以下配置 hive.cli.print.header ...

Mac命令行、Mac的文件系统

Mac的文件系统 来源:http://bbs.feng.com/read-htm-tid-5290929.html一般都是管理员账户: 主目录下的子目录布局 这里的“主目录”是指管理员和普通账户...

linux入门——文件系统及常用命令行等

一linux文件系统: 1.      linux文件系统是单数型结构,而不像windows每个硬盘就是一个独立的树目录。 2.      bin::系统二进制文件,主...

Linux proc文件系统 及 Linux用命令行查看硬件信息

转载自:http://www.kuqin.com/linux/20110905/264366.html Linux proc 文件系统简介 /proc 文件系统是一个伪文件系统,它以文件系统的方式...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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