Xshell5作为远程连接工具,可通过命令行查看连接的Linux服务器版本。
推荐使用
cat /etc/os-release或lsb_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)
输入以下命令,可以查看到非常详细的发行版信息(如系统名称、版本号等):
bashcat /etc/os-release或者使用这个命令,它会以标准格式输出系统的发行商和版本号:
bashlsb_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),可以直接输入:
bashuname -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 基础命令(
ls、cd、grep、awk、sed、ps、kill、systemctl)几乎一样,主要差异在包管理(aptvsyum)、防火墙(ufwvsfirewall-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 内存 | 多台机器并行计算 |
| 文件操作 | ls、cat、rm |
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 同时是两样东西:
-
软件框架:大数据处理工具
-
系统用户: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 -ls 和 ls 很像)。
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 show 或 ip 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/sh 是 dash (更轻量、更快),而 CentOS 的 /bin/sh 是 bash 的软链接。
这意味着:
-
在 Ubuntu 中使用
#!/bin/sh执行数组 等 bash 特性会报错 -
最佳实践 :脚本中统一使用
#!/bin/bash
📁 其他常见差异速查
| 项目 | Ubuntu | CentOS |
|---|---|---|
| 服务管理 | systemctl(都相同) |
systemctl |
| 查看进程 | ps -ef、top(通用) |
通用 |
| 文本处理 | grep、awk、sed(通用) |
通用 |
| SSH 服务名 | ssh(通常) |
sshd |
| 主机名配置文件 | /etc/hostname |
/etc/hostname |
| 发行版查看 | lsb_release -a 或 cat /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 ,先熟悉 apt、ufw、netplan 这套体系。等基础打牢后,再对比学习 CentOS 会轻松很多。