linux创建动态
A. linux基本操作--动态进程
top [选项]
选项
-d 指定top命令每隔几秒更新,默认是3秒更新
-i 使top不显示任何闲置或者僵死进程
-p 通过指定监控进程ID来仅仅监控某个进程的状态
交互操作说明
P 以CPU使用率排序,默认项
M 以内存的使用率排序
N 以PID排序
q 退出top
top后,按回车键,查看执行的进程
输入u,再输入用户名(监视特定用户)
输入k,再输入进程ID号(终止指定的进程)
top -d 10 //指定系统状态更新的时间(每隔 10 秒自动更新, 默认是 3 秒)
参考:尚硅谷_Linux教程
B. 如何在linux下用matlab生成动态链接库
首先如何制作Linux下的so 文件
首先让我们来看一下,把库函数推迟到程序运行时期载入的好处:
1.可以实现进程之间的资源共享。
什么概念呢?就是说,某个程序的在运行中要调用某个动态链接库函数的时候,操作系统首先会查看所有正在运行的程序,看在内存里是否已有此库函数的拷贝了。如果有,则让其共享那一个拷贝;只有没有才链接载入。这样的模式虽然会带来一些“动态链接”额外的开销,却大大的节省了系统的内存资源。C的标准库就是动态链接库,也就是说系统中所有运行的程序共享着同一个C标准库的代码段.
2.将一些程序升级变得简单。用户只需要升级动态链接库,而无需重新编译链接其他原有的代码就可以完成整个程序的升级。Windows 就是一个很好的例子。
3.甚至可以真正坐到链接载入完全由程序员在程序代码中控制。
程序员在编写程序的时候,可以明确的指明什么时候或者什么情况下,链接载入哪个动态链接库函数。你可以有一个相当大的软件,但每次运行的时候,由于不同的操作需求,只有一小部分程序被载入内存。所有的函数本着“有需求才调入”的原则,于是大大节省了系统资源。比如现在的软件通常都能打开若干种不同类型的文件,这些读写操作通常都用动态链接库来实现。在一次运行当中,一般只有一种类型的文件将会被打开。所以直到程序知道文件的类型以后再载入相应的读写函数,而不是一开始就将所有的读写函数都载入,然后才发觉在整个程序中根本没有用到它们
步骤:
首先建立一个函数文件fun.cpp 以及头文件 fun.h
[cpp]view plain
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/你的库目录
更改/etc/ld.so.conf,添加我们的库目录,然后执行ldconf
需要root权限
(3)加入/user/lib 或者/usr/lib64看你的机器位数,貌似拷贝的方法最凑效了,其他方法有时候行不通
C. Linux中如何创建静态库和动态库
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 程序1: hello.h #ifndef HELLO_H #define HELLO_H void hello(const char *name); #endif //HELLO_H 程序2: hello.c #include void hello(const char *name) { printf("Hello %s!\n", name); } 程序3: main.c #include "hello.h" int main() { hello("everyone"); return 0; } 无论动态库还是静态库都需要用到.o文件来生成,先编译生成.o文件。 # gcc -c hello.c 1:创建静态库 静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。 # ar cr libmyhello.a hello.o 使用静态库:只需要在你的源程序中加入包含你所需要使用到的函数的声明(即包含头文件),然后在gcc生成目标文件时候指明静态库就OK了(除非你包含的头文件在/usr/include,库文件在标准库/usr/lib,/lib下,否则你得显示指明他们的路径) # gcc -o hello main.c -L. -lmyhello # ./hello Hello everyone! 删除静态库文件运行./hello,程序正常运行,说明静态库公用函数已经链接到目标文件。 2: 利用.o文件创建动态库 动态库文件扩展名为.so。 # gcc -shared -fPCI -o libmyhello.so hello.o 动态库的使用与静态库使用方式一样 # gcc -o hello main.c -L. -lmyhello # ./hello ./hello: error while loading shared libraries: libmyhello.so: cannot open shared object file: No such file or directory 哦!出错了。快看看错误提示,原来是找不到动态库文件libmyhello.so。程序在运行时,会在/usr/lib和/lib等目录中查找需要的动态库文件。若找到,则载入动态库,否则将提示类似上述错误而终止程序运行。
D. 如何生成linux下的动态库和静态库
静态库 静态库的后缀是.a,它的产生分两步 Step 1.由源文件编译生成一堆.o,每个.o里都包含这个编译单元的符号表Step 2.ar命令将很多.o转换成.a,成为静态库动态库的后缀是.so,它由gcc加特定参数编译产生。具体方法参见后文实例。123123 在 GNU...
E. 怎么给Linux系统配置动态IP服务
动态ip地址。
如果是你接的宽带,家用宽带都是自动分配的。
如果局域网内的,可以建立DHCP服务器,然后将DHCP服务器设置为你的DHCP服务器的地址即可。
F. Linux下的静态库和动态库
linux下的静态库和动态库1.制作自己的动态库和静态库linux下动态库以.so结尾,静态库以.a结尾,它们都以lib开头,比如一个库名为net,那么它的全名应该是libnet.so或者libnet.a。我们有两个文件,hello.c和test.c,下面是两个文件的内容//hello.c
www.shiwu.com
#include
<stdio.h>void
my_lib_func(){printf(Library
routine
called/r/n);}//test.c#include
<stdio.h>
www.shiwu.com
int
main(){my_lib_func();return
1;}test.c调用了hello.c的方法,我们把hello.c封装成库文件。无论是静态库还是动态库,都是由.o文件组成,我们先把gcc
-c
hello.c生成.o文件制作静态库ar
crv
libmyhello.a
hello.o,ar是生成静态库的命令,libmyhello.a是我的静态库名。下一步就是在我的程序中使用静态库
可以看到已经有了Library
routine
called的结果,说明调用成功了。下面我们删除libmyhello.a,看看程序是否还是运行正常
我们发现程序依然运行正常,说明静态库已经连接进入我们的程序中制作动态库
www.shiwu.com
我们看见动态库libmyhello.so已经生成,下面继续使用
找不到库文件,这个时候我们把so文件拷贝到/usr/lib下面
运行成功2.动态库和静态库同时存在的调用规则我们可以发现,不论是动态库还是静态库,程序编译连接的时候都是加的参数-l,那么当他们同时存在的时候,程序会选择动态库还是静态库呢。我们做个尝试。
我们同时存在libmyhello.a和libmyhello.so,我们发现运行的时候,出现找不到动态库的错误,由此,我们可以得出结论,同时存在动态库和静态库的时候,gcc会优先选择动态库作者
梨树阳光
G. 如何在linux下编写动态库
最简单配置就是把连接库目录,添加到/etc/ld.so.conf中,一行一个目录就行,添加完成后,执行#ldconfig更新动态连接库。
H. 怎么给linux系统配置动态ip服务
所谓的动态ip指的是DHCP服务,如果不用手动设置的IP地址,使用动态ip也是个不错的选择。特别是在主机比较多的局域网内,动态ip可以有效解决ip自动分配问题。那么Linux系统应该怎么样配置动态ip服务呢?
怎么给Linux系统配置动态IP服务
DHCPd后台程序老是读取配置文件/etc/dhcpd.conf, 下面给出一本人主机上的DHCP配置文件的例子:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.25.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.25.15;
option subnet-mask 255.255.255.0;
# option nis-domain “uc88.domain”;
option domain-name “uc88.domain”;
option domain-name-servers 202.96.128.68,192.168.25.15;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid)。 Don‘t change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.25.100 192.168.25.254;
default-lease-time 259200;
max-lease-time 518400;
# we want the nameserver to appear at a fixed address
# host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
上面的意思是:
用255.255.255.0作为子网掩码,用192.168.25.255作为广播地址,用192.168.25.15作为
默认网关,用202.96.128.68 and 192.168.25.15作为DNS服务器 用分配地址的范围是:192.168.25.100-192.168.25.254
保存退出
大多数情况下,DHCP的安装不创建一个dhcpd.leases 文件,在您启动DHCP服务器之前,您必须创建空文件 dhcpd.leases
#touch /var/state/dhcp/dhcpd.leases
为启动DHCP服务器,简单地打入 /usr/sbin/dhcpd 或者用#ntsysv把DHCP服务自动启动
这用启动dhcpd在eth0设备上,可能您希望在eth1设备上启动dhcpd,则
#/usr/sbin/dhcpd eth1
如何观察客户的ip到底存在无获得呢?
在98运行winipcfg
在2000 下运行ipconfig /all
以上就是给Linux系统配置动态ip的方法了,Linux设置动态ip还是要用代码来实现,不过这对于Linux老手来说,应该是小问题啦。
I. Linux动态链接和静态链接简析
linux动态链接和静态链接简析1.生成静态链接库gcc
-c
h.c
-o
h.oar
cqs
libh.a
h.o//ar是生成库的命令,cqs是参数,libh.a是生成的静态链接库须以lib开头,h是库名,a表示是静态链接库,h.o是刚才生成目标文件2.生成动态链接库
www.shiwu.com
gcc
-c
h.c
-o
h.o生成动态链接库用gcc来完成gcc
-shared
-WI
-o
libh.so
h.o//-shared
-WI是参数,libh.so是生成的静态链接库须以lib开头,h是库名,so表示是动态链接库,h.o是刚才生成目标文件3.将生成的libh.a,libh.so拷贝到/usr/lib或/lib下4.编译带静态链接库的程序gcc
-c
test.c
-o
test.ogcc
test.o
-o
test
-WI
-Bstatic
-lh//-WI
-Bstatic表示链接静态库,-lh中-l表示链接,h是库名即/usr/lib下的libh.a5.编译带动态链接库的程序gcc
-c
test.c
-o
test.ogcc
test.o
-o
test
-WI
-Bdynamic
-lh//-WI
-Bdynamic表示链接动态库,-lh中-l表示链接,h是库名即/usr/lib下的libh.so6.运行./test得到结果
www.shiwu.com
7.其他知识有些库形如libh.so.1.0,1.0表示版本号.若要使用该库,通常要建立一个软连接,用ln
-s
libh.so.1.0
libh.so.系统不知道1.0为何意思。编译连接时同时要用动态和静态链接库,则用如下命令gcc
test.o
-o
test
-WI
-Bstatic
-lh1
-WI
-Bdynamic
-lh28.动态库和静态库的位置问题把动态库或者静态库放在/usr/lib或者/lib下,在链接的时候系统会自动到这两个目录下寻找。如果没有放在这两个目录下,则修改/etc/ld.so.conf文件,把目录写入该文件,然后ldconfig,就OK了。如果没有放在usr/lib或者/lib目录下,也不修改/etc/ld.so.conf文件,也可以在编译的时候加上
-L/路径
也可以。但是在执行的时候还是会提示找不到库的所在。
作者
llg521208
J. Linux操作系统中,建立动态路由需要用什么到文件
在linux上常见的路由服务就是zebra提供的.
zebra都支持ripv1,ripv2,ospf,bgp等动态路由协议.
在我们现在一般的linux系统上,一般是使用quagga这个软件来提供zebra功能,quagga是由zebra升级而来的,可以说quagga就是zebra了,先来安装下quagga
yum install quagga或者rpm -ivh quagga*.
这个软件所提供的各项路由动态协议都放置在/etc/quagga这个目录内.现在我们来说下ripv2协议哈,我们需要注意的是,不论我们启动什么动态路由协议,都需要先启动zebra才行,:
zebra这个daemon的功能是更新内核的路由原则.
rip这个daemon则是向附近的其他router沟通协调路由规则的传送与否
设置路由之前,我们先设置zebra并且启动zebra
vi /etc/quagga/zebra.conf
hostname redhat 给这个路由器随便设置一个主机名称
enable password redhat 设置密码
log file zebra.log 将所有zebra产生的信息存到日志文件中
[root@xiaozhu Server]# /etc/init.d/zebra start
[root@xiaozhu Server]# netstat -tunlp |less
tcp 0 0 127.0.0.1:2601 0.0.0.0:* LISTEN 3522/zebra
zebra这个服务的任务主要是修改linux系统内核内的路由,它仅仅监听本机接口,并不会监听外部的接口.另外,在zebra.conf这个文件中设置的密码是有用的,可以让我们登录zebra这个软件.
现在我们来看看2601号端口是否正确启动
其实刚才也不一定要用netstat -tunlp |less,也可以用nmap localhost
[root@xiaozhu ~]# vi /etc/quagga/zebra.conf
[root@xiaozhu ~]# vi /etc/quagga/zebra.conf
[root@xiaozhu ~]# /etc/init.d/zebra restart
