燃冬之yum、vim和你

news2024/12/23 8:47:06

了解了很多指令和权限,搞点真枪实弹来瞅瞅

学Linux不是天天就在那掰扯指令玩,也不是就研究那个权限

准备好迎接Linux相关工具的使用了么码农桑~

yum

软件包

什么是软件包呢?

首先来举个生活中常见点的例子:比如我的手机是华为,我的手机里就会自带一个华为应用商店(哦莫,之前初中玩很多游戏的时候,比如楚留香第五人格这种,就在我手机的应用商店下了,当时年少无知,不知道自己下成渠道服了)再比如我的电脑是联想,就自带联想应用商店

 当我们下载某个软件的时候,是不是经常就去相应的应用商店下载了

那么有一个问题:我下载的软件是就在我本地的机器上还是在远端?

在手机上安装很多软件(dy、wx抖音团购劵真让我抠抠搜搜花了很多钱,麦麦的新品菠萝安慕希麦旋风好吃,kfc那个龙井冰淇淋卖没了,明天去尝尝新出的山茶花)

疯狂星期四到底有多少同分异构体。。。

个人的副业,‌大佬们可以支持一下求求了
𝟭.𝗣𝘆𝘁𝗵𝗼𝗻脚本    𝟮𝟬元/‌𝟭𝟬𝟬行
𝟮.𝗝𝗮𝘃𝗮/𝗣𝗛𝗣程序   𝟱𝟬𝟬元起/个 复杂度面‌议
‍𝟯.‍网站及𝗔𝗣𝗣开发  𝟮𝟬𝟬𝟬元起‌/个  复杂度面议
𝟰.商‌业短片剪辑     𝟭𝟬𝟬𝟬元起‌/支  ‍复杂‍度面议
𝟱.𝗔𝗘/𝗖𝟰𝗗特制效作  𝟱𝟬𝟬元起/秒 复杂度面议
𝟲.𝗞𝗙𝗖代吃    𝟱𝟬‍元起/次  每天都可接
目前只‌接6 ,其他的还在学 

╭◜◝ ͡ ◜ ╮ 
(    好想    ) 
╰◟ ͜ ╭◜◝ ͡ ◜ ͡ ◝  ╮
    (  每人v50   )
╭◜◝ ͡ ◜◝ ͡  ◜ ╮◞ ╯
(   请我吃KFC  ) 
╰◟ ͜ ◞ ͜ ◟ ͜ ◞◞╯ ╭◜◝ ͡ ◜ ͡ ◝  ╮
                          (  每人v50   )
╭◜◝ ͡ ◜◝ ͡  ◜ ╮ ╰◟ ◞ ͜ ◟ ͜ ◞╯
(   请我吃KFC  ) 
╰◟ ͜ ◞ ͜ ◟ ͜ ◞◞╯
₍ᐢ..ᐢ₎ᐝ 

⣀⣆⣰⣒⣒⡀⢀⠔⠠⠤⡦⠤⠄⢴⠤⠤⠤⢴⠄
⢰⣒⣒⣒⣲⠄⠠⡎⠸⠽⠽⠽⠄⠼⡭⠭⠭⡽⠄
⢸⠒⠒⢒⣺⠄⠄⡇⡍⣝⣩⢫⠄⣊⣒⣺⣒⣊⡂
⢠⠤⠴⠤⠤⠄⢐⢔⠐⠒⡖⠒⠄
⣹⢸⢍⢉⢽⠄⢀⢼⠠⠤⡧⠤⠄
⡜⡸⠔⠑⠜⡄⠠⡸⢀⣀⣇⣀⠄
⢰⣒⣒⣒⣲⠄⠠⡦⢴⠄⡖⢲⠄⡖⢲⠒⢲⠒⡆
⢸⣒⣲⣒⣚⠄⠄⡯⢽⠄⣏⣹⠄⡇⡸⠄⢸⣀⡇
⣑⣒⣺⣒⣒⡀⢈⠍⠩⣡⠃⣸⠄⣏⣀⣀⣀⣀⡇
⡄   ⡄⠐⢲⠒⠄⡆⠢⠄⡤⠤⠄⢀⠤⢄
⢱⢰⠁⠈⢹⣉⠉⡏⡍⠄⠗⠒⡄⢸    ⢸
  ⠇   ⠈⣹⢀⡠⠺⡰⠄⠢⠤⠃⠘.. .⠜ 

