当前位置:首页 » 《资源分享》 » 正文

Linux 基础环境的开发工具以及使用(上)

15 人参与  2024年12月13日 10:00  分类 : 《资源分享》  评论

点击全文阅读



目录

1. yum:Linux 软件包管理器

1)确保系统安装 yum 这个工具

 2)使用yum 进行相关软件的下载

​编辑

3)卸载使用yum 下载的相关软件

2.vim 编辑器的使用以及配置

 1)vim 的安装

2) vim 的三种模式

3)vim 下相关指令的使用

4)对vim 进行相关的配置

3.gcc / g++ 编译器的使用

1)确保已经安装 gcc / g++ 编译器

2)文件编译的全过程

3) 头文件的简单介绍

4)库文件的简单介绍

5)动,静库的对比


1. yum:Linux 软件包管理器

在Windows操作系统上,大多数都是以图形化界面的方式进行的,一般都是在官网或者对应的应用

商店进行下载,有时候对一个指定软件的下载,还涉及到多个依赖项,需要我们用户自己手动下载

安装对应的依赖项

对于Linux 操作系统就不一样了,都是以命令行的方式进行的(当然也是支持图形化界面),当我

们下载一个软件的时候,需要找到对应的源程序,经过编译,才能得到可执行程序,但是这样比较

麻烦:应该软件的下载,可能涉及到许多个依赖项,当源代码很大的时候,进行编译是比较消耗时间。

这时候我们就需要用到软件包管理器(yum):通过包管理器我们可以直接进行对应软件的安装

(软件所需要的依赖项以及源代码都已经进行了编译)。此时也不需要我们用户自己去找对应 的

依赖项,使用yum 源,直接一步到位。

可以把软件包管理器理解成一个应用商店,把软件包理解成一个个APP,使用yum 进行指定软件

的下载就好比使用手机进行软件下载一样。

    •yum 的工作原理

yum服务器

所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清单",这张"清单""就是描述每个rpm包的spec文件中信息。

yum client端

client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件(即yum源),这些配置文件指定了yum服务器的地址。yum会定期去"更新"yum服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)

         yum扩展源:

        通俗来讲,yum 可以理解成一个指定 的官方的网站,我们使用yum 下载的东西都是安全的,         当我们下载一些其他的东西时候,可能在yum 源上不存在或者存在一些警告,此时在yum 扩            展源进行下载即可。

       下载 yum  扩展源的指令如下:

1)确保系统安装 yum 这个工具

 2)使用yum 进行相关软件的下载

 语法:

(sudo) yum install 指定的软件

 使用yum下载gcc

注意:对于非 root 用户是不具备下载的权限的,此时 sudo  表示对当前的非 root 用户进行权限提

升,使之具有下载软件的权限。(可能有的即使输入 sudo 也表示权限不支持,因为此时没有对非

root 用户进行配置)。

对于非 root 权限提升的相关操作可以查看以下的博客:sudo 进行权限提升

3)卸载使用yum 下载的相关软件

语法:

sudo yum remove +卸载的软件名字

 

此指令含义:卸载安装的sl这个软件 

2.vim 编辑器的使用以及配置

 vim 是一种多模式的编辑器。

与vi的区别,简单的说就是对vi的一个升级版本。

 1)vim 的安装

  yum install vim

2) vim 的三种模式

命令模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者

到 末行模式。

插入模式: 只有在插入 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。该模式是我们后 面用的最频繁 的编辑模式。 末行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
3)vim 下相关指令的使用
3.1) 光标的移动:
gg光标定位到文件内容的第一行的开始
G   光标定位到文件内容的最后一行开始
nG 定位光标到指定行的开始(n 是指定的一个数字 >= 1)
shift + ^ 光标移动到当前行的开始
shift + $   光标移动到当前行的结束
w光标会以单词为基本单位,进行行内跨行的移动(向右移动)
b光标会以单词为基本单位,进行行内跨行的移动(向左移动)

3.2) 文件内容的复制,粘贴,删除,剪切:

n yy以光标所在行为基准,复制光标所在 n行 的内容 
np粘贴 n 行内容到光标所在行的下一行
ndd删除/ 剪切 n行的内容从光标所在的行开始
3.3) 撤销以及反撤销
u撤销
ctrl +r 撤销之前的撤销
3.4) 末行模式相关指令:
w保存
q退出
wq 或 ZZ保存并退出
q! 或 ZQ不保存退出
set nu显示行号
set nonu隐藏行号
/搜索的文本搜索
4)对vim 进行相关的配置

