未记录事实核验 · 状态:现行内容
记录仅说明核验时间与维护状态,不保证适用于所有环境;使用前请留意正文中的版本、适用条件与风险提示。
warning 适用边界与维护说明
本文适合数据从业者入门认识 Linux 内核、发行版、目录树和 Shell,并独立练习基础命令;不提供生产部署方案、当前发行版排名或性能保证。命令示例主要面向常见 Linux 命令行环境,macOS 的工具选项、不同 Shell 的补全行为及 type ls 的输出可能不同,示例路径 /data/logs 也需按本机实际目录替换。发行版选型应确认具体版本、支持状态和组织规范。“下一步”已统一为文末一组导航;本次仅作结构审阅,未进行外部事实核验或剩余链接目标验证。 已取消无法确定目标的可点击引用「Hadoop」,保留原提及;Missing link target: Hadoop 已取消无法确定目标的可点击引用「Kafka」,保留原提及;Missing link target: Kafka 已取消无法确定目标的可点击引用「MySQL」,保留原提及;Missing link target: MySQL 已取消无法确定目标的可点击引用「PostgreSQL」,保留原提及;Missing link target: PostgreSQL 已取消无法确定目标的可点击引用「ClickHouse」,保留原提及;Missing link target: ClickHouse
Linux基础概念 - 数据从业者入门必读
abstract 本文概要
- 理解 Linux 是什么,和 Windows 有什么不同
- 为什么数据工作离不开 Linux
- 主流发行版 CentOS 和 Ubuntu 的区别
- 命令行思维入门
Linux 是什么
Linux 是一个开源的操作系统内核,由芬兰程序员 Linus Torvalds 在 1991 年创建。
和 Windows 的最大区别在于:Linux 内核是开源软件,可在遵守其开源许可证要求的前提下使用、修改和再发布;发行版及商业支持服务不一定免费。
这带来了一个结果:市面上有几十种基于 Linux 内核的操作系统,统称为 Linux 发行版(Distribution),比如 CentOS、Ubuntu、Debian、Red Hat 等。
note 和 macOS 的关系
macOS 具有 Unix 血缘,Linux 是独立开发的类 Unix 内核,两者并非都由 Unix 源码演变而来。Mac 的终端可用于练习许多相似的命令,但不是 Linux 环境,工具实现和命令选项可能不同;例如 macOS 自带的 ls 通常不支持 --help。
为什么数据从业者必须懂 Linux
Linux 是大数据生产部署中的常见环境
| 技术 | 运行环境 |
|---|---|
| Hadoop / [[【技术与工具】/Spark/00-Spark学习路线图 | Spark]] / [[【技术与工具】/Flink/00-Flink学习路线图 |
| Kafka / ZooKeeper | Linux 服务 |
| MySQL / PostgreSQL / ClickHouse | Linux 部署 |
| Python / Jupyter | Linux 服务器部署 |
常见场景:本地 Mac/Windows 可用于开发,也能运行数据任务;生产任务可能部署在公司服务器或云环境。本文不提供平台占比统计,不能将“服务器 99% 是 Linux”作为已证实的普遍结论。
数据工作中的具体场景
- 开发数据管道:SSH 登录服务器,提交 Spark/Flink 作业,查看运行日志
- 处理大文件:用 awk/grep 筛选或统计日志。若以“100GB 日志在 30 秒内完成统计”为示例目标,是否可实现取决于统计逻辑、硬件、存储吞吐、缓存与并行条件,不能作为通用性能保证。
- 自动化任务:写 Shell 脚本 + crontab,让数据同步自动每天跑
- 排查故障:凌晨报警,登服务器看日志、查进程、定位错误
- 部署工具:在服务器上安装 Python、配置 Conda 环境
主流发行版选择
下面介绍数据工作中可能接触到的 CentOS 系列和 Ubuntu;这不是当前发行版使用率排名。
CentOS 系列(区分 CentOS Linux 与 CentOS Stream)
特点:
- CentOS Linux 曾是 RHEL 的下游重构发行版;CentOS Stream 与 RHEL 的关系不同,不能将两者的发布与支持模式混为一谈
- 包管理器:yum(新版用 dnf)
- 默认 Shell:bash
使用场景:
- 企业生产服务器的可能使用场景;本文未提供淘宝、京东等公司的实际部署材料,不将具体企业名称作为采用证据
- 大数据集群(Hadoop/Spark 集群)
- 数据库服务器
注意:
- CentOS Linux 8 已于 2021 年停止维护;CentOS Linux 与 CentOS Stream 需分别识别,不能把 CentOS Linux 作为仍持续维护的统一推荐
- CentOS Stream 或 Rocky Linux 可作为进一步了解的选项;本文未提供企业迁移比例或具体迁移案例
Ubuntu(开发者友好)
特点:
- 包管理器:apt
- 界面友好,社区活跃,文档丰富
- LTS(长期支持版)每 2 年发布
使用场景:
- 个人学习环境
- 开发测试服务器
- 云服务器(AWS/GCP 上的默认推荐之一)
tip 选哪个?
- 公司服务器:先确认公司实际使用的发行版、版本与支持状态,按组织规范操作,不预设一定是 CentOS
- 自己学习:推荐 Ubuntu,生态更友好,遇到问题更容易搜到答案
- 好消息:许多常用基础命令相通,但本文没有支持“95% 完全相同”的统计;差异还可能涉及软件版本、仓库、配置位置、安全策略和发行版生命周期,不仅是包管理器
命令行思维
从 Windows 的图形界面(点击鼠标)切换到 Linux 的命令行(敲命令),需要一个思维转变。
命令的基本结构
命令名 [选项] [参数]
ls -la /home/user
- 命令名:要执行的程序,比如
ls(列出文件) - 选项(Option):用
-或--开头,调整命令行为- 短选项:
-l、-a(单字母,可合并写-la) - 长选项:
--help、--version(完整单词)
- 短选项:
- 参数(Argument):命令操作的对象,比如文件路径
几个核心命令示例
# ls:列出当前目录的文件
ls
# ls -l:以详细格式列出(显示权限、大小、时间)
ls -l
# ls -la:详细格式 + 显示隐藏文件(以.开头的文件)
ls -la
# ls -lh:详细格式 + 文件大小用人类可读格式(KB/MB/GB)
ls -lh /data/logs
获取帮助的方式
# man:查看命令的完整手册(Manual)
# 按 q 退出
man ls
# --help:快速查看帮助(比 man 简洁)
ls --help
# type:查看命令是什么类型
type ls
# ls is /bin/ls
tip 命令行的超级武器:Tab 补全
输入命令或路径的前几个字母,按 Tab 键 自动补全。 不知道有哪些文件?输入路径前缀,双击 Tab 列出所有匹配项。 这是命令行效率的核心,务必养成习惯。
Linux 目录结构简介
Linux 只有一棵目录树,根目录是 /(正斜杠)。和 Windows 的 C:\、D:\ 完全不同。
/ # 根目录
├── home/ # 普通用户的家目录
│ ├── alice/ # 用户 alice 的家目录
│ └── bob/ # 用户 bob 的家目录
├── root/ # root 用户的家目录
├── etc/ # 配置文件目录(nginx.conf、hosts 等都在这里)
├── var/ # 可变数据(日志文件在 /var/log/)
│ └── log/ # 系统和应用日志
├── tmp/ # 临时文件(清理策略取决于系统配置,不能保证每次重启都清空)
├── usr/ # 用户程序
│ └── local/ # 本地安装的软件
├── opt/ # 第三方软件(Hadoop、Spark 常装在这里)
├── data/ # 数据目录(非标准,公司常自定义)
└── bin/ # 基础命令(ls、cp、rm 等)
note 数据工作关注的目录
/home/你的用户名/- 你的工作目录,在这里写代码、存数据/var/log/- 系统日志,排查问题时常来翻/opt/或/data/- 公司的大数据组件通常装在这里/etc/- 配置文件,改配置时用到
详细目录操作见 03-文件系统与目录操作。
Shell 是什么
Shell 是命令解释器。它解析输入,执行内建命令或启动外部程序;这些程序通过系统调用使用内核提供的服务,并非所有命令都直接交给内核执行。
常见的 Shell 类型:
| Shell | 说明 | 使用场景 |
|---|---|---|
| bash | Bourne Again Shell,最常用 | Linux 默认 |
| zsh | 功能更强,配合 oh-my-zsh 很好用 | macOS 默认,高阶用户 |
| sh | 最基础的 POSIX Shell | 写兼容性脚本时用 |
tip 查看登录 Shell 配置提示(不等同于当前正在运行的 Shell)
echo $SHELL
# /bin/bash 或 /bin/zsh
小结
| 概念 | 关键点 |
|---|---|
| Linux | 开源操作系统内核,常用于大数据基础设施 |
| 发行版 | CentOS 系列与 Ubuntu 是本文介绍的发行版示例,选择时需区分版本、支持状态和实际需求 |
| 命令结构 | 命令名 [选项] [参数] |
| 目录结构 | 以 / 为根的单棵树 |
| Shell | 命令解析器,bash 最常用 |
掌握检查
读完本文后,用以下问题检验自己是否真的理解了:
- [ ] 能说出 Linux 和 Windows 在文件系统组织方式上的根本区别(单棵树 vs 多盘符)
- [ ] 能说明本文介绍的 CentOS 系列与 Ubuntu 的特点,并知道实际选型需确认发行版版本、支持状态和组织环境
- [ ] 知道
/etc、/var、/home、/tmp这四个目录各自存放什么 - [ ] 能写出一条完整命令的基本结构:命令名、选项、参数各是什么
- [ ] 能说出 bash 和 zsh 的基本区别,并知道 echo $SHELL 通常显示登录 Shell 配置,不保证代表当前正在运行的 Shell
下一步
#Linux #操作系统 #数据工程 #入门基础