Linux环境基础开发工具

news2024/11/19 8:41:14

目录

Linux软件包管理器yum

Linux开发工具

文本编辑器vi、vim

vim的基本概念

 vim操作

Linux编译器-gcc\g++使用 

函数库分为动态库和静态库

Linux调试器gdb使用

在gdb模式下的命令


Linux软件包管理器yum

yum怎么说呢?就相当我们手机里的应用商店。我们需要安装的软件,需要使用yum安装。

注意:关于yum的操作,必须保持在网络畅通的情况下!(可以使用ping命令验证)

rzsz这个工具用于windows 机器和远端的 Linux 机器通过 XShell 传输文件。

我们可以使用命令行进行查看。

 关于yum的安装和卸载命令如下:(安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成)

Linux开发工具

文本编辑器vi、vim

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。

vim的基本概念

vim有12种模式,但是我们大多数掌握三种模式即可。即命令模式插入模式底行模式

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

插入模式:只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁 的编辑模式。

底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

 vim操作

下边是三种模式下各自的大多数的命令集

Linux编译器-gcc\g++使用 

gcc是C使用的编译器,g++是C++使用的编译器。

C程序的执行需要完成预编译编译汇编链接四个过程。

预编译(进行宏替换)

        预处理功能主要包括宏定义,文件包含,条件编译,去注释等。

         预处理指令是以#号开头的代码行。

        实例: gcc –E hello.c –o hello.i 选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。

        选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。

编译(生成汇编)

        在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查 无误后,gcc 把代码翻译成汇编语言。

        用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。

        实例: gcc –S hello.i –o hello.s

汇编(生成机器可识别的机器码(二进制))

        汇编阶段是把编译阶段生成的“.s”文件转成目标文件

        读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了

        实例: gcc –c hello.s –o hello.o

链接(生成可执行文件或库文件)

        在成功编译之后,就进入了链接阶段。

        实例: gcc hello.o –o hello

函数库分为动态库和静态库

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也 就不再需要库文件了。其后缀名一般为“.a”

动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时 链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态 库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcc hello.o –o hello

gcc默认生成的二进制程序,是动态链接的。

Linux调试器gdb使用

进入gdb调试----->gdb + 可执行文件

退出gdb天使----->quit

查看可执行文件的段构层----->readdlf -S + 可执行文件

当我们在段构成中寻找debug信息的时候,什么都没找到,也就是说,Linux环境下默认情况下是release版本

 而当我们需要debug版本的时候,需要加入-g选项。因为dubug版本相对release版本会加入debug信息,因而debug版本的文件会比release版本更大。我们可以从下图中观察。

 在dubug版本中我们也能清楚的查看到debug信息

在gdb模式下的命令

r(run)------>运行程序

l(list) + 行号----->显示具体行号的代码

b(breakpoint) + 行号----->在具体位置打上断点

info + b------>查看断点信息

s(step)----->逐语句

n(next)------>逐过程

display + 变量名------>查看变量的值(常显示)

p(print) + 变量名------>查看变量的值(只显示一次)

undisplay + 对应编号--------->取消查看变量的值(针对常显示情况)

finish----->自行跑完一个函数

c(continue)------>调试至第二个断点

until + 行数------>跳转至指定行

d(delete) + 对应编号------->删除断点

disable + 对应编号------->禁用断点

enable + 对应编号------->启用断点

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

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

相关文章

RAID磁盘阵列(看咱这篇就够了!)

目录 一、RAID简介 二、RAID的级别详列 三、总结 前言: 写这篇博客的原因是小编在工作中遇到的这个不熟悉的硬件知识,然后工作之余就立马搜集了资料进行学习。了解了RAID的作用和区别以及如何进行挂载之类的。本篇以及之后的一篇博客适合新手小白来初…

8.防火墙

文章目录 防火墙iptables防火墙介绍基础操作高级操作通用匹配隐含匹配端口匹配:--sport 源端口、--dport 目的端口 TCP标志位匹配:--tcp-flags TCP标志位ICMP类型匹配:--icmp-type ICMP类型 显式匹配多端口匹配IP范围匹配:-m ipra…

FPGA_学习_04_Verilog基础语法和Modelsem仿真

前言:对于以前学过C/C/C#的作者来讲,Verilog的基础语法算是特别简单的。本文主要介绍Verilog的基础语法和Modelsem仿真。 Verilog的基础语法 1 模块声明 FPGA开发是以模块为基础的,每个可综合的.v文件都是一个模块,模块由module…

华为云——代码托管的使用