跑题了,话说回下载的软件在远端(云服务器上)上放着呢

应用商店提供了搜索和查看的功能,能帮助我们进行下载安装(软件下载安装的管理工具)

当我们点开应用商店点击的时候,它帮我进行下载安装,平时下载的那个东西叫软件包(就是压缩包或者安装包)

yum是一个进行软件下载安装管理的客户端

在Linux中,软件包可能有依赖关系,在下载游戏的时候尤为常见,在Linux中,yum还要帮助我们解决软件包依赖关系的问题(自动解析下载,游戏下载安装的话,基本上程序员/开发者都帮你打包好了,直接下就行,哦对,看看小丑牌的顶尖优化空间)

居然只有60多兆。。。

他真的我哭死,感谢每一个为做出好游戏努力的程序员

 一个问题:软件包是谁给的啊?

在Windows下好说,毕竟当下时代流量就是钱,下载的多了,用的人多了,公司就获利,这由经济驱动,无可厚非

那在Linux下呢?

没有经济的驱动啊?谁这么善良啊?不收我钱、让我免费用?

这帮人图啥?

是啊,这帮人不图啥,也许听我说完Linux系统的生态,你就能理解这帮人的动机了

Linux系统生态

在Linux安装软件一般有三种方式:

1.源代码安装(源代码拿过来自己编译,但是特别麻烦,你不一定能在你系统编译过,在你的环境下可能会出现编译错误,还要解决软件依赖性的问题)

2.rpm包安装(编译好压缩好,相当于.tgz、.zip这种,不同环境有不同安装版本,大佬把源代码在各种不同的环境编译好放出来的压缩包)

3.yum安装(软件和软件有依赖关系,可能这个软件的正常运行还需要图形化界面的库,但是rpm包可能没办法把这些库包过去,yum内部既有下载链接,也解决了依赖关系)

 yum安装指令

yum install xxx

yum安装在服务器上拉取库和压缩包下载安装到本地

为什么可以这样呢?

因为我的机器内部一定内置了目标服务器的地址链接

故事还要接着讲,例子还要接着举

首先,墨墨酱是一个程序员,她现在在一家公司工作,有天老板把她叫过去,对她说:老墨啊,公司新买了十台云服务器,想作为公司开发的服务器,你去给我调研一下,看看哪一款操作系统比较好,调研之后把结果告诉我,但是墨墨酱不可能说调研后直接跑到老板的办公室跟老板说:用centos吧,我学的就是centos(一天一个被开除小寄巧),这样肯定不行啊,不专业且蠢,老板不懂技术,墨墨酱的任务是告诉老板选择这个系统的原因,这款系统好在哪(这里的差别不是指壳的差别,都用的是一个Linux内核,探讨谁的壳更好看没意义)评估系统好的标准是:文档齐全、软件丰富、开源社区活跃、大公司应用、适用于企业级开发

这个被称为Linux系统的生态环境

所以墨墨酱应该这样回复老板:老板,我觉得用Centos这款操作系统比较符合您的预期,它和其他系统底层用的是一样的源代码,所以稳定性上和其他系统差不多,但是这款系统社区活跃,人数众多,文档齐全,有很多大企业在用,我觉得我们公司可以参考大公司的选型,在后续的使用过程中,也方便在遇到问题时查看社区对某种问题或者求助,遇到很多问题有相应的解决方案

老板怒夸墨墨酱,年终奖给她一百万都不为过

