Linux 新手救命指南!软件安装 + vim 操作 + gcc 编译,一篇搞定基础工具链----《Hello Linux!》(4)

Linux 新手救命指南!软件安装 + vim 操作 + gcc 编译,一篇搞定基础工具链----《Hello Linux!》(4)

文章目录

前言

刚上手 Linux 时,你是不是也陷入过这些 “手足无措” 的瞬间?想装个软件,分不清该用源码编译还是 yum,搜教程越看越乱;用 vim 打开文件,半天找不到 “退出” 按钮,只能强行关窗口;用 gcc 编译代码,只知道生成 a.out,遇到 “链接错误” 就慌了神;别人说 “动态链接省空间”,你却连 “动态库和静态库有啥区别” 都搞不清……

其实 Linux 基础工具的核心逻辑一点都不复杂 —— 难的是没人把 “软件安装→文件传输→代码编辑→编译链接” 这一套流程串起来,讲清每个步骤的 “为什么” 和 “避坑点”。

这篇文章就是给新手的 “保姆级工具手册”:从软件安装的 3 种方式(yum 最省心、rpm 需手动、源码要编译)讲起,教你用 rz/sz 传文件(附 lrzsz 安装方法);再拆透 vim 的 3 大模式(命令 / 插入 / 底行)和必背快捷键(批量注释、光标跳转、撤销恢复);最后带你走通 gcc 编译的 4 个步骤(预处理→编译→汇编→链接),搞懂动静态链接的区别(为什么静态链接程序大却不依赖库)。

每个操作都附具体命令(比如 yum install -y lrzsz、gcc text.c -o text),每个易踩的坑都标红提醒(比如 vim 模式不能直接切换、yum 要联网、静态库需单独装)。不管你是刚学 Linux 的学生,还是需要用 Linux 做开发的新人,跟着走一遍,就能摆脱 “遇事就搜” 的困境,把基础工具用得顺手又扎实。

Linux安装软件的几种方法

Linux安装软件的几种方法:

1.源代码安装 2.rpm安装 3.yum安装-这个就相当于windows的应用商城(自己一般用这个)

rz和sz指令

rz :从本地上传文件到远程 Linux 服务器(拖拽方式)

sz:从远程 Linux 服务器下载文件到本地计算机

这俩的使用前提:Linux要安装lrzsz

yum指令

在使用yum时要保证虚拟机网络畅通

看yum能安装啥软件:yum list 通常用管道去筛选自己需要的包

“x86_64” 后缀表示64位系统的安装包

0.12.20-36表示软件的版本

“el7” 表示操作系统发行版的版本 --centos7

, base 表示的是 “软件源” 的名称 --比如:华为应用商店

yum下载和卸载软件

下载的话用yum install [-y] 要下载的东西eg:lrzsz.x86_64

-y的话就不会再次问你要不要下载了
卸载的话是yum remove [-y] 要卸载的东西
注意:1.yum安装软件只能一个装完了再装另一个,但是卸载可以同时卸载

2.yum要root权限或者sudo放权才行
引申:1.ls /etc/yum.repos.d/可以看yum有啥下载链接

2.扩展yum源的安装yum install -y epel-release

yum源的概念:一个存放各种软件包的 “仓库”

引申:一般Linux操作系统,默认配置的yum源是国外的,访问会比较慢–如果是虚拟机的话,需要自己替换成国内的yum源,但是服务器的话,一般厂商会替换好了的

vim指令

Vim是个多模式的编译器

输入vim 文件名后就会就进入vim全屏幕编辑画面

这里的文件如果不存在的话,vim会创建一个空的出来用,但是如果出去都没保存的话,最后会连空文件都没有
在这里插入图片描述
上面是各个模式间的切换方法(命令模式又叫正常模式)

注意:插入模式和底行模式间不能直接切换

第四种模式:shift+R:替换模式,对内容进行整体替换

(就是直接在原有的上面写,原有的直接没了)
Vim进行多文件操作的方法:

在底行模式输入vs 文件名,能把那个文件也打开(规则跟vim打开的那个一样)

然后ctrl+ww可以进行窗口光标的切换

光标显示在哪个窗口,进行的操作就是对哪个窗口的

