当前位置: 首页 > news >正文

Linux-基础开发工具1

目录

1.1什么是软件包

1.2Linux软件的生态问题

1.3apt具体操作

1.3.1查看软件包

1.3.2安装软件

1.3.3卸载软件

1.4安装源

2.编辑器vim

2.1Linux编辑器-vim的使用

2.2vim的基本概念

2.3vim的基本操作

2.3.1在命令行对vim进行操作

2.3.2命令模式下对vim进行操作

2.3.3底行模式下对vim进行操作

2.3.4vim的其他操作

2.4vim的简单配置

1.1什么是软件包

在Linux下安装软件,通常是下载到程序的源代码,并进行编译,得到可执行程序。

但是这个方式也太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包,放在一个服务器上,通过包管理器可以和方便的获取到这个编译行的软件包,直接进行安装软件包和软件包管理器相当于“APP”和“应用商店”的关系。

如:

yum(Yellow dog Updater, Modified)是Linux下⾮常常⽤的⼀种包管理器. 主要应⽤在Fedora,
RedHat, Centos等发⾏版上.
Ubuntu:主要使⽤apt(Advanced Package Tool)作为其包管理器。apt同样提供了⾃动解决依
赖关系、下载和安装软件包的功能。
Linux下如何进行软件安装,查找,卸载?
安装方式:
①源码安装(不推荐);
②rpm安装方式。
安装包本质:就是把源代码在Windows下编译好,然后打包(本质:拷贝到Windows下)。
在我们的Windows主界面右键一个应用查看其文件地址:
在我的电脑微信的地址是:"C:\Users\Public\Desktop\微信.lnk"
在文件资源管理器搜索粘贴地址回车有:
此时双击就能打开微信:
这就相当于安装时打了一个包,安装时拷贝到该路径下就行。
在Linux下安装,往往喜欢把软件打包成rpm方式,这种做法可以解决一些问题,但这个方法还有不足。软件时存在依赖关系的!如:我要装A就需要先安装B,而安装B之前还需要我安装C,即C->B->A(套壳软件)。
在Linux下也有这种情况,如:
也就是说虽然我们编译好了,但还是依赖库的:
而这个libc.so.6是C语言标准库,这个libc.so.6也是一个文件,可以通过ls /lib64/libc.so.6看到。若系统未安装这个库,a.out这个文件是无法运行的。
此时我们就可以通过第三种方式来安装了:
③yum/apt,工具级别安装(软件给你自己解决依赖关系
什么是yum/apt?
yum/apt等同于手机上的应用商店。
我们之前安装类似file指令还有tree指令都可以通过yum/apt来安装!

1.2Linux软件的生态问题

Linux上的软件,也一定是开发者或者公司开发的,Linux是开源的,这些Linux的开发者,凭什么给我们开发软件,给我们用?
我们每个人是Linux操作系统编写者,我们的目的是让更多人用,任何一个人评估操作系统的好坏不都是看生态,也就是说,你写的操作系统,想让更多人用,不仅仅要写操作系统,还要维护论坛社区,官方文档,你还要自发的开始给Linux系统开发大量的上层应用,即要关心对应的生态问题。根本原因:这些软件属于Linux生态的一部分
开发者开发的源代码支持跨平台(即一个软件可在Ubuntu,CentOS,苹果等多个操作系统上用)。
这个图能证明:我们下载的软件是在远端的。
软件包依赖的问题:

1.3apt具体操作

1.3.1查看软件包

我们可以通过用:
apt list

来查看软件包,但是太多了,会刷屏:

此时需要我们用search来筛选我们需要的软件包,如我们需要lrzsz的就:

apt search lrzsz

话可以:
apt show lrzsz

注意:

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

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

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

1.3.2安装软件

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

sudo apt install -y gcc

需要注意的是:安装软件,要以超级用户的身份进行安装,在普通用户下安装需要用sudo来提高权限

这句话代表gcc已安装且为最新版本!

如果想要看安装的东西在哪个目录下直接:

1.3.3卸载软件

我如果想要卸载lrzsz那么就:

sudo apt remove -y lrzsz

1.4安装源

在Ubuntu下用该指令查看:

cat /etc/apt/sources.list # 标准源
ll /etc/apt/sources.list.d/ # 扩展源

在CentOS下用该指令查看:

$ ll /etc/yum.repos.d/ total 16 -rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源 -rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源

安装扩展源:

sudo yum install -y epel-release

更新安装源,在 虚拟机上可能需要,云服务器不⽤考虑,因为软件源都是国内的了。

好玩的命令:https://blog.csdn.net/xiaoxiaosutang/article/details/141053674

云服务器使用的镜像源不用更新,都是从你买的镜像自动更新的!如果想要自己更新,可以先问一下大模型要最新的镜像源,然后复制自己想要的文件链接,再sudo curl -o 你复制的链接即可。

2.编辑器vim

vi/vim键盘图

2.1Linux编辑器-vim的使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运⾏,也可以运⾏于x window、 mac os、 windows。

2.2vim的基本概念

vim只有一个功能:编写代码,即编辑器(相当于Windows下的记事本),但是它是一个多模式的编辑器,平时我们只要知道下面三种模式就可以了!

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

在vim code.c后回车就会进入到这个模式:

下面为:

在命令模式下,我们可以控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到 last line mode(后面两种模式)。

此时我们在这里可以进行任意的光标移动等:

插⼊模式(Insert mode)

只有在Insert mode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤ 的最频繁的编辑模式。
一般情况下我们需要输入i才能进入INSERT模式,但是虚拟机只要你输入的是字母都可以进,界面最后一行如下:
此时我们就可以随便的进行插入数据。
末⾏模式(last line mode)(也叫:底行模式)
⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等操作。
在命令模式下,*shift+:* 即可进⼊该模式。要查看你的所有模式:打开 vim,底⾏模式直接输⼊
:help vim-modes
末行模式能进行的操作最多,之后我们探讨的最多的就是末行模式!

2.3vim的基本操作

进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯:
此时我们就进入了vim的编辑界面,这个时候是处于正常模式下的,如果想进入插入模式,需要切换到插入模式才能进行编辑。
【正常模式】切换到【插入模式】:
输入a/i/o都能进入插入模式,此时界面为:
最好的判断方法是看到最后一行有INSERT就行。
此时我们就可以通过键盘随便输入到文件里面了!
此时有些人编写完代码可能直接把Xshell关闭了,你这样做之后重新vim code.c会出现:
这个提示是 Vim 编辑器的一个安全保护机制,它发现了一个“幽灵交换文件”(.code.c.swp),不是报错,而是向你确认下一步该怎么处理。先别慌,我帮你读懂它在说什么,以及为什么会出现这个提示

当你用vim编辑code.c时,Vim 会自动在同目录下创建一个隐藏的交换文件.code.c.swp,用来临时保存你的修改,防止意外断电导致数据丢失。
出现这个提示,通常是因为:

  • 上次编辑时 Vim 异常崩溃(比如 Xshell 突然断线,或你强行关闭了终端)。

  • 或者你打开了两个终端窗口,同时用 Vim 编辑同一个文件

提示信息的一行:

NEWER than swap file!

这句话的意思是:你现在磁盘上的code.c文件,比那个交换文件(.code.c.swp)还要新。

这说明,在你上次 Vi正文m 崩溃之后,你可能用其他方式修改过这个文件(比如用echo重写,或者用nano编辑过)。现在的code.c已经是更新的版本了。

🏆 推荐做法:按D(Delete it)

直接按键盘上的D(大写)。

  • 含义:删除那个过时的交换文件.code.c.swp

  • 结果:Vim 会删除交换文件,然后直接打开你磁盘上最新的code.c文件。这样既不会丢失新数据,以后也不会再弹出这个提示。

其他选项说明(供你参考)

按键含义后果
[0]以只读方式打开只能看不能改,适合先检查内容。
E(Edit anyway)忽略警告,强行编辑有风险。如果你强行编辑保存,可能会覆盖掉较新的文件内容。
R(Recover)恢复交换文件的内容危险!因为磁盘文件更新,选这个会用旧的交换文件覆盖你最新的code.c,导致你最近的新修改丢失。千万别按!
Q(Quit)退出 Vim什么都不做,退出后你可以手动rm .code.c.swp删除。
A(Abort)中止

类似退出。

想要退出INSERT模式,直接按键盘左上角的ESC即可退出到正常模式!
此时会提示:
如果编辑成这样:
此时就可以保存退出了,需要先Shift+;即按':'然后用wq保存退出。
此外,我们也可以用Shift+ZZ保存退出!
但是不要按成Ctrl+Z了,这样虽然可以退出,但是再vim code.c此时会有:
这次我们没有d选项可以按,要么就只能删除这个文件重新再写一遍代码,要么就读懂了这个选项E(Edit anyway)强行编辑,如果两个 Vim 同时修改同一个文件,最终保存时会造成数据混乱,甚至导致文件内容损坏。也不建议按R(Recover),因为modified: no说明交换文件里没有未保存的数据,恢复没有意义。
因为这和上次不一样,上次是提示modified: YESNEWER than swap file!,说明是 Vim 异常崩溃留下的残留文件,交换文件比磁盘文件旧,可以安全删除。
这次是:提示modified: no(交换文件没有修改)且(STILL RUNNING)(进程还在运行)——这意味着你很可能在另一个 Xshell 窗口(或终端标签页)中,正在用 Vim 编辑同一个code.c文件,那个 Vim 还没有关闭
此时我们需要注意:
我们刚刚Ctrl+Z会提示:
因为你用Ctrl+Z只是挂起(暂停)了 Vim,并没有关闭它。它现在正安静地待在后台,所以系统才会提示process ID: 2307 (STILL RUNNING)
所以正确的解决办法是在报错界面输入q退出,然后在命令行输入:
fg

回车,就行:

  • Ctrl+Z(挂起):Vim 进程暂停,但还在内存里。fg可以秒回,极其方便。

所以遇到问题就不要慌,找到自己出错的原因才能解决问题!

2.3.1在命令行对vim进行操作

如果我们想要光标在第一行,则可以:

vim code.c +1

此时回车有:

在vim命令行时常用的操作就这一个。

2.3.2命令模式下对vim进行操作

命令模式下(从插入模式按ESC能进入)键盘的输入,默认被当做命令来看待,如果命令不存在,则这个命令被丢弃。

命令模式下我们可以完成快速的文本编辑

命令模式下我们可以完成以下操作:

①进行光标的移动。

我们可以使用↑↓←→这四个方向键来移动光标,但是正规的vim应该用⼩写英⽂字⺟「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移⼀格。

如何理解hjkl分别时往左下上右呢?

h在26个字母的键盘分布hjkl的最左边,所以应该往左,同理,l在hjkl的最右边,应该往右,j可以理解为jump,向下跳,k可以理解为king,代表国王,应该向上。

②按Shift+g让光标跳到文章的最后。(即输入大写G)

③按Shift+4让光标到当前行结尾。(即输入$)

④按Shift+6让光标到当前行开头。(即输入^)

⑤按w光标跳到下个字的开头。(一个字与另外一个字用空格隔开或跳到(或跳到"后面这个解释太勉强了)(可跨行移动)

⑥按e光标跳到下个字的字尾。

⑦按b光标回到上个字的开头。

⑧按#l,光标跳到该行的第#个位置,如5l。

按gg,回到文本开始的地方。

按「ctrl」+「b」:屏幕往“后”移动⼀⻚ ,按「ctrl」+「f」:屏幕往“前”移动⼀⻚ ,按「ctrl」+「u」:屏幕往“后”移动半⻚ ,按「ctrl」+「d」:屏幕往“前”移动半⻚。

以下时删除文字:

①按x:每按一次,删除光标所在位置的一个字符。

②#x:删除光标所在位置包括自己以内的#个字符。

③X:每按一次,删除光标所在位置的“前面”一个字符。

④#X:删除光标所在位置不包括自己的#个字符。

⑤dd:删除光标所在行。

⑥#dd:从光标所在行开始删除#行。

⑦dd+p:剪切功能。

以下为复制:

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区
「yy」:复制光标所在⾏到缓冲区
「#yy」:例如,「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须
与“p”配合才能完成复制与粘贴功能。
以下 为替换:
「r」:替换光标所在处的字符。(若5r+a则会把光标及光标之后的四个字符替换成5个a)
「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。(进入REPLACE模式(只有在命令模式下才能进入))
撤销上一次操作:
u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次“u”可以执⾏
多次回复。
②「ctrl + r」: 撤销的恢复(撤销上一步撤销的操作,相当于Windows下的Ctrl+Y)
更改
①「cw」:更改光标所在处的字到字尾处
②「c#w」:例如,「c3w」表⽰更改3个字
跳⾄指定的⾏ :
「ctrl」+「g」列出光标所在⾏的⾏号。
②「#G」:例如,「15G」,表⽰移动光标⾄⽂章的第15⾏ ⾸。
Shift+`(即~):大写变小写,小写变大写,迅速进行大小写切换(只针对英文字母)。
Shift+#:选中一个单词,再用n可以查找下一个(实现查的功能)
批量化注释:在命令模式下Ctrl+V,会进入VISUAL BLOCK模式(块视图模式),此时就可以用hjkl的方式移动光标进行区域选择。(此时可以先Shift+i到第一行,然后输入//再按ESC即可注释):
批量化去注释:在命令模式下Ctrl+V,进入VISUAL BLOCK模式,用hjkl选中区域,再输入d,则会删除所选区域的所有字符,如:
此时我选择了第1-6行,第1-2列,此时再输入d即可删除:
我们还能通过#h,#j,#k,#l来完成向左向下向上向下#个字符的操作!
从命令模式进入插入模式,如果我们输入a,此时光标相对命令模式往后了一格,输入o,会再光标下面新起一行。
如果想要强制退出,在底行模式下使用q!命令即可!
我们没必要全记住,这些命令用多了就知道如何使用了!

2.3.3底行模式下对vim进行操作

底行模式下能完成的操作还是比较多的,除了之前说的:wq是保存退出外,还可以在root下如果没有权限的情况下我们仍然可以进行保存退出操作。
步骤如下:
先在tan下把权限改为000:
chmod 000 code.c

此时我们在root下进入/home/tan目录:

此时我们执行:

vim code.c

虽然它最后一行提示我们:readonly,但是我们是root啊,有最高权限,可以无视规则修改:

此时我们用:wq退出试一下:
它说我们要带个!才能保存退出,我们输入wq!就能退出了。
底行模式下:wq!:强制保存退出。w! :强制保存。
此外,底行模式下还能进行很多操作,如:set nu/set number标行号:
set nonu:底行模式下去行号。
把vim内容替换,如把printf替换成std::cout,可以:
s/printf/std::cout

它会把光标所在行第一个printf替换成std::cout

如果想要把光标所在的这一行的所有的l替换成i,用:

s/l/i/g

如果想要替换该文件的所有o变为e,可以:

%s/o/e/g

在底行执行/int会在文件中查找所有单词为int的地方(找到的第一个的行首):

若!ls -l有:

此时我们按任意按键就能回到vim界面!

此外还可以执行很多指令操作,也就是说底行模式可以在不退出vim的情况下执行命令操作。

2.3.4vim的其他操作

此时我们:

vim hello.c

它会进入vim界面:

此时,我们用:wq退出vim模式,再ls -l有:

也就是说,vim一个不存在的文件会创建一个文件。

但是我们vim helle.c,然后用:q退出有:

也就是说我们只要不保存就不会生成文件(可以试着写一些代码,如果也用:q退出还是不存在,但是此时我们需要使用q!退出,否则不能退出)。

我们还可以先在底行模式下w!再q也能创建新文件:

此外,我们还可以在底行模式下vs一个不存在的文件hellr.c(也可以vs一个已存在的文件)有:

:vs hellr.c

此时我们就可以分屏操作,如果想要移动光标按Ctrl+ww即可切换到另外一个界面。

此时我们用:q(不会创建文件)和:wq(会创建文件)就能退出。

2.4vim的简单配置

vim的配置最好在普通用户下进行,不要给root账号做配置。每次在启用vim之前会在当前用户的隐藏目录的.vimrc文件(用ls -la)就可以看到隐藏文件,vim时就会载入.vimrc的内容,然后呈现某种配置效果:

因为此时没有这个文件,我们需要touch一个:

vim的配置是在做什么?

vim的基本配置,就是在修改家目录下.vimrc的内容。(我配置好的vim不会影响其他人)

这个建议各位问AI大模型,以下是一个示例:

" 基础设置 set number " 显示行号 syntax on " 开启语法高亮 set tabstop=4 " 制表符宽度为 4 set shiftwidth=4 " 自动缩进宽度为 4 set expandtab " 将 Tab 键转换为空格 set autoindent " 开启自动缩进 set mouse=a " 启用鼠标支持 " 搜索优化 set hlsearch " 高亮搜索结果 set incsearch " 边输入边搜索 set ignorecase " 搜索时忽略大小写 set smartcase " 如果搜索含大写则智能识别 " 界面优化 set cursorline " 高亮当前行 set laststatus=2 " 总是显示状态栏 set ruler " 显示光标位置

配置好后vim code.c就能看到:

如果各位想要配置更多,可以去网上搜索资料进行配置。

http://www.jsqmd.com/news/1357981/

相关文章:

  • 你的2:4稀疏为什么白训了?Jetson Orin NX上从原理到踩坑全解析
  • 《凌微经·理悖相涵》完整全文总结
  • 海外服务器选型指南:从需求分析到实战部署的完整决策框架
  • 2026宜宾瓷砖空鼓维修本地强推维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • COMSOL多孔介质油水两相流模拟技术与应用
  • 微信小程序在工厂管理中的创新应用与实践
  • 2026 年更新:若羌有实力的2738无缝钢管订制厂家选哪家,它比普通阀管用处大8倍?这款273的器件为何能解决精密场景的泄漏痛点?-海隆钢管 - 鉴选官
  • Harbor与OpenLDAP对接实现企业级容器镜像仓库安全管理
  • 从客户实践到生态共建:四化信息科技机加工MES系统的服务之路
  • Redis String类型底层编码与性能优化解析
  • 打通Blender到UE5动画管线:ControlRig迁移实战指南
  • Android高斯模糊实现与性能优化全解析
  • LangChain应用部署实战:从FastAPI封装到Docker容器化
  • BepInEx 6.0.0:构建稳定高效的Unity游戏插件框架完全指南
  • 硕科隔热条实力测评报告 2026行业前五品牌综合解析优选 - 工业品牌热点
  • C++代码格式化实战:clang-format在Floorp项目中的配置与集成指南
  • 基于Dify与RAG技术构建专属游戏智能助手:从零到一实战指南
  • 华为MetaERP Oracle Fusion Cloud DOO(Distributed Order Orchestration)分布式订单编排全业务流程详解一、DOO 核心定位与底层设计思想1
  • 2026上海旧房翻新公司大比拼:5家热门品牌横向对比,益鸟美居凭报价透明与工艺标准优势突出 - 优家闲谈
  • 解决xactengine3_7.dll丢失的5种安全修复方法
  • C++网络性能优化:为cpp-httplib实现高效HTTP客户端连接池
  • 如何选择终极图像浏览器?ImageGlass免费支持90+格式的完整指南
  • 国内隔热条十大稳定品牌盘点,泰杰隔热材料口碑出众 - 工业推荐榜
  • 木桩定制厂家实力榜单,选对源头少走弯路
  • 虚幻引擎Pak文件分析:UnrealPakViewer可视化探查与资源优化实战
  • ChatCut online 整理编程教程视频:代码讲解如何避免剪断关键上下文
  • 赛禾铝木门:品质与设计的完美结合,打造家居新风尚
  • Canvas绘制欧盟旗帜:前端图形编程实战指南
  • 2026岳阳瓷砖空鼓维修本地优质维修师傅推荐:厨卫/客厅/阳台地砖 - 屋工匠
  • DeepSeek API涨价应对:技术架构优化与多供应商策略