- yum 是Linux下非常常用的一种包管理器,可供下载软件包. 主要应用在Fedora, RedHat, Centos等发行版上。软件包和软件包管理器, 就好比 “App” 和 “应用商店” 之间的关系。
- 这些软件管家要下载软件,是必须得知道各个软件的下载地址的,一般都是内置下载链接。(比如放在配置文件中)
- yum 就有一个这样的 配置文件,我们叫他 yum 源,存放在我们的
/etc/yum.repos.d
路径下
(repos 为 repository 仓库的简写,d 为 dir 目录)
关键字 搜索 软件:[sodu] yum list | grep 关键字
(最常用)
或者 yum search 关键字
(排版很死亡,用的比较少)
用 root 安装 软件:[sodu] yum [选项] install 软件名
(此时是精准匹配的)
用 root 删除 软件:[sodu] yum [选项] remove 软件名
直接完成指令,不进行系统交互提示:-y
通常我们希望在 Linux 下安装的软件,所有人都能使用,所以我们不会把软件下载到自己的用户下。
这时候,需要我们切换成 root 身份,当然直接使用 sodu 提升该行命令的权限是最好的!root 会把软件存在特定的文件夹中。
我们所正在使用的 yum 源,可能依据云服务器的不同而使用不同的源。可以通过一系列指令进行配置更改。yum 源配置文件可以通过网络搜索得到。
这里举例,把 CentOS 默认的 yum 源,修改为 mirrors.163.com
操作步骤如下:
1. 备份老的 yum 源: cd /etc/yum.repos.d
进入目录,备份 yum 源配置文件 CentOS-Base.repo
mv CentOS-Base.repo backup_CentOS-Base.repo
# 不进入目录则输入:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/230410_CentOS-Base.repo
2. 下载新的 yum 源: 保持在上述目录位置,下载 163 的 yum 源配置文件
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 如果显示没有 wget 命令,用下面这个,yum 源更新后可以装一个 wget
curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
3. 重命名: 将新下载的 yum 源,改成原来系统的默认名
mv CentOS7-Base-163.repo CentOS-Base.repo
4. 更新缓存: 先将 yum 缓存重新清空,再将 yum 源重新加载
yum clean all
yum makecache
配置完毕!
我们刚刚所说配置 yum 源,更多的是官方的软件源,如国内的一些镜像源:阿里、163、华为、腾讯,如果你的云服务器是来自某一家,大概率是可以直接使用 yum 源,不需要进行重新配置。
但是如果我们想要安装的软件,在官方的软件源中找不到,有可能在扩展的 yum 源中:epel.repo,此时下载方法入下:
step1:
# 根据我们的 base yum 源,帮我们找到和他匹配的扩展 yum 源
sodu yum install -y epel-release
step2:
sudo yum install -y 软件名
vim 是一款多模式的编辑器,常用五种,最常用的实际只有三种
普通模式 / 命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
插入模式(Insert mode):文字输入
底行模式(Last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
替换模式(Replace mode)
视图模式(Visual mode)
vim testvim.c
打开 vim 默认进入 命令模式,当前目录下没有同名文件会新建一个
i
,界面左下角出现 – INSERT – 字样,此时转化成插入模式,光标不移动。
a
,进入插入模式,同时光标向后移动一个
o
,进入插入模式,同时光标向下移动一排
s
,进入插入模式,同时删除光标所在字符
shift
+ :
,左下出现冒号字样,可以进行保存退出等操作
shift
+ r
,左下出现 – REPLACE – 字样,此时转化成替换模式
[ESC]
,此时模式提醒消失,返回了命令模式
注意:命令中出现的 n 都是数字
底行模式下:
q
:不保存只退出
q!
:强制退
w
:只保存(可以撤销之前的命令)
wq
:写入并退出(再次打开不可撤销之前的命令)
wq!
:强制保存并退出
!命令行命令
:返回 执行命令行 的命令,但是不退出 vim
set nu / set noun
:设置 行号、去掉行号
/xxx
:字符串 查找
%s/当前字符串/替换字符串/g
:查找并 替换 字符串
vs 文件名
:将输入文件 分屏 至左侧,如当前目录下没有找到该文件,会自动创建一个
ctrl + ww
:切换光标 到另一个分屏界面
命令模式下(大部分指令):
u
:撤销 命令
ctrl + r
:对撤销进行撤销
yy / nyy
:复制 当前光标所在行、复指当前行在内及之下的指定若干行
dd / ndd
:剪切 当前光标所在行、剪切当前行在内及之下的指定若干行。(如果只 dd 不粘贴,就是删除)
p / np
:粘贴 一行、粘贴内容相同的 n 行,到当前光标所在行之下
gg
:将光标定位到 文档开始
shift + g
:将光标定位到 文档结尾
n shift + g
:将光标定位到文档 指定行
shift + 4
:将光标定位到文本 行的结尾
shift + 6
:将光标定位到文本 行的开始
n b / n w
:按单词为单位,进行前后移动,b 向前,w 向后
h / j / k / l
:光标移动,h 左、j 下、k 上、l 右
shift + ~
:快速 大小写切换
r / nr
:替换 一个字符、替换若干个相同字符
shift + r
:切换为替换模式
x / nx
:行内删除光标位置,删除光标后面 n 个字符
n + shift + x
:向前删除
一个用户一个 vim 配置。
自己配置:网上有很多命令用来配置,大家可以按需设置,流程如下。但其实不太推荐自己去配置,因为涉及很多插件冲突和路径问题。(不想看这个可以跳到下一小节 自动化配置)
.vimrc
touch .vimrc
vim .vimrc
样例:
# vim 编辑器的插入模式下,输入如下
"行号
set nu
"干啥的
syntax enable
"当前行高亮
set cursorline
"用空格来替换 Tab
set expandtab
"设置所有的 Tab 和缩进为 4 个空格
set tabstop=4
"按退格键时可以一次删掉 4 个空格
set softtabstop=4
set smarttab
"自动缩进
set autoindent
"开启新行时智能自动缩进
set smartindent
"设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
"设置编码格式
set encoding=utf-8
"设置终端格式
set termencoding=utf-8
"括号自动补齐
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap < <><ESC>i
本文提供一个自动化配置,取自将 vim 打造成 C++ IDE,目前只支持 centos 7.x,步骤如下:
在需要配置的账号下,输入 cd ~
再输入下面指令(建议复制),进行脚本安装
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
source ~./.bashrc
gcc 和 g++ 的选项是重叠的,gcc 是专门针对 C 语言的编译器、g++ 是专门针对 C++ 的编译器。这里以编译 C 语言的 gcc 为例进行讲解。
本小节会讲述,程序翻译的过程,及翻译过程的留存。
1. 预处理:头文件展开、条件编译、宏替换、去注释…
(预处理完毕,此时还是 C 语言)
-E
:进行程序翻译,预处理完成,就停下来# 直接输入会打印到屏幕上,不方便查看,我们 -o 到一个 .i 文件里
gcc -E mytest.c -o mytest.i
2. 编译:编译成 C 语言的 汇编语言
-S
:进行程序翻译,编译完成,就停下来(会生成一个 .s 汇编文件# 可以从 .c 开始翻译,这里默认在一个测试下,接着做的
# 可以 -o 自定义名
# 会生成一个 .s 文件
gcc -S mytest.i
3. 汇编:汇编语言 -> 可重定位的目标二进制文件(是不可以被执行的,bin.obj),只把我们自己的代码进行翻译形成二进制目标文件
-c
:进行程序翻译,汇编完成,就停下来(会生成一个 .o 二进制文件gcc -c mytest.o
4. 链接:将我们自己形成的 .obj 文件和库文件某种合并,形成可执行程序
ldd
:查询可执行程序对其他 动态库 的依赖sudo yum install glibc-static -y libstdc++-static
:安装 c 语言和 C++ 的静态库gcc 文件名.c
:将 .c 文件编译成可执行文件 a.out
gcc 文件名 -o 执行文件名
:将指定文件编译成自定义名称的可执行文件(-o 也可以放在前面,但是其后需要紧跟执行文件名称)
-E -S -c
:转成 预处理、编译、汇编 文件,具体使用见 3.1,
记不住命令顺序的一定记得,看看你的键盘左上角 ^▽^,[ESc]
生成的文件顺序:.i .s .o,我们可以助记作镜像文件的后缀名 .iso
如果本文对你有些帮助,请给个赞或收藏,你的支持是对作者大大莫大的鼓励!!(✿◡‿◡) 欢迎评论留言~~