前言
想用linux开发一些软件等必须要会的几种开发工具是必不可少的,在yum vim gcc gdb中指令繁杂的是vim和gdb这两个工具,至于yum和gcc的指令就比较简单了。
一、yum的使用
yum是linux的软件包管理器,那什么是软件包呢?
软件包:在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装. 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系. yum(Yellow dog Updater, Modifified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上
注意事项:关于yum的所有操作必须保证主机(虚拟机)网络畅通!!
yum工具的常用选项有:
yum install : 表示安装软件包
yum 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.
出现 "complete" 字样, 说明安装完成.
注意:
安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外 一个软件, yum会报错.
在这里我以gdb为例,由于我的linux环境中已经有了gdb调试器,所以机器告诉我无需下载。
yum list : 列出所有可供安装的软件包
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
"x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
"el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6
最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念
由于list显示出的包太多所以我们截取一部分。
yum list | grep xxx :由于list显示出的安装包太多所以我们用管道的方式只筛选出我们关注的包(xxx代表包的关键字,比如要查找ls,那么xxx就是ls)
上图是我们以ls为例
yum search : 搜索包含指定关键字的软件包
同样我们以ls为例:
yum remove : 卸载指定的软件
以gdb为例在删除的时候会询问是否删除,如果输入Y就删除了。
yum makecache : 将服务器的软件包信息缓存到本地
yum clean all : 清除缓存中老旧的头文件和软件包
yum -y update : 升级所有包的同时也升级软件和系统内核
yum -y upgrade : 只升级所有包,不升级软件和系统内核,软件和内核保持原样
以上就是yum的常用命令,命令并不多只要多练习很快就能掌握。
二、vim的使用
由于vim的模式很多在这里我们只讲解最常用的四个模式,分别是命令模式,插入模式,底行模式和替换模式
命令模式:
vim + 文件名进入vim
刚打开vim默认就在命令模式中,在命令模式中不可以直接修改代码需要输入相对应的指令才可以修改。
由于我的vim是已经配置过的所以会和大家的不一样。
插入模式:(进入插入模式需要在命令模式下按i或者a或者o还有其他进入插入模式的途径就不介绍了)
i : 光标不动进入插入模式
按i后进入插入模式光标不变
a:光标向后移动一个然后进入插入模式
按a进入插入模式发现光标向后移了一个位置
o:光标新起一行进入插入模式
按o后可以看到光标新起一行进入插入模式
底行模式:(在命令模式下按shift + ; 进入底行模式)
上面的界面就是底行模式,底行模式可以在底下的命令行输出指令来控制vim。
由于避免多开vim的情况,所以建议大家在进入底行模式前先退回到命令模式,不论在任何模式下要退回到命令模式下只需要按ESC键即可。
替换模式:(在命令模式下shift + r 进入替换模式)
替换模式顾名思义就是替换非常方便。
下面进入在vim中最实用的指令讲解:
底行模式下的命令:
w : 保存所修改的文件
q : 直接退出文件,如果已经修改了文件使用q会提示
wq : 保存并退出文件
! : 强制执行(与其他命令配合使用) 比如 :w ! :强制保存
set nu : 调出行号
set nonu : 取消行号
! + 指令 :跳出vim显示指令
比如上图的! ls 就是在vim中显示当前路径下的ls指令
vs + 文件名:分屏使用(如果没有这个文件则会创建一个文件)
如上图在此路径下并没有test.h文件,在我们使用vs命令后自动给我们创建了一个.h文件并且于刚刚的test.c文件分屏使用,理论上使用vs分屏没有次数,但是如果要分好几个文件的屏那么体验会非常不好。
在分屏模式下想要关闭或者修改哪个文件就要让光标在那个文件里,所以移动光标的指令必不可少
ctrl + ww:在分屏模式下切换光标
关闭哪个文件只需要让光标在哪个文件里然后在底行模式下用q或者wq关闭即可,这个操作与单个文件一样。
接下来的所有命令都在命令模式下使用:
注意:vim不支持右边的小数字键盘,所以输入数字在字母区的上面输入。
yy/nyy : 复制当前行或者复制当前行在内的指定若干行
此操作需要与粘贴指令配合所以先介绍粘贴指令在一起演示:
p/np : 粘贴一行或者多行相同的内容到当前光标所在行之下
当我的光标放在第9行时在键盘输入yy后然后直接输入p就将第九行的内容自动粘贴到下一行,如果想要复制第九行到第13行则输入5yy就是复制五行的内容然后p即可。如果想要10行一样的int i = 10那么只需要在第九行yy一下然后输入10p那么就自动粘贴了10行。
u : 撤销刚刚的操作(需要注意的是即使已经保存文件也可以撤销,但是一旦退出vim则不可以再撤销之前的命令)
ctrl + r : 对刚刚进行的撤销进行撤销
dd/ndd : 对当前行或者当前行在内的n行的内容进行剪切
比如我的光标在第9行然后键盘输入5dd则将第九行开始的后五行内容全删掉了
dd + p :dd是剪切内容p是复制内容所以dd+p可以实现内容的移动
如图所示是使用3dd + p指令后的代码
shift + g : 将光标定位到文档最结尾
gg :将光标快速定位到文档最开始
n + shift + g :将光标定位到第n行
shift + $(实际就是$键) :将光标定位到文档行的结尾
比如光标在第九行i的前面使用命令后光标到结尾
shift + ^(实际就是^):将光标定位到文档行的开始与$是一对
nw,nb : 按照单词为单位在行内进行前后移动n个单词,w向后,b向前
shift + ~ (也就是~):快速将光标指向的字符进行大小写转换
nr + 要替换的字符 : 替换n个光标(从左到右n个)所在的字符
nx : 行内向后删除n个字符
n shift x : 行内向前删除n个字符
h j k l :h:光标向左移动 j : 光标向下移动 k:光标向上移动 L :光标向右移动
以上就是vim中常用的命令及演示。