前言
Linux中的基础开发工具及其使用,包括yum(软件包管理器)、vim(编辑器)、gcc/g++(编译器)、makefile(项目自动化构建工具)、gdb(调试器)等。
一、yum(软件包管理器)
1.什么是软件包?
我们在Linux下安装一个软件通常是下载程序的源代码,继续编译得到它的可执行程序。但是这样做比较麻烦,因此有一些人将常用的一些软件提前编译好做成软件包(相当于windows下的软件安装包)放在服务器上,通过软件包管理器可以获得这个编译好的软件包,直接安装可执行程序。
2.下载软件包
1. 安装软件之前需要将软件的安装包下载下来
这一行为必须通过互联网;
2. 软件包并不在我们的本地电脑,那么软件包在哪里呢?
答案是在别人的电脑上(远端服务器上,云服务器);
3. 那么问题来了,我们的电脑如何得知要去哪里找软件安装包呢?(我的电脑怎么知道我要下载的软件安装包在那一台服务器上呢?)
用现实中的例子,根据对象的不同,查找软件安装包的方式也不同:
a.电脑:搜索软件官网
b.手机:手机的应用商店(当然,应用商店也只是手机上的一个app)
c**.Linux:软件包管理器(相当于应用商店)**
4.谁提供软件包?谁放在服务器?
(1)企业、组织、个人为了获得某种利益提供了软件包
(2)提供了软件包后,一般将他们放在那里?
a.电脑:软件官网
b.手机:手机应用商店——提供商的服务器
3.yum
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上。
1.验证主机网络
关于yum的所有操作必须保证主机(虚拟机)网络通畅,因此需要通过ping指令验证:
ping www.baidu.com
2.查看软件包
通过yum list命令可以罗列出当前公有那些软件包,因为软件包的数目会比较多,我们可以用grep命令筛选出我们所关注的软件包。
yum list | grep lrzsz
软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
"x86_64"后缀表示64位系统的安装包,“i686"后缀表示的是32位系统的安装包,选择安装包要与系统匹配。(操作系统的体系结构)
"el7"表示操作系统发行版的版本。“el7”表示centos7/redhat7。“el6”表示centos6/redhat6。
base表示“软件源”的名称,类似于手机上的XXX应用商店。
3.安装软件
sudo yum install -y sl
- 需要sudo提权是因为软件将安装在特定的目录,目录需要权限,如果是root用户,安装就不需要加sudo。
- yum会自动查找需要下载的相关安装包,此时输入"y"确认安装(如果指令加上
-y
则无需确认)。 - 出现"complete",说明安装成功。
- 其他要安装的软件包,我们要根据自己的需求进行下载安装。
例子:第一个安装的软件lrzsz
该软件可以实现windows和Linux的交互,使windows机器于远端的Linux机器通过xshell传输文件,安装完毕后可以通过拖拽的方式将windows中的文件传给Linux。
4.卸载软件
sudo yum remove -y sl
- 需要sudo提权是因为软件将安装在特定的目录,目录需要权限,如果是root用户,安装就不需要加sudo。
- yum会自动查找需要卸载的相关安装包,此时输入"y"确认卸载(如果指令加上
-y
则无需确认)。 - 出现"complete",说明卸载成功。
5.扩展内容
1.查看yum源的配置文件
ls /etc/yum.repos.d
2.用其他的yum源替换我们自己云服务器的yum源配置。
1.备份原始的yum源(避免新的yum源有问题,同时导致不能返回原始yum源的情况)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS.repo_tmp
2.下载阿里yum源配置文件
wget https://mirrors.aliyun.com/repo/Centos-7.repo
3.使用该yum源
将下载好的新yum源重命名为CentOS-Base.repo
当然如果使用的是云服务器就不需要更换yum源了(云服务器都是使用国内的镜像源)
3.非官方的软件集
官方软件集(centos、Ubuntu、kail等)中的软件都是经历长期使用确定稳定安全高效的,当然也存在非官方的软件集合(yum源一般称为epel)里面的软件都是还在试用的软件(有机会加入到官方)。
epel-release的安装(非官方扩展源)
yum install -y epel-release
如果在安装软件时,没有在官方软件集中找到官方的下载链接,则yum会自动去epel-release中查找。
二、vim(编辑器)
1.vim的介绍
vim是Linux下一种功能强大,有多种模式的编辑器。
vim有三种常用模式,分别是命令模式、插入模式、底行模式。
- 命令模式:
又叫做正常模式、普通模式、默认模式。进入vim后默认处于命令模式,可以转换为其他模式。可以控制屏幕光标的移动,字符、字或行的删除、移动、复制等。按ESC键即可从其他模式退出到命令模式。 - 插入模式:
只有在insert mode下才可以进行文字输入,该模式是我们使用频繁的编辑模式,可以对文件中的内容进行正常编辑(像记事本一样)。按i
即可进入 - 底行模式:
文件保存或退出,也可以进行文件替换(可以同时打开多个文件)、查找字符串、列出行号等操作。按:
(shift + ;)即可进入
2.vim的基本操作
1.进入vim
在系统的提示符号输入vim及文件名称后,默认进入vim全屏幕编辑画面
$ vim test.c
2.正常模式的操作
1.正常模式切换到插入模式
输入 a
:从光标当前位置开始输入文字;
输入 i
:从光标的所在位置的下一个位置开始输入文字;
输入 o
:在文章刚开始插入新的一行,即,从文首开始输入文字。
从插入模式返回正常模式,按Esc
2.从正常模式切换到底行模式
输入:
从底行模式返回正常模式,按Esc
3.移动光标
- 按
[h] [j] [k] [l]
分别控制光标左、下、上、右移动 - 按
[G]
光标移动到文本的末尾 - 按
[gg]
光标移动到文本开始 - 按
[$]
光标移动到光标所在行的行尾 - 按
[^]
光标移动到光标所在行的行首 - 按
[n + shift + g]
光标移动到第n行
4.删除
[x]
每按一次。删除光标位置的一个字符[n + x]
删除光标位置起的n个字符[X]
删除光标所在位置的前一个字符[n + X]
删除光标位置的前n个字符[dd]
删除光标所在行[n + dd]
删除光标所在位置起的n行
4.复制
[yy]
复制光标所在行到缓冲区[n + yy]
复制从光标所在行起的n行到缓冲区
5.粘贴
[p]
将缓冲区的内容粘贴到光标所在位置[yy + p]
复制粘贴[dd + p]
剪切
6.替换模式
[r]
替换光标所在位置的一个字符(支持nr
,将光标所在位置起的n个字符转化为一个字符)[shift + ~]
将光标所在位置的字母进行大小写转化(一直按着可以自动转换到这一行结束)[R]
替换光标所到之处的字符,直到按下Esc
键
7. 撤销上一次操作
- 如果误执行了一个命令可以按下
[u]
回到上一个操作(将该命令撤销),按多次[u]
可以执行多次撤销操作。 [ctrl + r]
撤销的恢复(相当于撤销撤销这个操作)
3.底行模式的操作
首先确定您已经处于底行模式。
1.行号
set nu/nonu
列出行号/取消行号
2.分屏
vs copy.c
同时打开多个文件(代码中的copy.c是文件名),但是只有一个光标。光标的意义在于选中的行或屏幕。
光标跨屏:
ctrl + ww
3.执行shell指令
底行模式中,不需要退出vim,只需要在指令前加上!
,即可强制执行shell指令。
!gcc test.c-o test
!./test