两种 Linux 发行版:Ubuntu 与 CentOS Shell 环境核心差异对比(查看 Linux 版本,Hadoop 是什么)

Xshell5作为远程连接工具,可通过命令行查看连接的Linux服务器版本。


推荐使用cat /etc/os-releaselsb_release -a查看发行版信息,特定系统可用cat /etc/redhat-release(CentOS)或cat /etc/debian_version(Debian)。


内核版本用uname -r查看。


Ubuntu和CentOS在包管理(apt vs yum)、防火墙(ufw vs firewalld)、网络配置(netplan vs ifcfg)等方面存在差异,但基础Shell命令相同。


建议先掌握当前系统的管理工具,再学习其他发行版。

Xshell5 怎么查看自己的电脑现在用的是Linux的哪个版本


Xshell 只是一个远程连接工具,你通过它查看到的系统版本,实际上是你所连接的远程服务器的 Linux 版本。


在 Xshell5 成功连接到远程服务器后,你可以直接在命令行中输入以下几种命令来查看 Linux 的版本信息:


🌟 方法一:通用且推荐的方法(适用于绝大多数现代 Linux)


输入以下命令,可以查看到非常详细的发行版信息(如系统名称、版本号等):

bash 复制代码
cat /etc/os-release

或者使用这个命令,它会以标准格式输出系统的发行商和版本号:

bash 复制代码
lsb_release -a

注:如果提示找不到 lsb_release 命令,说明你的系统是最小化安装,可以尝试用方法二。


💻 方法二:针对特定发行版的快捷命令


如果你大概知道服务器的系统类型,可以使用更精准的命令:

  • 如果是 CentOS 或 Red Hat 系统 ,输入:
    cat /etc/redhat-release
  • 如果是 Debian 系统 ,输入:
    cat /etc/debian_version
  • 如果只是想快速看一眼登录界面的版本提示 ,输入:
    cat /etc/issue

⚙️ 补充:查看 Linux 内核版本

如果你想了解的是 Linux 的内核版本(Kernel Version),而不是发行版(如 Ubuntu 22.04 或 CentOS 7),可以直接输入:

bash 复制代码
uname -r

同时在使用两种 Linux 发行版

bash 复制代码
mumu@MuJinqiu:~/bigdata/2026/test$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.3 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
mumu@MuJinqiu:~/bigdata/2026/test$
bash 复制代码
[hadoop@node100 tmp]$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Ubuntu 和 CentOS 的 Shell 基础命令(lscdgrepawksedpskillsystemctl)几乎一样,主要差异在包管理(apt vs yum)、防火墙(ufw vs firewall-cmd)和网络配置。


Hadoop 是什么?


一句话概括 :Hadoop 是一个分布式存储 + 分布式计算 的开源框架,专门用来处理海量数据(TB/PB 级别)。


一、为什么需要 Hadoop?

传统方式 海量数据时代的问题
一台超级计算机 贵!几百万起步
单机硬盘 存不下(1台机器最多几十TB)
单机计算 太慢(处理1TB数据可能要好几天)

Hadoop 的解决方案 :用很多台普通电脑组成集群,一起存、一起算。


二、Hadoop 的两大核心组件

组件 全称 作用 通俗比喻
HDFS Hadoop Distributed File System 分布式存储 把一个大文件拆成很多块,分散存到多台机器上
MapReduce Map + Reduce 分布式计算 先分头处理(Map),再汇总结果(Reduce)

2.1 HDFS(存储)

bash

bash 复制代码
v

特点

  • 自动备份(每个块默认存 3 份)

  • 一台机器挂了,数据不丢

2.2 MapReduce(计算)

text

复制代码
任务:统计 1TB 日志文件中每个单词出现的次数

传统方式:1 台机器读 1TB 文件 → 算到天荒地老

MapReduce 方式:
1. Map 阶段:100 台机器各读 10GB,分别统计自己那部分
2. Reduce 阶段:汇总 100 台机器的结果

三、Hadoop 生态圈(你面试会遇到的)

