1.busybox使用技巧
2.busyboxå¦ä½ä½¿ç¨ï¼
3.终端模拟器禁止安装软件命令
4.如何在ELF 1开发板实现命令行显示中文
5.BusyboxBusybox源码分析-02 | init程序
busybox使用技巧
Busybox是码下一个功能强大的工具集,包含了多个Linux命令在一个小的码下可执行文件中。你可以通过简单的码下命令来使用它,例如:
# busybox ls
这相当于直接运行ls命令,码下它在Busybox中扮演着执行基本文件操作的码下角色。最常见的码下聚合配送系统源码使用方法是创建指向Busybox的链接,根据链接的码下名称,实现不同的码下功能。例如:
# ln -s busybox ls
# ln -s busybox rm
# ln -s busybox mkdir
通过这种方式,码下你可以创建出ls、码下rm和mkdir的码下链接,分别对应各自的码下命令功能。尽管这些链接都指向同一个Busybox程序,码下但通过不同的码下链接名,你可以轻松调用不同的码下功能。
许多Linux平台提供Busybox的源代码下载,这对于自定义或深入理解其工作原理非常有帮助。这些源代码允许你根据需要修改或扩展其功能,以适应特定的使用环境。总的来说,Busybox是一个高度实用的工具,通过巧妙的链接和定制,可以极大地简化Linux命令行操作。研究 lucene 源码
busyboxå¦ä½ä½¿ç¨ï¼
BusyBoxå ¶å®å°±æ¯Linuxçå½ä»¤å¤§å ¨ï¼å¯ä»¥æ¹ä¾¿ææºç³»ç»å¤ä»½ä¹ç±»çæä½ï¼ä¸é¢å°ç¼è¦å¸¦æ¥çå°±æ¯å ³äºBusyBoxæ¯ä»ä¹ï¼BusyBoxæä¹ç¨çæç¨ï¼BusyBox使ç¨æç¨ï¼
1ãé¦å æææºrootã
2ãä¸è½½å®è£ REæ件管çå¨ãä¸è½½å¹¶è§£åbusybox
ã
3ãç¨æ°æ®çº¿å°ææºè¿æ¥çµèï¼æ解ååºæ¥çbusyboxæ·å°å¨åå¡çæ ¹ç®å½ã
4.
使ç¨root
exploreræµè§å°/sdcardï¼æ¾å°busyboxï¼é¿æï¼å¨å¼¹åºæ¥çèåééæ©âå¤å¶âã
5.æµè§å°/system/bin/ç®å½ç¹å»âæ载读åâï¼åæâæè½½åªè¯»âç¹å»ç²è´´ã
6.æ·è´å¥½åï¼é¿æ/system/bin/çbusyboxï¼éæ©âæéâï¼æå¦å¾æ示设置æéï¼ä½ çbusybox便设置æåã
7.ç°å¨å°±è½ç¨éå¤ä»½äºï¼éå¤ä»½å¯ä»¥å é¤ç³»ç»å¸¦çä¸äºåºç¨ç¨åºã
终端模拟器禁止安装软件命令
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free[-b|-k|-m][-o][-sdelay][-t][-V]
3.主要参数
-b-k-m:分别以字节(KB、MB)为单位显示内存使用情况。
-sdelay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
4.应用实例
free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
#free-b-s5
使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
Android系统在超级终端下必会的命令大全(一)
busybox
BusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、tfboys网站源码mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。
1、BusyBox的诞生
BusyBox最初是由BrucePerens在年为DebianGNU/Linux安装盘编写的。其目标是在一张软盘上创建一个可引导的GNU/Linux系统,这可以用作安装盘和急救盘。
2、busybox的用法
可以这样用busybox
#busyboxls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln-sbusyboxls
#ln-sbusyboxrm
#ln-sbusyboxmkdir
然后分别运行这三个链接:
#./ls
#./rm
#./mkdir
就可以分别完成了lsrm和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多linux网站都提供busybox的源代码下载。。
3、配置busybox
busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用makemenuconfig方式配置linux内核的朋友很容易上手.
#cpbusybox-1..tar.gz/babylinux
#cd/babylinux
#tarxvfzbusybox-1..tar.gz
#cdbusybox-1.
#makemenuconfig
下面是需要编译进busybox的功能选项。
GeneralConfiguration应该选的选项
Showverboseappletusagemessages
RuntimeSUID/SGIDconfigurationvia/etc/busybox.conf
BuildOptions
BuildBusyBoxasastaticbinary(nosharedlibs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.
InstallationOptions
Don’tuse/usr
这个选项也一定要选,否则makeinstall后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,makeinstall后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.
其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。
保存。
4、编译并安装busybox
#make
#makeinstall
编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x2rootroot月:bin
rwxrwxrwx1rootroot月:linuxrc->bin/busybox
drwxr-xr-x2rootroot月:sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
Android系统在超级终端下必会的命令大全(二)一、安装和登录命令
reboot1.作用
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
2.格式
reboot[-n][-w][-d][-f][-i]
3.主要参数
-n:在重开机前不做将记忆体资料写回硬盘的alphogo源码使用动作。
-w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d:不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i:在重开机之前先把所有与网络相关的装置停止。
mount
1.作用
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
2.格式
mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir
3.主要参数
-h:显示辅助信息。
-v:显示信息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
-tvfstype:显示被加载文件系统的类型。
-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。rocketmq源码编译
4.应用技巧
在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。
(1)Linux可以识别的文件系统
◆Windows/常用的FAT文件系统:vfat;
◆WinNT/的文件系统:ntfs;
◆OS/2用的文件系统:hpfs;
◆Linux用的文件系统:ext2、ext3;
◆CD-ROM光盘用的文件系统:iso。
虽然vfat是指FAT系统,但事实上它也兼容FAT的文件系统类型。
(2)确定设备的名称
在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个
IDE设备,hd是HardDisk(硬盘)的,sd是SCSIDevice,fd是FloppyDevice(或是Floppy
Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、
hdd。hda1中的“1”代表hda的第一个硬盘分区
(partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
(3)查找挂接点
在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(MountPoint)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下(假设都是Linux的ext2系统,如果是WindowsXX请将ext2改成vfat):
软盘===>mount-text2/dev/fd0/mnt/floppy
cdrom===>mount-tiso/dev/hdc/mnt/cdrom
SCSIcdrom===>mount-tiso/dev/sdb/mnt/scdrom
SCSIcdr===>mount-tiso/dev/sdc/mnt/scdr
不过目前大多数较新的Linux发行版本(包括红旗Linux、中软Linux、MandrakeLinux等)都可以自动挂装文件系统,但RedHatLinux除外。
如何在ELF 1开发板实现命令行显示中文
为了实现ELF 1开发板上使用busybox 1..0及以上版本命令行显示中文,需要对源码进行修改。首先,从busybox.net下载busybox-1..1源码,然后解压并进入解压后的文件夹。使用make defconfig命令保留默认配置,接着,通过make menuconfig进入图形界面编辑,选择编译选项并添加locale support支持。需要将选项值调整为大于Unicode中最高中文字符的值以确保支持所有中文字符。接下来,修改printable_string.c和unicode.c文件中的特定行以适应中文显示需求。完成修改后,执行make和make install编译并安装新版本的busybox。最后,将新生成的busybox文件复制到开发板的/bin目录并给予执行权限,创建指向busybox的新链接文件以替代原有命令。
为了使修改后的busybox在ELF 1开发板上运行,还需对内核进行相应调整。在执行环境变量设置后,通过make imx6ull_elf1_defconfig和make zImage命令生成并编译新的内核。将新内核文件复制到开发板,并替换原有内核。最后,验证修改效果,将含有中文名称文件的U盘插入开发板,通过ls命令查看是否能正确显示中文文件名。
通过上述步骤,即可在ELF 1开发板中实现命令行显示中文功能,为用户提供更为便利的交互体验。此方法适用于希望在使用busybox命令行工具时支持中文显示的开发人员。
BusyboxBusybox源码分析- | init程序
在Linux内核启动后期,init线程执行的第一个用户空间程序是init,这个程序在Busybox源码中的实现由/init目录下的init.c编译而成,其入口点为init_main()。在init_main()函数中添加了标识代码,验证了这一过程。实际上,当Busybox编译安装后,会通过链接指向../bin/busybox来执行init。 分析init程序,当CONFIG_FEATURE_USE_INITTAB配置启用时,会依据/etc/inittab文件中的配置进行操作;若文件不存在或未启用该配置,init将执行默认行为,如运行INIT_SCRIPT和启动"askfirst" shell。而BusyBox的init不支持运行级别,sysvinit是需要的选项来处理运行级别管理。 Linux支持7个运行级别:0:停机状态,等同于关机,不可作为默认运行级别。
1:单用户模式,用于系统维护,禁止远程登录。
2:多用户无网络模式。
3:多用户有网络模式,常见运行级别。
4:保留,未使用。
5:X图形界面,登录后进入。
6:正常关闭并重启,同样不能作为默认运行级别。
可以通过runlevel命令查看当前运行级别,如在Ubuntu系统中,运行runlevel命令会显示当前的运行级别。