文章目录

  • 前言
  • 一、yum ——*软件包管理工具,完成第三方工具软件的安装与卸载功能*
  • 二、vim ——*编辑器,linux写代码的工具*
  • 三、g++/gcc ——*编译器,即将高级语言编译成为机器指令*
  • 四、gdb ——调试器,调试程序运行过程
    • **静态链接:**
    • **动态链接:**
  • 五、make/makefile ——*项目的自动化构建工具*
    • make
  • 六、git —— *项目的版本管理工具*
  • 总结

前言

本片文章主要介绍Linux编程中,我们这些新手小白常用的,编程工具,调试工具等等,具体内容将于下面进行详细的说明

一、yum ——软件包管理工具,完成第三方工具软件的安装与卸载功能

查找:
list 查看所有工具
search [空格] 工具名

安装:
install [空格] 工具名(在具有root权限的情况下执行)

卸载:
remove [空格] 工具名 (在具有root权限的情况下执行)

二、vim ——编辑器,linux写代码的工具

模式切换:(返回普通模式:Esc)
vim filename 打开文件(文件不存在则创建) —默认处于普通模式
普通->插入
i,o,a,I,O ,A
共有六种不同的插入方式,具体实践大家可以自己试试,大小写功能是不相同的,我们常用的****是”i“的插入方式

**普通->低行:**——“/” ,”?“ 都可以,只是功能不同:w——保存  :q—— 退出 :wq—— 保存并退出 :q!——强制退出不保存/string——匹配字符串?string——查找字符串:%s——全文指定字符串替换:[num],[num]s/oldstring/newstring/g ——选定范围字符串替换
**其他->普通**  Escdd ——剪切或删除光标所在行(按 P 即可粘贴)[num]dd  从光标所在行进行多行剪切或删除yy  复制[num]yy  从光标所在行进行多行复制u  撤销上一次操作Crtl+r 还原撤销
光标移动: 上下左右 hjkl   Ctrl+f/b  G/gg
全文对齐: gg=G

三、g++/gcc ——编译器,即将高级语言编译成为机器指令

默认链接方式:动态链接
编译过程:
预处理——展开所有代码(宏替换,头文件,)
gcc -E 文件名 (-o(用来生成一个预处理文件) 生成的文件名)(mian.i)

编译——语法语义检测,没有错误则将代码解释成汇编指令
gcc -S 文件名 -o…(mian.s)
gcc -g——生成debug调试程序
eg: gcc -g main.c -o mian

汇编——将汇编指令解释成二进制的机器指令
gcc -c 文件名 -o…(mian.o)

链接——将所有需要的二进制机器指令(其他的.o以及库文件)打包生成可执行程序
gccmian.o -o…(mian)

静态链接:
将库中的使用到的代码写入到可执行程序中

缺陷:生成的程序较大,在运行时存在重复冗余代码
优点:运行时不需要依赖库

动态链接:
在可执行程序种记录库中函数符号信息表,并没有把具体实现的指令写入可执行程序而是在运行程序的时候去加载这个库

优点:生成的程序小,在内存中共享库
缺陷:运行时依赖库的存在

四、gdb ——调试器,调试程序运行过程

默认链接方式:动态链接
编译过程:
预处理——展开所有代码(宏替换,头文件,)
gcc -E 文件名 (-o(用来生成一个预处理文件) 生成的文件名)(mian.i)

编译——语法语义检测,没有错误则将代码解释成汇编指令
gcc -S 文件名 -o…(mian.s)
gcc -g——生成debug调试程序
eg: gcc -g main.c -o mian

汇编——将汇编指令解释成二进制的机器指令
gcc -c 文件名 -o…(mian.o)

链接——将所有需要的二进制机器指令(其他的.o以及库文件)打包生成可执行程序
gccmian.o -o…(mian)

静态链接:

将库中的使用到的代码写入到可执行程序种

缺陷:生成的程序较大,在运行时存在重复冗余代码
优点:运行时不需要依赖库

动态链接:

