LInux工具(2)

目录

1.关于底行模式的一个设置

1.1设置行号

1.2取消行号

2.简单vim配置

2.1简单认识

2.2配置选项

2.3其他说明

3.库的引入

3.1背景知识

3.2对应指令

3.3相关介绍

3.4.o文件和库的链接

3.5静态库的安装和测试

3.6动静态库对比


1.关于底行模式的一个设置

1.1设置行号

这个设置可以让我们在文本编辑器上面书写的代码的前面有行号的标注说明;

1.2取消行号

这个就是回复成为默认的设置,不显示每一行的行号

2.简单vim配置

2.1简单认识

在目录/etc/的下面,有一个名字叫做vimrc 的文件,这个就是系统里面的公共的vim 配置文件,对所有的用户都是起效的;

但是在每一个用户的,目录下面都是可以家里自己的私有的配置的,不会影响其他的人,我们想要进行相关的配置,需要先切换到root目录下面,再通过cd ~指令到达相应的目录下面去;

执行#vim .vimrc#指令打开自己的目录下面的相关文件,进行对应的配置;

2.2配置选项

设置语法高亮#syntax on#

显示行号#set nu#

设置缩进的格数为4#set shiftwidth=4#

为什么这个地方还有相关的对于这个行号的设置,和上面的第一个介绍的行号的显示有什么区别,这个地方进行相关的配置之后,就算我们创建新的文件,这个新的文件上面也会有相应的配置,但是上面的那个命令指示针对于当时所在的文件,并不会对所有的文件全部发挥作用;

配置完成之后就按照三个模式之间的相互切换直接保存退出就可以了,然后我们可以再次进入查看新的效果;

2.3其他说明

其中这个上面介绍的cd ~表示的就是进入/root,我们在进行相关的配置的时候需要在这个/root下面进行配置,但是我们从这个普通用户切换回到root的时候,默认的这个位置就是root里面的zzy(因为我们切换之前就是在这个zzy目录下面的,切换完之后还是在这个/home/zzy目录下面,这个是普通用户的家目录,而不是root用户的家目录,我们想要直接切换到root里面的家目录,就需要在切换指令su -root,就是在这个root前面多加上了一个短杠,这个短杠不是和root连着的,两个之间是有一个空格的,当然我们也可以不添加这个短杠,在使用这个cd ~切换到家目录下面去)反正就是我们需要在这个时候使用cd ~指令切换到/root这个路径和下面进行相关的操作;

3.库的引入

3.1背景知识

这个背景知识就是程序执行的环节,包括这个预处理,编译,汇编,执行,这个预处理就是这个宏替换掉,头文件展开,注释取消掉,编译的话就是生成程序的汇编指令,汇编就是把这个汇编指令生成这个机器可以识别的指令,链接就是把这个库和目标文件连接起来,因为这个目标文件是不可以直接执行的,需要和库连接起来才可以执行;

3.2对应指令

这个下面是一共展示出来了4组,分别对应上面的这四个过程,test.c就是我们需要运行的程序,test.i就是经过预处理之后生成的文件-E指令的作用就是让这个过程经历了预处理之后停下来就不要继续向下执行了,我们一般把这个生成的预处理之后的文件叫做.i文件;

以此类推,这个-S的作用就是让这个.i文件经过这个编译过程之后停止下来,不要向后继续执行了,这个过程执行后生成的文件我们一般使用.s进行命名,-o就是一个指令,整个过程都是不变的,后面跟的就是生成的文件的名字;

-c就是编译后文件经过汇编就停止,汇编生成的文件一般是.o文件,gcc使我们对于这个文件进行编译的过程;vim是查看这个每一个步骤生成的文件的内容;.o文件的全称叫做可重定向目标的二进制文件,我们平常简称为目标文件;

3.3相关介绍

C语言里面的库就是一个标准库,库里面有这个静态库和动态库

libc.so这个里面的lib就是前缀,.so就是后缀,这个名字实际上只有c,这个名字实际上是很短的(这个就是库自己的命名规则);

我们的系统上面,默认只会安装动态库,静态库是没有的;

编译型语言,下载安装包,一定会安装头文件和库文件,这样编译器才会认识,我们才可以使用相关的方法(方法的实现就是在库里面的),库就是把我们的源文件经过翻译打包,只提供一个文件,把源文件隐藏起来,增强这个代码的安全性;

