1. vim 删除一列
先使用ctrl + v,移动方向键,选择矩形区域,然后按 d 进行删除
如果要在每一列前面加一个“{ ”------>修改列为特殊字符(ctrl + v选好后使用r替换成特殊字符),然后使用:%s替换命令
如果要在每一列后面加一个“},” ------> 1. 修改最后一个字符为特殊;2. 使用命令“:%s /,\r/},\r/gc”
如果想在文章中第一列加一个字符,可以使用ctrl+v选中这一列,然后shift+i,进行插入,输入字符既可.
2. 去掉vim文档中的 ^M :
在vim中输入:%s/\r\n/\r/g回车符是Carriage Return, C语言中是'\r'
换行符是Line Feed, C语言中是'\n'
回车换行符实际是两个字符, 就是\r\n
回车符是Carriage Return, C语言中是'\r'
换行符是Line Feed, C语言中是'\n'
回车换行符实际是两个字符, 就是\r\n
行末:$ 行首:^ 空格:\s 行末空格:\s\+$ 行首空格:^\s\+
删除行尾多个空格 : %s/\s\+$//g
删除行首多个空格 : %s/^ \+//g
3. 将原来的.o文件反汇编成汇编代码,objdump可以使用交叉编译器中的:
objdump -d *.o > 123
4. 打diff的patch: patch -p1 < zero_bit.patch
5.使用编译器狂报如下
/bin/sh: line 2: /home/lz/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: cannot execute binary file
/bin/sh: line 2: /home/lz/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: cannot execute binary file
表示编译器和我们的版本不匹配
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ file /home/weiwei/my_task/x9/asic/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc
/home/weiwei/my_task/x9/asic/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0x8017f14da2903b7ff324011e39c63adc9355ed07, stripped(此文件要求的是x86 64位的,而我的是 32位的)
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ uname -a
Linux weiwei-OptiPlex-360 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux
上面看不出来,可以使用file 看ls,或者自己写个小代码,打印指针的sizeof
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ uname -mi
i686 unknown
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xc506f0155fa0d761ca914f84cc970a7ccb2ed9c9, stripped
6. 如何让修改可以让自己的编译文件在git status中不出现:
修改/home/user/wellie/.bashrc 文件,添加export KBUILD_OUTPUT=./out生成目录,再重新bash一下,然后使用env | grep KB命令查看有没有生效,,建立out目录,重新编译的生成的文件就在out目录下。
wellie@icserver:~/x9/buildroot/linux$ vi /home/user/wellie/.bashrc
添加“export KBUILD_OUTPUT=./out ”
wellie@icserver:~/x9/buildroot/linux$ bash
wellie@icserver:~/x9/buildroot/linux$ env | grep KB
KBUILD_OUTPUT=./out
wellie@icserver:~/x9/buildroot/linux$ ls
android block CREDITS Documentation firmware include ipc Kconfig lib MAINTAINERS mm README samples security tools virt
arch COPYING crypto drivers fs init Kbuild kernel linux_nand.tar Makefile net REPORTING-BUGS scripts sound usr
wellie@icserver:~/x9/buildroot/linux$ make imapx910_evb_defconfig
/bin/sh: 1: cd: can't cd to ./out
Makefile:121: *** output directory "./out" does not exist. Stop.
wellie@icserver:~/x9/buildroot/linux$ mkdir out
7. 穿越性复制:
原编译器:双引号 + 加号 + yy
目标编译器: 双引号 + 加号 + p
8. 为什么利用du和df查看磁盘容量的结果不一致:
# du -sh /home
4.7G /home
# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 15G 4.9G 8.9G 36% /home
从上克制,/home 分区的容量,使用df查看是4.9GB,而使用du查看是4.7GB。
du -s 命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数。
df 命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。
du 命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。
df 显示磁盘用量,加-h 选项可以以KB、MB、GB等单位输出,加-H 也以KB、MB、GB输出,但是是以1000B为1KB,而非1024B
9. 从20行到50行把ww做替换mm
cmd: :20,50s/ww/mm/gc