安装与配置
深入学习 AWK:从入门到精通
《1.2 安装与配置》🛠️⚙️
学习目标 🎯
- 掌握如何检查系统是否已安装
awk; - 理解不同版本的
awk(如gawk,mawk,nawk)之间的区别与应用场景; - 学会如何在 Ubuntu、CentOS、EulerOS 等主流 Linux 发行版中安装和配置
awk; - 熟悉环境变量设置,确保脚本运行时调用正确的
awk版本。
核心重点 ✅
| 类别 | 内容 |
|---|---|
| 默认安装 | 大多数 Linux 系统默认安装了 gawk(GNU Awk) |
| 常见版本 | gawk(GNU)、mawk(轻量级)、nawk(原始贝尔实验室版) |
| 检测命令 | awk --version 或 which awk |
| 安装方法 | Ubuntu 使用 apt install gawk,CentOS 使用 yum install gawk |
| 环境变量设置 | 可通过修改 PATH 或使用 shebang 指定解释器路径 |
| 跨平台兼容性 | 所有版本基本兼容,但功能略有差异(推荐统一使用 gawk) |
详细讲解 💡
1. 检查是否已安装 awk 🔍🔍
在开始任何操作之前,首先确认你的系统是否已经安装了 awk。大多数现代 Linux 系统都默认安装了 gawk,但我们仍需要验证其存在性和版本。
✅ 命令一:查看当前 awk 的版本
awk --version
👀 输出示例:
GNU Awk 5.0.1, API 3.0 (GNU MPFR 4.1.0, GNU MP 6.2.1)
Copyright (C) 1989, 1991-2020 Free Software Foundation.
...
如果你看到类似输出,说明你使用的是 GNU Awk(gawk)。
✅ 命令二:查找 awk 可执行文件路径
which awk
👀 输出示例:
/usr/bin/awk
✅ 命令三:查看软链接指向哪个具体实现
ls -l /usr/bin/awk
👀 输出示例:
lrwxrwxrwx 1 root root 21 Jun 19 20:00 /usr/bin/awk -> /usr/bin/gawk
📌 小贴士:有些系统可能将 /usr/bin/awk 软链接到 mawk 或 nawk,这会影响脚本的行为。
2. 安装不同版本的 awk 📦🐧
虽然大多数系统默认安装了 gawk,但在某些场景下你可能需要切换到其他实现:
| 工具 | 描述 |
|---|---|
| gawk | GNU 实现,功能最全,支持数组、函数、正则等高级特性 |
| mawk | 更快更轻量,适合资源受限环境,但缺少部分高级功能 |
| nawk | 最早的贝尔实验室实现,兼容性好,但功能有限 |
🐧 在 Ubuntu 中安装不同版本的 awk
Ubuntu 默认使用 gawk,但你可以手动安装其他版本:
✅ 安装 gawk
sudo apt update
sudo apt install gawk
✅ 安装 mawk
sudo apt install mawk
安装后可使用以下命令切换默认 awk 引擎:
sudo update-alternatives --config awk
选择对应的数字即可切换。
🐄 在 CentOS/RHEL 中安装不同版本的 awk
CentOS 默认也使用 gawk,但你可以根据需求安装其他版本。
✅ 安装 gawk
sudo yum install gawk
✅ 安装 mawk(需 EPEL 源)
sudo yum install epel-release
sudo yum install mawk
同样可以使用 update-alternatives 切换默认引擎。
🛡️ 在 EulerOS 中安装不同版本的 awk
EulerOS 是华为推出的政企级操作系统,默认也使用 gawk,但可通过如下方式管理:
✅ 查看当前安装情况
rpm -q gawk
✅ 安装 gawk
sudo yum install gawk
✅ 安装 mawk(如果可用)
sudo yum install mawk
3. 配置环境变量(如果需要)🔧🛠️
有时你希望强制脚本使用某个特定版本的 awk,可以通过设置 PATH 或使用 shebang 来实现。
✅ 方法一:使用 shebang 明确指定解释器路径
在脚本第一行添加:
#!/usr/bin/gawk -f
这样可以确保即使系统默认是 mawk 或 nawk,该脚本也会使用 gawk 执行。
✅ 方法二:临时更改 PATH 环境变量
如果你想临时测试不同版本:
export PATH=/usr/local/bin:$PATH
然后将你想要使用的 awk 版本放在 /usr/local/bin 下,并重命名为 awk。
4. 不同 Linux 发行版上的行为差异 ⚠️🐧
| 对比项 | Ubuntu | CentOS | EulerOS |
|---|---|---|---|
默认 awk 实现 |
gawk |
gawk |
gawk |
是否支持 --re-interval 正则扩展 |
✅(默认启用) | ✅ | ✅ |
update-alternatives 支持 |
✅ | ✅ | ✅ |
| root 用户权限控制 | sudo 制度严格 | su 更常见 | 政企级安全强化 |
| 是否允许非 root 用户修改 PATH | ✅ | ✅ | ❗部分企业环境受限 |
📌 小贴士:
- 在政企或金融行业部署的 EulerOS 上,建议使用绝对路径调用
gawk。 - 若脚本用于生产环境,请始终使用 shebang 指定解释器路径以避免兼容性问题。
5. 实战演练:写一个简单的 awk 脚本来验证安装是否成功 🧪🧪
📝 创建一个名为 hello.awk 的脚本:
#!/usr/bin/gawk -f
BEGIN {
print "Hello from", ARGV[0];
print "Running with", ENVIRON["SHELL"], "on", ENVIRON["OSTYPE"];
}
✅ 赋予执行权限并运行:
chmod +x hello.awk
./hello.awk
👀 输出示例:
Hello from ./hello.awk
Running with /bin/bash on linux-gnu
📌 如果你能看到这样的输出,说明你的 gawk 安装和配置都是成功的!
总结 📋
本章我们详细讲解了如何在各种 Linux 系统中检查、安装和配置 awk,包括:
- 如何判断系统是否已安装
awk; - 各种发行版中安装
gawk、mawk和nawk的方法; - 如何切换默认
awk引擎; - 设置环境变量和 shebang 的技巧;
- 各个主流系统之间的兼容性差异;
- 实战编写并运行第一个
awk脚本。
接下来我们将进入《AWK 基础语法详解》,继续带你一步步写出属于自己的 awk 脚本!🚀📘✨
如果你准备好了,请告诉我:“下一章:基础语法!” 我将为你输出下一部分内容。

浙公网安备 33010602011771号