0
点赞
收藏
分享

微信扫一扫

Linux环境基础开发工具的使用_yum源_vim_Git控制器

目录

本节目标:

一、Linux 软件包管理器 yum

1.什么是软件包

2.关于 rzsz

3.注意事项

4.查看软件包

5.注意事项:

6.如何安装软件

说到这里,就可以取百度上康康有哪些好玩的指令:

二、Linux开发工具

Linux编辑器-vim使用

1. vim的基本概念

1.正常/普通/命令模式(Normal mode)

2.插入模式(Insert mode)

3.末行模式(last line mode)

2. vim的基本操作

插入模式:

3. vim正常模式命令集

插入模式

从插入模式切换为命令模式

移动光标

移动文件cp到指定目录下:

现在可以打开vim编辑器来尝试每一个选项:

删除文字:

复制:

替换

撤销上一次操作

更改

跳至指定的行

4. vim末行模式命令集

列出行号

跳到文件中的某一行

查找字符

保存文件

离开vim

5. vim操作总结

三种模式

6. 简单vim配置

配置文件的位置

常用配置选项,用来测试

使用插件

手把手配置:

Ubuntu:配置vimpuls

1. 安装必要的依赖项

2. 克隆 Vimplus 项目

3. 安装 Vimplus

4. 配置 Python 环境

5. 检查安装结果

6. 可选:自定义配置

7. 更新 Vimplus

8. 卸载 Vimplus

参考资料

vim实现多行注释:

三、⾃动化构建-make/Makefile

3-1 背景

makefile文件:

依赖关系

3-4 推导过程

编译

• make是如何⼯作的,在默认的⽅式下,也就是我们只输⼊make命令。那么:

3-5 适度扩展语法

四、Linux第一个小程序-进度条

1.回车和换行 - \r&&\n

2.缓冲区问题:

2.1 测试代码:

简易百分比进度条:

第一代进度条:

第二代:模拟下载程序进度:

makefile:

main.c:

process.c:

process.h:

五、版本控制器Git

5-1 版本控制器

5-2 git 简史

5-3 安装 git

5-4 在 Gitee创建项⽬

1. 登陆成功后, 进⼊个⼈主⻚, 点击左下⽅的 新建创库 按钮新建项⽬

2.创建仓库

3.在Liunx上拉下本地仓库:

复制云端仓库的https地址:

git clone+云端仓库地址

可以看到不论是Linux下还是windows上都是一模一样的界面:

在第一次在Linux下进行git仓库上传的时候需要配置姓名和邮件:

进行配置好姓名和邮件后,这里创建一个test.c 文件进行上传:

1.git add ./*/[文件名] 这里就有点通配符的味道,一次性直接上传

2.git commit -m "上传描述"

3.git push

那么为了确保文件是否真的被上传成功,就可以直接区暂存区内看看,是否有新文件没有被上传:

git status

配置免密码提交:


本节目标:

一、Linux 软件包管理器 yum

1.什么是软件包

Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 .

但是这样太麻烦了 , 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序) 放在一个服务器上 , 通过包管理器可以很方便的获取到这个编译好的软件包 , 直接进行安装 .

软件包和软件包管理器 , 就好比 "App" " 应用商店 " 这样的关系 .

yum(Yellow dog Updater, Modified) Linux 下非常常用的一种包管理器 . 主要应用在 Fedora, RedHat, Centos等发行版上 .

2.关于 rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 .

安装完毕之后可以通过 拖拽 的方式将文件上传过去

3.注意事项

关于 yum 的所有操作必须保证主机 ( 虚拟机 ) 网络畅通 !!!

可以通过 ping 指令验证

4.查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包 . 由于包的数目可能非常之多 , 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:

结果如下 :

5.注意事项:

软件包名称 : 主版本号 . 次版本号 . 源程序发行号 - 软件包的发行号 . 主机平台 .cpu 架构 .

"x86_64" 后缀表示 64 位系统的安装包 , "i686" 后缀表示 32 位系统安装包 . 选择包时要和系统匹配 .

"el7" 表示操作系统发行版的版本 . "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.

最后一列 , base 表示的是 "软件源 " 的名称 , 类似于 " 小米应用商店 ", " 华为应用商店 " 这样的概念 .

6.如何安装软件

通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装:

yum 会自动找到都有哪些软件包需要下载 , 这时候敲 "y" 确认安装 .

出现 "complete" 字样 , 说明安装完成 .

注意事项 :

1.安装软件时由于需要向系统目录中写入内容 , 一般需要 sudo 或者切到 root 账户下才能完成 .

2.yum 安装软件只能一个装完了再装另一个 . 正在 yum 安装一个软件的过程中 , 如果再尝试用 yum 安装另外一个软件, yum 会报错 .

3.如果 yum 报错 , 请自行百度 .

如何卸载软件

仍然是一条命令 :

说到这里,就可以取百度上康康有哪些好玩的指令:

https://blog.csdn.net/logic1001/article/details/136682885

二、Linux开发工具

Linux编辑器-vim使用

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window mac os 、windows。我们课堂上,统一按照 vim 来进行讲解。

1. vim的基本概念

课堂上我们讲解 vim 的三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是命令模式( command mode )、插入模式(Insert mode )和底行模式( last line mode ),各模式的功能区分如下:

1.正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode

2.插入模式(Insert mode)

只有在 Insert mode 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

3.末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift+: 即可进入该模式。要查看你的所有模式:打开vim ,底行模式直接输入

:help vim-modes

我这里一共有 12 种模式 :six BASIC modes six ADDITIONAL modes.

2. vim的基本操作

进入 vim, 在系统提示符号输入 vim 及文件名称后,就进入 vim 全屏幕编辑画面 :

正常模式:

不过有一点要特别注意,就是你进入 vim 之后,是处于 [ 正常模式 ] ,你要切换到 [ 插入模式 ] 才能够输入文字。

[ 正常模式 ] 切换至 [ 插入模式 ]

输入a

输入i

输入o

插入模式:

[ 插入模式 ] 切换至 [ 正常模式 ]

目前处于 [ 插入模式 ] ,就只能一直输入文字,如果发现输错了字 , 想用光标键往回移动,将该字删除,可以先按一下「ESC 」键转到 [ 正常模式 ] 再删除文字。当然,也可以直接删除。

[ 正常模式 ] 切换至 [ 末行模式 ]

shift + ; , 其实就是输入「 :

退出 vim 及保存文件 , [ 正常模式 ] 下,按一下「 : 」冒号键进入「 Last line mode , 例如 :

: w (保存当前文件)

: wq ( 输入「 wq , 存盘并退出 vim)

: q! ( 输入 q!, 不存盘强制退出 vim)

末行模式

回车后成功的保存退出!

3. vim正常模式命令集

插入模式

从插入模式切换为命令模式

移动光标

移动文件cp到指定目录下:

现在可以打开vim编辑器来尝试每一个选项:

删除文字:

复制:

替换

r 」:替换光标所在处的字符。

R 」:替换光标所到之处的字符,直到按下「 ESC 」键为止。

撤销上一次操作

u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回复。

ctrl + r : 撤销的恢复

更改

cw 」:更改光标所在处的字到字尾处

c#w 」:例如,「 c3w 」表示更改 3 个字

跳至指定的行

ctrl + g 」列出光标所在行的行号。

#G」:例如,「15G」,表示移动光标至文章的第15行行首。

4. vim末行模式命令集

在使用末行模式之前,请记住先按「 ESC 」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号

set nu : 输入「 set nu 」后,会在文件中的每一行前面列出行号。

跳到文件中的某一行

# : # 」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15 ,再回车,就会跳到文章的第15 行。

这个真很好用。

查找字符

实验结果就是:

保存文件

离开vim

5. vim操作总结

三种模式

我们一共有 12 种总模式,大家下来可以研究一下。

vim 操作

打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

练习:当堂口头模式切换练习

6. 简单vim配置

配置文件的位置

常用配置选项,用来测试

使用插件

手把手配置:

CentOs: 

https://blog.csdn.net/wooin/article/details/1858917

Ubuntu:配置vimpuls

1. 安装必要的依赖项

在安装 Vimplus 之前,确保你的系统中有一些基本的依赖库。打开终端并运行以下命令:

2. 克隆 Vimplus 项目

在终端中执行以下命令,将 Vimplus 项目克隆到本地:

3. 安装 Vimplus

进入 vimplus 目录,并运行安装脚本:

此脚本会自动为 Vim 安装插件、主题和相关的配置。安装过程可能较慢,尤其是在安装插件时,请耐心等待。

4. 配置 Python 环境

Vimplus 默认使用 Python3,如果你希望配置 Python 环境支持,还需要安装 pynvim

5. 检查安装结果

安装完成后,打开 Vim 并检查是否有 Vimplus 的主题和插件:

进入 Vim 后,可以使用 :PlugInstall 命令来手动安装或更新插件。

6. 可选:自定义配置

7. 更新 Vimplus

如果想更新 Vimplus,可以执行以下命令:

8. 卸载 Vimplus

如果需要卸载 Vimplus,可以使用以下命令:

完成这些步骤后,你的 Vim 应该会有一个丰富的插件集成和增强的编辑体验。

参考资料

vim从入门到牛逼: https://github.com/wsdjeg/vim-galore-zh_cn

vim实现多行注释:

三、⾃动化构建-make/Makefile

3-1 背景

makefile文件:

依赖关系

3-4 推导过程

myproc:myproc.o
gcc myproc.o -o myproc
myproc.o:myproc.s
gcc -c myproc.s -o myproc.o
myproc.s:myproc.i
gcc -S myproc.i -o myproc.s
myproc.i:myproc.c
gcc -E myproc.c -o myproc.i
.PHONY:clean
clean:
rm -f *.i *.s *.o myproc

编译

$ make
gcc -E myproc.c -o myproc.i
gcc -S myproc.i -o myproc.s
gcc -c myproc.s -o myproc.o
gcc myproc.o -o myproc

make是如何⼯作的,在默认的⽅式下,也就是我们只输⼊make命令。那么:

3-5 适度扩展语法

BIN=proc.exe # 定义变量
CC=gcc
#SRC=$(shell ls *.c) # 采⽤shell命令⾏⽅式,获取当前所有.c⽂件名
SRC=$(wildcard *.c) # 或者使⽤ wildcard 函数,获取当前所有.c⽂件名
OBJ=$(SRC:.c=.o) # 将SRC的所有同名.c 替换 成为.o 形成⽬标⽂件列表
LFLAGS=-o # 链接选项
FLAGS=-c # 编译选项
RM=rm -f # 引⼊命令
$(BIN):$(OBJ)
@$(CC) $(LFLAGS) $@ $^ # $@:代表⽬标⽂件名。 $^: 代表依赖⽂件列表
@echo "linking ... $^ to $@"
%.o:%.c # %.c 展开当前⽬录下所有的.c。 %.o: 同时展开同
名.o
@$(CC) $(FLAGS) $< # %<: 对展开的依赖.c⽂件,⼀个⼀个的交给gcc。
@echo "compling ... $< to $@" # @:不回显命令
.PHONY:clean
clean:
$(RM) $(OBJ) $(BIN) # $(RM): 替换,⽤变量内容替换它
.PHONY:test
test:
@echo $(SRC)
@echo $(OBJ)

四、Linux第一个小程序-进度条

1.回车和换行 - \r&&\n

2.缓冲区问题:

2.1 测试代码:

第一代进度条:

第二代:模拟下载程序进度:

makefile:
  1 SRC=$(wildcard *.c)
  2 OBJ=$(SRC:.c=.o)
  3 BIN=processbar
  4      
  5 $(BIN):$(OBJ)
  6     gcc -o $@ $^
  7 %.o:%.c
  8     gcc -c $< -std=c99                                                                                                                                                                                                          
  9      
 10 .PHONY:
 11 clean:
 12     rm -f $(OBJ) $(BIN)
 13      
                               
main.c:
 //main.c                                                                                                                                                                                                            
  1 #include "process.h"
  2 #include <stdio.h>
  3 #include <unistd.h>
  4      
  5 double total = 1024.0;
  6 double speed = 1.0;
  7      
  8 void DownLoad()
  9 {    
 10     double current=0;
 11     while(current<=total)
 12     {
 13         FlushProcess(total,current);
 14         //下载代码
 15         usleep(3000);//充当下载数据
 16         current+=speed;
 17     }
 18     printf("\ndownlocad %.2lfMB Done\n",current);                                                                                                                                                                               
 19 }    
 20      
 21      
 22      
 23 int main()
 24 {    
 25     DownLoad();
 26     return 0;
 27 }    
~                                                                                                                                                                                                                                   
~               
process.c:
 #include "process.h"                     
  2 #include <string.h>                      
  3 #include <unistd.h>                      
  4                                          
  5 #define NUM 101                          
  6 #define STYLE '#'                        
  7                                          
  8                                          
  9 FlushProcess(double total,double current)
 10 {                                        
 11     char buffer[NUM];                    
 12     memset(buffer,0,sizeof(buffer));     
 13     const char* lable="|/-\\";                                             
 14     int len=strlen(lable);                                                 
 15                                                                            
 16     static int cnt=0;                    
 17                                          
 18     //不需要自己循环填充#                
 19     int num = (int) (current*100/total);                                                                                                                                                                                        
 20     for(int i=0;i<num ;i++)              
 21     {                                    
 22         buffer[i]=STYLE;                 
 23     }                                    
 24                                          
 25     double rate=current/total;           
 26                                          
 27     cnt%=len;                            
 28     printf("[%-100s][%.lf%%][%c]\r",buffer,rate*100,lable[cnt]);
 29     cnt++;                               
 30     fflush(stdout);                      
 31                                          
 32 }                                        
 33                                          
 34                                          
 35                                          
 36 void process_v1()                        
 37 {                                        
 38     char buffer[NUM];                    
 39     memset(buffer,0,sizeof(buffer));     
 40     const char* lable="|/-\\";           
 41     int len=strlen(lable);               
 42                                          
 43     int cnt=0;                           
 44     while(cnt<=100)                      
 45     {                                    
 46         printf("[%-100s][%d%%][%c]\r",buffer,cnt,lable[cnt%len]);
 47         fflush(stdout);                  
 48         buffer[cnt]=STYLE;               
 49         cnt++;                           
 50         usleep(50000);                   
 51     }                                         
 52     printf("\n");                       
 53 }                                       
~                                        

process.h:
 #pragma once
  2  
  3 #include <stdio.h>
  4  
  5 void process_v1();
  6  
  7  
  8 FlushProcess(double total,double current);    

第二代模拟下载进度条:

五、版本控制器Git

5-1 版本控制器

5-2 git 简史

5-3 安装 git

CentOs:

Ubentu:

5-4 在 Gitee创建项⽬

注册账号

这个⽐较简单, 参考着官⽹提⽰即可. 需要进⾏邮箱校验.

创建项⽬

2.创建仓库

3.在Liunx上拉下本地仓库:

复制云端仓库的https地址:

git clone+云端仓库地址

可以看到不论是Linux下还是windows上都是一模一样的界面:

进行配置好姓名和邮件后,这里创建一个test.c 文件进行上传:

是将文件放入暂存区内:

这里的描述千万别乱写,以后时间长了,直接导出来所有文件,乱写的描述一眼就看到了;

将暂存区内的文件进行上传到云端gitee的仓库

也就是这三步能够完成所有文件或者文件夹的同步更新;

此时可以看到test.c文件被成功上传;

那么为了确保文件是否真的被上传成功,就可以直接区暂存区内看看,是否有新文件没有被上传:

假如存在有的文件没有被上传成功,那么就可以知道暂存区内还有文件;

配置免密码提交:

https://blog.csdn.net/camillezj/article/details/55103149

总结一下吧~总结不易,本章对我的收获和学习巨大,希望对你也有帮助!!!

 

举报

相关推荐

Linux环境开发工具之yum

0 条评论