标签 Linux 下的文章

ldd是Linux库操作中最实用的一个命令了,他可以查看一个程序所依赖的库。

如果你的程序执行起来缺少某个库,我们就去下载,但是把库放到哪里才能让程序正确是识别出来呢?使用ldd就可以了!

使用方法: ldd [options] file
功能:列出file运行所需的共享库
可用选项

➜  sbin  ldd --help
Usage: ldd [OPTION]... FILE...
      --help              print this help and exit
      --version           print version information and exit
  -d, --data-relocs       process data relocations  执行符号重部署,并报告缺少的目标对象
  -r, --function-relocs   process data and function relocations   对目标对象和函数执行重新部署,并报告缺少的目标对象和函数
  -u, --unused            print unused direct dependencies  打印不需要链接的库
  -v, --verbose           print all information   打印所有信息

例子

➜  /bin  ldd /bin/cp
    linux-vdso.so.1 =>  (0x00007fff8dbfe000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f94558e4000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f94556dc000)
    libacl.so.1 => /lib64/libacl.so.1 (0x00007f94554d3000)
    libattr.so.1 => /lib64/libattr.so.1 (0x00007f94552ce000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f9454f3a000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f9454d35000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9455b0f000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9454b18000)

MBR&GRUB

MBR(Master boot record)指主引导记录,主要用于硬盘分区。GRUB就是安装在MBR中,起引导系统作用。

阶段1:POST自检后系统载入目标装置的MBR(Master boot record),即前512字节。MBR一共包含三个部分主引导程序(Boot Loader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。

阶段2:主引导程序被载入内存开始执行,他将继续执行加载系统内核的任务。

- 阅读剩余部分 -

Unix/MAC和windows下换行总会出现以下问题:

Unix/MAC下打开windows下的文本会多出一个^M,win下打开Unix/MAC文本会变成一行。

原因是换行机制不一样,Unix下是\n(0A),mac下是\r(0D),win下是\r\n(0D0A)。导致的结果是在程序中会造成一定的混乱。

十六进制的换行

- 阅读剩余部分 -