对于vim 来说,他不是一个文本编辑器嘛,在日后不可避免的使用他进行相关代码的编写,但是对

于没有经过配置过的vim 使用起来难免有点挫,比如语法高亮,代码缩进,语法提示,字体大小,

以及字体颜色设置,内容的行号设计等等。

可能对于“小白”来说,我都还不会使用vim ,就让我对vim 进行配置,这难免有点困难,别着急,

咱可以进行相关插件的下载安装。

切换到指定的一个用户(建议非root 用户):执行一下命令

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

按着提示出入对应的root 密码,即可安装成功。

VimForCpp 的卸载:

以安装有此插件的用户身份,执行以下的命令:

bash ~/.VimForCpp/uninstall.sh

对于新手来说,刚开始使用vim 难免有所困难,自己一定要多多练习,熟能生巧哟~~~ 

3.gcc / g++ 编译器的使用

我们既然已经会使用vim 进行相关代码的编写,接下来就需要知道如何对已经编写好的代码进行编

译,直至生产可执行的文件。

1)确保已经安装 gcc / g++ 编译器
sudo yum install gcc / g++
2)文件编译的全过程

2.1)预编译阶段:主要进行头文件的展开,宏替换,去掉注释,条件编译等工作

对应的指令:

gcc -E test.c -o test.i

 此指令的解释:告诉编译器对test.c 这个文件 执行预编译的任务,把预编译之后生成的文件内容

存放在test.i这个文件里面。

对应的执行效果见下:

 2)编译阶段:进行语法分析、词法分析和语义分析,并且将代码优化后产生相应的汇编代码文件

 对应的指令:

gcc -S test.i -o test.s 

 指令的解释:告诉编译器对test.i这个文件进行编译并把生产的内容放在test.s这个文件里面

3)汇编阶段:主要是把的汇编文件生成对应的目标文件

对应指令:

gcc -c test.s -o test.o

 指令解释:告诉编译器对汇编文件test.s 执行汇编生成对应的目标文件test.o

4)链接:主要是把目标文件与对应的库文件进行链接生成对应的可执行程序(注意:模板文件并不

是一个可执行的文件)

对应的指令:

gcc test.o -o test.exe

指令的解释:对目标文件执行链接生成对应的可执行文件。 

4.1)链接分为动态链接和静态链接

动态链接与静态链接的区别:

动态链接是在程序执行的时候才进行链接,并且动态链接生成对应的

文件体积相比较于静态链接形成的文件体积小。

静态链接:是在形成可执行程序之前进行链接,因为需要把对应的库文件内容拷贝到当前文件下。

 

4.2) 静态库的安装:

3) 头文件的简单介绍

首先思考以下的问题:

为什么我们可以在 Windows 或者Linux 上面进行开发呢???

 首先我们必选先安装对应的软件:VS2022,VScode,Pycharm 等等。

其次我们需要具备相关的头文件以及库文件。

在Linux 上面,对应的头文件默认是存放在 /usr/include 这个目录

4)库文件的简单介绍

在Linux 上面,库文件默认是存放在 / lib64这个目录下的

以下是截取的部分库文件

对于库文件又分为:静态的库文件和动态的库文件

Linux 上面的库文件在书写形式上的构成: lib(前缀)+ 库的名字 + 后缀

Linux库文件的扩展名(后缀)只有2种形式: .so(动态库)  .a(静态库)

Windows 库文件的扩展名: .dll(动态库)  .lib(静态库)

 库其实是把每个源文件进行编译,再打包封装形成一个大的库文件,以供用户的使用。

5)动,静库的对比

动态库:共享的,比较节省资源(磁盘空间,网络空间,内存空间);所占体积较小

静态库:比较消耗资源;不依赖库,可以独立运行。

编译器在进行链接的时候默认是优先进行动态链接的,当动态库不存在的时候,再进行静态链接

当我们指定链接就以静态链接的时候,若没有静态库,此时编译报错;静态库存在指向静态链接,

而且只进行一次静态链接。

对当前指令的深入认识:首先指定以静态链接的方式;同时也改变了链接的优先级,此时执行链接

的时候对所有的库文件都是以静态链接方式进行的。

查看程序的链接方式:

file 可执行程序的文件名

结语:

 以上是对Linux 系统上用到的部分工具的简单介绍,感兴趣的友友们,可以进行深入的研究与讨

论。对于这部分的知识我们需要勤于练习


点击全文阅读


本文链接:http://zhangshiyu.com/post/200489.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1