相应的,被选择的系统也会做更多事维护自己的文档和社区活跃度(有人就有需求,有需求就有人满足需求)所以开源文化真的很伟大啊!!(先生大义!!!)

开源项目不收费,但是支持捐赠,所以。。。又是一个闭环

yum相关操作

进行安装什么工具,怎么安装,去哪找安装的东西,这些问题怎么解决呢?

听我娓娓道来

安装软件是不是需要搜索一下?

这样就可以罗列出所有的软件了:

yum list

嗷嗷刷屏,截一小段 

但是软件那么多,怎么找到我需要的呢?

 用管道:

yum list | grep sl

这是罗列名字中带有sl的软件

解释下:x86._64是指在64位下运行的,后面的是版本号,el7是系统帮我们找到的适用于当前环境下的安装包(我这个是centos7),后面@xxx是类似于版权声明(软件提供方)

安装一下:

yum install sl.x86_64

 

 跟我一起安装,超可爱小火车走过去了

 怎么卸载呢?

yum remove sl

这样就好了:

 

yum -y remove sl  //取消询问直接删

 再看个好玩的:

yum install figlet

他有什么用呢?

可以以图形化方式打印文本哦 

 还有呢:

yum install htop

 这个是Linux下的任务资源管理器

 加一:

yum install linux_logo

可爱捏:

还有可爱的动物说话:

yum install cowsay

 

 也可以设置别的动物哦,这样查看:

cowsay -l

这样使用:

cowsay -f xxx

好抽象:

 yum里面的软件很多是被很多人安装过的很稳定的软件,base是yum的很稳定的软件源,经过长期验证的稳定的软件被放在其中,epel是扩展软件源,相当于游戏的dlc

查看系统下的yum源: 

ls /etc/yum.repos.d/

 打开看一眼:

vim /etc/yum.repos.d/CentOS-Base.repo

 

打开后发现这里面都是链接(目标服务器的地址链接,根据链接去对应仓库搜索)

也就是说,下载软件不一定要通过点击的方式下载,举个例子:

wget www.baidu.com

 找到这个index.html:

 打印一下呢:

 所以下载不一定要通过点击,下载本质是网络请求,而构建网络请求命令也可以搞定,所以也可以通过yum安装

我们目前不知道应该安装什么软件,需要根据后续的开发需求进行配置

yum本地配置

yum配置将来要干什么呢?

yum会根据/etc/yum.repos.d/该路径下面配置文件,来构成自己的下载链接(根据OS版本和我要下载的软件),yum帮助进行下载安装,一般的机器内置的链接是Centos官网链接,但是上面已经说了大多指向国外,yum节能比较慢,所以需要配置

那怎么配置呢?

配置yum源本质就是在更改文件或者更改文件内容

配置就是把原来的替换掉,这是阿里云的仓库源:

repo安装包下载_开源镜像站-阿里云 (aliyun.com)icon-default.png?t=N7T8https://mirrors.aliyun.com/repo/

 点击就是下载

 也可以这样:

wget -O /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

 这相当于把远端链接指定的配置文件下载到本地的指定目录下

清除缓存:

yum clean all

生成缓存:

yum makecache

 升级更新:

yum -y update

 这是示意图:

配置yum就在配置yum源,比如说配置Centos.orz,但是这些yum源大多数都在国外,我们需要安装的是投放到国内的镜像,配置的本质就是找对应的yum源放到对应的.repo下,做文件替换的工作

使用yum一般都是要联网的(用云服务器的不用管)

yum install -y lrzsz

装这个拖拽实现文件互传 (具体操作在这篇文章写过了)

linux指令-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/chestnut_orenge/article/details/135678414

vim 

在Linux中编程,使用一个很巧妙的工具:vim

在Windows下我们敲代码一般用什么呢?

用VS对吧?(敲代码用它,debug用它,开发用它,写C、C嘎嘎用它,写PHP写Python搞前端都用它),像VS这种功能齐全的工具我们一般称为集成开发环境(将功能都整合了)

