Linux依赖项查看命令 linux 依赖库路径 配置

怎么查看linux下的模块,很多命令的介绍

1、lsmod 列加以挂载的内核模块;

创新互联专注于企业营销型网站建设、网站重做改版、路北网站定制设计、自适应品牌网站建设、H5场景定制商城开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为路北等各大城市提供网站开发制作服务。

lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块;

代码:

[root@localhost beinan]# lsmod

2、modinfo 查看模块信息;

modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途;

代码:

[root@localhost beinan]# moinfo 模块名

举例:

代码:

[root@localhost beinan]# modinfo ne2k-pcifilename: /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/ne2k-pci.koauthor: Donald Becker / Paul Gortmakerdescription: PCI NE2000 clone driverlicense: GPLparmtype: debug:intparmtype: options:array of intparmtype: full_duplex:array of intparm: debug:debug level (1-2)parm: options:Bit 5: full duplexparm: full_duplex:full duplex setting(s) (1)vermagic: 2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0depends: 8390alias: pci:v000010ECd00008029sv*sd*bc*sc*i*alias: pci:v00001050d00000940sv*sd*bc*sc*i*alias: pci:v000011F6d00001401sv*sd*bc*sc*i*alias: pci:v00008E2Ed00003000sv*sd*bc*sc*i*alias: pci:v00004A14d00005000sv*sd*bc*sc*i*alias: pci:v00001106d00000926sv*sd*bc*sc*i*alias: pci:v000010BDd00000E34sv*sd*bc*sc*i*alias: pci:v00001050d00005A5Asv*sd*bc*sc*i*alias: pci:v000012C3d00000058sv*sd*bc*sc*i*alias: pci:v000012C3d00005598sv*sd*bc*sc*i*alias: pci:v00008C4Ad00001980sv*sd*bc*sc*i*srcversion: 6ACE95F441CD26DF9DC31C2

上 面的例子是我们查看 ne2k-pci 这个模块的信息,通过查看,我们知道ne2k-pci 模块是8029网卡(PCI NE2000 clone driver)的驱动;模块是位于 /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/ 中ne2k-pci.ko

我们现在常用的网卡也有8139的,8139网卡所用的驱动是 8139too ;查查看?

代码:

[root@localhost beinan]# modinfo 8139too

我们再查查vfat 和ntfs 的模块信息;

代码:

[root@localhost beinan]# modinfo vfat[root@localhost beinan]# modinfo ntfs

自己尝试一下;

注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

3、modprobe 挂载新模块以及新模块相依赖的模块

modprobe 我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然modprobe 也有列出内核所有模块,还有移除模块的功能;下在我们举个例子说一说咱们常用的功能和参数;

代码:

modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...]

modprobe -r [-n] [-i] [-v] ...

modprobe -l -t [ -a ...]

上面是modprobe 的用法,具体更为详细的帮助,我们可以查看 man modprobe ;

代码:

[root@localhost beinan]# modprobe -c

modprobe -c 可以查看modules 的配置文件,比如模块的别名是什么等;

代码:

[root@localhost beinan]# modprobe -l

modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的;通过modprobe -l ,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l 读取的模块列表就位于 /lib/modules/'uname -r' 目录中;其中uname -r 是内核的版本;

代码:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/

通过上面的命令,自己试试看?

代码:

[root@localhost beinan]# modprobe 模块名 注:挂载一个模块;

举例:

代码:

[root@localhost beinan]# modprobe ne2k-pci 注:挂载 ne2k-pci 模块;[root@localhost beinan]# modprobe vfat 注:挂载vfat 模块[root@localhost beinan]# modprobe ntfs 注:挂载ntfs 模块[root@localhost beinan]# lsmod 注:列出已挂载模块, 我们会看到ne2k-pci ,vfat ,ntfs的模块 ;

注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

代码:

[root@localhost beinan]# modprobe -r 模块名 注:移除已加载的模块,和rmmod 功能相同;

注意:模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

代码:

[root@localhost beinan]# modprobe -r 模块名

举例:

代码:

[root@localhost beinan]# modprobe -r ne2k-pci

就说这么多吧,更为详细的还是用 man modprobe 来查看和尝试;

4、rmmod 移除已挂载模块;

命令格式:

代码:

rmmod 模块名

注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;

举例:

代码:

[root@localhost beinan]# rmmod vfat 注:移除已挂载的模块vfat

5、depmod 创建模块依赖关系的列表

这 个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux 发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB 移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage 依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 编译安装;

再 举个例子:sata的硬盘,在Linux中的设备表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等... 系统要驱动 sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中,在此同时,还需要在内核中选中ide ,scsi 的支持等;

depmod 工具的洋文原意:depmod — program to generate modules.dep and map files.(我译的:为modules.dep 文件或映射文件创建依赖关系)

代码:

[root@localhost beinan]# depmod -a 注:为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件;[root@localhost beinan]# depmod -e 注:列出已挂载但不可用的模块;[root@localhost beinan]# depmod -n 注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout only)

注:modules.dep 位于 /lib/modules/内核版本 目录

