Linux基础开发工具 yum---Vim---gdb

目录

1.Linux软件包管理器--->yum

1.1通过yum 安装/卸载 软件

1.2使用yum的注意事项

以rzsz为例

1.3安装 / 卸载 lrzsz

lrzsz的用法

1.4 查看软件包

2.Linux编辑器--Vim使用

2.1 正常模式常用命令集

2.1.1 移动光标

2.1.2 文本操作

2.2低行模式常用指令

2.3简单的vim配置

3.Linux编译器--gcc/g++

3.1gcc如何完成编译

4.Linux调试器-gdb使用

4.1 gdb的相关常识

4.2 使用gdb调试器

gdb的常用命令汇总


1.Linux软件包管理器--->yum

什么是软件包?

因为在Linux下安装软件,一个通常的方法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样是十分麻烦的。所以就有些大佬就一些常用的软件提前编译好,并做成软件包(可以理解Windows上的安装程序)放在一个服务器,通过包管理器(yum)就可以很轻松的获取这个编译好的软件包,直接继续安装,软件包和软件包管理器,就好比与“APP”和“应用商店”这样的关系。yum是Linux下非常常用的一种包管理器,主要应用于Fedora、Redhat、centos等发行版本上。

1.1通过yum 安装/卸载 软件

sudo yum  install  name ---->name表示的是软件名

sudo yum remove name e

1.2使用yum的注意事项

  1. 关于yum的所有操作必须保证主机(虚拟机)网络畅通
  2. 安装软件时需要向系统目录中写入内容,一般需要sudo或者root账户下才能完成
  3. yum安装软件只能一个一个的装,不能通过yum同时安装2个软件

以rzsz为例

文件传输工具--->lrzsz

作用与Windows机器和远端的Linux机器通过xshell传输文件

安装之后可以直接通过拖拽的方式将文件上传过去。

1.3安装 / 卸载 lrzsz

sudo yum  install lrzsz    ----->sudo yum install -y lrzsz(不需要自己确认就可以安装)

Linux基础开发工具 yum---Vim---gdb_第1张图片

lrzsz的用法

Linux基础开发工具 yum---Vim---gdb_第2张图片

rz:接收来自Windows的文件

sz  name:发送windows文件到Linux中

1.4 查看软件包

yum list | grep lrzsz

Linux基础开发工具 yum---Vim---gdb_第3张图片

2.Linux编辑器--Vim使用

Vim有好多模式,目前常用的三种模式是命令/普通/正常模式、插入模式、底行模式

三种模式切换的方式:

Linux基础开发工具 yum---Vim---gdb_第4张图片

2.1 正常模式常用命令集

2.1.1 移动光标

  • [k]、[j]、[h]、[l]:分别表示光标上、下、左、右,移动一格
  • [G]:移动到文章的最后,[n G]:跳转到第n行
  • [$]: 移动到光标所在的行尾
  • [^]:   移动到光标所在的行首
  • [w]:以单词为单位往后移动一个字;
  • [b]:以单词为单位往前移动一个字
  • [gg]:回到文本的起始行

2.1.2 文本操作

[yy]:复制当前行    ------>[nyy]:复制当前及其之后的n行

[u]:撤销误操作

[ctrl+r]:撤销最近的撤销

[p]:粘贴当前行  ----->[np]:粘贴n行

[dd]:删除当前行 ----->[ndd]:删除当前行及其之后的n行

[dd+p]:剪切的功能

[shift+~]:快速大小切换

[x]:删除光标当前的字符,---->[nx]:删除当前光标及其后面的n个字符

[X]:删除光标前的一个字符,支持[nX]:删除光标前n个字符

[r]:替换模式,替换光标所在的位置,支持[nr]:把n个字符替换成一个相同的字符

[shift+r(R)]:输入什么替换什么,直到按下ESC为止。

2.2低行模式常用指令

[set nu]:调出行号

[set nonu]:取消行号

vs【文件】:多文件操作

[w]:保存

