Linux常用工具介绍

Linux工具介绍

😊本文为小邢原创,CSDN首发
📅发布时间:2022/7/17
🙌欢迎大家👍点赞❤收藏✨加关注
🎓本文大约3300字左右
🙏博主水平有限,如有错误,还望告诉博主,万分感谢!
🚩有什么问题也可在评论区一起交流哦!

· yum

yum是什么?

以下是百度百科给出的解释:

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

百度百科链接:yum介绍

怎么理解呢?

比如,你要在你的手机上下载游戏,你会到你手机上的应用商店里去下载,下载的时候只需触碰一下屏幕即可进行下载,且你不用关系游戏里面各种文件的依赖关系。yum 就好比你手机里的应用商店,在Linux中,你想下载软件就可以去 yum 里下载。

sudo yum list

输入上面的命令会把 yum 里面所有的软件列出来。

如何下载或删除

sudo yum -y install [软件]

sudo yum -y remove [软件]

比如,我们现在下载 sl.x86_64 这个软件:

在这里插入图片描述

下载好后,我们运行 sl :

在这里插入图片描述

更多好玩使用的软件大家可以自行去网上搜索!!!

[关于 yum 源的更新,在此不做介绍]

· vim

vim是什么?

简单来说,vim就是一款文本编辑器,定位上与 windows 中的记事本一致。

vim的四种模式

vim是一款多模式的文本编辑器:

命令模式、插入模式、底行模式、替换模式

各模式的转换如下:

在这里插入图片描述

命令模式

下面介绍命令模式下的几种常用的快捷键:

1)h、j、k、l —— 光标的上、下、左、右

在这里插入图片描述

2)shift 6(^):定位到行首

​ shift 4($):定位到行尾

(光标位置锚点)

3)gg:定位到起始行

​ shift g(G):定位到最后一行

​ n shift g:定位到第n行

4)w:光标按单词距离向后移动

​ b:光标按单词距离向前移动

在这里插入图片描述

5)yy:复制当前行

​ n yy:复制当前行及其下面的n行(包括当前行)

​ p:粘贴到当前行

​ n p:粘贴 n 份

​ dd:删除当前行

​ n dd:删除当前行以后的n行(包括当前行)

​ dd + p:剪切当前行

6)shift ~:字母大小写转换( shift 按住不动)

7)x:删除光标后的一个字符

​ n x:删除光标后的n个字符(包括光标当前字符)

​ X:删除光标之前的一个字符

​ n X:删除光标之前的n个字符

底行模式

1)

set nu:设置行号

set nonu:取消行号

2)

vs [文件名]:分屏

Ctrl ww:光标切换所在分屏

在这里插入图片描述

插入模式

插入模式与我们正常使用的文本编辑器无异,大家平时怎么在Windows中怎么使用记事本就怎么使用插入模式。

替换模式

在命令模式下按 shift r 就能进入替换模式,可以进行多内容的替换。

vim配置

关于vim的配置,首先在自己用户的工作目录下建立一个 .vimrc 的文件,之后就可以用vim打开配置了,配置只会影响当前用户的vim。

一些好用的vim配置请大家自行上网查询,在此不做介绍。

· gcc、g++

gcc可看作Linux系统中的一款C编译器,g++则是一款Linux系统下的C++编译器。

gcc xxx.c

gcc如果不指定可以执行文件名的话,默认生成的可执行文件名为:a.out

在这里插入图片描述

gcc XXX.c -o [可执行文件名]

我们用 -o 选项可以指定生成的可执行文件名。

翻译过程

我们知道,C语言源程序变成可执行文件要经过预处理、编译、汇编、链接的过程,如果我们想要看到该过程,可以使用 gcc 几个选项来实现:

(以 mytest.c 文件为例)

gcc -E mytest.c -o mytest.i :预处理

gcc -S mytest.i -o mytest.s :编译

gcc -c mytest.s -o mytest.o :汇编

gcc mytest.o -o mytest:链接

(这里的选项可以这样记忆: ESc 、iso [从上到下])

预处理

预处理的过程包括头文件展开、去注释、宏替换、条件编译。

在这里插入图片描述
在这里插入图片描述

我们可以看到,预处理后,原本只有几行的代码现在有800多行,文件大小也大了很多。

