【总结】嵌入式linux常用命令

2019-07-12 19:57发布

这里就不分类了,用到一个直接添加一个。都是嵌入式linux开发中常用到的指令。(1)开发板挂载到虚拟机上mount -t nfs -o nolock 192.168.1.101:/work/nfs_root /mnt(2)压缩文件a目录为b.zipzip -r -q -o b.zip a(3)文件打补丁,进入文件目录下,补丁在上一层patch -p1 < ../u-boot.patch(4)当前的绝对路径pwd(5)加载、卸载、查看驱动insmod a.ko rmmod a.ko lsmod(6)压缩文件zip -r -q -o  输出名字.zip  要压缩的目录zip -r -q -o u-boot-2012.04.01pat40.zip u-boot-2012.04.01-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
(7)NFS拷贝文件系统、内核到内存中,设置启动参数,并从内存启动内核nfs 30000000 192.168.1.102:/work/nfs_root/fs_mini_mdev_new2.yaffs2 (nfs 30000000 192.168.1.102:/work/nfs_root/fs_mini_mdev_new2.jffs2) nand erase.part rootfs nand write.yaffs 30000000 260000 $filesize (nand write.jffs2 30000000 260000 $filesize) set bootargsconsole=ttySAC0,115200 root=/dev/mtdblock3 (set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2) nfs 32000000 192.168.1.100:/work/nfs_root/uImage_yaffs bootm 32000000网络文件系统:set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.102:/home/yangfei/yangfei/baiwen_prj/rootfs_jz2440 ip=192.168.1.17:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0(8)解压tar.bz2文件tar xjf linux-3.4.2.tar.bz2(9)根据文件名查找find –name "*defconfig"(10)根据字符串查找文件中匹配的内容grep ""Boot Agent"" * -nR grep "u-boot-env" * -nR(11)对比文件不同之处diff name1 name2输出:n1 a n3,n4n1,n2 d n3n1,n2 c n3,n4 这些行类似ed命令把filel转换成file2。字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。(12)裁剪好内核,制作好根文件后重烧整个系统nfs 30000000192.168.1.100:/work/nfs_root/fs_mini_mdev_new2.yaffs2 nand erase.part rootfs nand write.yaffs 30000000 460000 $filesize nfs 32000000192.168.1.100:/work/nfs_root/uImage_4m nand erase.part kernel nand write 32000000 kernel set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 set 'nand read 30000000kernel;bootm30000000' set machid 16a save(13)git提交代码到仓库git clone https:。。。 cd 。。 修改代码 git config --global user.name "fengyuwuzu0519" git config --global user.eamil "992872987@qq.com" git add . git commit -m "备注" git push -u origin master提交到自己的仓库:git init git add . git commit -m "first commit" git remote add origin https://github.com/fengyuwuzu0519/test.git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 先输入$ git remote rm origin git tag v1.0 git push -u origin master git push -u origin v1.0(14)解压缩1、*.tar 用 tar –xvf 解压 
2、*.gz 用 gzip -d或者gunzip 解压 
3、*.tar.gz和*.tgz 用 tar –xzf 解压 
4、*.bz2 用 bzip2 -d或者用bunzip2 解压 
5、*.tar.bz2用tar –xjf 解压 
6、*.Z 用 uncompress 解压 
7、*.tar.Z 用tar –xZf 解压 
8、*.rar 用 unrar e解压 
9、*.zip 用 unzip 解压 .解压 
tar –xvf file.tar //解压 tar包 
tar -xzvf file.tar.gz //解压tar.gz 
tar -xjvf file.tar.bz2 //解压 tar.bz2 
tar –xZvf file.tar.Z //解压tar.Z 
unrar e file.rar //解压rar 
unzip file.zip //解压zip 
(15)解压缩文件:tar zcvf a.tar.gz a tar zxvf a.tar.gz (16)查看文件大小du -h --max-depth=1         my_rootfs.tar.gz 
(17)编译2440 内核make s3c2410_defconfig make menuconfig make uImage make modules(18)编译2440 ubootmake smdk2440_config make(19)vi命令集剪切:剪切选定块到缓冲区,用d;剪切整行用dd复制:复制选定块到缓冲区,用y;复制整行,用yy
粘贴:粘贴缓冲区中的内容,用p
(20)chmodchmod +x xxx:增加可执行权限,常用于脚本chmod +w  xxx :增加写权限(21)发布nfs共享文件夹//修改配置文件 vim /etc/exports //加入: /work/nfs/filesystem *(rw,sync,no_root_squash) //查看是否发布成功 showmount -e 192.168.1.123(22)查找大文件find / -size +100000(23)关闭防火墙,即时生效,重启后失效:  开启:service iptables start   关闭:service iptables stop(24)shell 脚本中 1>、2>、2>&1 的作用sh /tmp/aa.sh >/dev/null 2>&1解释:>和>>都是重定向输出1> 指标准信息输出路径(也就是默认的输出方式)
2> 指错误信息输出路径
2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)
习惯上
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2>   /dev/null   将输出重定向到/dev/null,这是个空设备,也就是忽略其输出。   
2> &1     是将错误输出到标准输出,如果在控制台调试,也就是屏幕上,方便调试。 
有3个默认的i/o,0是标准输入,一般是键盘;1是标准输出,一般是屏幕了;2是标准错误。2>&1可以这么理解:把标准错误输出重定向>,通过后台&,放到标准输出所在的地方.因为是在后台运行,所以是看不见出错信息的.因此,&,可以理解成是后台行为.(25)find+xargs+sed批量替换把当前目录下的所有.c 和 .h 文件中的 "waf"字符 全部 替换成 “tamper”
find . -name "*.[ch]" |xargs sed -i 's/waf/tamper/g' 把/opt/test/ 目录下所有含有"linux"字符的文件全部替换成windowsfind /opt/test/ -type f | awk -F":" '{print $1}' |xargs sed -i's/linux/windows/g'
未完待续...