1,几个常识必须记下:
看一个可执行文件都在哪些目录下寻找运行时库: #LD_DEBUG=libs /usr/local/memcached/bin/memcached -v
查看一个动态可执行文件需要哪些库:dd 文件名,
2, mkimage -n 'linux-2.6.32' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage.img
4,正确的做法自然是查看该目录下的Makefile文件,分析里面的依赖关系:libnand.a->LIB->OBJS->COBJS,看到如下内容:
5, 下面介绍命令行方式安装rpm,在终端中我们可以使用rpm -i [选项] [rpm 包文件名]来进行安装,常用选项如下:
-h 使用符号#显示安装进度
-v 报告每一步操作的情况
--replacepkge 无论软件包是否已被安装,都强行安装软件包
--test 安装测试,并不实际安装
--nodeps 忽略软件包的依赖关系强行安装(一般不能正常运行,因为缺少依赖文件)
--force 忽略软件包及文件的冲突
假设在root 用户桌面上有一个notepad.rpm 软件包,那么我们可以在终端中输入:
rpm -ivh /root/Desktop/notepad.rpm进行安装,如果出现了错误提示“error: Faild dependencies”则表明出现了软件包依赖问题,下面会有提示需要哪个文件,安装完
哪个文件后(google 一个)再次安装即可。也可以在上述命
令的后面加上--nodeps 强制安装。
# rpm -ql packname
# rpm -qlp rpmfilename.rpm
如# rpm -ql stardict
6, 查看文件格式:file xxx
7,fedora下反汇编gcc cc.c,
当前目录会生成一个a.out 文件,为什么生成的是a.out 不事cc.out,这个可以跟GCC咨询一下。
下面我们开始反汇编。
objdump -d a.out
8,关闭防火墙可以用service iptables stop命令
9,升级glib库
yum update glic
10, 使用cat /proc/version这样能看到编译你内核的gcc版本
11,vi中:
G 跳到最后一行,g跳到第一行。
12,strings命令,如]#strings /lib/tls/libc.so.6 | grep GLIBC
可见strings能输出文件中的可打印字符串(可指定字符串的最小长度),通常用来查看非文本文件(如二进制可执行文件)中的可读内容。 13,uname查看系统信息
14,LD_PRELOAD很牛逼的一样东西
# LD_PRELOAD=<real libc> ln ......
相当于直接调用 ln命令,
所以,先删除连接 :
# cd /lib
# LD_PRELOAD=/lib/libc-2.3.6.so.bak rm libc.so.6
再建立新连接 :
# LD_PRELOAD=/lib/libc-2.3.6.so.bak ln -s /lib/libc-2.3.6.so.bak libc.so.6
15,关于yum
安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级软件:yum upgrade foo或者yum update foo
查询信息:yum info foo
搜索软件(以包含foo字段为例):yum search foo 其它参数参见man yum
19,dmesg 查看内核启动过程中的打印信息
20,dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
21, gunzip 和gzip
22,losetup
23, diff,找出两个文件的不同处
24, ctags
25, strace
26,保存屏幕信息:dd if=/dev/fb0 of=fbfile 或: cp /dev/fb0 fbfile
恢复屏幕信息:dd if=fbfile of=/dev/fb0 或: cat fbfile > /dev/fb0
显示一张图片:cat /out.bmp > /dev/fb0
清空屏幕: dd if=/dev/zero of=/dev/fb0
27,查看文件大小:du -ssh
28,查看系统各项限制: ulimit -a
29,查看系统允许的共享内存的最大限制:/proc/sys/kernel/shmmax
30,修改共享内存最大限制:
echo134217728 > /proc/sys/kernel/shmmax;
31:查看目录下有多少文件 : ls | wc -w
32,找bin路径:
export PATH=$PATH:/home/admin/usr/valgrind/install/bin/
也可打开/etc/profile或者(好像是rd什么文件忘了)
33,gdb查看指定内存的值
注:<addr> 可以是地址符号,也可以直接给出内存地址。
34, grep xxx * 当前目录下搜索所有含XXX的文件
35,重启网卡命令 :ifdown/ifup eth0
36,打开网络配置界面 :system-config-network
37,linux下使用samba,
a,列出共享目录smbclient -L 198.168.0.1
b,登陆共享目录smbclient //192.168.0.1/tmp(注意,假如你的共享目录是/home/tmp,要在ip地址后直接跟tmp)