vim是一款文本编辑器(记事本),写代码就有vim这样的编辑器,编译就有gcc,g++这样的编译器,调试有gdb这样的调试器,自动化有Makefile这样的组件

在用vim输入的时候发现输入不了,这是因为vim处于命令模式

vim有多模式,主要是三种:

命令模式

命令模式允许使用者通过命令进行文本的编辑控制(复制粘贴,大小写转化,删除...)

shift+zz(ZZ)保存并退出

Ctrl+z:暂停程序

查看运行进程: 

 ps ajx | grep vim

  

 结束运行进程:

kill -9 25094 

 vim为了防止数据丢失或异常程序崩溃,在文件发生修改的时候,会形成临时文件

形成的临时文件这样查:

ls -a -l

 

删掉它就不会出现提示了

 在断网或者Xshell断开链接的时候,都会形成临时文件哦(因为编写未保存,怕数据丢失)

嫌提示烦的可以去把临时文件删除一下

1.文件不做修改,断网,第二次正常打开

2.对文件做编辑,断网或关闭Xshell,再打开会有提示,可以D删除,也可以R恢复

基础操作

yy:复制当前行(n+yy连续复制n行)

p:粘贴复制内容(p前带数字把指定内容粘贴n次)

u:撤销

ctrl+r:撤销撤销

dd:剪切(+p)/删除指定行(n+dd连续多行)

shift+·(~):大小写快速切换

n+x:删除光标后续的一个字符,可以一次删除n个---一行内

shift+x:删除光标前的字符(n+shift+x删除n个)

r:对光标指定的位置,进行一个字符的替换(可以一次替换多个)

shift+r(R):进入替换模式,直接进行文本替换

光标操作 

shift+4($):光标移动到结尾

shift+6(^):光标移动到开始

gg:将光标定位到整个文本开头

shift+g(G):将光标定位到整个文本结尾(n+G将光标移动到某行,底行模式下set nu可显示行号)

hjkl(左下上右,可带数字):光标移动指定位置(简易记法:h在最左所以是左,l在最右所以是右,k是国王高高在上,j是jump跳下悬崖)

w:单词为单位进行光标后移

b:单词为单位进行光标前移

底行模式

底行模式用来让vim和shell(包括但不限于)进行交互的

q:退出(不保存,加!是强制退出)

w:保存(wq:保存并退出)

set nu:加入行号(set nonu:去掉行号)

/:关键字,用作搜索

!gcc:编译

!command:不退出vim,可以进行shell命令的执行(常用于函数查看)

vim在第一次保存的时候才会新建文件哦 

在底行模式中,vim还支持分屏

vs filename    //多文件操作

Ctrl+w:光标切换分屏(分屏下也支持文本拷贝)

插入模式

插入模式是编辑模式

从插入进入底行,从底行转换插入,都曲线救国吧。。。(命令模式是vim的核心模式)

视图模式

在vim中如何实现批量注释呢?

肯定不是编辑模式里一行一行敲//啦

Ctrl+v进入视图模式

按住j进行批量化选中

shift+j全部选中(hjkl进行区域选择哦,就是上下左右的作用)

shift+xj选中x行

然后按shift+i进入插入模式,输入//后按两次esc即可批量化选中

 怎么批量化去除注释呢?

还是Ctrl+v进入视图模式,hjkl进行区域选择(按j下拉,然后l右移一行之后,按d就可以删除了)

sudo提权

sudo之前输入的是普通用户的密码,当普通用户被信任时才可以执行sudo

ll /etc/sudoers

 

 可以用vim修改白名单中的用户(root干这事)

vim /etc/sudoers

 找到这里:

然后复制粘贴(会了吧),把名字改了 

然后在底行模式中强制保存并退出一下

wq!

成了 ,至于黑名单,都不让它登录

 vim配置
