显示进程打开的文件
lsof
跟踪进程调用库函数的情况
ltrace -f a.out
ltrace -p pid
ltrace -o file
跟踪一个进程的系统调用或信号产生的情况
strace a.out
创建一个文件的硬链接
ln file file_hard
创建一个文件的符号链接
ln -s file file_soft
列出一个静态库中的目标文件
ar -t lib.a
抑制警告输出(-Wno-xxx)
gcc -c test.c -Wno-unused-function
显示全部警告
gcc -c test.c -Wall
显示程序各段的大小
size a.out
在当前bash环境下读取并执行FileName中的命令source ~/.bashrc
. ~/.bashrc
检查内存泄漏
valgrint --leak-check=yes ./a.out
显示磁盘空间使用状况
df -h
显示内存使用状况
free -m
转换文件格式
dos2unix
unix2dos
dos2unix file
不改变文件的时间
dos2unix -k file
转换结果保存到outfile,原文件infile不变
dos2unix -n infile outfile
打包
tar -cvzf so.tar.gz ./so
拆包
tar -xvzf so.tar.gz
显示包的内容
tar -tf so.tar.gz
编译动态库
gcc -c -fPIC f1.c f2.c
gcc -fPIC -shared f1.o f2.o -o libtest.so
显示目标文件中所有可打印的字符串
strings test.o
显示目标文件的符号表中定义的符号
nm test.o
显示一个目标文件的完整结构
readelf test.o
显示反汇编代码
objdump -S a.out
显示一个可执行文件在运行时所需要的共享库
ldd a.out
显示gcc默认搜索的路径
gcc -print-search-dirs
grep常用方法
grep 'error\|ERROR' *.log
grep -e error -e ERROR *.log
grep -F 'error
ERROR' *.log
忽略大小写
grep -i error *.log
显示行号
grep -n error *.log
递归检索
grep -r error ./log
grep -d recurse error ./log
扩展正则表达式
grep -E '[0-9]+[a-z]' text
查找一个进程的进程ID
pgrep -f filelist
根据进程ID显示该进程的工作目录
pwdx 进程ID
抓图
scrot -s tmp.jpg