头文件提供方法的声明,库文件实现方法的实现,加上我们写的代码,就可以形成可执行程序(软件),库的作用就是让我们站在巨人的肩膀上,减少我们去做重复的工作;

3.4.o文件和库的链接

动态链接:动态库也叫做共享库,动态库不能确实,一旦动态库缺失,不只是影响一个程序,很多的程序都无法正常执行;这个地方其实蛋哥是讲了一个也别形象的故事的,但是这个故事比较长,这里我就不再赘述了,动态库的就是我们的程序执行到某一个步骤的时候,这个时候的程序需要到这个静态库里执行一些步骤(这个步骤是这个程序自身没有办法独立完成的),因为每一次执行到这个位置就会跳转到库里面去,因此这个动态库一旦消失,这个很多的程序就会受到影响而没有办法执行;

静态链接:这个和动态的区别就在于,我们的程序执行到这个无法独立完成的步骤的时候,这个时候会把这个静态库里面的东西拷贝到这个程序里面去,即使这个静态库消失了,但是这个静态库里面我们需要的东西已经被拷贝到我们的程序里面了,这个时候我们的程序的执行是不会受到影响的,这个也是动态库和静态库的区别;

3.5静态库的安装和测试

动态链接调用动态库,默认的话也是使用的动态库,静态链接使用静态库,这个也是需要相互匹配的,但是我们可以修改这个默认的方式,就是需要额外的标注一下;

但是这个前提是我们的系统里面已经安装上这个静态库,但是没有操作的话这个系统里面只有动态库,需要我们自己手动的进行安装;

C语言静态库:

C++静态库:

上面的这两个静态库我们都可以在自己的云服务器上面安装一下;

我们不想使用动态库,这个时候我们可以备注使用我们自己安装上去的静态库,后面加上这个-static标注;

我们通过ll指令可以看到这个静态库的文件是比较大的,所以一般我们不会使用静态库,使用默认的动态库就可以了;

3.6动静态库对比

动态库叫做共享库,有效的节省资源,形成的可执行程序体积小,从而节省这个磁盘的空间,未来的时候,我们的可执行程序要加载到内存里面,这个就可以变相的节省内存,此外可以节省网络空间,但是缺点就是一旦动态库缺失,很多的程序就不可以执行;

静态库,不依赖,程序可以独立的执行(因为对应的库里面的文件已经被拷贝到我们的程序里面了),但是体积大,比较消耗资源(内存,网络空间等等);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马点评-Postman卡住sending Requst原因解决

不知道为什么,用这个c1e1d5的token就会一直卡死,但是换了一个token就解决了,目前不知道为什么 解决了,原来是这个请求下面的函数发生了死循环!!太瓜皮了我超! 把num写成了count,导…

函数(递归)

递归:程序调用自身编程技巧称为递归。 在学习递归前需要粗略的了解一下内存,内存分为三类,分别是栈区、堆区和静态区。对于栈区来说,每调用一次函数都会为本次函数开辟一块空间,然而栈区也是有空间限制的,随…

Golang | Leetcode Golang题解之第242题有效的字母异位词

题目&#xff1a; 题解&#xff1a; func isAnagram(s, t string) bool {if len(s) ! len(t) {return false}cnt : map[rune]int{}for _, ch : range s {cnt[ch]}for _, ch : range t {cnt[ch]--if cnt[ch] < 0 {return false}}return true }

Temporal-Kit 及 Ebsynth-流程

https://www.youtube.com/watch?vBL77HVIviJM 预处理 Ebsynth-流程

全国区块链职业技能大赛第八套区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 医疗健康平台中涉及到医院、医生、患者等参与方,他们需要在区块链医疗健康平台中完成账户注册、身份上链、挂号就诊、查询病例等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于医疗健康平台系统架构,以…

【SpringBoot配置文件application.yaml】笔记

详细内容见官方文档Common Application Properties 使用application.yaml进行简单配置 第一步&#xff1a;创建WebDemo第二步&#xff1a;创建application.yaml配置文件注意&#xff1a; 第三步&#xff1a;验证自己创建的yaml文件是否生效测试&#xff1a;思考&#xff1a;如…

MT7628指定分区备份固件

为了避免升级过程突然断电&#xff0c;或者其他不良操作导致的路由器“变砖”。在MT7628使用过程中&#xff0c;我们可以对固件进行备份。 MT7628原厂SDK有关于双备份的选项&#xff0c;选择对应选项后&#xff0c;可对固件进行备份。下面以SKYLAB的SKW92A模组为例进行测试说明…

