Linux系统上的ldd命令是一个非常有用的命令,它可以让用户查看和确认程序及其相关库之间的关系。特别是在Linux程序中使用以下语句 `ldd ` ,这将非常有用。
`ldd` 命令可以报告一些具体的可执行文件和共享库之间的链接。当系统中缺少其中一个共享库时,ldd命令也可以报告出相应的缺失。用户可以根据那些缺失的共享库来修复运行故障。
例如,我们可以使用以下命令来查看一个程序hello的共享库和缺失的共享库:
$ ldd hellolinux-vdso.so.1 =>(0x00007fff090a1000)libc.so.6 => /lib64/libc.so.6 (0x00007f5715ec6000)/lib64/ld-linux-x86-64.so.2 (0x00007f57162dd000)
以上结果表示该程序依赖两个非常重要的动态共享库,linux-vdso.so.1 和 libc.so.6,以及可能缺少的/lib64/ld-linux-x86-64.so.2库。如果发现缺失,可以使用 `yum/apt` 命令来安装依赖库。
`ldd` 命令不但能让用户知晓可执行文件和共享库之间的链接,还可以查看idc.com/xtywjcwz/14089.html" target="_blank">没有找到某一具体共享库时,系统使用哪几个备用库来代替。 以下这段命令将会显示备用共享库位置:
$ ldd --verbose hellolinux-vdso.so.1 =>(0x00007ffddfded000)libc.so.6 => /lib64/libc.so.6 (0x00007f7c22038000)version `GLIBC_2.14' not found (required by /usr/local/lib/libhello.so)linux-vdso.so.1 =>(0x00007ffe225f5000)libc.so.6 => /lib64/libc.so.6 (0x00007f0e994ab000)version `GLIBC_2.14' found
出现此类结果时,用户就能够确定程序会使用指定路径下的共享库来取代某一特定的共享库。
总之,ldd命令是Linux程序开发者最重要的工具之一。它能让用户快速查看加载的共享库,并有效地排除可能的共享库缺失的问题。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
如何使用linux dladdr
在linux里面,每当某进程中调用dlopen打开动态连接库的同时,都会相应的维护该进程的一个link,加入新载入的这个动态库的名称在进程内的地址空间等基本信息,然后更新symbol。 因此,只要遍历这个link,得知查找的address是在哪一个item的地址范围内,就可以找到该动态库的名称,然后减去进程载入的起始地址就得到了在动态库内的相对地址了,这也就是dladdr的原理。 尽管工作中遇到的OS不是linux,但是glibc的实现也是类似的。 而且由于是嵌入式上跑的,反而更加简单。 link的首地址竟然是保存在的一个固定的变量里,而且这个link也是一个专门用于记录动态库信息的结构,也比linux下的大杂烩要简单很多:)所以对我的问题就更方便了,直接用ptrace去attach目标进程,peek到保存link首地址的数据,然后逐个查询~~~如此,不用再麻烦remote debug啦,找到相对地址后我直接gdb里用info line,
linux下为用户备注名称
首先来新建一个用户a ,密码
useradd a -p
然后查看/etc/passwd文件,看到了新增加的用a,以冒号作为分隔符,各段的说明如下:
a 代表用户
x 代表密码,该密码是经过MD5加密生成的
501第一个501代表用户uid,第二个501代表用户gid
::之间的就代表用户的说明
/home/a 代表用户a的家目录
/bin/bash 代表用户的登录Shell
现在要给用户a增加备注,使用以下命令

usermod -c FTP user a
下面查看哈,修改的结果
看到那里变成FTP user 了吧。 成功了。 。
说的很明白了哦!
Linux多个网卡怎么添加永久路由
linux下添加路由的方法:一:使用 route 命令添加使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法://添加到主机的路由# route add –host 192.168.168.110 dev eth0# route add –host 192.168.168.119 gw 192.168.168.1//添加到网络的路由# route add –net IP netmask MASK eth0# route add –net IP netmask MASK gw IP# route add –net IP/24 eth1//添加默认网关# route add default gw IP//删除路由# route del –host 192.168.168.110 dev eth0二:在linux下设置永久路由的方法:1.在/etc/里添加方法: route add -net 192.168.3.0/24 dev eth0route add -net 192.168.2.0/24 gw 192.168.3.2542.在/etc/sysconfig/network里添加到末尾方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev3./etc/sysconfig/static-router : any net x.x.x.x/24 gw y.y.y.y
发表评论