[置顶] linux下经常用到的工具

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查看指定内存的值

格式: x /nfu <addr> 如,x/3uh buf 表示从内存地址buf读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十六进制显示

注:<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

你可能感兴趣的:(linux,汇编,嵌入式,makefile,dependencies)