比如 Fedora Core 4.0 中,系统默认的内核:

代码:

[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/modules.dep/lib/modules/2.6.11-1.1369_FC4/modules.dep

6、insmod 挂载模块;

insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe 在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko ;而insmod 需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko );

对于这个工具,我们只是介绍一下, 并不推荐使用。因为模块有依赖关系,对于新手来说,可能不知道这个模块依赖和哪个模块依赖;

举例:

代码:

[root@localhost beinan]# insmod /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/tg3.ko

我们要到 /lib/modules/内核版本 uname -r 的命令输出/kernel/drivers 中找相对应的模块才行,要有绝对路径,而且必须要用到文件名的全称,不能把文件名的后缀省略;

四、与内核模块加载相关的配置文件;

1、模块的配置文件 modules.conf 或 modprobe.conf

内 核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf ;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ;

代码:

alias eth0 8139too

而8029的网卡应该是

代码:

alias eth0 ne2k-pci

这样系统启动的时候,首先会modprobe 8139too ,然后再为8139too 指定别名为 eth0,然后我们在登录的时候,用 ifconfig 就会查看到网卡的IP 等情况,当然您得为网卡设置IP 才行;

一 般的情况下,modproe.conf 或modules.conf的内容 是我们用相应的硬件配置工具而生成的;如果您的硬件驱动是没有被内核支持,您自己到硬件的厂商下载而来的驱动。一般的情况下都有安装和帮助文件。他们的驱 动在配置时,他会写入硬件的支持到modules.conf 或modprobe.conf 文件中。

再比如我们的声卡在modules.conf 或modprobe.conf 中也有相应的内容,这是由alsaconf 配置工具生成的,明白了吧;同理网卡在modprobe.conf 或modules.conf中的内容也是由网卡的配置工具而来的。

有些硬件是以内核模块的方式驱动的,模块一旦加载上就能用,也没有什么配置工具,比如vfat 和ntfs 的支持;如果是硬件驱动不以模块的方式支持,而是直接编入内核,也不会用在modprobe.conf 或 modules.conf 中加入什么内容;

如果您有些模块不能开机加载,您想让一些模块加机自动加载,就可以把modprobe 模块 直接写入配置文件;

2、内核模块其它配置文件

内核模块的其它配置文件还是需要了解的,比如 /lib/modules/内核版本目录下的几个文件;了解一下就行;比如:

代码:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/build misc modules.ccwmap modules.ieee1394map modules.isapnpmap modules.symbols sourcekernel modules.alias modules.dep modules.inputmap modules.pcimap modules.usbmap

五、硬件驱动在系统中的目录;

硬件驱动在内核中以模块支持的目录;

硬 件驱动是必须由内核支持的,无论是我们自己安装驱动,还是内核自带的驱动都是如此。硬件驱动如果是以内核模块支持的,驱动目录位于: /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中;

代码:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/kernelarch crypto drivers fs lib net sound

注:只有驱动在内核中以模块的方法支持,驱动才位于 /lib/modules/相应的目录;如果是直接置入内核的,不会出现在/lib/modules驱动相关的目录;

六、自己编译驱动的办法;

通 过源码编译驱动一般是./configure ;make;make install ,有时程序不提供./configure ,我们可以make或make install ,或者执行make;make install ;如果不能make install ,则需要我们自己复制.o或者.ko文件到 /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中相应的驱动目录;

这个还是自己尝试吧,说也说不清楚,遇到问题后就知道怎么弄了;具体的还是驱动的REAME和INSTALL为准;

现在大多驱动都是在编译安装时,都自动复制.o或.ko 文件到内核模块目录,大多不用我们自己动手复制过去。如果您尝试编译安装声卡驱动 alsa-drivers 就会明白我所说的意思。

Linux下文件搜索、查找、查看命令

1、最强大的搜索命令:find 查找各种文件的命令 

2、在文件资料中查找文件:locate

3、搜索命令所在的目录及别名信息:which 

4、搜索命令所在的目录及帮助文档路径:whereis

5、在文件中搜寻字符串匹配的行并输出:grep

6、分页显示一个文件或任何输出结果:more

7、分页显示一个文件并且可以回头:less

8、指定显示前多少行文件内容:head

9、指定显示文件后多少行内容:tail

10、查看一个文件:cat

11、查看文件内容多少字符多少行多少字节:wc

12、排序文件内容:sort

一、根据 文件或目录名称 搜索

find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写

eg:在/etc 目录下搜索名字为init的文件或目录

①、find /etc -name init (精准搜索,名字必须为 init 才能搜索的到)

②、find /etc -iname init (精准搜索,名字必须为 init或者有字母大写也能搜索的到)

③、find /etc -name *init (模糊搜索,以 init 结尾的文件或目录名)

④、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)

二、根据 文件大小 搜索

eg:在根目录下查找大于 100M 的文件

find / -size +204800

这里 +n 表示大于,-n 表示小于,n 表示等于

1 数据块 == 512 字节 0.5KB,也就是1KB等于2数据块

100MB == 102400KB204800数据块

三、根据 所有者和所属组 搜索

