Linux软件包管理yum

Linux软件包管理yum

什么是软件包

1.在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。 2.将一些常用的软件提前编译好,做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包。直接进行安装。 3.软件包和软件管理器就好比Appstore 4.yum是Linux下常用的一种包管理器。主要应用在centos,fedora,redhat上。

关于rzsz :用于win和远端Linux机器通过xshell传输文件。安装完毕后可以通过拖拽的方式来传递文件 注意事项: 关于yum的所有操作,必须在有网络的条件下进行: 检测命令行:ping指令

Linux软件包管理yum_第1张图片 

 

 

查看软件包 通过yum list命令可以罗列出当前一共有哪些软件包,可恨据许哟啊使用grep命令,筛选出具有关键字的包。
Linux软件包管理yum_第2张图片

 

 


注意事项:

1.软件包名称,主版本号,次版本号,源程序发行号-软件包的发行号,主机平台,cpu架构。 2.“x86_64”后缀表示64为系统的安装包,“i686”后缀表示32位系统安装包。 3.“el8”表示的是操作系统发行的版本。 4.最后一列,base表示的是“软件源”的名称,类似于“华为应用商店”。

如何安装软件

通过yum进行安装

Linux软件包管理yum_第3张图片

 

 

注意: 1.安装需要向系统目录写入文件,所以一般要在sudo或者root账户下完成。 2.yum一次只能进行一个下载任务,如果在一个软件下载的过程中去下载另一个可能会报错。


如何卸载软件

Linux软件包管理yum_第4张图片


 

Linux开发工具

vim的使用

vim是什么? 答:编译器 为什么学vim? 答:有时候,需要在生成环境下,快速定位问题,甚至需要快速修改代码。

1.vim的基本概念

常用的三种模式 功能
正常/普通/命令模式 控制光标的移动,字符,字,或者行的删除,移动复制某一区段及进入insert模式,或者last line 模式
插入模式 只有在insert模式下,才能进行文字的输入,按[esc]即可退回到命令行模式
末行模式 文件保存及退出,也可进行文件替换,找字符串,列出行号等操作。在命令行模式下,使用shift + :即可进入

2.vim的基本操作

1.

 $ vim test.cpp

即可进入vim,此时是正常模式。

2.[正常模式] --->[插入模式] a ---> 光标的下一位插入 i --->光标处插入 o ----> 光标另起下一行插入。

3.[插入模式] --->[正常模式]  无脑[esc] 4.[正常模式] ----> [末行模式]  [shift + :] 5.退出及保存 在末行模式下 w(保存当前文件) q(退出vim) 其中 可以使用[q!]强制退出。

3.vim的正常命令集

