Linux之基础开发工具(上)

简介: Linux之基础开发工具(上)

前言

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
  1. 需要sudo提权是因为软件将安装在特定的目录,目录需要权限,如果是root用户,安装就不需要加sudo。
  2. yum会自动查找需要下载的相关安装包,此时输入"y"确认安装(如果指令加上-y则无需确认)。
  3. 出现"complete",说明安装成功。
  4. 其他要安装的软件包,我们要根据自己的需求进行下载安装。

例子:第一个安装的软件lrzsz

该软件可以实现windows和Linux的交互,使windows机器于远端的Linux机器通过xshell传输文件,安装完毕后可以通过拖拽的方式将windows中的文件传给Linux。

4.卸载软件

sudo yum remove -y sl
  1. 需要sudo提权是因为软件将安装在特定的目录,目录需要权限,如果是root用户,安装就不需要加sudo。
  2. yum会自动查找需要卸载的相关安装包,此时输入"y"确认卸载(如果指令加上-y则无需确认)。
  3. 出现"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.移动光标

  1. [h] [j] [k] [l]分别控制光标左、下、上、右移动
  2. [G]光标移动到文本的末尾
  3. [gg]光标移动到文本开始
  4. [$]光标移动到光标所在行的行尾
  5. [^]光标移动到光标所在行的行首
  6. [n + shift + g]光标移动到第n行

4.删除

  1. [x]每按一次。删除光标位置的一个字符
  2. [n + x]删除光标位置起的n个字符
  3. [X]删除光标所在位置的前一个字符
  4. [n + X]删除光标位置的前n个字符
  5. [dd]删除光标所在行
  6. [n + dd]删除光标所在位置起的n行

4.复制

  1. [yy]复制光标所在行到缓冲区
  2. [n + yy]复制从光标所在行起的n行到缓冲区

5.粘贴

  1. [p]将缓冲区的内容粘贴到光标所在位置
  2. [yy + p]复制粘贴
  3. [dd + p]剪切

6.替换模式

  1. [r]替换光标所在位置的一个字符(支持nr,将光标所在位置起的n个字符转化为一个字符)
  2. [shift + ~]将光标所在位置的字母进行大小写转化(一直按着可以自动转换到这一行结束)
  3. [R]替换光标所到之处的字符,直到按下Esc

7. 撤销上一次操作

  1. 如果误执行了一个命令可以按下[u]回到上一个操作(将该命令撤销),按多次[u]可以执行多次撤销操作。
  2. [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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
NoSQL Linux 测试技术
Linux开发工具——gdb篇
Linux开发工具——gdb篇
|
7月前
|
存储 Linux 开发工具
Linux开发工具——gcc篇
Linux开发工具——gcc篇
|
7月前
|
小程序 Linux 开发工具
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
|
6月前
|
Linux 开发工具 数据安全/隐私保护
Linux基础——Linux开发工具(下)_make/makefile
Linux基础——Linux开发工具(下)_make/makefile
55 1
|
5月前
|
NoSQL Linux 开发工具
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
|
6月前
|
NoSQL Linux 开发工具
【Linux】Linux环境基础开发工具_6
【Linux】Linux环境基础开发工具_6
47 0
|
6月前
|
小程序 Linux 开发工具
【Linux】Linux环境基础开发工具_5
【Linux】Linux环境基础开发工具_5
34 0
|
6月前
|
小程序 Linux 开发工具
【Linux】Linux环境基础开发工具_4
【Linux】Linux环境基础开发工具_4
42 0
|
6月前
|
Linux 开发工具 C语言
【Linux】Linux环境基础开发工具_3
【Linux】Linux环境基础开发工具_3
25 0
|
6月前
|
Linux Shell 开发工具
【Linux】Linux环境基础开发工具_2
【Linux】Linux环境基础开发工具_2
21 0