💻作 者 简 介:曾 与 你 一 样 迷 茫,现 以 经 验 助 你 入 门 Linux。
💡个 人 主 页:@笑口常开xpr 的 个 人 主 页
📚系 列 专 栏:Linux 探 索 之 旅:从 命 令 行 到 系 统 内 核
✨代 码 趣 语:make/Makefile 像 个 记 性 好 的 厨 师:食 谱(规 则)写 一 次,下 次 做 饭(编 译)不 用 再 想 步 骤,原 料(源 文 件)没 变 就 不 动 手,变 了 才 重 新 做 - - - 效 率 高 到 像 有 预 知 能 力。
💪代 码 千 行,始 于 坚 持,每 日 敲 码,进 阶 编 程 之 路。
📦gitee 链 接:gitee

在这里插入图片描述

         刚 碰 Linux 时,你 是 否 也 被 yum 依 赖、vim 模 式、gcc 选 项、make 构 建 搞 得 头 大?本 文 拆 解 这 些 核 心 工 具 的 使 用 逻 辑,一 步 一 图 带 你 打 通 “安 装 - - -> 编 辑 - - -> 编 译 - - -> 构 建” 全 流 程,让 操 作 从 生 涩 变 流 畅。


安 装 软 件

Linux 软 件 下 载

  1. 下 载 到 程 序 的 源 代 码,并 进 行 编 译,得 到 可 执 行 程 序。
  2. 在 Linux 系 统 中,rpm 是 用 于 管 理 RPM 格 式 软 件 包 的 命 令 行 工 具。
  3. yum 是 基 于 RPM 包 管 理 的 前 端 工 具,它 的 核 心 优 势 是 自 动 处 理 软 件 依 赖 关 系,无 需 手 动 安 装 依 赖 包,极 大 简 化 了 软 件 安 装 流 程。

yum

         yum 类 似 于 应 用 商 店。
         关 于 yum 的 所 有 操 作 必 须 保 证 主 机(虚 拟 机)网 络 畅 通!!!
         使 用 ping 指 令 ping www.baidu.com 验 证
在这里插入图片描述


rzsz

         在 Linux 系 统 中,rzsz 是 一 套 用 于 通 过 SSH 终 端 传 输 文 件 的 工 具(rz 用 于 上 传 文 件 到 服 务 器,sz 用 于 从 服 务 器 下 载 文 件 到 本 地),非 常 适 合 小 文 件 的 快 速 传 输。


安 装

  1. 用 户 先 切 换 到 root 中。
    在这里插入图片描述
  2. 输 入 指 令 yum list | grep lrzsz 来 查 看 需 要 的 软 件 包。
    通 过 yum list 命 令 可 以 罗 列 出 当 前 一 共 有 哪 些 软 件 包。由 于 包 的 数 目 非 常 多,这 里 我 们 需 要 使 用 grep 命 令 只 筛 选 出 我 们 需 要 的 包。
    在这里插入图片描述
  3. 输 入 yum install + 软 件 名 称 及 版 本 安 装,需 要 输 入 y / N 表 示 安 装。
    在这里插入图片描述
  4. 软 件 卸 载 ,输 入 指 令 yum remove + 软 件 名 称,需 要 输 入 y / N 表 示 卸 载。
    在这里插入图片描述

yum 的 存 储 文 件
官 方 yum 源
在这里插入图片描述


扩 展 源
yum install -y epel-release


推 荐 的 软 件
yum install -y sl


-y:安 装 时 不 需 要 输 入 y / N 直 接 安 装。


在这里插入图片描述
在这里插入图片描述


yum install -y cowsay
在这里插入图片描述


虚 拟 机:一 般 Linux 操 作 系 统,默 认 配 置 的 yum 源 都 是 国 外 的,有 可 能 访 问 yum 源 比 较 慢,需 要 更 新 yum 源,即 替 换 yum 源 文 件。
云 服 务 器:一 般 已 经 替 换 了。


vim 编 辑 器

定 义

         vim 是 一 个 多 模 式 的 编 辑 器,主 要 有 命 令 模 式(默 认 模 式),插 入 模 式 和 底 行 模 式。


命 令 模 式

