仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 488|回复: 7
打印 上一主题 下一主题

[其他Linux] 来看看:uClinux操纵体系下的shell功效设置办法

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:02:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
uClinux操纵体系是尺度Linux的一个分支,是专门针对没有MMU(存储办理单位)的CPU而配制的操纵体系,而且专为嵌进式体系做了很多小型化的事情。今朝uClinux经常使用的使用程序库是mC-libc和mClibc.
经由过程makemenuconfig来设置uClinux时,能够看到,这里可供选择的Shell有:sash、minix-shell、nwsh、bash、Other.
个中sash对应的代码为uClinux-Samsung/user/sash,minix-shell对应的代码为uClinux-Samsung/user/sh,nwsh对应的代码为uClinux-Samsung/user/nwsh,bash对应的代码为uClinux-Samsung/user/bash,Other则暗示可选择别的的Shell,次要是指Busybox内里的几个Shell.
个中:
minix-shell在mC-libc和mClibc下都能够编译经由过程,且都能够较好地利用,但功效不是很强;nwsh在mC-libc和mClibc下都能够编译经由过程,但都事情不一般,没法进进命令行提醒符;bash则不管在mC-libc仍是mClibc下都没法编译经由过程,其布局不合适uClinux.本文次要会商怎样利用Busybox中的Shell.
Busybox中的shell
Busybox最早为DebianLinux的安装盘所写,并将大批Linux下的工具集成到一个可实行文件中。今朝Busybox供应了100多个命令的功效,但它的可实行文件只要几百KB,为嵌进式体系供应了一个对照完全并且体积较小的POSIX运转情况。不外这些命令的参数选项要比本来完全的GNU命令少。
Busybox中集成出来的Shell有以下几个。
①Lash:很小,加起来有10k,十分合适实行命令,撑持管道和重定向,但不撑持BourneShell语法,没法注释剧本。
②Hush:也十分小,18k摆布,撑持BourneShell语法,可以很好地处置if/then/else/fi布局语句,可是处置不了像for/do/done大概case/esac等轮回语句。
③Msh:加起来有30k摆布,可以处置for/do/done、case/esac等轮回语句。只需是Bourneshell可以做的,Msh一样平常都能做到,它的语法与BourneShell语法大概不完整不异,但年夜多半BourneShell语法都能被Msh注释。Msh是用vfork来创立新历程的,以是适于uClinux操纵体系。
④Ash:在默许设置下约莫有60k摆布,是Busybox里最完全的Shell,但没法在uClinux上编译经由过程。
综上所述,Busybox里的Msh是今朝uClinux下最好的Shell.
移植:
makemenuconfig,从头设置uClinux内核。设置时选失落sash,然后选中以下几项:
BusyBox
shell
msh:Minixshell
MSHis/bin/sh
往失落sash后,就必需在Busybox内里把本来sash下经常使用的一些外部命令编译出去,比方ls、cp等基础命令,这些本来是sash的外部命令,如今换了Shell,就必需选用Busybox内里的命令作为自力的小使用程序来利用。本文当选择了以下的经常使用命令:clear、mkdir、ping、cat、cp、ln、ls、ifconfig等,个中的ls和ifconfig命令上面的几项功效必要全体选择。
编译的时分有个毛病,是指msh.c中没有_NSIG这个界说,须在msh.c中加上如许一句:#define_NSIG255,以后可编译经由过程。
编译后,在uClinux-Samsunguserusybox目次下编译出一个单个的自力实行程序,叫做busybox.exe.将编译后的busybox.exe拷贝到uClinux-Samsungomfshome目次下,从头编译内核(不必再设置内核)。将编译好的uClinux操纵体系内核下载运转,利用Busybox中的MshShell及各类命令。利用Busybox也很复杂,只需建一个标记链接就能够了。可是因为uClinux操纵体系默许的根文件体系romfs是只读的,只要/tmp和/var两个目次下是以假造ram盘的办法完成的可读写目次(体系失落电后,里边保留的内容全丧失),故在举行标记链接时必需链接到这两个可读写的目次下,比方ln-s/bin/busybox/tmp/ls,那末,实行/tmp/ls的时分,Busybox就会实行ls的功效,也会依照ls的体例处置命令行参数。
运转乐成后,能够发明这个Shell分歧于本来的sash,它的提醒符为#,撑持高低键翻查命令,但还不撑持Tab键补齐功效。
再找到uClinux-dist/config/config.in文件举行编纂,将该文件中的
boolsh:tabcompletionCONFIG_USER_BUSYBOX_TAB_COMPLETION
boolsh:usernamecompletionCONFIG_USER_BUSYBOX_USERNAME_COMPLETION
改成:
boolsh:tabcompletionCONFIG_USER_BUSYBOX_COMMAND_TAB_COMPLETION
boolsh:usernamecompletionCONFIG_USER_BUSYBOX_COMMAND_USERNAME_COMPLETION
然后再makemenuconfig,选择Busybox的Shell特征后从头编译,再下载运转,就能够完成Tab键补齐功效了。
别的还能够增添MshShell的别的功效,好比ls命令的以黑色显现分歧属性文件的功效等,这里不再胪陈

</p>
要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
乐观 该用户已被删除
沙发
发表于 2015-1-18 16:26:13 来自手机 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-27 06:43:58 | 只看该作者
这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
只想知道 该用户已被删除
地板
发表于 2015-2-5 05:23:10 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
深爱那片海 该用户已被删除
5#
发表于 2015-3-1 23:18:18 | 只看该作者
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
精灵巫婆 该用户已被删除
6#
发表于 2015-3-11 01:21:32 | 只看该作者
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-17 18:08:30 | 只看该作者
熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
若天明 该用户已被删除
8#
发表于 2015-3-24 20:16:26 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表