组件 用途 说明
HDFS 分布式存储 核心
MapReduce 分布式计算(批处理) 核心,但较慢
YARN 资源调度 管理集群的 CPU/内存,分配任务
Hive SQL 查询(用 SQL 写 MapReduce) 数据仓库,用类 SQL 查 HDFS
HBase 分布式 NoSQL 数据库 实时读写
Spark 内存计算框架 比 MapReduce 快 100 倍(面试重点!)
ZooKeeper 分布式协调 管理配置、选主

四、Hadoop vs 普通 Linux

对比项 普通 Linux Hadoop
存储 单机硬盘(1台机器) HDFS(多台机器)
计算 单机 CPU 内存 多台机器并行计算
文件操作 lscatrm hdfs dfs -ls-cat-rm
适用数据量 GB 级别 TB/PB 级别

Hadoop 常用命令(和 Linux 很像)

bash

bash 复制代码
# Linux 命令
ls /data/
cat /data/file.txt
rm /data/file.txt

# Hadoop HDFS 命令(前面加 hdfs dfs -)
hdfs dfs -ls /data/
hdfs dfs -cat /data/file.txt
hdfs dfs -rm /data/file.txt

五、你之前环境里的 hadoop 用户

你在笔记里看到过这个路径:

text

复制代码
/home/hadoop/

hadoop 同时是两样东西

  1. 软件框架:大数据处理工具

  2. 系统用户:Linux 里专门运行 Hadoop 服务的账号

就像:

  • mysql 既是数据库软件,也是 Linux 系统用户

  • oracle 既是数据库公司/软件,也是 Linux 用户


六、大数据开发面试常问的 Hadoop 问题

问题 简要答案
HDFS 默认数据块大小? 128MB(以前是 64MB)
默认备份几份? 3 份
NameNode 和 DataNode 区别? NameNode 管"目录"(元数据),DataNode 存"文件内容"
MapReduce 的 Shuffle 是什么? Map 到 Reduce 之间的数据排序和传输过程
Hadoop 和 Spark 区别? Spark 用内存计算(快),Hadoop MR 用磁盘(慢但稳)

总结一句话

Hadoop = 用一群普通电脑组成的大数据存储 + 计算平台,核心是 HDFS(存)和 MapReduce(算),是大数据技术的"祖师爷"。

你现在学 Linux 命令,就是为后面操作 Hadoop 集群打基础(因为 hdfs dfs -lsls 很像)。


Ubuntu 与 CentOS Shell 环境核心差异对比


虽然 Ubuntu 和 CentOS 默认都使用 bash 作为 Shell,但在软件包管理、防火墙、网络配置等系统管理命令上存在显著差异。


以下是针对你学习阶段的详细对比:


📦 软件包管理

场景 Ubuntu (apt) CentOS (yum/dnf)
安装软件 sudo apt install <包名> sudo yum install <包名>
卸载软件 sudo apt remove <包名> sudo yum remove <包名>
更新软件源 sudo apt update sudo yum check-update
升级所有软件 sudo apt upgrade sudo yum update
搜索软件包 apt search <关键词> yum search <关键词>
列出已安装 apt list --installed yum list installed

核心区别 :Ubuntu 使用 Debian 系的 APT (Advanced Package Tool),CentOS 使用 Red Hat 系的 YUM(Yellowdog Updater Modified)或 DNF。


🔥 防火墙管理

场景 Ubuntu (ufw) CentOS (firewalld)
查看状态 sudo ufw status sudo firewall-cmd --state
启用防火墙 sudo ufw enable sudo systemctl start firewalld
禁用防火墙 sudo ufw disable sudo systemctl stop firewalld
开放端口 sudo ufw allow 22/tcp sudo firewall-cmd --add-port=22/tcp --permanent
删除规则 sudo ufw delete allow 22 sudo firewall-cmd --remove-port=22/tcp --permanent
重载配置 sudo ufw reload sudo firewall-cmd --reload
查看规则列表 sudo ufw status numbered sudo firewall-cmd --list-all

核心区别 :Ubuntu 默认使用 UFW (Uncomplicated Firewall),CentOS 使用 firewalld 。firewalld 需要 --permanent 参数才能持久化配置,且必须执行 --reload 生效。


🌐 网络配置