①、在home目录下查询所属组为 root 的文件

find /home -group root

②、在home目录下查询所有者为 root 的文件

find /home -user root

四、根据 时间属性 搜索

find 【路径】【选项】【时间】

选项有下面三种:-amin 访问时间

-cmin 文件属性被更改

-mmin 文件内容被修改

时间:+n,-n,n分别表示超过n分钟,n分钟以内和n分钟

eg:在 /etc 目录下查找5 分钟内被修改过属性的文件和目录

find /etc -cmin -5

五、根据 文件类型或i节点 搜索

 -type 根据文件类型查找:

 f表示文件,d表示目录,l表示软链接

eg:查找 /home 目录下文件类型是目录的

find /home -type d

-inum 根据i节点查找

eg:查找 /tmp 目录下i节点为400342的文件或目录

  find /tmp -inum 400342

六、组合条件 搜索

这里有两个参数:

①、-a 表示两个条件同时满足(and)

②、-o 表示两个条件满足任意一个即可(or)

范例:查找/etc目录下大于80MB同时小于100MB的文件

find /etc -size +163840 -a -size -204800

语法:locate【文件名】 -i 不区分大小写

注意:这里和 find 命令是有区别的,find是全盘检索,而locate 是在文件资料库中进行搜索。所以locate命令的执行要比find命令执行速度快很多。但是这里有个问题,文件资料库是需要不断更新的。我们新创建的文件如果不更新 文件资料库,使用 locate 是查找不到的。

updatedb 手动更新资料库,但是对于/tmp目录下的新建文件,是更新不到文件资料库的,因为/tmp目录不属于文件资料库的收录范围。

eg:locate hcf

功能描述:搜索命令所在的目录及别名信息

 语法:which【命令】

 eg:which ls

功能描述:搜索命令所在的目录及帮助文档路径

 语法:whereis【命令】

 eg:whereis ls

功能描述:在文件中搜寻字符串匹配的行并输出

 语法:grep -iv 【指定字符串】【文件】

-i 不区分大小写

-v 排除指定字符串

 eg:查找 /root/install.log 文件中包含 mysql 字符串的行,并输出

grep mysql /root/install.log

本搜索工具,根据用户指定的模式,对目标文件逐行进行匹配检查,打印匹配到的行

grep是在文件中搜索匹配的字符串,是在文件中进行内容搜索,这个命令后面用到的比较多

描述:

分页显示一个文件或任何输出结果

用于查看纯文本文件(较长的)格式

格式:

more[选项] 文件

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

head[必要参数][选择参数][文件]

用于显示指定文件开始多少行内容

命令参数:

-n 10 显示前10行

-n -10 正常输出但不显示最后的10行

eg:显示new.txt的前两行内容

head -n 2 new.txt

head -2 new.txt

tail[必要参数][选择参数][文件]

用于显示指定文件末尾多少行内容

命令参数:

-n 10 显示后面10行

-f 持续刷新显示的内容

eg:显示new.txt的末尾两行内容

tail -n 2 new.txt

tail -2 new.txt

eg:指定从第二行开始显示

tail -n +2 new.txt

描述:一次显示整个文件内容

cat 命令 用于查看纯文本文件(较短)

 cat [选项] [文件]…

描述:wc 命令默认情况下会打印换行符数、单词数和字符数。

 用法:wc [选项] [文件]

用法:sort [选项] [文件]

转自: Linux下文件搜索、查找、查看命令_黄小小的博客-CSDN博客_linux 搜索

Linux 示例中的 apt 命令大全,建议收藏

apt 是包管理工具或命令,apt在Linux中的功能有Linux(Ubuntu)的升级、新软件包的安装、软件包的删除、现有软件包的升级、软件包列表索引的更新等等。

使用 apt 命令安装软件包:

使用 apt 命令删除包,键入以下内容:

使用 apt 命令安装多个软件包:

使用 apt 命令删除多个包:

用于更新包索引的 Apt 命令:

apt命令升级系统:

apt命令全面升级系统:

使用 apt 命令升级软件包:

查看系统上可以升级的软件包列表

如果要删除软件包及其所有配置文件,请使用purgeapt 命令:

运行以下命令以删除未使用的包:

运行以下 apt 命令以列出所有可用的软件包:

apt 命令列出唯一安装的软件包:

运行以下 apt 命令来搜索包:

apt 命令查找有关软件包的信息

apt 命令列出包依赖项

apt 命令删除依赖项:

linux源码包怎么查看依赖关系

一、可执行文件/二进制文件依赖共享库

ldd命令用来查看可执行文件依赖的共享库文件。

$ 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

示例:

$ ldd helloworld

二、共享库依赖共享库关系

上面的ldd命令无法查看共享库的依赖关系,因为共享库本身并不是可执行文件,我们可以使用

objdump -x libhelloworld.so | grep NEEDED

其中,libhelloworld.so是你的库名称。

附:

readelf命令用于读取ELF Header信息


当前标题:Linux依赖项查看命令 linux 依赖库路径 配置
分享链接:http://myzitong.com/article/dosgpdo.html