关于根文件系统中命令行提示符的显示
来源:互联网 发布:java 线程安全类 编辑:程序博客网 时间:2024/06/05 11:43
http://my.chinaunix.net/space.php?uid=24319701&do=blog&id=160135
作者:曹忠明,
我们经常用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 --->
如果不选择上面两项,文件系统是不是别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] #
- 关于根文件系统中命令行提示符的显示
- 关于根文件系统中命令行提示符的显示
- 关于根文件系统中命令行提示符的显示
- 关于根文件系统中命令行提示符的显示
- 根文件系统中命令行提示符的显示
- 关于命令行提示符显示格式
- 关于命令行提示符显示格式
- 一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
- 一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
- 一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
- 一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
- 一步一步制作yaffs/yaffs2根文件系统(六)---完善命令行提示符
- windows如何在cmd命令行提示符中显示当前的时间
- windows如何在cmd命令行提示符中显示当前的时间
- 提示符显示完整的路径导致命令行太长
- Linux根文件系统无法正常显示命令提示符
- 关于MYsql命令行编辑器的提示符含义--退出错误解决
- 有意思的shell命令行提示符
- 共勉
- 如何读取Windows系统事件日志(获得上次关机时间、本次开机时间等)
- Annotation, J2EE 衰落的标志?
- executeFind()方法还回集合,execute()方法返回对象
- Google再度惊人!正测试自动驾驶汽车
- 关于根文件系统中命令行提示符的显示
- 总结一下这两天
- Asp.net页面事件引发后台程序处理原理
- 控制台程序的外观定制
- SPServer
- 简单的文件读写
- 高精度类-有 + - * / < 还有 开方 等运算
- 学习六
- spserver 架构分析(一)