一、打开前后端项目 登录华为云,点击页面右上角的用户名——点击个人设置 2.点击代码托管的HTTPS密码管理,设置自己的密码 3.回到代码仓库,复制HTTP地址 4.打开GitHubDesktop,点击左上角进行仓库克隆 (我这里已经cl…

Redis 介绍相关知识,常用五大数据结构

1.Redis 介绍相关知识 Redis 是单线程多路 IO 复用技术 多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select 和 poll 函数,传入多个文件描述符,如果有一个文件描述符就绪,则…

1米挂幅「社交泛娱乐出海作战地图」预定火爆,免费抢领纸质版

移步【融云全球互联网通信云】回复“地图”免费领 家人们! 融云自制《社交泛娱乐出海作战地图》 首开大捷! 预约已超 300 出海必备实战手册 移步公众号报名 泰火辣~ 已预约进入排队的朋友请耐心等待 后期我们将按照报名顺序依次派送 另外&#…

终于通过啦! 我拿到了阿里云【通义千问】大模型AI测试体验资格啦!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

Jmeter的十大组件

1.Jmeter的十大组件以及执行顺序 1.十大组件 测试计划线程组配置元件前置处理器定时器取样器后置处理器断言监听器 2.执行顺序为从测试计划到监听器依次执行 测试计划> 线程组>配置元件>前置处理器>定时器> 取样器> 后置处理器>断言>监听器 3.作用…

leetcode 2130. Maximum Twin Sum of a Linked List(链表的最大孪生和)

给出一个单向链表&#xff0c;第i 个node 和 第(n-1-i)个node称为twin. 0 < i < n/2 - 1 求所有twin的最大和。 链表长度为偶数。 思路&#xff1a; 链表长度为偶数&#xff0c;就省了不少步骤&#xff0c;不用再考虑奇数时中间那个node单独计算了。 直觉上来看&#x…

Servlet编程---Day 06

一、会话技术概述 &#xff08;一&#xff09;什么是会话技术 类似两个人谈话&#xff0c;会话其实就是服务器和客户端的多次请求和响应 一次会话&#xff1a;多次请求和响应 组成了一次会话。从第一次发送请求建立会话&#xff0c;直到一端断开连接 http协议&#xff1a;…

web前端开发需要哪些技术?学前端顺序千万千万不要搞错啦!

宝子们&#xff0c;下午好&#xff0c;之前给大家分享了前端岗位的前景规划&#xff0c;小源看的出来&#xff0c;还是有不少宝子想入行前端的&#xff01; 那除了会面试&#xff0c;还要有充足丰富的知识储备&#xff0c;需要什么技术&#xff0c;怎么样做才能找到高薪工作呢&…

Oracle Profile详解

Profile的作用主要表现在三个方面 1、密码策略 2、对用户所能使用的资源进行管理 3、profile存放在数据字典里面&#xff0c;默认有一个名字为default的profile set linesize 160 set pagesize 30 select resource_name,resource_type,limit from dba_profiles where profile‘…

Node.js 学习系列(四)—— 回调函数

Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现&#xff0c;但不能说使用了回调后程序就异步化了。 回调函数在任务完成后就会被调用&#xff0c;Node 使用了大量的回调函数&#xff0c;Node 的所有 API 都支持回调函数。 例如&#xff0c;我们可以一边读取…

ubuntu22.10 ffmpeg-webrtc推拉流srs环境搭建

一、编译ffmpeg-webrtc 二、openssl&#xff0c;opus&#xff0c;x264配置 三、编译srs 四、测试 4.1推流端 4.2拉流端 五、交互与sdp 最近看到杨大佬发的动态&#xff0c;尝鲜体验一下。 一、编译ffmpeg-webrtc ffmpeg-webrtc官网&#xff1a;https://github.com/ossrs/ffmp…

Linux---相关介绍、相关下载、连接Linux系统、虚拟机快照

1. Linux系统相关 内核提供了Linux系统的主要功能&#xff0c;如硬件调度管理的能力。 Linux内核是免费开源的&#xff0c;是由林纳斯托瓦兹在1991年创立并发展至今成为服务器操作系统领域的 核心系统。 内核无法被用户直接使用&#xff0c;需要配合应用程序才能被用户使用…

C++层次遍历(队列结构)

#include <stdio.h> #include <malloc.h> typedef struct ok //树结构 { int data; struct ok *lchild; struct ok *rchild; }bittree; //队列结构 typedef struct d { int head; //头 int tail; //尾 bittree **data; //数组 …

安全狗入选中国网络安全市场全景图多个细项

5月16日&#xff0c;数说安全正式发布《2023年中国网络安全市场全景图》&#xff08;以下简称全景图&#xff09;。作为国内云原生安全领导厂商&#xff0c;安全狗凭借综合且全面的产品与安全实力入选全景图。 数说安全采用科学、遵循市场发展规律且符合客户采购习惯的分类方法…

功能测试4年,5月份被辞退,2023年的功能真的没有出路了

在测试行业摸爬滚打5年&#xff0c;以前经常听到开发对我说&#xff0c;天天的点点点有意思没&#xff1f; 和IT圈外的同学、朋友聊起自己的工作&#xff0c;往往一说自己是测试&#xff0c;无形中也会被大家轻视&#xff0c;总有人会问你&#xff0c;为啥干测试啊&#xff0c…

纯python统计基于orthofinder得到的系统发育树的关注点位置的树型结构

对于某一个物种或某类物种在整个系统发育树中的位置存在一定争议的情况&#xff0c;使用直系同源基因构建单基因树&#xff0c;并对该物种或该类物种所在结构进行统计是可以对争议起到一定的解决作用的&#xff0c;在此留下全套流程和大家交流。 主要分为几步&#xff1a; 使…

260道网络安全常见面试题汇总(附答案解析+配套资料)

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;所有的资料都整理成了PDF&#xff0c;面试题和答案将会持续更新&#xff0c;因为无论如何也不可能覆盖所有的面试题。 目录 一、渗透测试…