news 2026/4/21 1:33:21

初阶linux2( Linux 环境基础开发工具使用指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初阶linux2( Linux 环境基础开发工具使用指南)

📚 目录(俏皮版)
🍳 一、软件管家 yum —— 做饭先备料
查看菜谱(软件包)
点菜安装
撤菜卸载
文件搬运工 rzsz
✍️ 二、编辑器 vim —— 键盘上的指尖芭蕾
三种核心模式
基本操作:进、写、退
正常模式常用指令(附例子)
末行模式常用指令
简单配置你的 vim
🔧 三、编译器 gcc/g++ —— 翻译官的故事
编译四部曲
函数库的悄悄话:静态 vs 动态
常用 gcc 选项
🐛 四、调试器 gdb —— 捉虫小能手
开始调试前的重要一步
gdb 常用命令(含例子)
🏗️ 五、自动化构建 make/Makefile —— 懒人必备神器
Makefile 的核心三要素
一个完整的例子
make 的工作原理
📊 六、第一个小程序:进度条 —— 动态视觉初体验
前置知识:\r 与 \n 的爱恨情仇
行缓冲区实验
进度条完整代码与解释
🌐 七、版本控制 git —— 代码的云端储存柜
安装与配置
三板斧实战(含免密配置)

🍳 一、软件管家 yum —— 做饭先备料
在 Linux 下装软件,传统方法是下载源码手动编译 —— 就像从种麦子开始做面包,太麻烦。yum 就是“应用商店”,帮你自动下载、安装、卸载软件包。

查看菜谱(软件包)

yum list|grep关键词

例子:查找用于 Windows 和 Linux 之间传文件的 lrzsz 包

yum list|greplrzsz

作用:列出所有名称包含 lrzsz 的可用软件包,并显示版本、架构等信息。

点菜安装

bashsudoyuminstall软件包名

例子:安装 lrzsz

bashsudoyuminstalllrzsz

作用:自动下载并安装该软件。sudo 是因为需要写入系统目录。

撤菜卸载

sudoyum remove 软件包名

例子:卸载 lrzsz

sudoyum remove lrzsz

作用:彻底删除软件及其配置文件。

文件搬运工 rzsz
安装 lrzsz 后,在 XShell 等终端中可以直接拖拽文件上传(rz 命令)或下载到 Windows(sz 文件名)。

💡 提示:所有 yum 操作必须联网!可以用 ping www.baidu.com 测试网络。

✍️ 二、编辑器 vim —— 键盘上的指尖芭蕾
Vim 是 Linux 自带的“神级编辑器”,没有鼠标,全靠键盘命令。初学可能觉得难,但熟练后效率飞升。

基本操作:进、写、退
1.打开/新建文件:vim test.c
2.按i进入插入模式,输入代码
3.按Esc回到正常模式
4.输入 :wq保存并退出

正常模式常用指令

末行模式常用指令

简单配置vim
在家目录创建 .vimrc 文件,写入:

syntax on" 语法高亮 set nu "显示行号setshiftwidth=4" 缩进4空格

重启vim后效果立马显现

🔧 三、编译器 gcc/g++ —— 翻译官的故事
C/C++ 代码是人能读的“外语”,gcc 负责把它翻译成机器能执行的 0/1 指令。整个过程分为四步

完整例子(以 hello.c 为例):

# 1. 预处理gcc-Ehello.c-ohello.i# 2. 编译gcc-Shello.i-ohello.s# 3. 汇编gcc-chello.s-ohello.o# 4. 链接gcc hello.o-ohello ./hello# 运行

一步到位:gcc hello.c -o hello 直接生成可执行文件。

函数库的悄悄话:静态 vs 动态

  • 动态库(.so):编译时只记录“指针”,运行时再加载。省空间,默认使用。
    查看动态链接:file hello 会显示 dynamically linked。

  • 静态库(.a):把库代码直接复制进可执行文件。体积大,但可独立运行。
    使用静态链接:gcc -static hello.c -o hello_static


🐛 四、调试器 gdb —— 捉虫小能手
程序出错了?gdb让你一步步观察程序的“内心活动”,找到 bug 藏身之处。

开始调试前的重要一步
gcc 默认生成的是 release 版(无法调试)。必须加上 -g 选项:

gcc-gmyprog.c-omyprog

gdb 常用命令(含例子)
启动调试:gdb myprog

调试小实战:假设程序第 20 行有 bug,我们想看看变量 sum 的变化

gdb myprog(gdb)b20# 在第20行打断点(gdb)r# 运行(gdb)psum# 打印当前 sum(gdb)n# 执行下一行(gdb)psum# 再打印,对比变化

🏗️ 五、自动化构建 make/Makefile —— 懒人必备神器
当项目有十几个 .c 文件时,手动输入 gcc 命令会让人崩溃。Makefile 就像一个菜谱,告诉 make 命令如何一步步编译。

Makefile 的核心三要素
**1.目标:**想生成的文件(如 hello)

**2.依赖:**生成目标需要的原材料(如 hello.o)

**3.命令:**如何从依赖生成目标(如 gcc hello.o -o hello)

一个完整的例子

假设我们有一个 hello.c:

#include<stdio.h>intmain(){printf("Hello Makefile!\n");return0;}

创建 Makefile 文件(注意 Tab 缩进,不能用空格):

hello: hello.o gcc hello.o-ohello hello.o: hello.s gcc-chello.s-ohello.o hello.s: hello.i gcc-Shello.i-ohello.s hello.i: hello.c gcc-Ehello.c-ohello.i .PHONY: clean clean:rm-fhello.i hello.s hello.o hello

执行

make# 自动编译生成 hello./hello# 运行makeclean# 删除所有临时文件

make 的工作原理
1.找当前目录下的 Makefile 或 makefile

2.执行第一个目标(这里是 hello)

3.如果目标文件不存在,或其依赖比它更新,就执行对应命令

4.依赖又可以触发下层目标,形成一个链式反应
注意:💡 .PHONY 声明 clean 是伪目标,总是执行其命令(避免和同名文件冲突)。

📊 六、第一个小程序:进度条 —— 动态视觉初体验

写一个动态刷新的进度条,能帮你深刻理解 \r(回车)、\n(换行) 以及行缓冲区的概念。

前置知识:\r 与 \n 的爱恨情仇
\n:换行(Newline),将光标移到下一行相同位置(在 Linux 中也会隐含回到行首,但标准 C 中需要区分)

\r:回车(Carriage Return),将光标移到当前行行首

在老式打字机上,\r\n 才是真正的“换到新行行首”。Linux 下通常只用 \n,但进度条需要原地刷新,所以要用 \r。

#include<stdio.h>#include<unistd.h>intmain(){printf("Hello");// 没有 \nsleep(3);// 等待3秒return0;}

现象:先等待3秒,然后才一起打印 Hello。
原因:printf 默认是行缓冲,遇到 \n 或程序结束才刷新。加上 fflush(stdout) 可以立即输出。

进度条完整代码与解释

#include<stdio.h>#include<unistd.h>#include<string.h>intmain(){inti=0;charbar[102];memset(bar,0,sizeof(bar));// 清空数组constchar*label="|/-\\";// 旋转光标的四种形态(注意转义反斜杠)while(i<=100){printf("[%-100s][%d%%][%c]\r",bar,i,label[i%4]);fflush(stdout);// 立即刷新,不用等 \nbar[i++]='#';// 填充一个 #usleep(100000);// 休眠 0.1 秒,模拟进度}printf("\n");// 最后换行return0;}

编译运行

gcc progress.c-oprogress ./progress

现象:会看到一个动态刷新的进度条,并且一个小光标在转圈

🌐 七、版本控制 git —— 代码的云端储存柜
Git 是代码的时光机,可以随时回到任意历史版本,还能把代码托管到 GitHub 上。

sudoyuminstallgitgitconfig--globaluser.name"你的名字"gitconfig--globaluser.email"你的邮箱"

三板斧实战

1. 克隆项目到本地
先在 GitHub 上新建仓库,复制 HTTPS 或 SSH 地址。

gitclone https://github.com/你的用户名/仓库名.gitcd仓库名
  1. 第一板斧:git add—— 告诉 git 要跟踪哪些文件
echo"# My Project">>README.md# 新建一个文件gitaddREADME.md# 添加单个文件gitadd.# 添加当前目录所有改动

3.第二板斧:git commit—— 在本地拍个快照

gitcommit-m"添加 README 文件"

-m 后面是本次修改的说明(强烈建议写清楚改了什么)。

  1. 第三板斧:git push —— 同步到 GitHub 云端
gitpush origin main

如果是第一次推送,可能需要输入 GitHub 用户名和密码(或 token)。

其他常用命令

gitstatus# 查看当前状态gitlog# 查看提交历史gitpull# 从云端拉取最新代码

多动手敲命令,遇到错误别慌——每个报错都是成长的机会。如果在某一步卡住了,不妨回头再看看例子,或者用 man 命令 查阅官方手册。加油 同志们!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 1:26:15

Godot 4中实现第三人称相机的技巧与实例

在Godot 4中构建3D环境时,如何实现一个流畅且功能完善的第三人称相机系统是许多开发者面临的挑战。本文将通过一个实例,详细介绍如何在Godot 4中使用Spring Arm实现第三人称相机,并解决常见的问题,如相机抖动和角色偏移。 基本概念 在Godot中,第三人称相机通常通过Camer…

作者头像 李华
网站建设 2026/4/21 1:21:12

传感器非线性飘移解析

传感器非线性飘移是指传感器输出信号与输入物理量之间的映射关系随时间或环境条件发生非线性的、缓慢的、不可预测的变化。这种飘移会直接导致测量精度下降&#xff0c;是精密测量系统&#xff08;如无人机、机器人、高精度仪器&#xff09;中常见且棘手的问题。 传感器非线性…

作者头像 李华