【专项刷题】— 快排

1、颜色分类 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 创建三个指针&#xff0c;然后把数组分为三个区域遍历代码&#xff1a; class Solution {public void swap(int[] nums, int i, int j){int t nums[i];nums[i] nums[j];nums[j] t;}public void sortCo…

百度网盘Android一二面凉经(2024)

百度网盘Android一二面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《百度网盘Android一二面凉经(2024)》。 面试职位: 网盘主端研发组_Android高级研…

细说MCU用定时器控制单路DAC模块设计和输出锯齿波的实现方法

目录 一、参考工程 二、仅提供不同的配置 1、用定时器控制DAC输出 2、配置定时器参数 三、代码修改 四、 运行并观察显示效果 一、参考工程 本工程依赖作者的文章&#xff1a;细说MCU用单路DAC模块设计和输出锯齿波的实现方法-CSDN博客 https://wenchm.blog.csdn.net/ar…

Python 如何对上万、百万、亿级数据去重?

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 今天我们要一起探索一个让数据工程师、数据科学家和开发者们都头疼的问题&#xff1a;如何对海量数据进行去重。随着数据量的不断增长&#xff0c;我们在处理数据时&#xff0c;去重操作…

要么利用规则,要么打破规则

在这个充满规则和标准的世界里&#xff0c;我们常常被告知要如何生活、如何成功。但事实上&#xff0c;这些规则和标准往往限制了我们的潜力和创造力。本文将探讨如何不被外界规则所束缚&#xff0c;活出自己的风采。 规则的双刃剑 规则和标准可以为社会带来秩序&#xff0c;…

JavaScript进阶之构造函数数据常用函数

目录 一、深入对象1.1 创建对象的三种方式1.2 构造函数1.3 实例成员&静态成员 二、内置构造函数2.1 Object2.2 Array2.3 String常见实例方法2.4 Number 一、深入对象 1.1 创建对象的三种方式 利用对象字面量创建对象利用new object创建对象 const obj new Object({})利用…

Java | Leetcode Java题解之第268题丢失的数字

题目&#xff1a; 题解&#xff1a; class Solution {public int missingNumber(int[] nums) {int n nums.length;int total n * (n 1) / 2;int arrSum 0;for (int i 0; i < n; i) {arrSum nums[i];}return total - arrSum;} }

学习系列一:YOLO系列目标检测框架之间介绍及对比

YOLO系列目标检测框架之间介绍及对比 华为HCIP AI高级工程师证书&#xff0c; 华为HCIA AI证书&#xff0c;目前从事视觉算法工作 文章目录 YOLO系列目标检测框架之间介绍及对比前言一、YOLOv1二、YOLOv2三、YOLOv3四、YOLOv4五、YOLOv5及后续算法 前言 YOLO系列算法 YOLO 创…

树与二叉树学习笔记

树与二叉树 计算机中的树树的概念树的类型 什么是二叉树二叉树&#xff1a;定义与特点二叉树&#xff1a;前序、中序、后序遍历二叉树&#xff1a;深度、广度优先遍历二叉树&#xff1a;线索化二叉树&#xff1a;序列化与反序列化 haffman树平均编码长度构建haffman树haffman树…

数学建模算法汇总(全网最全,含matlab案例代码)

数学建模常用的算法分类 全国大学生数学建模竞赛中&#xff0c;常见的算法模型有以下30种&#xff1a; 最小二乘法数值分析方法图论算法线性规划整数规划动态规划贪心算法分支定界法蒙特卡洛方法随机游走算法遗传算法粒子群算法神经网络算法人工智能算法模糊数学时间序列分析马…

大模型应用—大模型赋能网络爬虫

大模型赋能网络爬虫 简单来说,网页抓取就是从网站抓取数据和内容,然后将这些数据保存为XML、Excel或SQL格式。除了用于生成潜在客户、监控竞争对手和市场研究外,网页抓取工具还可以用于自动化你的数据收集过程。 借助AI网页抓取工具,可以解决手动或纯基于代码的抓取工具的…

shell脚本语言的入门

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容

目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材&#xff08;小红书测试AI产品&#xff09; 脚本 素材 剪辑 3 用LLM做爆文选题 &…