Linux工具(上)

yum软件包管理器

什么是软件包

谈到软件包管理器,首先先了解一下什么是软件包

yum具体操作

linux上有很多软件包管理器,这里我们学习其中一种 yum.

yum配置了很多yum源,用yum下载时yum会通过yum源找到要下载的东西的链接

使用yum,最主要的就是yum三板斧

1.yum list 查看

2.yum install -y 下载安装

3.yum remove -y 删除

注意:关于yum/apt的所有操作必须保证主机(虚拟机)⽹络畅通!!!

编辑器Vim

vim的基本概念

注意vim是文本编辑器(无法编译运行代码)

我们先主要学习vim的三种模式(其实有好多模式,⽬前掌握这3种即可),分别是命令模(command mode)、插⼊模式(Insertmode)和底⾏模式(lastlinemode),各模式的功能区分如下:

这三种模式的转换见下图(在vim中如果不知道自己在什么模式下可以无脑Esc一下,这样就可以回到命令模式).

vim的基本操作

先简单了解一下如何进入,退出vim.以免进入之后束手无策.

vim正常模式命令集

正常模式下(核心模式/命令模式)

1.进入插入模式(一般掌握一种即可)和回到正常模式
2.在正常模式下移动光标

补充和细化: n+(shift+g) 或n+gg定位到文本第n行

(shift+4=$ 行尾,shift+6=^ 行首)

w 单词为单位向后跳转 (单词不是传统英语上意义的单词,通常是以' '分割为单词)

b 单词为单位向前

3,删除⽂字

通常用x和X

x 光标所在位向后删除(前可加n)会删除光标所在字符(n和下面#表达相同意思,表示数字)

shift+x 光标所在位向前删除(前可加n)不会删除光标所在字符

4.复制

光标所在行进行复制,一般使用yy 和#yy

补充: 粘贴p(前可加数字 : 是把剪切和复制的所有东西粘贴数字遍

剪切dd(前可加数字 : 剪切光标所在⾏到缓冲区

前加数字表示剪切从光标所在的该⾏"往下数"数字⾏⽂字

5.替换

这里用R是进入了替换模式下,按Esc后退出

n+r+字符 光标向后n个字符全部替换为输入字符

补充:shift+~ 大小写快速切换

6.撤销上⼀次操作

取消后撤ctrl+r

7.更改

8.批量注释

先ctrl+v进入到视图模式 ,通过hjkl键(这里用上下左右可能出现问题)来进行上下左右选择(进入视图模式后就开始选择了,要在正常模式下定好开始行再进入)然后按shift+i直接进入插入模式进行插入,在每行的前面插入//进行注释,注释结束后按两次Esc退出后就完成了注释

vim末⾏模式命令集

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

经过上面的学习,现在我们对vim下的模式认识扩充到下图:

编译器gcc/g++

提到编译器就离不开代码的编译过程,通常源代码经过预处理->编译->汇编->链接变为可执行程序.下图是比较详细的介绍

gcc编译选项

格式 : gcc [ 选项 ] 要编译的⽂件 [ 选项 ] [ ⽬标⽂件 ]

预处理
编译(⽣成汇编)
汇编(生成机器可识别代码(二进制))
连接(⽣成可执⾏⽂件或库⽂件)

注:上面在要编译文件后面的选项**-o** 作用是使编译结果存进你想要的目标文件中.

简单记忆:选项为ESc(要注意ES大写c小写) 生成的文件为iso

gcc其他常⽤选项-了解即可

这里主要要记一下-static选项(如果不代则默认为动态链接)

动态链接和静态链接

这部分我仅仅接触了一些皮毛,主要就了解了动态链接和静态链接的相对优缺点,如下

静态链接:消耗空间大,浪费空间,更新困难,但是不依赖动态库,动态库出现问题程序也可以运行

动态链接:消耗空间小,但是依赖动态库,动态库出现问题所有程序都无法运行

注:想要动态链接一定要有动态库,想要静态链接也一定要有静态库.

相关推荐
proware2 分钟前
海思3403与3559安全启动
linux·安全·tee
sunz_dragon14 分钟前
Claude Code / Codex Git 版本管理完整使用指南
服务器·人工智能
领尚15 分钟前
openclaw 极简安装(Ubuntu 24.04 server)
linux·运维·ubuntu
Gofarlic_OMS30 分钟前
Windchill的license合规使用报告自动化生成与审计追踪系统
大数据·运维·人工智能·云原生·自动化·云计算
迷途之人不知返34 分钟前
shell相关知识与Linux权限
linux
SPC的存折37 分钟前
3、主从复制实现同步数据过滤
linux·运维·服务器
SPC的存折39 分钟前
openEuler 24.03 MariaDB Galera 集群部署指南(cz)
linux·运维·服务器·数据库·mysql
xcbrand41 分钟前
文旅行业品牌策划公司找哪家
大数据·运维·人工智能·python
SPC的存折1 小时前
MySQL 8.0 分库分表
linux·运维·服务器·数据库·mysql
风吹迎面入袖凉1 小时前
【Redis】Redisson分布式锁原理
java·服务器·开发语言