在可执行程序种记录库中函数符号信息表,并没有把具体实现的指令写入可执行程序,而是在运行程序的时候去加载这个库

优点:生成的程序小,在内存中共享库
缺陷:运行时依赖库的存在

gdb调试器——调试程序运行过程
调试程序的前提 ——这个程序是一个debug版本的程序

debug程序:
不进行代码优化,并且会加入调试信息
release程序:
会进行代码优化,提高程序运行效率(gcc默认生成release版本程序无法进行调试

常见调试指令:开始调试:程序运行参数是gdb加载完成之后run/start的时候给予run                                    ——直接运行到断点start                                  ——逐步调试list [空格] 程序文件名:[num]             ——查看指定文件程序,指定行附近代码n/next——下一行(后续可用回车代替)(不会进入函数内部,直接执行完函数)——逐过程s/step——下一行(会进入函数内部)           ——逐语句until[空格]程序文件名:[num]              ——运行到程序指定行b/break[空格]程序文件名:[num]            ——给指定文件指定行打一个断点info[空格] break                       ——查看设置的断点break [空格] 函数名                     —— 给函数打断点d/delete[空格] id(断点ID)               ——删除断点print                                 ——查看/设置变量数据watch [空格] 变量                      ——给变量打一个监控断点,变量发生变化时触发断点continue                              ——从调试位置开始继续运行backtrace                             ——查看函数调用栈,快速找到程序崩溃位置

五、make/makefile ——项目的自动化构建工具

touch makefile —— 创建一个文本文件
一个普通文本文件,在其中编写项目的构建规则

编写规则:目标对象:依赖对象......[tab]为了生成目标对象所需要执行的指令预定义变量:$@                               ——目标对象$^                               ——所有依赖对象$<                               ——依赖对象中的第一个SRC=$(wildcard ./*.c)            ——获取当前文件下所有以.c结尾的文件OBJ=$(patsubst %.c,%.o,$(SRC))   ——pastsubst对SRC中的内容进行后缀名字符串替换%.o:%.c                          ——通配符生成目标对象.PHONY                           ——声明为对象,与外部文件脱离关系的对象

实际操作就如同下面这个例子一样:
这是现在mktest文件中所存放文件

这是makefile基于上面的准则写好的文件内容

make

是makefile解释程序,在当前目录下找到名为makefile的文件逐行解释执行

解释执行规则:
make生成第一个目标对象之后就会退出
为了生成目标对象,递归查找依赖对象生成规则,生成依赖对象再去生成目标对象

六、git —— 项目的版本管理工具

将项目的每个节点版本保存起来,以便随时能够回滚还原
协同开发
操作:克隆远程仓库:git clone  [ gitee仓库路径 ]添加修改记录:git add --all ./ 提交本地仓库:git commit -m "备注信息"同步远程仓库:git push origin master

总结

这篇文章主要是想帮助初入linux的萌新的一点,快速的笔记说明,只是我个人的一些笔记的汇总,如果有写的不清楚,或者不对的地方,希望可以得到大家的指正,emmm,这些还是希望大家可以多多练习,毕竟这个真的是熟能生巧,动手跟着操作肯定比干瞪眼的效果会好的更多,加油!!!大家一起共同进步!!!!冲!!!!

Linux常用编程工具相关推荐

  1. 连接linux工具Mtr,Linux常用网络工具:路由扫描之mtr

    除了上一篇<Linux常用网络工具:路由扫描之traceroute>介绍的traceroute之外,一般Linux还内置了另一个常用的路由扫描工具mtr. mtr在某些方面比tracero ...

  2. Linux常用的工具

    Linux常用的工具 1.VIM最好用的代码补全插件,YouCompleteMe 这个插件可以时间代码的补全 安装步骤 点这里 2.能与vim相提并论的编辑器(Emacs) 在这个蔚蓝色的星球上,流传 ...

  3. Linux下的常用编程工具初探

        引言 Linux在很多人眼中是非常好的操作系统,不仅因为它的内核和函数库的完整源代码都是公开的,而且因为它拥有许多好用的程序开发工具. 下面就介绍几种常用的编程工具,熟悉这些工具对于开发Lin ...

  4. Linux 10分钟掌握Linux常用开发工具及编译的四个过程

    Linux下的常用开发工具 软件包管理工具 yum–类似于手机上的应用商店(管理当前系统中能够安装的工具以及卸载的工具,并且实现安装及卸载操作) 1.查看所能安装的软件:yum list 查看所有工具 ...

  5. 程序员常用编程工具: VS Code,那些你不得不知道的小知识!

    工欲善其事,必先利其器.这句话真好,一句话可以写两篇文章.上一篇我们介绍了键盘,对于程序员来说,光有键盘可不行,你还需要一个趁手的编程工具.就像很多工程师对 HHKB 键盘情有独钟一样,好的编程工具可 ...

  6. 常用编程工具:VS Code,这款编译工具到底好不好用?

    工欲善其事,必先利其器.这句话真好,一句话可以写两篇文章.对于程序员来说,光有键盘可不行,你还需要一个趁手的编程工具.就像很多工程师对 HHKB 键盘情有独钟一样,好的编程工具可以成倍的提高你的编程效 ...

  7. 知乎上有个热门问题,Python 未来会成为大众办公常用编程工具吗?

    Python处理办公自动化的10大场景 在编程世界里,Python已经是名副其实的网红了.曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用Python来跑数据. ...

  8. <Linux常用开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile等)>——《Linux》

    目录 1.Linux 软件包管理器 yum 1.1什么是软件包: 1.2 关于 rzsz: 1.3 如何安装软件: 1.4 如何卸载软件: 2.Linux开发工具 3. Linux编辑器-vim使用 ...

  9. Linux 常用开发工具

    目录 1. yum 2. vim文本编辑工具 2.1 模式 2.2 模式的切换 2.3 普通模式下的常用操作 3. gcc/g++编译器 3.1 编译步骤 3.2 gcc使用 4. Makefile ...

  10. linux php使用fping,Linux常用网络工具:fping主机扫描

    Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描.主机服务扫描.路由扫描等. fping是一个主机扫描工具,相比于ping工具可以批量扫描主机. fping官方网站:http://f ...

最新文章

  1. NYOJ 453 小珂的烦恼 模拟
  2. php控件不显示,解决控件遮挡问题:关于有窗口元素和无窗口元素
  3. 【MaxCompute】学习笔记操作表sql
  4. discuz 二次开发
  5. windows下安装virtual box(ubuntu)
  6. POJ 2342 (树形DP)
  7. K8S Learning(2)——集群环境搭建
  8. UVa 10635 (LIS+二分) Prince and Princess
  9. Setforegroundwindow 将窗口置最前
  10. 还来一篇说下json_value 以及 json_query 的应用 (3)
  11. relocation R_X86_64_PC32 against symbol ff_pw_9 can not be used when making a shared object
  12. Linux curl命令详解
  13. 回溯(backtrack)
  14. i3wm 获取window class
  15. Kendo UI使用方法与教程
  16. 单行子查询返回多个行
  17. 实用工具 - 小众软件
  18. 稻盛和夫「活法」| 读书笔记系列01
  19. m3u8转换到mp4 python_python实现m3u8格式转换为mp4视频格式
  20. 随手笔记--为对象增加新的属性,拼接多个对象

热门文章

  1. 解决CAS 4.2.7 版本集群部署的各种问题
  2. java:单例模式的五种实现方式
  3. 怎样快速将图片dpi修改为300?如何调整照片分辨率?
  4. 工业条形码扫描枪:如何为您的应用选择合适的扫描枪
  5. 基于OP放大器的有源模拟滤波器设计--一阶有源滤波器
  6. Java 验证码识别(1)使用 Tess4J 进行 OCR 识别
  7. kail linux暴力破解wifi
  8. 当代中国社会划分为十大阶层
  9. Masscan教程和入门手册
  10. 数据结构与算法部分术语中英文对照