Linux总结(二十):linux中函数库和脚本程序

本文介绍Linux系统中函数库的基本概念,包括静态库与动态库的区别,以及如何安装和使用函数库。同时,详细讲解了Webmin的安装步骤,这是一种基于Web的系统管理工具,适用于多种Unix-like操作系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Linux函数库

           Linux 系统中存在大量的函数库。简单来讲,函数库就是一些函数的集合,每个函数都具有独立的功能且能被外界调用。我们在编写代码时,有些功能根本不需要自己实现,直接调用函数库中的函数即可。需要注意的是,函数库中的函数并不是以源代码的形式存在的,而是经过编译后生成的二进制文件,这些文件无法独立运行,只有链接到我们编写的程序中才可以运行。

 1、函数库分类

         Linux 系统中的函数库分为 2 种,分别是静态函数库(简称静态库)和动态函数库(也称为共享函数库,简称动态库或共享库),两者的主要区别在于,程序调用函数时,将函数整合到程序中的时机不同:

       (1)静态函数库在程序编译时就会整合到程序中,换句话说,程序运行前函数库就已经被加载。这样做的好处是程序运行时不再需要调用外部函数库,可直接执行;缺点也很明显,所有内容都整合到程序中,编译文件会比较大,且一旦静态函数库改变,程序就需要重新编译。

      (2)动态函数库在程序运行时才被加载(如图 1 所示),程序中只保存对函数库的指向(程序编译仅对其做简单的引用)。

2、函数库优点

        使用动态函数库的好处是,程序生成的可执行程序体积比较小,且升级函数库时无需对整个程序重新编译;缺点是,如果程序执行时函数库出现问题,则程序将不能正确运行。

       Linux 系统中,静态函数库文件扩展名是 ".a",文件通常命令为 libxxx.a(xxx 为文件名);动态函数库扩展名为 ".so",文件通常命令为 libxxx.so.major.minor(xxx 为文件名,major 为主版本号,minor 为副版本号)。

       目前,Linux 系统中大多数都是动态函数库(主要考虑到软件的升级方便),其中被系统程序调用的函数库主要存放在 "/usr/lib" 和 "/lib" 中;Linux 内核所调用的函数库主要存放在 "/lib/modules" 中。

      注意,函数库(尤其是动态函数库)的存放位置非常重要,轻易不要做更改。

二、Linux 函数库的安装

           Linux 发行版众多,不同 Linux 版本安装函数库的方式不同。CentOS 中,安装函数库可直接使用 yum 命令。

           例如,安装 curses 函数库命令如下:

[root@Linux ~]# yum install ncurses-devel

          正常情况下,函数库安装完成后就可以直接被系统识别,但凡事都有万一。这里先想一个问题,如何查看可执行程序调用了哪些函数库呢?通过以下命令即可:

[root@localhost ~]# ldd -v 可执行文件名

-v 选项的含义是显示详细版本信息(不是必须使用)。

         例如,查看 ls 命令调用了哪些函数库,命令如下:

[root@localhost ~]# ldd /bin/ls
linux-gate.so.1 => (0x00d56000)
libselinux.so.1 =>/lib/libselinux.so.1 (0x00cc8000)
librt.so.1 =>/lib/librt.so.1 (0x00cb8000)
libcap.so.2 => /lib/libcap.so.2 (0x00160000)
libacl.so.1 => /lib/libacl.so.1 (0x00140000)
libc.so.6 => /lib/libc.so.6 (0x00ab8000)
libdl.so.2 => /lib/libdl.so.2 (0x00ab0000)
/lib/ld-linux.so.2 (0x00a88000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00c50000)
libattr.so.1 =>/lib/libattr.so.1 (0x00158000)

          如果函数库安装后仍无法使用(运行程序时会提示找不到某个函数库),这时就需要对函数库的配置文件进行手动调整,也很简单,只需进行如下操作:

       (1)将函数库文件放入指定位置(通常放在 "/usr/lib" 或 "/lib" 中),然后把函数库所在目录写入 "/etc/ld.so.conf" 文件。例如:

