webbench源码学习

栏目: 编程工具 · 发布时间: 7年前

内容简介:源代码阅读前的相关知识点总结:

源代码阅读前的相关知识点总结:

命令行参数

命令行参数解析

命令行参数学习

Linux相关知识

ldd

作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。

示例:查看test程序运行所依赖的库:
/opt/app/todeav1/test$ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000)

第一列:程序需要依赖什么库

第二列: 系统提供的与程序需要的库所对应的库

第三列:库加载的开始地址

通过上面的信息,我们可以得到以下几个信息:

通过对比第一列和第二列,我们可以分析程序需要依赖的库和系统实际提供的,是否相匹配

通过观察第三列,我们可以知道在当前的库中的符号在对应的进程的地址空间中的开始位置

如果依赖的某个库找不到,通过这个命令可以迅速定位问题所在;

原理: ldd不是个可执行程式,而只是个 shell 脚本; ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。

nl命令

显示文件内容的同时显示行号

[root@centos-linux-10 ~]# nl /etc/sysconfig/network-scripts/ifcfg-eth0 
     1  # Generated by parse-kickstart
     2  DEVICE="eth0"
     3  IPV6INIT="yes"
     4  BOOTPROTO="dhcp"
     5  UUID="d712aa89-24f1-41ba-b30a-78825b70dc2d"
     6  ONBOOT="yes"
[root@centos-linux-10 ~]#

tail head

显示文件从第二行开始到第5行

[root@centos-linux-10 ~]# tail  -n+2 /etc/sysconfig/network-scripts/ifcfg-eth0 |head -n 4
DEVICE="eth0"
IPV6INIT="yes"
BOOTPROTO="dhcp"
UUID="d712aa89-24f1-41ba-b30a-78825b70dc2d"

sed替换

如果想替换全部UUID为uuid,并重定向到root下可以使用如下命令

sed s/UUID/uuid/g /etc/sysconfig/network-scripts/ifcfg-eth0 >/root/uuid

如果只替换第一个UUID为uuid使用如下命令:

sed s/UUID/uuid /etc/sysconfig/network-scripts/ifcfg-eth0 >/root/uuid

实际上你可以指定替换第n个出现的UUID,使用如下命令替换第二个出现的UUID为uuid

sed s/UUID/uuid/2 /etc/sysconfig/network-scripts/ifcfg-eth0 >/root/uuid

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python基础教程(第2版)

Python基础教程(第2版)

Magnus Lie Hetland / 司维、曾军崴、谭颖华 / 人民邮电出版社 / 2010-7 / 69.00元

本书是经典教程的全新改版,作者根据Python 3.0版本的种种变化,全面改写了书中内容,做到既能“瞻前”也能“顾后”。本书层次鲜明、结构严谨、内容翔实,特别是在最后几章,作者将前面讲述的内容应用到了10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程。本书既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是 Python方面的技术专家,也能从书里找到令你耳目一新的东西。一起来看看 《Python基础教程(第2版)》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具