用 户 所 有 的 输 入 都 会 被 当 做 命 令,一 般 不 会 作 为 文 本 输 入。

  1. 输 入 vim + 文 件 进 入 vim 编 辑 器。
    在这里插入图片描述
  2. 刚 进 入 vim 为 命 令 模 式,此 时 不 能 编 辑 文 件。
    在这里插入图片描述
  3. 输 入 i 后 进 入 插 入 模 式,如 下 图 所 示,页 面 最 下 面 出 现 INSERT。
    在这里插入图片描述
  4. 输 入 完 成 后,按 键 盘 左 上 角 的 Esc,然 后 输 入 : 进 入 底 行 模 式,接 着 输 入wq 即 可 保 存 文 件 并 退 出。
    在这里插入图片描述

光 标 定 位

开 头
输 入 gg,光 标 会 移 动 到 文 本 的 第 1 行 的 开 头。
在这里插入图片描述
结 尾
shift + g或 者 直 接 输 入 G 光 标 移 动 到 文 件 的 结 尾。
在这里插入图片描述
第 n 行
输 入 n + shift + g 或 者 nG,n 为 行 数。
输 入 3G
在这里插入图片描述
复 制
yy 复 制 光 标 所 在 行。

粘 贴
p 粘 贴 到 光 标 所 在 行 的 下 一 行。
yy n p,复 制 粘 贴 光 标 所 在 行 n 次。n 为 要 复 制 多 少 行。

撤 销
u

剪 贴
dd - - - 剪 贴 或 者 按 照 行 删 除。

yy10p
在这里插入图片描述


定 位
shift + $ 定 位 光 标 到 当 前 行 结 尾。
shift + ^ 定 位 光 标 到 当 前 行 开 始。

移 动
w 光 标 以 单 词 为 单 位 向 后 移 动。
b 光 标 以 单 词 为 单 位 向 前 移 动。
nw 光 标 以 单 词 为 单 位 向 后 移 动 n 个 单 词。
nb 光 标 以 单 词 为 单 位 向 前 移 动 n 个 单 词。
h 光 标 以 1 个 字 符 为 单 位 向 左 移 动。
j 光 标 以 1 个 字 符 为 单 位 向 下 移 动。
k 光 标 以 1 个 字 符 为 单 位 向 上 移 动。
l 光 标 以 1 个 字 符 为 单 位 向 右 移 动。
也 可 以 使 用 键 盘 上 的 上 下 左 右 键。

巧 记 h j k l
h(左):键 盘 的 最 左 边
l(右):键 盘 的 最 右 边
j(下):jump 向 下 跳
k(上):King 国 王,高 高 在 上

shift + ~:大 小 写 转 换。
r + 字 符:修 改 单 个 字 符。
n + r + 字 符:对 光 标 之 后 的 n 个 字 符 进 行 批 量 化 替 换。
shift + r + 输 入 字 符:输 入 字 符 进 行 替 换,即 批 量 替 换 模 式,对 内 容 整 体 进 行 替 换,按 Esc 退 出。
x:对 光 标 之 后 的 字 符 进 行 删 除。
ctrl + r:撤 销 之 前 的 撤 销。


分 屏

  1. 底 行 中 输 入 :vs + 文 件 名 可 以 实 现 分 屏 操 作。
    在这里插入图片描述
    在这里插入图片描述
  2. 输 入 ctrl + w + w 可 以 切 换 光 标 所 在 位 置。
    在这里插入图片描述
    在这里插入图片描述
  3. 输 入 指 令 n yy 可 以 复 制 多 少 行,这 里 我 输 入12yy,即 复 制 12 行。然 后 输 入 ctrl + w + w 使 光 标 切 换 到 左 边,输 入 p 即 可 完 成 粘 贴。

光 标 在 哪 一 个 窗 口 里 面,就 对 哪 一 个 窗 口 进 行 操 作。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

底 行 模 式

先 输 入 : 进 入 底 行。

         vim 在 保 存 并 退 出(wq) 会 形 成 新 的 文 件,如 果 直 接 退 出(q) 没 有 形 成 新 的 文 件。

wq:保 存 文 件 并 退 出,w 为 保 存 文 件,q 为 退 出 vim
w!:强 制 保 存
q!:强 制 退 出
wq!:强 制 保 存 并 退 出

         不 退 出 vim 可 以 执 行 外 部 的 命 令,输 入 完 成 后 可 以 按 Enter 返 回 vim。
