1. autogen.sh用法:
$ ./autogen.sh
前提是要安装autoreconf:
$ sudo apt-get install autoconf automake libtool
2. 使用python生成指定大小的文件:
$ python -c "print('1234567890'*100)" >> file.txt
上面的语句打印10*100字节的内容到file.txt中。
3. Segmentation fault (core dumped)定位:
首先打开dump core功能,下面这个方法只对当前shell有效:
$ ulimit -c unlimited
永久的方法是在~/.bashrc的最后加入:
ulimit -c unlimited
然后正常执行文件,如:
$ ./main
结果显示:
Segmentation fault (core dumped)
这时查看当前文件夹生成了一个core文件,然后gdb调试,
$ gdb ./main core
此时,会显示core dumped 的具体位置。
如示例中就是因为没有找到strftime_l.c文件造成的core dumped。
4. Centos查看yum安装软件列表:
$ sudo yum list installed
5. git push需要输入账号密码:
$ git config --global credential.helper store
$ git pull
在项目目录中执行上面两句,会要求输入账号密码,输入完成后,以后就不需要了。
6. Linux系统下U盘的挂载卸载:
a.查看u盘的设备名:
$ sudo fdisk -l
通过设备的大小等信息判断自己U盘的设备名,比如是/dev/sdc4,文件系统类型为FAT32。
b.挂载U盘到指定节点,如/media:
$ sudo mount -t vfat /dev/sdc4 /media
这样在/media文件夹下就可以看到U盘里的内容了。
c.卸载u盘
在/media文件夹以外的地方,执行:
$ sudo umount /media
7. objdump查看程序对应的汇编指令及相应的地址:
$ objdump -j .text -Sl test | more
test 为可执行文件名
8. 搜索哪些文件中包含指定内容:
$ find /usr/include/ -iname '*.h' | xargs grep 'ORIG_EAX' -sl
在/usr/include/文件夹下查找.h文件中包含ORIG_EAX的文件。
9.查看文件夹大小:
$ du -h --max-depth=1 /opt/gfsmnt/document/
max-depth参数指明了要查到哪一级子目录,/opt/gfsmnt/document/为查询目录,-h参数可以使输出自适应地以K,M,G等人性化的标度显示出来。
10.批量删除指定类型文件:
用find和rm搭配使用,如删除当前文件夹下的所有.so文件:
$ find . -name *.so |xargs rm -rf
11. 查看.so导出函数列表:
nm -D 7z.so
或者
objdump -tT 7z.so
12. git diff 排除指定后缀文件(前两个字符串为commit id,排除*.cs和*.csproj文件):
git diff b6c2289 a200757 -- './*' ':(exclude)*.cs' ':(exclude)*.csproj' >> diff.patch