文章内容如下:
1)vim的使用;
2)gdb的使用;
3)yum的使用;
4)git的使用。
vim是一个只负责写代码的编辑器,gdb是对代码进行调试的调试器,yum是软件商店,git是版本控制器。用于保存好历史版本文件。
一。vim的使用
vim是一个代码编辑器,它只负责写代码,至于代码有没有错跟它没关系,它也不管这些。使用vim前,一般要对它进行配置,Centos7.x系统推荐使用下面链接进行一键配置:一键配置vim(只适用centos7.x系统)。
配置好后,使用指令
vim file.txt
表示用vim打开file.txt文件,打开没有内容的file.txt文件,会发现里面什么也没有
vim一般有三种模式:命令模式、编辑模式、底行模式。从你用vim打开一个文件的那一刻开始你就进入了vim,在不做任何操作的情况下你此时进入的是命令模式,命令模式下常用的指令有5条
1.输入
yy
是复制光标所在那一行的代码,输入p是将复制的代码粘贴到光标所在的行。5 yy是复制从光标所在那一行开始的一共(向下)5行代码,输入1000 p是将复制的代码粘贴到光标所在的行1000次;
2.输入
u
表示撤销历史操作。ctrl r表示撤销刚刚的撤销;
3.输入
G
表示把光标定位到文件结尾。gg表示将光标跳转到第一行。6666 G表示将光标定位到6666行。$是将光标定位到一行的结尾,^将光标定位到一行的开头,w光标以单词为单位向右移动,b光标以单词为单位向左移动,7 w光标以单词为单位向右移动7个单词,7 b光标以单词为单位向左移动7个单词。h(左)、j(下)、k(上)、l(右)是上下左右移动按键。dd表示删除光标所在行代码,8 dd表示删除从光标所在那一行开始的一共(向下)8行代码。2 dd再按p表示剪切从光标所在那一行开始的一共(向下)2行代码再复制到光标所在位置;
4.输入
shift ~
表示把光标所在位置的字母小写变成大写,大写变成小写;
5.输入
shift r
表示进入替换模式,输入字符会替换光标所在的字符。输入r然后随便在输入一个字符那么输入的字符会替换光标所在位置的字符,输入r就表示字符替换启动了,接下来输入什么字符就替换光标所在位置的字符,4 r w表示输入4 r后,用w替换从光标所在位置开始计数的4个字符()从左到右。x表示删除光标所在位置的字符,3 x表示删除从光标所在位置开始计数的3个字符(从左到右),X表示从右往左删,我试了一下3 X删除的是3个字符,从光标坐标开始计数,光标所在位置不计数,而x是从光标所在位置开始计数的,就很奇怪。
命令模式下输入i进入编辑模式,顾名思义,此时可以在输入代码了,在编辑模式下按Esc就又进入命令模式了
vim在命令模式下输入:此时进入的是底行模式,输入wq就是保存退出,输入wq!就是保存强制退出,在底行模式下按Esc就又进入命令模式了
底行模式下一般常用指令有4条:
1.:wq!表示保存强制退出。如果不想退出但还想看退出后的代码情况,那么输入:!ls -al也是可以查看文件、目录信息的,我看了一下vim 中创建的文件(如vs test1.c),如果还在vim中查看(如用!ls -al),那时是看不见创建的文件test1.c,只有vim退出后才能看见test1.c。当然你在vim里用 !gcc test.c也是可以的,这里传达的思想是在vim也是可以干一些vim退出后才能干的事情的,并不是一定要退出vim后才能干的。!gcc test.c 编译完后可以用:ls a.out -al查看是否编译成功,编译成功后输入:!./a.out运行代码了
2.输入set nu显示vim file.txt里的代码的行数
3.输入set nonu取消显示vim file.txt里的代码的行数
4. vs test.c表示进入分屏操作,ctrl按住不动,w快速按两下光标从一个屏幕到另一个屏幕。test.c是另一个代码文件
二。gdb的使用
gdb是一个调试代码的软件,gdb--gcc && g++默认形成的可执行程序是release的,故无法直接被调试。
gcc file.c -o file -g表示gcc把file.c文件编译成调试模式下的可执行程序文件,编译完后文件另取名为file。-g表示把file.c编译成调试版本下可执行文件即debug版本下可执行文件,若没有-g则调试成为发布版本下可执行文件,即release版本下可执行文件。加了-g过后用readelf -S file | grep -i debug就可以查看file-debug(加了-g形成的可执行程序)的调试程序列表了
gdb file表示调试可执行程序file,调试模式下,b 16表示在16行打断点。 info b表示查看断点b,会运行起来在b行停下来。p top表示查看内容。n表示逐过程。s叫进入函数
quit表示退出gdb
list表示显示代码,按照gdb自身的分割显示
l 0表示显示完整代码,及从头开始显示代码。代码长可以按回车继续显示。gdb对命令有记忆功能,当你什么指令都不输入直接回车gdb执行的是最近上一次的指令
r表示开始调试,如果没有设置断点,则直接运行结束
b 16表示在16行打断点
info b表示查看断点b,会运行起来在b行停下来
d 断点编号(info b 后看到的Num下面的数字) 表示删除 断点编号 断点
n表示逐过程
s叫进入函数。箭头指向哪里,如果那里确实有个函数,那么s就直接进入哪个函数里了
p result表示打印result的值
finish表示在哪个函数里按finish表示执行完这个函数就停下来
bt表示查看当前的调用堆栈
display i表示长显示i值。再写一个display j则i,j都会是长显示了。undisoplay 变量前面的对应编号表示取消对这个变量的长显示
until 12表示直接跳到12行。一般用在函数内任意跳转,不建议在这种场合外使用
c表示程序从上一个断点位置执行到下一个断点位置处。事实上上一个位置不是断点按c也是可以执行,我试了一下是这样的,它还是会直接执行到下一个断点位置处,后面的就没什么区别了跟 从上一个断点位置执行到下一个断点位置处
使能:是让它能够还是不能。比如一个断点不想把它取消掉,但是有让这个断点不起效果,那么把这个断点禁用就可以,禁用断点就是把这个断点的使能关掉了,没禁用这个断点就是这个断点的使能是开的。
disable 断点编号 表示把这个断点的使能关掉。关掉后info b你会发现关掉使能的那个断点enb(enable,开启的意思)下面是n。enable 断点编号 表示把这个断点的使能打开,开启后info b你会发现之前关掉使能的那个断点enb(enable,开启的意思)现在下面是y了,表示使能开启了,断点禁用被解除了 set var i = 100表示把变量值改成100
三。yum的使用
yum说通俗点,就是手机上的应用商店,yum.repos.d里面有许多文件,这些里面写了你要下软件就去哪里搜索,这些文件就叫做yum源,一般是.repo格式。说一般是为了严谨,我见到的都是.repo格式。所谓的更新yum源就是换一个.repo文件进来。(原来的一般备份(即和新进来的.repo文件互换名字)不用了)
yum常用指令有4条:
yum list指把yum能力之内能显示出来的软件都罗列出来,这个罗列出的软件不在你本地,实在云端能够供你下载的软件
yum list | grep sl表示把所有包含sl的工具都给显示出来。grep是行过滤工具
sudo yum install -y sl表示用yum安装sl软件,不要问我了,期间安装的所有问题我都同意。-y表示不要问我了,期间安装的所有问题我都同意
sudo yum remove -y sl表示用卸载软件sl
四。git的使用
git叫版本控制器。版本控制就是保存好历史版本的意思。git常用指令有4条:
git clone 仓库链接 表示把仓库内容拉到Linux上
git add . 表示把当前目录下没有添加到本地仓库里的内容全部添加到本地仓库里。这个本地仓库就是.git文件,全部添加到本地仓库是预备添加到本地仓库,git commit -m "提交日志"才是真正添加到本地仓库
git commit -m "提交日志" 表示标注上你提交的代码的内容改动,你要说明一下
git push 表示提交本地仓库代码到云端仓库
其他情况:
配置用户名:git config --global user.name "用户名"
配置邮箱:git config --global user.email "邮箱"
查看配置信息:git config --global --list
查看提交记录:git log
不让提交代码怎么办:git pull 表示把云端仓库新的代码和我本地同步一下
.gitignore表示不想提交某些猴嘴文件同步到云端git仓库,就可以添加到.gitignore。.gitignore就相当于上传文件中的黑名单,即在.gitignore这个名单里的文件都不能上传。vim .gitignore能看到.gitignore里配置的限制上传的后缀文件
git rm test.c表示git当中删除test.c文件,这个test.c文件一定要是云端和本地都有才能用这个指令删除,这个删除后也只是本地仓库里删除了,还需要push一下才能同步到云端把云端仓里的该文件也给删除掉。