1、ldd testApp
libpthread.so.0 =>/lib/libpthread.so.p (0x00aa0000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00310000)
../DLL/libxx.so (0x00111000) // 相对路径加载的动态库
readelf -d testApp 效果同上
2、objdump -d testApp
显示汇编代码
3、objdump -t testApp 或readelf -s testApp 或 nm testApp
显示符号信息
4、export LANG=zh_CN.utf8
设置字符集
5、locale -a
显示本地字符集
zh_CN.gb2312
zh_CN.utf8
6、关键字替换
:%s/AAA/BBB/g
vi中进行文本内的替换,下边是多文件替换关键字的例子
find . -name "*.cpp" -print |xargs sed -i "s/aa/bb/g"
7、dos换行在linux下是^M,去掉的方法如下:
vim:%s/^M$//g ;注ctrl +v;ctrl +m打印出来的^M才可以
#cate test.dat | tr -d '/015' >test.out ;^M (/015)字元去掉,生成test.out
8、service -s 显示所有服务的状态
service sshd status 显示ssh服务的状态
service sshd start 启动ssh服务
service sshd restart 重启ssh服务
service sshd stop 停止ssh服务
9、ulimit -c unlimited ulimit -a
linux 下崩溃产生core文件,用于DBG定位问题
gdb ./test core.2322
bt
10、嵌入式远程调试
1)在嵌入式主机上运行
gdbserver 本机IP:PORTapp
2)在开发机上运行
xxx-gdb app
->target remote 嵌入式IP:PORT
注释:本机IP:PORT 和嵌入式IP:PORT 相同
11、gdb相关命令:
b main b xx.cpp:333
l/list 列出源代码
bt / backtrace查看调用栈
f 1 /frame 1切换调用栈到1
c 继续运行直到断点
kill 结束程序运行
p xxx 查看变量值 p /c a打印字符 p /x a 打印16进制 p /x s 16进制打印字符串s x /64b pbuf
set print elements 0 可以使用set print elements命令来控制显示字符串最多字符数,默认是200.
info locals 显示局部变量
info source 显示源文件信息包括当前目录当前文件
info threads // 查看所有线程
thread 1 // 切换线程
thread all apply bt 显示所有线程的堆栈
11、MOUNT挂载XP下SRC目录到linux系统上面当前目录DSTSRC
1) 共享SRC目录,everyone用户组 完全控制权限保证可写
2) mount -t cifs -o username='域名\用户名',password='密码' xp电脑IP:SRC ./DSTSRC
2.1) mount -t smbfs //用户名:'密码@IP:SRC ./DSTSRC // 如果没有cifs协议支持可以尝试SMBFS
2.2)mount -t smbfs //用户名@IP:SRC ./DSTSRC // 如果是公共电脑最好这样,执行后再输入密码
2.3)nfs 挂载 mount -t nfs 10.0.0.1:/home/a/ ./a
编辑10.0.0.1 的/etc/export文件 增加/home/a/目录给外部访问
12、嵌入式程序编译3步骤
1)./configure --target=/usr/bin/arm-angstro-linux-gnueabi --prefix=/usr/bin/
target指明目标板体系结构,这个可以根据相应嵌入式GCC编译器得到,如arm-angstro-linux-gnueabi-gcc,取-gcc之前的部分即可。
prefix指明make install时,程序安装的位置
2)make
3)make install
13、rpm管理软件包
rpm -qpl:rpm软件包中包含的文件列表
rpm -i:安装指定的软件包到当前linux系统
rpm -ivh:安装指定的软件包时显示详细的安装信息
rpm -force:强制安装软件包
rpm -e:卸载指定的软件包
rpm -U:升级指定的软件包(如果指定的软件包在系统中没有的话,执行过程等同与安装)
rpm -a:查询所有已安装的软件包
rpm -f:查询包含有文件的软件包
rpm -p:查询软件包文件为package file的软件包
rpm -s:显示包含有文件的软件包
rpm -v:验证软件包