[q]:退出

[!]:  强制  [w!,q!,wq!]

输入 n:跳转到指定行

2.3简单的vim配置

配置文件所在的位置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
  • 通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成自己指向su,进入自己的注工作目录,执行cd~。
  • 打开自己的目录下的 .vimrc文件

常用配置选项

  • 设置语法高亮:syntax on
  • 显示行号:set nu
  • 设置缩进的空格数为4 :set shiftwidth=4

使用插件

要配置好看的vim,原生的配置可能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户。

可以参考这位大佬的博客:

手把手教你把Vim改装成一个IDE编程环境(图文)_吴垠的专栏-CSDN博客_vim 编程

3.Linux编译器--gcc/g++

3.1gcc如何完成编译

第一步:预处理

功能:完成宏替换,展开头文件,条件编译,去掉注释

实例:gcc -E test.c -o test.i

-E:该选项的作用是让gcc在预处理结束后停止编译

-o:是指目标文件,.i文件已经经过预处理的C原始程序

Linux基础开发工具 yum---Vim---gdb_第5张图片

第二步:编译

功能:首先检查语法是否错误,代码规范性,再检查无误后,gcc啊代码编译成汇编语言

实例:gcc -S test.i -o test.s

-S 进行编译而不进行汇编,生成汇编代码

编译器检查完语法错误后,将代码编译转成了汇编语言

Linux基础开发工具 yum---Vim---gdb_第6张图片

第三步:汇编

功能:把编译阶段生成.s文件转成目标文件,把汇编代码转化成 .o的二进制目标代码

实例:gcc -c test.s -o test.o

Linux基础开发工具 yum---Vim---gdb_第7张图片

第四步:链接

功能:需要将我们自己代码中的函数调用,外部数据,库链接起来,gcc默认采用的是动态链接方式,形成可执行程序。(节省内存和空间,给谁都能跑,如果c库丢了,就不能跑了)

实例:gcc test.o -o test

Linux基础开发工具 yum---Vim---gdb_第8张图片

 函数库一般分为静态库和动态库两种

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

动态库与之相反,在编译的时候并没有把库文件中的代码加入到可执行文件中,而是在程序执行时链接文件加载库,这样可以节省系统的开销,动态库一般后缀名为“.so”,gcc在编译的时候默认使用动态库。

可以看出,静态链接生成的可执行文件比动态链接生成的可执行文件大的多。

4.Linux调试器-gdb使用

4.1 gdb的相关常识

  1. 程序的发布方式有两种,debug 和 release模式
  2. Linux gcc/g++出来的二进制程序,默认是release模式
  3. 要使用gdb模式,必须在源代码生成二进制程序的时候,加上-g选项

4.2 使用gdb调试器

因为gcc的编译出来的二进制程序默认是release模式,所以要使用gdb调试器,那么该可执行程序必须要有debug信息,所以在用gcc编译时要加上 -g 。

gdb的常用命令汇总

ctrl +d / quit 退出调试

调试

  • finish:结束当前的函数,并且停下来等待命令
  • until n:直接运行到指定行
  • bt:调用堆栈,查看各级调用及参数
  • set var:修改显示变量的值

断点

  • b(break)+行号:在某行打断点, b+函数:在函数开头设置断点
  • d/delete n:删除断点,n是编号
  • display n:第n个编号被禁用
  • info b:显示当前打的断点
  • continue:一直执行到下一个断点

显示:

  • list / l 行号:显示binfile中的源代码,接着上次的位置往下列,每次列10行
  • s/step:逐语句(进入调用的函数)
  • n/next:逐过程(不进入调用的函数)
  • display + 变量名:常显示变量,每执行断点或者停下来的时候都会显示它的值
  • p+变量:打印变量
  • p+&变量:打印变量地址
  • p+表达式:打印表达式的值
  • undisplay +n:取消对之前设置的那些变量的跟踪,n是编号

你可能感兴趣的:(Linux学习,linux,运维,服务器)