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

时间:2022-02-22 18:38:45

这里就不分类了,用到一个直接添加一个。都是嵌入式linux开发中常用到的指令。

(1)开发板挂载到虚拟机上

mount -t nfs -o nolock 192.168.1.101:/work/nfs_root    /mnt

(2)压缩文件a目录为b.zip

zip -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,n4

n1,n2 d n3

n1,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 uboot

make smdk2440_config
make

(19)vi命令集

剪切:剪切选定块到缓冲区,用d;剪切整行用dd

复制:复制选定块到缓冲区,用y;复制整行,用yy
粘贴:粘贴缓冲区中的内容,用p

(20)chmod

chmod +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可以这么理解:把标准错误输出重定向>,通过后台&,放到标准输出所在的地方.因为是在后台运行,所以是看不见出错信息的.因此,&,可以理解成是后台行为.


未完待续...