配置项 Ubuntu CentOS
配置文件位置 /etc/netplan/ 目录下 .yaml 文件 /etc/sysconfig/network-scripts/ifcfg-<接口名>
配置格式 YAML 格式 INI/键值对 格式
重启网络服务 sudo netplan apply systemctl restart network
查看接口 ip addr showip a 同上(通用命令)
临时配置IP sudo ip addr add 192.168.1.100/24 dev eth0 同上(通用命令)

核心区别

  • Ubuntu 18.04+ 使用 netplan + YAML 格式

  • CentOS 使用传统的 ifcfg-* 文件 + INI 格式

示例对比

Ubuntu (/etc/netplan/00-installer-config.yaml):

yaml

复制代码
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true

CentOS (/etc/sysconfig/network-scripts/ifcfg-eth0):

ini

复制代码
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
DEVICE=eth0
ONBOOT=yes

🔐 用户与权限

场景 Ubuntu CentOS
新建用户是否有 sudo 权限 ✅ 默认有(需输入用户密码) ❌ 默认没有(需手动配置)
sudo 组名称 sudo wheel
添加用户到管理组 sudo usermod -aG sudo <用户名> sudo usermod -aG wheel <用户名>
root 密码 安装时设置 安装时设置

核心区别

  • Ubuntu :新建用户默认可以用 sudo(输自己密码)

  • CentOS :新建用户没有 sudo 权限,需要手动添加到 wheel


🐚 Shell 脚本差异(#!/bin/sh)

项目 Ubuntu CentOS
/bin/sh 指向 dash(Debian Almquist Shell) bash(Bourne Again Shell)
是否支持数组 ❌ dash 不支持 ✅ bash 支持
脚本兼容性建议 使用 #!/bin/bash 确保兼容 都可以

核心区别 :Ubuntu 的 /bin/shdash (更轻量、更快),而 CentOS 的 /bin/shbash 的软链接。


这意味着:

  • 在 Ubuntu 中使用 #!/bin/sh 执行数组 等 bash 特性会报错

  • 最佳实践 :脚本中统一使用 #!/bin/bash


📁 其他常见差异速查

项目 Ubuntu CentOS
服务管理 systemctl(都相同) systemctl
查看进程 ps -eftop(通用) 通用
文本处理 grepawksed(通用) 通用
SSH 服务名 ssh(通常) sshd
主机名配置文件 /etc/hostname /etc/hostname
发行版查看 lsb_release -acat /etc/os-release cat /etc/redhat-release
软件包格式 .deb .rpm

🎯 总结:核心记忆点

维度 Ubuntu CentOS
包管理 apt yum/dnf
防火墙 ufw firewall-cmd
网络配置 netplan (YAML) ifcfg-* (INI)
sudo 组 sudo wheel
/bin/sh dash bash
包格式 .deb .rpm

📝 如何快速判断当前系统?

bash

bash 复制代码
# 方法1:查看发行版信息
cat /etc/os-release

# 方法2:查看包管理器
which apt    # Ubuntu 有输出
which yum    # CentOS 有输出

# 方法3:查看 hostname 或提示符(不准确,仅供参考)

学习建议 :你目前的 WSL 环境是 Ubuntu ,先熟悉 aptufw、netplan 这套体系。等基础打牢后,再对比学习 CentOS 会轻松很多。

相关推荐
j7~1 小时前
【Linux系统】基础IO(文件描述)(1)
linux·服务器·c++·文件·基础io
星辰&与海1 小时前
多个串口加输出
linux
广州灵眸科技有限公司1 小时前
瑞芯微(EASY EAI)RV1126B 模型部署API说明
linux·开发语言·网络·人工智能·深度学习·算法·yolo
gjc5921 小时前
Linux MySQL服务器SSH多端口配置:解决22端口禁直连,兼顾安全与运维
linux·运维·服务器·mysql·ssh
largecode1 小时前
怎么让手机显示公司名?来电显示公司名称认证实现品牌外显
linux·ubuntu·华为od·华为·智能手机·华为云·harmonyos
祁白_1 小时前
跨平台通用危险函数深度解析
linux·windows·笔记·安全·系统命令
柿柿快乐1 小时前
用户认证系统实现文档
linux·服务器·网络·学习·基础教学
南境十里·墨染春水1 小时前
linux学习进展 Redis详解
linux·redis·学习
岳来1 小时前
linux 设备目录/dev 学习
linux·服务器·/dev