189 8069 5689

linuxlib命令 linux libc

查看linux当前加载库文件的命令

ldd

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、天镇网络推广、微信小程序开发、天镇网络营销、天镇企业策划、天镇品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供天镇建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

可执行文件名

查看可执行文件链接了哪些

系统动态链接库

nm

可执行文件名

查看可执行文件里面有哪些符号

strip

可执行文件名

去除符号表可以给可执行文件瘦身

如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令

strings

可执行文件名

Linux操作系统上面的动态共享库大致分为三类:

1、操作系统级别的共享库和基础的系统工具库

比方说libc.so,

libz.so,

libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr

/lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6

/lib64目录。此外还可能有其他特定Linux版本的系统库目录。

这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。

2、应用程序级别的系统共享库

并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local

/lib下面去寻找共享库。

以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:

/usr/X11R6/lib64

/usr/X11R6/lib

/usr/local/lib

/lib64

/lib

/usr/lib64

/usr/lib

/usr/local/lib64

/usr/local/ImageMagick/lib

假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用

ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig

命令即可。

ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:

strings

/etc/ld.so.cache

|

grep

ImageMagick

输出结果为:

/usr/local/ImageMagick/lib/libWand.so.10

/usr/local/ImageMagick/lib/libWand.so

/usr/local/ImageMagick/lib/libMagick.so.10

/usr/local/ImageMagick/lib/libMagick.so

/usr/local/ImageMagick/lib/libMagick++.so.10

/usr/local/ImageMagick/lib/libMagick++.so

已经成功了!

3、应用程序独享的动态共享库

有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置

LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。

linux service命令 放在哪个lib

linux下的service命令,即不存于某个lib文件,也不存在于lib相关的目录,比如/lib。

1、首先,service命令的目录可以通过whereis命令获取。如下图所示,显示service命令在/usr/sbin/目录。

2、其次,service命令是一个脚本文件,并不是一个可执行文件,所以它不在任何lib库文件中。这点可以通过file命令查看其文件类型可知。如下图所示,显示service文本格式是Posix shell script文件。

Linux命令:# ls -al /usr/lib | grep libevent 这句话到底是怎么解释的?

1、列出/usr/lib目录下含有字符串“libevent”的文件和目录

2、ls 即 list directory contents列出目录内容;其中的 -a选项代表列出所有,包括隐藏文件; -l选项是列出文件的详细信息,每行只列出一个文件。如下面所示:

root@localhost ~]# ls -al

total 96

dr-xr-x---. 2 root root 4096 Jul 18 17:36 .

dr-xr-xr-x. 26 root root 4096 Aug 24 23:49 ..

-rw-------. 1 root root 1553 Mar 24 2014 anaconda-ks.cfg

-rw-------. 1 root root 8481 Aug 24 23:49 .bash_history

-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout

-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile

-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc

-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc

-rw-r--r--. 1 root root 32223 Mar 24 2014 install.log

-rw-r--r--. 1 root root 6995 Mar 24 2014 install.log.syslog

-rw-------. 1 root root 79 Aug 24 23:54 .lesshst

-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc

-rw-------. 1 root root 2673 Jul 18 17:36 .viminfo

3、另外ls -l 通常缩写为ll

4、grep 是检索的意思,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

5、扩展下ls命令的其他选项:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。

-c 输出文件的 i 节点的修改时间,并以此排序。

-d 将目录象文件一样显示,而不是显示其下的文件。

-e 输出时间的全部信息,而不是输出简略信息。

-f -U 对输出的文件不排序。

-g 无用。

-i 输出文件的 i 节点的索引信息。

-k 以 k 字节的形式表示文件的大小。

-l 列出文件的详细信息。

-m 横向输出文件名,并以“,”作分格符。

-n 用数字的 UID,GID 代替名称。

-o 显示文件的除组信息外的详细信息。

-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通

文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套

接字(sockets)。

-q 用?代替不可输出的字符。

-r 对目录反向排序。

-s 在每个文件名后输出该文件的大小。

-t 以时间排序。

-u 以文件上次被访问的时间排序。

-x 按列输出,横向排序。

-A 显示除 “.”和“..”外的所有文件。

-B 不输出以 “~”结尾的备份文件。

-C 按列输出,纵向排序。

-G 输出文件的组的信息。

-L 列出链接文件名而不是链接到的文件。

-N 不限制文件长度。

-Q 把输出的文件名用双引号括起来。

-R 列出所有子目录下的文件。

-S 以文件大小排序。

-X 以文件的扩展名(最后一个 . 后的字符)排序。

-1 一行只输出一个文件。

--color=no 不显示彩色文件名

--help 在标准输出上显示帮助信息。

--version 在标准输出上输出版本信息并退出。


标题名称:linuxlib命令 linux libc
网址分享:http://jkwzsj.com/article/dosooeh.html

其他资讯