Vim三个模式下的一些键位的功能

命令模式:
底行模式:

w:保存文件 q:退出文件(注意是q不是p)

wq:保存并退出文件(连着输! 在页面显示的是:wq)

后面加!(w! q! wq!)的话就是强制…
引申:Linux删除的话是删除的光标前一个的东西
想对代码进行批量注释:

1.命令模式下ctrl+v,然后HJKL来选中区域(一行选中两个字符长度就行了)

2.再用shift+i切到插入模式,输入//,再切到命令模式就行了

取消批量化注释:

1.命令模式下ctrl+v,然后HJKL来选中区域(把//选中)

2.输入d就行了

Vim的配置

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:.vimrc。比如: /root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。比如:touch .vimrc

但是,建议一个用户一个vim配置文件,这样不会相互影响,还有就是不要给root做配置,很麻烦
常用的配置选项:自己还想要其他的话,就上网搜(写在.vimrc里面!)

设置语法高亮: syntax on

显示行号: set nu

设置缩进的空格数为4: set shiftwidth=4

自己比较推荐的话是gitee上HGtz2222大佬的配置

他的配置下的这个install.sh不建议删除,隐藏起来就行了

Linux编译器-gcc/g++使用

gcc是针对于C语言的 g++是C++和C都可以用,但是C一般用gcc

gcc和g++
的用法是相同的,下面就拿gcc举例了
但是:C/C++开发环境不仅仅指的是vs,gcc、g++,更重要的是,语言本身的头文件和库文件

背景知识

一份代码成为一个可执行程序需要经历的步骤

1.预处理

2.编译(生成汇编)

3.汇编(生成机器可识别代码)

4.链接(生成可执行文件或库文件)
预处理里面要进行:

1.去注释 2.头文件展开 3.条件编译 4.宏替换

条件编译的作用举例:根据不同的编译条件,进行功能的裁剪啥的

用法

gcc的格式:gcc [选项] 要编译的文件 [选项 目标文件] [-g] [-static]

加上-static之后所有的链接都会变成静态链接

在后面还能加eg:-std=c98

默认是用release方式发布的,加了-g就是debug版本了

想一步到位的话就: eg:gcc text.c -o text (不要记其他乱七八糟的写法)

如果没有要求目标文件的文件名的话,默认是叫a.out

这个可执行程序的运行:eg:./a.out

引申:也就是如果要执行程序,则需要写出程序的相对路径或绝对路径
预处理:

到编译结束:

到汇编结束:引申:这里的text.o文件叫做可重定位二进制文件,简称目标文件,(也就是.obj文件)

这个文件不能独立执行,需要经过连接才能执行

有可执行权限和有可执行能力是两码事!

到链接结束:(将目标文件和库进行连接形成可执行程序)

引申:1.-o 是 gcc 的一个选项,作用是 指定输出文件的名称
gcc的选项还有比如:-g:生成带有调试信息的可执行文件

动态链接和静态链接

.o文件通过动态链接和动态库相连,连接完之后对应的动态库不能缺失,不然会出问题

(通过动态链接跳转到动态库中去执行,执行完再返回代码调用处)

编译器在对.o文件使用静态库进行静态链接时,会将库的方法拷贝到目标程序中,这个程序以后就不用依赖静态库了
在Linux中,编译形成可执行程序,默认采用的就是动态链接

如果想要按照静态链接的方式,需要添加-static选项

引申:一个可执行程序里面不一定是全部动态链接或者全部静态链接

动态库(也叫共享库)和静态库

库的概念:就是把源文件(.c文件)经过一定的翻译,然后打包–只给别人库文件可以达到隐藏源文件的目的(库本质就是一个文件)

库有自己的命名规则:eg:libname.so.xxx

name那个位置的才是库的名字,xxx那个位置是其版本号,lib是Linux库文件名的固定前缀,so表示是动态库

Linux下,.so是动态库,.a是静态库

一般系统默认会把动态库安装好,静态库不会
安装静态库的方法:yum install -y glibc-static --C的静态库
如果没有静态库,但是用了-static,是不行的

如果没有动态库,只有静态库,用默认方式–是可以的

(因为gcc只是默认优先动态链接而已)

动态库vs静态库

动态库是共享库,优点:可以有效的节省资源(比如:磁盘空间,内存空间,网络空间)

静态库:优点:不依赖库,程序可以独立运行

debug版本和release版本

debug版本可以被追踪调试 release版本不可以,但是快

而且debug版本形成可执行程序的时候添加了debug信息,体积会大些
扩展:

可执行程序形成的时候,不是无序的二进制构成,是由自己的格式的(ELF格式)

Read more

AI 前端到底是什么?为什么说AI前端是未来趋势?

AI 前端到底是什么?为什么说AI前端是未来趋势?

⭐ 一、AI 前端和普通前端有什么区别? 下面是一张非常直观的对比: 内容普通前端AI 前端功能核心UI 展示 + 用户交互UI 展示 + 用户交互 + 智能内容生成与后端交互调用普通 REST API调用 大模型 API / AI 服务输出形式页面固定页面可动态生成 / 布局可变化原型制作Figma → 人工写页面Figma → AI 自动生成代码前端逻辑手写逻辑部分逻辑由 AI 执行(智能体 UI)用户体验按钮 + 表单对话式 UI / 多模态交互技术要求JS / Vue / ReactJS + AI SDK + Prompt + 多模态理解能力 一句话: 👉 普通前端 = 静态 UI 👉 AI 前端 = 会思考的 UI ⭐ 二、AI 前端需要学习哪些技术? AI 前端不是新语言,而是 前端

By Ne0inhk
零代码接入:DMXAPI+Next-Web搭建私人AI助手

零代码接入:DMXAPI+Next-Web搭建私人AI助手

欢迎来到小灰灰的博客空间!Weclome you! 博客主页:IT·小灰灰 爱发电:小灰灰的爱发电 热爱领域:前端(HTML)、后端(PHP)、人工智能、云服务 目录 核心方案:为什么是 DMXAPI + Next-Web? 1. 后端引擎:DMXAPI——一个Key,连接全世界 2. 前端应用:Next-Web——最美的“外壳” 实战搭建:三步拥有私人AI助手 第一步:注册DMXAPI,获取“万能钥匙” 第二步:一键部署Next-Web(Vercel无服务器部署) 第三步:绑定自定义域名与配置模型 进阶玩法:让助手更“私人” 结语 在2026年的今天,大模型已经不再是极客手中的技术玩具,而是逐渐演变为像电力一样的基础设施。然而,对于大多数普通用户乃至创业者来说,

By Ne0inhk

Jetbrains系列工具 Idea Websotrm中使用Claude Code 可白嫖

市面上很多AI工具都是基于vsCode 习惯Idea的用户使用起来会特别别扭 本文将展示idea中如何使用ClaudeCode 1. 注册api (二选一) 1. 智普AI国内转发 GLM-4.6 地址: 直达链接 价格: 首年200+ 2. 硅基流动 地址: 直达链接 白嫖模型: Qwen/Qwen3-8B 配置: {"env":{"ANTHROPIC_AUTH_TOKEN":"sk-xxx","ANTHROPIC_BASE_URL":"https://api.siliconflow.cn","ANTHROPIC_DEFAULT_HAIKU_MODEL"

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 jaspr 为鸿蒙端开启极速渲染的现代 Web 开发新范式(Dart Web 框架首选)

Flutter for OpenHarmony: Flutter 三方库 jaspr 为鸿蒙端开启极速渲染的现代 Web 开发新范式(Dart Web 框架首选)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 开发时,我们偶尔需要跳出原生的 HAP 容器,寻找更轻量、更适合在移动端 Web 加载的方案。虽然 Flutter Web 极其强大,但其生成的 Canvas/Wasm 产物体积巨大,在鸿蒙系统加载较慢。是否存在一种方案,既能使用 Dart 的声明式开发体验,又能产出纯正、轻量的 HTML/CSS/JS 节点? jaspr 就是这个问题的终极答案。它是一个模仿 Flutter 语法、但专注于渲染原生 Web DOM 的现代框架。通过 Jaspr,鸿蒙开发者可以利用熟悉的 Widget、Component 和生命周期,

By Ne0inhk