linux中一些命令的用法及解释

来源:互联网 发布:daedalus软件怎么用 编辑:程序博客网 时间:2024/05/27 20:46

diff 制作和应用补丁

文件

制作补丁: $diff -u old-prj/1/drv1.h new-prj/1/drv1.h>../drv1.diff

打补丁:   $patch -p1 < ../../drv1.diff    操作目录应该是在跟drv1.h一样的目录下

"-pn"参数(上例中n=1)中的n表示要从补丁文件(文件中写的文件路径)的文件路径中去掉几层目录,可以理解为去掉几个'/'。例如:p1表示去掉一层目录,"old-prj/1/drv1.h"去掉一层就成为"1/drv1.h"patch命令就在1目录找到"1/drv1.h"后应用补丁。

目录

制作补丁: $diff -Nur old-prj/  new-prj/ > ../prj.diff

"-u"参数指定diff命令使用unified 格式,这是一种最常用的格式。"-N"参数将不存在的文件当作空文件。如果没有这个参数,补丁就不会包含孤儿文件(即另一方没有的文件)。"-r"参数表示比较子目录。"-a"参数表示将所有文件当作文本文件。

 

unified 格式

"---"开头的行是旧文件信息,以"+++"开头的行是新文件信息:

unified格式默认在变化部分的前后各显示三行上下文

"@@"包围的行指示补丁的范围:

@@ -4,9 +4,8 @@

'-4,9'中,'-'表示旧文件,'4,9'表示从第4行开始,显示9行,即显示4-12行。'+4,8'中,'+'表示新文件,'4,8'表示从第4行开始,显示8行,即显示4-11行。

补丁

如果使用命令打补丁:patch -p1 < ../patch-x.y.z

可使用命令卸载补丁:patch -R -p1 < ../patch-x.y.z

quilt

我们可以使用push命令应用补丁,例如:

$quilt push -a

 

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm; page-break-before: auto }H1 { margin-bottom: 0.21cm }H1.western { font-family: "Arial", sans-serif; font-size: 21pt }H1.cjk { font-family: "文鼎PL简中楷"; font-size: 21pt }H1.ctl { font-family: "文鼎PL简中楷"; font-size: 16pt }-->

>/dev/null 2>&1的解释

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->

shell中可能经常能看到:>/dev/null2>&1

 

命令的结果可以通过%>的形式来定义输出

 

/dev/null代表空设备文件

>代表重定向到哪里,例如:echo"123" > /home/123.txt

1表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

2表示stderr标准错误

&表示等同于的意思,2>&1,表示2的输出重定向等同于1

 

那么本文标题的语句:

1>/dev/null首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

2>&1接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

 

板子的烧写命令

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm; page-break-before: auto }H2 { margin-bottom: 0.21cm }H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic }H2.cjk { font-size: 14pt; font-style: italic }H2.ctl { font-size: 14pt; font-style: italic }-->

Nor flash中烧

Kernel:tftpboot 0x40007fc0 uImage  protect off 80000 +3c0000erase 80000 +3c0000cp.b 0x40007fc0 80000 filesize(HEX)Filesystem:tftpboot 0x40007fc0 root.bintftpboot 0x40007fc0 root_emev.binprotect off 0x00500000 +d5aFFFerase 0x00500000 +d5aFFFcp.b 0x40007fc0 0x00500000 filesize Uboot: tftpboot u-boot-emev.bin protect off 0 +1aFFF erase 0 +1aFFF cp.b 0x40007fc0 0 filesize

emmc中烧

Emmc卡需要3个分区分别烧载 bootloader kernel cramfs

dd if=uImage of=emmc卡的分区2

dd if=bootloader of=emmc卡的分区1

sd卡中烧

sd卡需要3个分区分别烧载 bootloader kernel cramfs

环境变量的设置

setext3cmd 'setenv bootargs root=$(ext3_root) noinitrd init=/linuxrcconsole=ttyS0,115200n8n SELINUX_INIT=no $(cfg_ddr) rw video=qfb:ip=none rootfstype=ext3 rootwait;bootm 00080000'

 

 

 

 

 

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm; page-break-before: auto }H1 { margin-bottom: 0.21cm }H1.western { font-family: "Arial", sans-serif; font-size: 21pt }H1.cjk { font-family: "文鼎PL简中楷"; font-size: 21pt }H1.ctl { font-family: "文鼎PL简中楷"; font-size: 16pt }-->

格式化sd

mkfs.ext3 跟设备

fdisk 跟设备 p后 打印信息id应该是83

根据命令寻找源代码包

例如:equery b rpcinfo

源码包:gentoolkit(emerge-s gentoolkit)

gcc升级

  1. 直接安装新版本的gcc

  2. gcc-config -l 可看各个版本的编号

  3. gcc-config 需要版本的编号

.tgz文件的解压

解压文件tgz

例如文件名为: yyyy.tgz

先使用GZIP解压为TAR文件

gzip -dv yyyy.tgz

同时解压后生成yyyy.tar文件

再使用tar解压yyyy.tar文件

tar xvf yyyy.tar

解压下边的命令:

gzip -dvR220-ESiVision-WebEnv-X86-Linux.tgz

tar xvfR220-ESiVision-WebEnv-X86-Linux.tar

 

压缩:tgz文件。

tar -czvfR220-ESiVision-WebEnv-X86-Linux.tgz apache-tomcat-5.5.23 jdk1.5.0_12 net-snmp-5.1.1

tar -czvf filename.tgz file

 

向多列插入相同的字符

ctrl+v进入 visualblock,按方向键选择要插入的列,shit+i进入insert模式,然后就可以插入需要插入的字符了,按esc退出模式就可以了

VirtualBox的安装

  1. 安装好软件后,创建新的虚拟机,选Useexisting hard disk,进而选择WinXp.vdi来创建新镜像;

  2. 在最先的界面设置,需要的共享文件夹,进入系统后在网上邻居进行设置。

环境变量的用法

export PATH=$PATH:/usr/locar/new/bin

可以把该命令些加在root/.bashrc的末尾,然后当你重新登陆LINUX的时候(应该是linux启动时就会执行这个文件),新的默认路径就添加进去了。

当某天你发现你新增的路径/usr/locar/new/bin已经没用了的话,你可以修改/root/.bashrc文件里面你新增的路径。或者你可以修改/etc/profile文件删除你不需要的路径