原理

vim不是直接执行可执行程序(也会读取若干配置文件,最典型的:.vimrc)

vim .vimrc

然后输入set nu,保存并退出,就可以显示行号了,是即时生效的哦

一键式配置

vim一个个配置起来太麻烦了,试试一键式配置吧!

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

 

别在root账户下操作哦,会出问题

配置完是很像VS的舒心界面,花花绿绿好看的很安心,还有自动补齐提示

学习加油哦

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1616214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PLC无线通讯技术在汽车喷涂车间机械手臂上的应用

一、项目背景 在汽车生产装配工艺中,机械臂目前已经广泛地应用于装配、搬运等工业生产中,在机械臂系列产品中,汽车喷漆自动控制喷涂机械装置以其独特的优势,能够根据油漆喷涂量的大小,严格控制喷嘴与喷漆面之间距离等…

【函数式接口使用✈️✈️】配合策略模式实现文件处理的案例

目录 🍸前言 🍻一、功能描述 🍺二、面向对象设计模式 🍹三、策略模式 🍦四、策略 VS 面向对象 🍨章末 🍸前言 小伙伴们大家好,上周初步了解了下函数式接口,Consume…

「最没存在感」港姐冠军入行10年不受捧,与相恋4年男友分手

昨日(4月21日)一众歌手艺人齐集红馆举行《全港运动全城跃动第九届全港运动会开幕礼》录影,TVB亦派出不少的歌手艺人小花表演。其中一部分是邵珮诗与黄婧灵大跳拉丁舞,同属身材丰满的二人跳起上来视觉极夸张。 而平常经常露出姣好身…

powershell@命令行提示符样式配置自定义@pwsh重写prompt显示电量内存时间等信息

文章目录 abstract流行的powershell prompt模块示例 powershell原生修改Prompt函数配置文档Prompt命令来自哪里 简单修改带上电量和时间的Prompt 复杂修改预览FAQ:没有必要修改相关仓库地址样式选择平衡样式花哨样式响应性能 小结 abstract 在 PowerShell 中,可以通…

【git】git ignore如何添加core/config.py忽略

在Git中,.gitignore文件用于指定不被Git追踪的文件和文件夹。要添加core/config.py文件到.gitignore中,你需要编辑.gitignore文件并添加以下行: core/config.py这行表示Git应该忽略名为config.py的文件,它位于core目录下。确保在…

Codeforces Round 821 (Div. 2) D2. Zero-One

题目 #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e5 5, inf 1e18, maxm 4e4 5; const int N 1e6;c…

vue项目前端axios跨域请求处理问题

在我的服务器里面新建了一个txt文档&#xff0c;但在vue项目里面对这个文档发起请求的时候因为是ip地址请求&#xff0c;跨域请求失败&#xff0c;在配置了vue.config.js的请求代理后得以解决 报错示例&#xff1a; 解决方法&#xff1a; 1、在vue.config.js中配置跨越请求代…

microk8s拉取pause镜像卡住

前几天嫌服务器上镜像太多占空间&#xff0c;全部删掉了&#xff0c;今天看到 microk8s 更新了 1.30 版本&#xff0c;果断更新&#xff0c;结果集群跑不起来了。 先通过 microk8s.kubectl get pods --all-namespaces 命令看看 pod 状态。 如上图可以看到&#xff0c;所有的业…

【触摸案例-触摸事件介绍 Objective-C语言】

一、触摸事件 1.接下来,我们来说这个,触摸事件, iOS当中的事件,可以分为三大类: 1)触摸事件 2)加速计事件 3)远程控制事件 事件呢,这个里面呢,使用app的过程当中呢,产生各种各样的事件,事件呢,分为三大类,在iOS里边儿啊,分为三大类,首先,有一个叫做触摸事…

NLP大模型的训练