:! + 命 令
在这里插入图片描述
在这里插入图片描述
调 出 行 号
set nu 或 者 set number
在这里插入图片描述
去 掉 行 号
set nonu 或 者 set nonumber
在这里插入图片描述

批 量 化 注 释

  1. 移 动 光 标 到 需 要 注 释 的 第 一 行 的 行 首(命 令 模 式)。
    在这里插入图片描述

  2. 按 Ctrl + v 进 入 可 视 块 模 式(左 下 角 会 显 示 - - - VISUAL BLOCK --)。
    在这里插入图片描述

  3. 按 j 键 向 下 移 动 光 标,选 中 需 要 注 释 的 所 有 行(选 中 的 是 每 行 的 相 同 列 位 置,通 常 是 行 首)。
    在这里插入图片描述

  4. 按 大 写 i (shift + i)进 入 块 插 入 模 式(此 时 光 标 会 跳 到 选 中 块 的 第 一 行)。
    在这里插入图片描述

  5. 输 入 注 释 符 号(如 // 或 #)。
    在这里插入图片描述

  6. 按 Esc 退 回 命 令 模 式,所 有 选 中 行 的 行 首 会 自 动 添 加 注 释 符 号。
    在这里插入图片描述

取 消 多 行 注 释

  1. 移 动 光 标 到 注 释 符 号 所 在 的 第 一 行 的 第 一 个 注 释 字 符(如 // 的 第 一 个 /)。
    在这里插入图片描述
  2. 按 Ctrl + v 进 入 可 视 块 模 式。
    在这里插入图片描述
  3. 按 j 和 l 向 下 和 向 右 选 中 所 有 需 要 取 消 注 释 的 行,确 保 选 中 的 是 注 释 符 号 所 在 的 列(如 // 占 两 列,就 选 中 这 两 列)。
    在这里插入图片描述
  4. 按 d 键 删 除 选 中 的 注 释 符 号,完 成 批 量 取 消 注 释。
    在这里插入图片描述

vim 配 置

自 动 配 置

自 动 配 置

在这里插入图片描述


手 动 配 置

  1. 输 入 cd ~ 进 入 用 户 家 目 录。可 以 使 用 pwd 来 查 看 目 录,格 式 为
    在这里插入图片描述
  2. 在 用 户 家 目 录 下 创 建 隐 藏 文 件 .vimrc,这 就 是 vim 的 配 置 文 件。
    在这里插入图片描述
  3. 使 用 vim 打 开 文 件,并 输 入 set nu,然 后 保 存 并 退 出。打 开 vim 不 用 输 入 指 令 也 可 以 看 见 行 号。
    在这里插入图片描述
    在这里插入图片描述
    一 个 用 户 一 个 vim 配 置 文 件,不 会 互 相 影 响。
    一 般 不 建 议 给 root 配 置,给 普 通 用 户 就 可 以。

sudo 无 法 使 用

         如 图 所 示,sudo 在 普 通 用 户 不 能 使 用。
在这里插入图片描述


解 决 方 法

  1. sudoers 的 文 件 夹 在 /etc/sudoers,想 要 改 变 文 件 内 容 必 须 切 换 到 root 用 户 中。
    在这里插入图片描述
    如 果 是 普 通 用 户 无 法 访 问 文 件。
    在这里插入图片描述
  2. 使 用 vim 打 开 文 件 后,在 底 行 模 式 输 入 :set nu 显 示 出 行 号,下 拉 到 100 行 左 右 的 样 子
    在这里插入图片描述
  3. 找 到 如 下 图 所 示 的 2 行,和 root 一 行 类 似,添 加 用 户 名,添 加 完 成 后 保 存 并 退 出 即 可。

注 意
         因 为 这 个 文 件 为 只 读 属 性,所 以 需 要 输 入 :wq! 用 来 强 制 保 存 并 退 出。
在这里插入图片描述
5. 保 存 完 成 之 后,就 可 以 使 用 sudo。
在这里插入图片描述


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

背 景 知 识

  1. 预 处 理(进 行 宏 替 换,去 注 释,展 开 头 文 件,条 件 编 译)
  2. 编 译(生 成 汇 编)
  3. 汇 编(生 成 机 器 可 识 别 代 码)
  4. 连 接(生 成 可 执 行 文 件 或 库 文 件)

格 式

gcc [选项] 要编译的文件 [选项] [目标文件]


gcc 选 项

-E:只 激 活 预 处 理,这 个 不 生 成 文 件,你 需 要 把 它 重 定 向 到 一 个 输 出 文 件 里 面。
-S:编 译 到 汇 编 语 言 不 进 行 汇 编 和 链 接。
-c:编 译 到 目 标 代 码。
-o:文 件 输 出 到 文 件,即 重 命 名。
-static:此 选 项 对 生 成 的 文 件 采 用 静 态 链 接。
-g:生 成 调 试 信 息。GNU 调 试 器 可 利 用 该 信 息。
-shared:此 选 项 将 尽 量 使 用 动 态 库,所 以 生 成 文 件 比 较 小,但 是 需 要 系 统 由 动 态 库 -O0、-O1、-O2、-O3 编 译 器 的 优 化 选 项 的 4 个 级 别,-O0 表 示 没 有 优 化,-O1 为 缺 省 值,-O3 优 化 级 别 最 高。
-w:不 生 成 任 何 警 告 信 息。
-Wall:生 成 所 有 警 告 信 息。


代 码 执 行

  1. 使 用 编 辑 器 创 建 并 编 写 程 序 文 件。
    在这里插入图片描述
  2. 编 译 程 序 文 件。
    在这里插入图片描述
  3. 链 接 并 执 行 程 序 文 件。
    在这里插入图片描述

         如 果 是 C 语 言 文 件 使 用 gcc,如 果 是 C++ 文 件 使 用 g++ 编 译,C 语 言 文 件 也 可 以 使 用 g++ 编 译。

         .\ 可 以 告 诉 系 统 可 执 行 程 序 的 位 置。


函 数 库

为 什 么 能 够 在 windows 或 者 linux 上 进 行 C/C++ 或 者 其 他 形 式 的 开 发 呢?
         因 为 系 统 一 定 要 提 前 或 者 后 续 安 装 上 C/C++ 开 发 的 相 关 头 文 件 或 者 库 文 件。如 下 图,linux 的 头 文 件 在 /usr/include 的 文 件 夹 中。
在这里插入图片描述

动 静 态 库

         函 数 库 一 般 分 为 静 态 库 和 动 态 库 两 种。
Linux :.so(动 态 库).a(静 态 库)
windows :.dll(动 态 库).lib(静 态 库)
         静 态 库 是 指 编 译 链 接 时,把 库 文 件 的 代 码 全 部 加 入 到 可 执 行 文 件 中,因 此 生 成 的 文 件 比 较 大,但 在 运 行 时 也 就 不 再 需 要 库 文 件 了。其 后 缀 名 一 般 为 “.a”。
         动 态 库 与 之 相 反,在 编 译 链 接 时 并 没 有 把 库 文 件 的 代 码 加 入 到 可 执 行 文 件 中,而 是 在 程 序 执 行 时 由 运 行 时 链 接 文 件 加 载 库,这 样 可 以 节 省 系 统 的 开 销。动 态 库 一 般 后 缀 名 为 “.so”。
gcc 在 编 译 时 默 认 使 用 动 态 库。完 成 了 链 接 之 后,gcc 就 可 以 生 成 可 执 行 文 件,如 下 所 示。gcc 默 认 生 成 的 二 进 制 程 序,是 动 态 链 接 的。

可 执 行 程 序 = 头 文 件 提 供 方 法 的 声 明 + 库 文 件 提 供 方 法 的 实 现 + 代 码

         在 编 译 器 使 用 静 态 库 进 行 静 态 连 接 的 时 候,会 将 自 己 的 方 法 拷 贝 到 目 标 程 序 中,程 序 以 后 不 用 再 依 赖 静 态 库。

         在 Linux 中,编 译 形 成 的 可 执 行 程 序,默 认 采 用 的 是 动 态 链 接,即 需 要 提 供 动 态 库。如 果 按 照 静 态 链 接 的 方 式,进 行 形 成 可 执 行 程 序,需 要 添 加 -static 选 项,需 要 提 供 静 态 库。

linux 下 安 装 C 语 言 静 态 库
sudo yum install -y glibc-static
linux 下 安 装 C++ 静 态 库
sudo yum install -y libstdc++-static

         如 果 没 有 静 态 库,不 能 使 用 -static,如 果 没 有 动 态 库,只 有 静 态 库 并 且 gcc 能 找 到,可 以 编 译 链 接。gcc 默 认 优 先 动 态 链 接,可 执 行 程 序 不 一 定 全 是 动 态 链 接 或 者 静 态 链 接,可 能 是 混 合 的。-static 的 本 质 是 改 变 优 先 级,即 将 所 有 的 链 接 换 成 静 态 链 接。

动 静 态 库 区 别

         动 态 库 是 共 享 库,有 效 的 节 省 资 源,占 用 的 体 积 小,节 省 磁 盘 空 间、内 存 空 间 和 网 络 空 间。

         动 态 库 不 能 缺 失,一 旦 对 应 的 动 态 库 缺 失,影 响 的 不 止 一 个 程 序,可 能 导 致 很 多 程 序 无 法 正 常 运 行。

         静 态 库 不 依 赖 动 态 库,程 序 可 以 独 立 运 行。体 积 较 大,比 较 消 耗 资 源。

debug

         debug 是 开 发 者 模 式,可 以 被 追 踪 调 试,形 成 可 执 行 程 序 的 时 候 添 加 了 debug 信 息,可 执 行 程 序 形 成 的 时 候,不 是 无 序 的 二 进 制 构 成,有 自 己 的 二 进 制 格 式,即 ELF 格 式。

Linux 项 目 自 动 化 构 建 工 具 -make/Makefile

         make 是 一 条 指 令,makefile 是 一 个 当 前 目 录 下 的 文 件。会 不 会 写 makefile,从 一 个 侧 面 说 明 了 一 个 人 是 否 具 备 完 成 大型 工 程 的 能 力。
         一 个 工 程 中 的 源 文 件 不 计 数,其 按 类 型、功 能、模 块 分 别 放 在 若 干 个 目 录 中,makefile 定 义 了 一 系 列 的 规 则 来 指 定,哪 些 文 件 需 要 先 编 译,哪 些 文 件 需 要 后 编 译,哪 些 文 件 需 要 重 新 编 译,甚 至 于 进 行 更 复 杂 的 功 能 操 作。
         makefile 带 来 的 好 处 就 是 - - - “自 动 化 编 译”,一 旦 写 好,只 需 要 一 个 make 命 令,整 个 工 程 完 全 自 动 编 译,极 大 的 提 高 了 软 件 开 发 的 效 率。
         make 是 一 个 命 令 工 具,是 一 个 解 释 makefile 中 指 令 的 命 令 工 具 ,一 般 来 说,大 多 数 的 IDE 都 有 这 个 命 令。makefile 是 一 个 文 件,两 个 搭 配 使 用,完 成 项 目 自 动 化 构 建。

  1. 创 建 makefile 文 件,并 编 写 指 令。
    在这里插入图片描述
  2. 输 入 make 可 以 编 译 代 码 文 件。
    在这里插入图片描述
  3. 执 行 可 执 行 程 序。
    在这里插入图片描述4. 清 理 可 执 行 程 序。
    在这里插入图片描述

依 赖 关 系 和 依 赖 方 法

         make 通 过 依 赖 关 系 执 行 依 赖 方 法 中 的 内 容。make 会 自 动 推 导 makefile 中 的 依 赖 关 系,是 一 种 栈 式 结 构。
         make 会 通 过 递 归 一 层 又 一 层 地 去 找 文 件 的 依 赖 关 系,直 到 最 终 编 译 出 第 一 个 目 标 文 件。
         在 找 寻 的 过 程 中,如 果 出 现 错 误,比 如 最 后 被 依 赖 的 文 件 找 不 到,那 么 make 就 会 直 接 退 出,并 报 错,而 对 于 所 定 义 的 命 令 的 错 误,或 是 编 译 不 成 功,make 根 本 不 理。
         make 只 管 文 件 的 依 赖 性,如 果 在 我 找 了 依 赖 关 系 之 后,冒 号 后 面 的 文 件 还 是 不 在,那 么 对 不 起,我 就 不 工 作 啦。
在这里插入图片描述
         使 用 make 时,make 会 自 顶 向 下 扫 描 makefile 文 件,将 第 一 个 依 赖 关 系 作 为 默 认 的 目 标 文 件,使 用 时 可 以 直 接 写 make。建 议 不 要 将 清 理 放 在 最 前 面,而 将 编 译 放 在 最 前 面。
在这里插入图片描述


清 理
         当 第 1 次 编 译 成 功 后,如 果 没 有 修 改 程 序 文 件 或 者 清 理,就 不 能 进 行 编 译。这 是 因 为 不 需 要 编 译,因 为 编 译 还 是 同 样 的 文 件,主 要 是 为 了 提 高 编 译 效 率。


原 因
         一 定 是 源 文 件 形 成 可 执 行 程 序,先 有 源 文 件,才 有 可 执 行 程 序,一 般 而 言,源 文 件 的 最 近 修 改 时 间 比 可 执 行 程 序 早。如 果 更 改 了 源 文 件,历 史 上 还 有 可 执 行 程 序,那 么 源 文 件 的 修 改 时 间 比 可 执 行 程 序 新。只 需 要 比 较 源 文 件 和 可 执 行 程 序 的 最 近 修 改 时 间 即 可。
在这里插入图片描述


stat

查 看 文 件 时 间。
空 文 件 在 磁 盘 中 也 占 空 间。
文 件 = 文 件 内 容 + 属 性


文 件 时 间

  1. 创 建 时 间(Creation Time):文 件 被 首 次 创 建(生 成)的 时 间,即 文 件 在 存 储 设 备 上 被 建 立 的 时 刻。
  2. 修 改 时 间(Modification Time):文 件 内 容 最 后 一 次 被 修 改(如 编 辑、写 入 数 据)的 时 间。
  3. 访 问 时 间(Access Time):文 件 最 后 一 次 被 “访 问”(如 打 开 查 看、读 取 内 容)的 时 间。
  4. 状 态 改 变 时 间(Change Time):文 件 的 属 性 最 后 一 次 被 修 改 的 时 间。
    在这里插入图片描述
             Modify 改 变 会 引 起 change 改 变,change 改 变 不 一 定 会 引 起 Modify 改 变。
             在 实 际 中 访 问 时 间 是 最 频 繁 的 更 改,过 高 频 率 更 新 Access 会 使 磁 盘 卡 顿。为 了 防 止 这 种 情 况,系 统 会 根 据 Change 和 Modific 的 修 改 来 更 改 Access。

touch
         可 以 更 改 文 件 所 有 的 时 间 为 最 新 时 间。
touch -m 文 件:更 改 Modify 的 时 间。
touch -a 文 件:更 改 Acess 的 时 间。
在这里插入图片描述
         如 图 所 示,因 为 源 文 件 的 修 改 时 间 比 可 执 行 程 序 的 时 间 早,所 以 不 允 许 编 译。make 会 根 据 源 文 件 和 目 标 文 件 的 新 旧,判 断 是 否 需 要 重 新 执 行 依 赖 关 系 进 行 编 译。
在这里插入图片描述
         可 以 设 置 为 伪 目 标,用 .PHONY 修 饰,即 让 命 令 总 是 被 执 行 的。
在这里插入图片描述

         makefile 文 件 中 的 gcc test.c -o mytest 这 条 指 令 可 以 使 用 gcc -o $@ $^ 来 代 替,$@ 表 示 :左 边 的 内 容,$^ 表 示:右 边 的 内 容。

在这里插入图片描述
         指 令 前 面 加 上 @ 使 用 时 不 会 显 示 出 来。

在这里插入图片描述
在这里插入图片描述

all

可 以 同 时 执 行 多 个 依 赖 关 系。
mytest.c

#include<stdio.h>
int main()
{
    printf("hello linux\n");
    return 0;
}

mytest.cpp

#include<iostream>

using namespace std;
int main()
{
    cout << "hello world\n" << endl; 
    return 0;
}

makefile

.PHONY:all
all:mytestcpp mytestc
mytestcpp:mytest.cpp
	g++ mytest.cpp -o mytestcpp -std=c++11
mytestc:mytest.c
	gcc mytest.c -o mytestc -std=c99
.PHONY:clean
clean:
	rm -rf mytestcpp mytestc

使 用 all 可 以 同 时 执 行 all 后 面 的 文 件。
在这里插入图片描述


在这里插入图片描述


总 结

         yum 管 安 装、vim 管 编 辑、gcc 管 编 译、make 管 构 建 - - - 这 些 工 具 是 Linux 开 发 的 基 础 齿 轮。多 敲 命 令、多 试 项 目,你 会 发 现 它 们 从 “复 杂” 变 “顺 手”。入 门 不 难,动 手 就 是 捷 径。

Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