ld-linux.so.2重定向,LinuxShell脚本Ldd命令原理及使⽤⽅法1、⾸先ldd不是⼀个可执⾏程序,⽽只是⼀个shell脚本
2、ldd能够显⽰可执⾏模块的dependency,其原理是通过设置⼀系列的环境变量
如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、 LD_VERBOSE等。当
LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执⾏程序在运⾏时,它都会只显⽰模块的 dependency,⽽程序并不真正执⾏。要不你可以在shell终端测试⼀下,如下:
(1) export LD_TRACE_LOADED_OBJECTS=1
(2) 再执⾏任何的程序,如ls等,看看程序的运⾏结果
3、ldd显⽰可执⾏模块的dependency的⼯作原理,其实质是通过ld-linux.so(elf动态库的装载
器)来实现的。我们知道,ld-linux.so模块会先于executable模块程序⼯作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显⽰可执⾏模块的dependency。
4、实际上可以直接执⾏ld-linux.so模块,如:/lib/ld-linux.so.2 --list program(这相当于ldd program)
ldd命令使⽤⽅法(摘⾃ldd --help)
名称 ldd - 打印共享库的依赖关系
⼤纲 ldd [选项]... ⽂件...
描述 ldd 输出在命令⾏上指定的每个程序或共享库需要的共享库。
选项
--version
打印ldd的版本号
-v --verbose
打印所有信息,例如包括符号的版本信息
-d --data-relocs
执⾏符号重部署,并报告缺少的⽬标对象(只对ELF格式适⽤)
-
r --function-relocs
对⽬标对象和函数执⾏重新部署,并报告缺少的⽬标对象和函数(只对ELF格式适⽤)
--help ⽤法信息
注意:js脚本编程入门
ldd的标准版本与glibc2⼀起提供。Libc5与⽼版本以前提供,在⼀些系统中还存在。在libc5版本中长选项不⽀持。另⼀⽅⾯,glibc2版本不⽀持-V选项,只提供等价的--version选项。
如果命令⾏中给定的库名字包含'/',这个程序的libc5版本将使⽤它作为库名字;否则它将在标准位置搜索库。运⾏⼀个当前⽬录下的共享库,加前缀"./"。
错误:
ldd不能⼯作在a.out格式的共享库上。
ldd不能⼯作在⼀些⾮常⽼的a.out程序上,这些程序在⽀持ldd的编译器发⾏前已经创建。如果你在这种类型的程序上使⽤ldd,程序将尝试argc = 0的运⾏⽅式,其结果不可预知。
linux shell脚本、命令学习
1,echo "test" > 输出重定向到,⽂件不存在就创建 echo "test" >> test ...
Linux shell脚本编程if语句的使⽤⽅法(条件判断)
if 语句格式if 条件then Commandelse Commandfi 别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unex ...
linux shell 脚本攻略学习20--awk命令⼊门详解
awk⽣于1977年,创始⼈有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始⼈的姓的⾸字母. 作⽤:处理⽂本⽂件. awk ...
Linux Shell脚本⼊门--cut命令
Linux Shell脚本⼊门--cut命令 cut cut 命令可以从⼀个⽂本⽂件或者⽂本流中提取⽂本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
linux 执⾏远程linux上的shell脚本或者命令以及scp 上传⽂件到ftp--免密码登陆
场景:在linux A 上执⾏Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH⽆密码登录 # 本地服务器执⾏(A机器):⽣成密钥对 ssh-keygen -t dsa -P ...
Linux Shell脚本⼊门--wget 命令⽤法详解
Linux Shell脚本⼊门--wget 命令⽤法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows 在内的各个平台上.它有以下功能 ...
Linux shell脚本基础学习详细介绍(完整版)⼀
Linux shell脚本基础学习这⾥我们先来第⼀讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向⼤家做⼀个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
Linux shell脚本编程(⼆)
Linux shell脚本编程(⼆) 练习:求100以内所有偶数之和; 使⽤⾄少三种⽅法实现; ⽰例1: #!/bin/bash # declare -i sum=0 #声明⼀个变量求和,初始值为0 ...
Linux shell脚本编程(⼀)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时⾃动启动: 交互式进程:shell应⽤程序 ⼴义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
随机推荐
node.js整理 02⽂件操作-常⽤API
NodeJS不仅能做⽹络编程,⽽且能够操作⽂件. 拷贝 ⼩⽂件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...
杭电ACM 1998奇数阶魔⽅
#include#include int main(){ int n,m; int a[40][40]={0}; scanf(" ...
在Linux下如何创建LVM及LVM创建过程
Linux LVM创建过程:(我⽤的是Centos6.8) ⼀.准备⼯作: LVM可以的创建可以在系统安装的过程中创建,也可以在安装完系统之后再创建建,都是可以的,我的是在系统安装完之后创建的,具体的 ...
Babelfish (STL)
题⽬描述 You have just moved from Waterloo to a big city. The people here speak an incomprehensible dial ...
基于多重信号分类算法的DOA估计
原创博⽂,转载请注明出处 下⾯的论⽂是我的雷达处理的作业,拿来共享,不喜勿喷.由于公式编辑器的原因,⽆法复制公式,全部内容请点击. 基于多重信号分类算法的DOA估计 1引⾔ 多重信号分类(MUSIC) ...
安装ubuntu系统及ubuntu安装Python的⼏点⼼得
⼀.安装ubuntu系统 1.ubuntu系统是Linux系统的⼀种,和centos差别不⼤,但是个⼈还是建议⼤家安装ubuntu,它更适合国内使⽤习惯,换句话说更亲切. 2.安装⽅法不再赘述,⽹上有 ...
[转]ubuntu下解压zip⽂件
1.功能作⽤:解压缩zip⽂件
2.位置:/usr/bin/unzip
3.格式⽤法:unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist ...
numpy 中不常⽤的⼀些⽅法
算法⼯程师B
美团点评2017校招笔试真题-算法⼯程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中⼼点的选取有关 ...
20155216 Exp8 WEB基础实践
Exp8 WEB基础实践 实践内容 Apache环境配置 apache是kali下的web服务器,通过访问 ip地址+端⼝号+⽂件名称 打开对应的⽹页. 输⼊命令 vi /etc/apache2/po ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论