NLP模型的训练主要分成两步&#xff1a; 1.先进行通用任务的训练&#xff1b;无监督的样本是无穷无尽的&#xff1b; 这里列举两种&#xff1a;MLM和NSP,NSP由于在某些论文中被证明是无效的&#xff0c;所以用的少&#xff1b; MLM: 接下来会在特定任务上进行finetune>su…

Nacos分布式配置中心

<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://…

社交巨头与去中心化:解析Facebook在区块链的角色

在数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台&#xff0c;Facebook 在社交领域的影响力无可置疑。然而&#xff0c;随着区块链技术的崛起&#xff0c;Facebook 也开始探索如何将这一技术应用于其平台&#xff0c;以适…

【无监督+自然语言】GPT,GPT-2,GPT-3 方法概述 (Generative Pre-Traning)

主要参考 【GPT&#xff0c;GPT-2&#xff0c;GPT-3 论文精读【李沐论文精读】-2022.03.04】 https://www.bilibili.com/video/BV1AF411b7xQ/ 大语言模型综述&#xff1a; http://t.csdnimg.cn/4obR4 发展节点 2017.06 Transformer: 所有大语言模型LLMs的基础结构 , Attent…

windows服务器iis系统部署https

源地址&#xff1a;https://www.ctvol.com/seoomethods/1418785.html https是网页常用的一种网络安全机制&#xff0c;在部署其他服务器https&#xff0c;我们在前面文章中已经提到过。下面我们来说说windows服务器iis系统部署https步骤&#xff1a; 1、到服务提供商下载所需…

WPF2022终结版系列课程笔记 1 WPF 基本布局

本笔记为B站 微软系列技术教程 WPF项目实战合集(2022终结版) 项目记录 WPF 基本布局 WPF布局原则 一个窗口中只能包含一个元素 不应显示设置元素尺寸 不应使用坐标设置元素的位置 可以嵌套布局容器 WPF布局容器 StackPanel: 水平或垂直排列元素、Orientation属性分别: Hor…

森林消防装备:高压消防接力水泵/恒峰智慧科技

在广袤无垠的森林中&#xff0c;每一份绿色都是大自然赋予我们的宝贵财富。然而&#xff0c;这些美丽的绿色也可能因为一场突如其来的火灾而被瞬间吞噬。为了保护这片生命的绿洲&#xff0c;我们需要一种高效、可靠的消防装备——高压消防接力水泵。 这款森林消防装备采用本田汽…

Hadoop3:HDFS、YARN、MapReduce三部分的架构概述及三者间关系(Hadoop入门必须记住的内容)

一、HDFS架构概述 Hadoop Distributed File System&#xff0c;简称HDFS&#xff0c;是一个分布式文件系统。 1&#xff09;NameNode(nn)&#xff1a;存储文件的元数据&#xff0c;如文件名&#xff0c;文件目录结构&#xff0c;文件属性&#xff08;生成时间、副本数、文件…

Linux 系统IO函数之stat、lstat函数

1、stat函数 要点&#xff1a; int stat(const char *pathname, struct stat *statbuf); 作用&#xff1a;查看文件的信息 man 2 stat/return value1、stat结构体&#xff1a; 2、sturct stat 结构体中 st_mode 的含义&#xff08;文件的类型和存取的权限&#xff09;: st_mo…

go语言通过TCP协议实现聊天室样例

1、服务端&#xff1a; package mainimport ("fmt""net""sync" )type ChatServer struct {clients map[string]net.ConnclientsMux sync.Mutex }func NewChatServer() *ChatServer {return &ChatServer{clients: make(map[string]net.Co…

JS-47-Node.js06-fs模块-读写文件

Node.js内置的fs模块就是文件系统模块&#xff0c;负责读写文件。 和所有其它JavaScript模块不同的是&#xff0c;fs模块同时提供了异步和同步的方法。 一、回顾&#xff1a;异步方法VS同步方法 1-1、异步方法 因为JavaScript的单线程模型&#xff0c;执行IO操作时&#xff…