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”
这样,我们的代码就提交成功了:
好啦,如果你认真的读到了这里,还望点个赞收藏加关注,你的支持是我最大的动力!😘😘
【本文为作者原创,未经允许禁止私自转载,抄袭,一经发现,将会受法律责任】