Linux开发工具


##### 1.5.1rz/sz软件的安装和使用



sudo yum install -y lrzsz
rz
#将文件从Windows传到Linux上
sz 文件名
#将文件发送到Windows


##### 1.5.2yum源


​ yum内置了app下载链接,即yum源。


​ Base指的是官方yum源,epel指的是扩展yum源。


​ yum源存放在/etc/yum.repos.d这个目录下。



sudo yum install -y eple-release
#安装扩展yum源


### 二、vim编辑器


​ vim是一种多模式编辑器,常见的是三种模式。以下是三种模式及切换方式。在底行模式下,:!wq。!表示强制执行,w表示写入保存,q表示退出。


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9b9d4908c973493baf621ba8ef6a7df6.png#pic_center)


**命令模式**:


​ 使用n可以进行性n行操作;


​ 光标定位:


​ gg:定位光标到文本起始行开始的位置;


​ G:定位光标到文本最后一行的开头位置;


​ ng:定位到n行开头;


​ $:光标定位到当前行结尾;(锚点)


​ ^:光标定位到当前行开头;(锚点)


​ w:光标向右移动;


​ b:光标向左移动;


​ hjkl:分别对应光标向左下上右移动;


​ 复制:


​ yy:复制光标所在行的内容;


​ nyy:复制光标开始n行的内容;


​ 粘贴:


​ p:将拷贝内容粘贴到光标的下一行;


​ np:将n份拷贝内容粘贴到光标的下一行;


​ 撤销:


​ u:撤销上次操作;


​ ctrl+r:反撤销;


​ 剪切:


​ dd:剪切光标所在行内容;


​ ndd:剪切光标所在行开始n行的内容;


​ 其他:


​ shift+~:快速大小写转换;


​ nr:将光标当前位置的往后n个字符替换;


​ nx:将光标当前位置的往后n个字符删除;


**批量化替换模式**:


​ 使用R进入,按两下insert键;


**插入模式**:


​ 使用i进入,或者I,或者按一下insert键;


**批量选择模式**:


​ 使用ctrl+v进入;要注意使用hjkl进行移动,再次进入插入模式要使用I;


**多文件模式**:


​ 使用vs 文件名进入;


​ 使用ctrl+ww实现光标在不同文件的切换;


**底行模式**:


​ 1.!wq:!表示强制执行,w表示写入保存,q表示退出;


​ 2./+文本关键词:搜索功能,搜索文本关键词匹配的子串;


​ 3.!+各种指令操作:在vim里执行各种指令;


​ 4.set nu/nonu:显示行号/去掉行号;


### 三、编译工具gcc/g++


#### 3.1gcc的使用


​ g++与gcc类似,只是编译.cc/.cpp./cxx结尾的文件,gcc编译的是.c文件。


​ 要注意的是,能够开发是因为安装了相关的头文件和库文件,头文件在/user/include/路径下存放着,库文件在/lib64下存放着;


​ 对一份源代码编译可细分为四个阶段,分别是预处理、编译、汇编、链接;


预处理阶段:



gcc -E test.c -o test.i -g
#这个阶段主要进行了去注释、头文件展开、条件编译、宏替换;
#E表示执行到预处理阶段结束,o表示以此方式命名,D表示定义一个量,用来进行条件编译;生成的.i文件本质上是一个较为干净的源文件,g表示以debug的方式进行编译,会留下许多调试信息;


编译阶段:



gcc -S test.i -o test.s
#这个阶段主要进行了语法检查,符号汇总,生成了汇编文件;
#S表示执行到编译阶段结束


汇编阶段:



gcc -c test.s -o test.o
#这个阶段是将汇编文件转换成二进制文件,形成符号表(注意此时的符号表不一定是有效的)
#c表示执行到汇编阶段结束,.o文件是可重定位目标二进制文件


链接阶段:



gcc test.o -o test.exe
#这个阶段会将多个二进制文件进行连接形成可执行文件或者库文件,进行合并符号表(此时的符号表才是有效的)
#不加选项直接生成的就是可执行程序,Windows下要求可执行程序必须是以.exe后缀结尾的;


​ 条件编译可以实现同时维护专业版和社区版的软件,具体使用不同的版本是使用条件编译就可以对代码进行切割;


#### 3.2、编译完成常用的一些指令


1.od



od 二进制文件名
#进行二进制文件的查看


2.ldd



ldd test.exe
#查看可执行程序的依赖情况


3.file



file 可执行程序
#显示链接方式


4.readelf



readelf 可执行程序
#查看可执行程序的二进制构成,可执行程序一般是elf格式的二进制文件;


5.stat



stat 文件名
#可以查看文件的属性


#### 3.3链接


​ Linux中.so是动态库,.a是静态库,Windows中.dll是动态库,.lib是静态库,库文件其实就是对.o文件进行打包。一般libname.so中name就是库文件的名字。


​ 安装开发包的本质就是安装头文件和对应的库文件,头文件提供声明,库文件提供实现和定义;默认使用的是动态库的方式进行链接。


​ 链接方式分为静态链接和动态链接;


​ 对于动态链接,动态库又被称为共享库,不同的程序都可以访问,只存在一份即可,但是程序对动态库的依赖性较大。


​ 对于静态库,是将库文件的内容拷贝到自己的可执行文件中,用哪些拷贝哪些,依赖性较弱,可以独立运行程序,但是会导致代码膨胀;


​ 形成可执行程序时,默认使用的连接方式是动态链接,所以必须提供动态库,进行静态链接时需要加选项-static;


### 四、自动化构建工具make/makefile


​ make:一条指令,makefile:是一个当前目录下的文件,通过依赖关系和依赖方法,进行栈结构的推导来完成自动化构建;



![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)

最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值