
目录1.1什么是软件包1.2Linux软件的生态问题1.3apt具体操作1.3.1查看软件包1.3.2安装软件1.3.3卸载软件1.4安装源2.编辑器vim2.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主要使⽤aptAdvanced 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/aptyum/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 lrzsz1.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.编辑器vimvi/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保存退出。此外我们也可以用ShiftZZ保存退出但是不要按成CtrlZ了这样虽然可以退出但是再vim code.c此时会有这次我们没有d选项可以按要么就只能删除这个文件重新再写一遍代码要么就读懂了这个选项EEdit anyway强行编辑如果两个 Vim 同时修改同一个文件最终保存时会造成数据混乱甚至导致文件内容损坏。也不建议按RRecover因为modified: no说明交换文件里没有未保存的数据恢复没有意义。因为这和上次不一样上次是提示modified: YES且NEWER than swap file!说明是 Vim 异常崩溃留下的残留文件交换文件比磁盘文件旧可以安全删除。这次是提示modified: no交换文件没有修改且(STILL RUNNING)进程还在运行——这意味着你很可能在另一个 Xshell 窗口或终端标签页中正在用 Vim 编辑同一个code.c文件那个 Vim 还没有关闭。此时我们需要注意我们刚刚CtrlZ会提示因为你用CtrlZ只是挂起暂停了 Vim并没有关闭它。它现在正安静地待在后台所以系统才会提示process ID: 2307 (STILL RUNNING)。所以正确的解决办法是在报错界面输入q退出然后在命令行输入fg回车就行CtrlZ挂起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代表国王应该向上。②按Shiftg让光标跳到文章的最后。即输入大写G③按Shift4让光标到当前行结尾。即输入$)④按Shift6让光标到当前行开头。即输入^⑤按w光标跳到下个字的开头。一个字与另外一个字用空格隔开或跳到(或跳到后面这个解释太勉强了可跨行移动⑥按e光标跳到下个字的字尾。⑦按b光标回到上个字的开头。⑧按#l光标跳到该行的第#个位置如5l。⑨按gg回到文本开始的地方。⑩按「ctrl」「b」屏幕往“后”移动⼀⻚ 按「ctrl」「f」屏幕往“前”移动⼀⻚ 按「ctrl」「u」屏幕往“后”移动半⻚ 按「ctrl」「d」屏幕往“前”移动半⻚。以下时删除文字①按x每按一次删除光标所在位置的一个字符。②#x删除光标所在位置包括自己以内的#个字符。③X每按一次删除光标所在位置的“前面”一个字符。④#X删除光标所在位置不包括自己的#个字符。⑤dd删除光标所在行。⑥#dd从光标所在行开始删除#行。⑦ddp:剪切功能。以下为复制①「yw」将光标所在之处到字尾的字符复制到缓冲区中。②「#yw」复制#个字到缓冲区③「yy」复制光标所在⾏到缓冲区。④「#yy」例如「6yy」表⽰拷⻉从光标所在的该⾏“往下数”6⾏⽂字。⑤「p」将缓冲区内的字符贴到光标所在位置。注意所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。以下 为替换①「r」替换光标所在处的字符。若5ra则会把光标及光标之后的四个字符替换成5个a②「R」替换光标所到之处的字符直到按下「ESC」键为⽌。进入REPLACE模式只有在命令模式下才能进入撤销上一次操作①「u」如果您误执⾏⼀个命令可以⻢上按下「u」回到上⼀个操作。按多次“u”可以执⾏多次回复。②「ctrl r」: 撤销的恢复撤销上一步撤销的操作相当于Windows下的CtrlY更改①「cw」更改光标所在处的字到字尾处②「c#w」例如「c3w」表⽰更改3个字跳⾄指定的⾏ ①「ctrl」「g」列出光标所在⾏的⾏号。②「#G」例如「15G」表⽰移动光标⾄⽂章的第15⾏ ⾸。Shift即~大写变小写小写变大写迅速进行大小写切换只针对英文字母。Shift#:选中一个单词再用n可以查找下一个实现查的功能批量化注释在命令模式下CtrlV会进入VISUAL BLOCK模式块视图模式此时就可以用hjkl的方式移动光标进行区域选择。此时可以先Shifti到第一行然后输入//再按ESC即可注释批量化去注释在命令模式下CtrlV进入VISUAL BLOCK模式用hjkl选中区域再输入d则会删除所选区域的所有字符如此时我选择了第1-6行第1-2列此时再输入d即可删除我们还能通过#h,#j,#k,#l来完成向左向下向上向下#个字符的操作从命令模式进入插入模式如果我们输入a此时光标相对命令模式往后了一格输入o会再光标下面新起一行。如果想要强制退出在底行模式下使用q!命令即可!我们没必要全记住这些命令用多了就知道如何使用了2.3.3底行模式下对vim进行操作底行模式下能完成的操作还是比较多的除了之前说的:wq是保存退出外还可以在root下如果没有权限的情况下我们仍然可以进行保存退出操作。步骤如下先在tan下把权限改为000chmod 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此时我们就可以分屏操作如果想要移动光标按Ctrlww即可切换到另外一个界面。此时我们用:q不会创建文件和:wq会创建文件就能退出。2.4vim的简单配置vim的配置最好在普通用户下进行不要给root账号做配置。每次在启用vim之前会在当前用户的隐藏目录的.vimrc文件用ls -la就可以看到隐藏文件vim时就会载入.vimrc的内容然后呈现某种配置效果因为此时没有这个文件我们需要touch一个vim的配置是在做什么vim的基本配置就是在修改家目录下.vimrc的内容。我配置好的vim不会影响其他人这个建议各位问AI大模型以下是一个示例 基础设置 set number 显示行号 syntax on 开启语法高亮 set tabstop4 制表符宽度为 4 set shiftwidth4 自动缩进宽度为 4 set expandtab 将 Tab 键转换为空格 set autoindent 开启自动缩进 set mousea 启用鼠标支持 搜索优化 set hlsearch 高亮搜索结果 set incsearch 边输入边搜索 set ignorecase 搜索时忽略大小写 set smartcase 如果搜索含大写则智能识别 界面优化 set cursorline 高亮当前行 set laststatus2 总是显示状态栏 set ruler 显示光标位置配置好后vim code.c就能看到如果各位想要配置更多可以去网上搜索资料进行配置。