编译

编译的过程就是将C语言转换成汇编语言。

在这里插入图片描述
在这里插入图片描述

汇编

汇编的过程就是将汇编语言转换为二进制文件,该二进制文件并不可以直接执行(可重定向目标文件),还需要经过链接的过程。

在这里插入图片描述

在这里插入图片描述

我们还可以用 od 指令查看二进制文件:

在这里插入图片描述

链接

我们在编写代码的时候,会用到一下库里的函数,链接的过程就是将我们的程序与库链接起来,让我们能正常使用函数。

在这里插入图片描述

(g++与gcc类似)

· gdb

gdb是Linux下的调试器,可用于程序的调试。

进入(退出)gdb

(可执行文件以 mytest 为例)

gdb mytest :进入 gdb 模式

quit :退出gdb

在这里插入图片描述

当我们想对程序进行调试时,我们发现有一个提示:“ no debugging symbols found”,并且当我们想要逐语句或者逐过程的调试时,没有进行调试,是什么原因呢?

原因是,当一个可执行文件能被执行,该可执行文件中一定加入了一些调试信息(debug)。一个可执行文件有两种版本,一个是debug版本,一个是 release 版本。对于 debug 版本,里面加入了 debug 信息,而 release 版本中没有加入 debug 信息。在Centos中,默认生成的可执行文件为 release 版本。

若我们想进行调试,则需要加入调试信息:

gcc -c mytest.o -o mytest -g

在这里插入图片描述

加入调试信息后,我们直观的看到,我们可执行文件的大小变大了。

开始调试

start :开始调试

显示代码

l / list : 显示代码

l n :显示第 n 行附近的代码

我们按 l 或者 list 可以在 gdb 中查看代码。

在这里插入图片描述

设置断点

b 行号/函数名

设置断点输入 b 后面输入行号或者函数名,如果输入函数名,断点的位置默认为函数中的第一行。

在这里插入图片描述

查看断点信息、删除断点、关闭断点、打开断点

info b :查看断点信息

d 断点编号(不是断点对应行号) :删除断点

disable 断点编号 :关闭断点

enable 断点编号 :打开断点

在这里插入图片描述

逐语句、逐过程

s :逐语句

n :逐过程

查看变量的值

display 变量名:常显示

p 变量名 :只显示一次

undisplay 显示编号 :取消显示

在这里插入图片描述

运行代码

run / r :运行代码,直到断点停下来

finish :进入函数后,跑完整个函数停下来

continue :运行到断点停下

until n:运行到第 n 行(指定行)

· make、Makefile

make/Makefile 是 Linux 下的自动化构建工具。

因为文件之间有依赖关系,所以我们需要 make/Makefile 来维护文件之间的依赖关系。

通过 make/Makefile 我们最终可以生成可执行文件。

首先要说明的是,make 是一个指令,Makefile 是一个文件,该文件用于表名文件之间的依赖关系和依赖方法。

要使用 make/Makefile 来生成可执行文件,第一步是见一个Makefile文件:

touch Makefile

第二步就是打开 Makefile 写文件的依赖关系和依赖方法:

在这里插入图片描述

对于后面的 .PHONY ,他是一个伪目标,表示总是可以执行。大致的功能就是每次都能生成新的 myproc 可执行文件。

对于上面的写法,还有一种用的比较多的写法:

在这里插入图片描述

对于更多的make/Makefile的用法和细节在这里不做介绍。

· Git

这里主要介绍Git如何使用的操作,关于Git的更多内容大家自行查询。

git clone

创建好仓库后,复制仓库的http链接,然后克隆到本地仓库:

在这里插入图片描述

输入git clone ,后面粘贴上刚才的链接,再输入用户名和密码,这样克隆就完成了。

在这里插入图片描述

git三板斧

git add 文件

git commit -m “日志信息”

git push -u origin “master”

在这里插入图片描述

在这里插入图片描述

这样,我们的代码就提交成功了:
在这里插入图片描述
好啦,如果你认真的读到了这里,还望点个赞收藏加关注,你的支持是我最大的动力!😘😘

【本文为作者原创,未经允许禁止私自转载,抄袭,一经发现,将会受法律责任】

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲代码的小邢~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值