[root@localhost ~]# cp *.so /usr/lib/
#把函数库复制到/usr/lib/目录中
[root@localhost ~]# vi /etc/ld.so.conf
#修改函数库配置文件
include ld.so.conf.d/*.conf
/usr/lib
#写入函数库所在目录(其实/usr/lib/目录默认已经被识别)

           注意,这里写入的是函数库所在的目录,而不单单是函数库的文件名。另外,如果自己在其他目录中创建了函数库文件,这里也可以直接在 "/etc/ld.so.conf" 文件中写入函数库文件所在的完整目录。

       (2)使用 ldconfig 命令重新读取 /etc/ld.so.conf 文件,把新函数库读入缓存。命令如下:

[root@localhost ~]# ldconfig
#从/etc/ld.so.conf文件中把函数库读入缓存
[root@localhost ~]# ldconfig -p
#列出系统缓存中所有识别的函数库

三、脚本程序及安装方法

           我们来看看脚本程序如何安装和使用。安装一个叫作 Webmin 的工具软件,Webmin 是一个基于 Web 的系统管理界面,借助任何支持表格和表单的浏览器(和 File Manager 模块所需要的Java),你就可以设置用户账号、apache、DNS、文件共享等。Webmin 包括一个简单的 Web 服务器和许多 CGI 程序,这些程序可以直接修改系统文件,比如 /etc/inetd.conf 和 /etc/passwd。Web 服务器和所有的 CGI 程序都是用 Perl 5 编写的,没有使用任何非标准 Perl 模块。也就是说,Webmin 是一个用 Perl 语言写的、可以通过浏览器管理 Linux 的软件。

 1、webmin安装步骤

首先下载 Webmin 软件,这里下载的是 webmin-1.610.tar.gz。

接下来解压缩软件,命令如下:
[root@localhost ~]# tar -zxvf webmin-1.610.tar.gz

进入解压目录,命令如下:
[root@localhost ~]# cd webmin-1.610

执行安装程序 setup.sh,并指定功能选项,命令如下:
[root@localhost webmin-1.610]# ./setup.sh
**************************
* Welcome to the Webmin setup script,version 1.610 *
**************************
Webmin is a web-based interface that allows Unix-like operating
systems and common Unix services to be easily administered.
Installing Webmin in /root/webmin-1.610...
**************************
Webmin uses separate directories for configuration files and log files.
Unless you want to run multiple versions of Webmin at the same time
you can just accept the defaults.
Config file directory [/etc/webmin]:
#选择安装位置,默认安装在/etc/webmin目录下。
如果安装到默认位置,则直接回车
Log file directory [/var/webmin]:
#日志文件保存位置,直接回车,选择默认位置
**************************
Webmin is written entirely in Perl.Please enter the full path to the
Perl 5 interpreter on your system.
Full path to peri (default /usr/bin/perl):
#指定Perl语言的安装位置,直接回车,选择默认位置,Perl默认就安装这里
Testing Perl...
Perl seems to be installed ok
**************************
Operating system name: CentOS Linux Operating system version: 6.3
**************************
Webmin uses its own password protected web server to provide access to the administration programs.
The setup script needs to know:
-What port to run the web server on.There must not be another web server already using this port.
-The login name required to access the web server.
-The password required to access the web server.
-If the Webserver should use SSL (if your system supports it).
-Whether to start webmin at boot time.
Web server port (default 10000):
#指定Webmin监听的端口,直接回车,默认选定 10000
Login name (default admin):admin #输入登录Webmin的用户名
Login password:
Password again:
#输入登陆密码
The Perl SSLeay library is not installed.SSL not available.
#apache默认没有启动SSl功能,所以SSl没有被激活
Start Webmin at boot time (y/n):y
#是否在开机的同时启动Webmin
…安装过程省略…
Webmin has been installed and started successfully.Use your web browser to go to
http://localhost:10000/
and login with the name and password you entered previously.
#安装完成

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值