命令 说明
移动光标 可以使用上下左右键,也可使用[h j k l],对应[上 下 左 右]。
G 移动到文章末尾
$ 移动至光标所在行的末尾
^ 移动至光标所在行的行首
gg 进入文本的末端
shift g 进入文本末端
yy 复制当前行
p 粘贴当前行的后面,[np 可批量化操作]
dd 剪切(删除)当前行 [ndd]
u 撤销刚刚的操作
CTRL r 针对u操作,进行再次撤销
w,b 向后,向前在一行以单词为单位进行光标移动
h,j,k,l 左 下 上 后
shift + ` 大小写快速切换
r 替换光标所在的字符 [nr]
shift+ r R:批量化操作
x 删除光标所在字符 [nx]

Linux编译器 - gcc/g++使用

由代码到可执行程序

1.预处理 2.编译 3.汇编 4.链接

各个环节的主要任务及命令行

环节 任务 指令
预处理 宏定义替换,头文件展开,条件编译,去注释等 gcc _E test.c -o test.i
编译 检测代码的规范性,并将代码翻译成汇编语言 gcc -S test.i -o test.s
汇编 将.s文件转换成.o的二进制目标文件 gcc -c test.s -o test.o
链接 生成可执行文件或者库文件 gcc test.o -o test

示例:

4b40e79182c0417da7102ff75260f2cc.png

Linux软件包管理yum_第5张图片 

Linux软件包管理yum_第6张图片 

38e9079dc5b04fe8abb9db3bcabf7642.png 

b57a6ab473974775b58a139b6c4d2f62.png 

Linux软件包管理yum_第7张图片 

补充:数据库 在c的程序中,并没有printf的声明,但是程序却能够跑起来。 原因:系统把这些函数都实现了,并命名为"lib.so.6"的库文件里面去了。在没有特定指定时。gcc会去默认路径下”"usr/lib"下查找“,通过库,完成了对代码的运行。 数据库一般分为静态库与动态库两种

 

 

 

 

 

  静态库 动态库
后缀 .a .so
区别 编译链接时,将库文件全部加入到可执行文件中进行编译 程序运行时,链接文件加载入库
特点 生成的文件比较大,但是运行一次后,不再需要库文件 文件较小,但是每次运行都需要库文件参与,缺少库文件链接会直接die
gcc默认生成的二进制程序,是动态链接。    

gcc选项

选项 解释
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S 编译到汇编语言不进行汇编和链接
-c 编译到目标代码
-o 文件输出到 文件
-static 此选项对生成的文件采用静态链接
-g 生成调试信息。GNU 调试器可利用该信息
-w 不生成任何警告信息
-wall 生成所有的警告信息

Linux调试器-gdb使用

Linux下默认生成的可执行程序是release版本,无法调试

 Linux软件包管理yum_第8张图片

 

-g选项 解释
b 行号 打断点
info b 查看断点
d 编号 取消断点
l 行号 显示代码
s step,逐语句(计入断点),类似于vs的F11
n next 逐过程,类似于vs下的F10
display && undisplay 常显示和取消常显示
until 行号 跳转至指定行
r 运行程序
c 从一个断点运行至另一个断点,类似于vs下的 F9 + F5
finish 执行完当前函数就等下来

生成一个debug版本的test_g

 00e584f2cf0441158b348492e66d6fa1.png

 

Linux项目自动化构建 -make/Makefile

1.工程文件不计其数,按照类型,功能,模块分在若干文件中。makefile定义了一系列规则来制定工作,文件的编译顺序,那些文件重新编译等。 2.在makefile定义好依赖对象和依赖关系后,只需要一个make就能自动完成编译,提高了效率。 3.make是一条命令,makefile是一个文件。 4.在编译代码的时候,可能存在指令写反导致源代码被覆盖的事情,makefile可以有效解决此类问题。 基本格式

 目标文件 :依赖关系
 //table 依赖方法

举例:

39c1e2ba322248b48874a705535a77df.pngLinux软件包管理yum_第9张图片Linux软件包管理yum_第10张图片Linux软件包管理yum_第11张图片

 

 

 

 

连续输入make,会生成这样一句话

Linux软件包管理yum_第12张图片

 

 

关于.PHONY 是makefile语法格式中的一个关键字 clean被.PHONY修改时,表明:总是被执行的 无论目标文件是否新旧,照样直接执行依赖关系。 问题:makefile是如何识别我的exe/bin是新的还是旧的? 根据对比源文件和可执行程序的最近修改时间,评估是否需要重新生成。

查询指令 stat [文件]

Linux软件包管理yum_第13张图片Linux软件包管理yum_第14张图片

 

 

文件 = 内容(影响Modify)+ 属性(影响Change) 修改文件内容可能会引起Change time的变化。 至于Access读取文件都会引起变化。

Makefile多文件编译

Linux软件包管理yum_第15张图片Linux软件包管理yum_第16张图片

 

 


编写一个linux程序--进度条

引入:缓冲区: 本质上是一段内存空间,用来临时储存数据的,使用\n可以刷新缓冲区,或者使用fflush(stdout)就可以将缓冲区的数据直接打印出来。 换行 + 回车 使用 “\r" -- 光标移动到本行的最初位置。

 #include
 #include
 #include
 #define N 101
 #define STYLE '*'
 int main()
 {
    char bar[N];//
    memset(bar,'\0',sizeof(bar));//初始化
   const  char p[] = "|/-\\";//
 ​
    int cnt = 0;
    while(cnt < N)
    {
         printf("[%-100s][%d%%][%c]\r",bar,cnt,p[cnt%4]);
         fflush(stdout);//刷新缓冲区
         bar[cnt++]=STYLE;
         usleep(20000);//ms
    }    
    printf("\n");
    return 0; 
 }                           

在Linux上部署git

安装git

 yum install -y git

如何使用? 1.建立gitte仓库 2.git clone +URL(仓库的http链接)。 3.git add +[文件] 4.git commit -m "有用的日志"。 5.git push

第一次使用,需要配置用户名和邮箱 .gitignore 是一个黑名单,只要加上对应后缀,那么上传时就会自动规避掉带有此后缀的文件。 关于:在网上修改代码,本地不会修改,导致后续上传git引起的错误解决方案。 使用命令行:git pull然后无脑q! 这样就自动合并同步了。

 

你可能感兴趣的:(Linux,vim,linux,编辑器)