Linux系统安装与发行版

瑞克 2 阅读 linux服务

Linux系统安装与发行版

写在前面:如果把Windows比作一座精装修的公寓,那Linux就是一栋可以随意装修的别墅——你可以选择不同的建筑风格(发行版),按自己的喜好布置每个房间(软件包),甚至改造地基(内核)。本章将带你认识Linux的"各大门派",完成系统安装,并掌握第一批基础命令。


1.1 各发行版对比:Linux的"百花齐放"

生活类比

想象你要买一辆车。有人要省心的家用轿车(Ubuntu),有人要结实的商用卡车(RHEL),有人要炫酷的改装赛车(Kali),还有人支持国产自主品牌(麒麟V10)。Linux发行版就是这些不同定位的"车型",它们共享同一个发动机(Linux内核),但外壳、内饰、售后服务各不相同。

主流发行版一览

发行版所属系包管理器特点适用场景稳定性
RHEL (Red Hat Enterprise Linux)RHEL系yum/dnf商业支持、企业级稳定国外企业服务器★★★★★
CentOS (Stream)RHEL系yum/dnfRHEL的社区版(CentOS Stream现在是RHEL的上游)学习、开发测试★★★★
FedoraRHEL系dnf技术前沿、软件版本新开发者工作站、尝鲜★★★
UbuntuDebian系apt社区活跃、文档丰富、桌面友好服务器、桌面、云计算★★★★
DebianDebian系apt极其稳定、完全自由服务器、嵌入式★★★★★
麒麟V10(服务器版)RHEL系yum/dnf国产自主、安全认证政务、国企、教育★★★★★
麒麟V10(桌面版)Debian系(Ubuntu)apt国产桌面、中文友好办公桌面、教学机房★★★★
Kali LinuxDebian系apt渗透测试、安全工具集安全审计、渗透测试★★★

各发行版详细说明

RHEL(Red Hat Enterprise Linux)

类比:像"4S店全程保养的商务车",付费购买的是技术支持和稳定性保障。

  • 由Red Hat公司提供商业支持
  • 每个版本有长达10年的生命周期
  • 通过订阅(Subscription)获得更新和技术支持
  • 适合对稳定性要求极高的企业环境

CentOS

类比:像"同一工厂出产但没贴品牌的车",机械结构与RHEL几乎相同。

  • CentOS Linux 8已于2021年底停止维护
  • CentOS Stream成为RHEL的上游滚动发行版
  • 适合学习和开发,但不建议用于生产环境的关键业务
  • 替代方案:Rocky Linux、AlmaLinux(1:1兼容RHEL)

Fedora

类比:像"概念车",最新的科技都在这里试验,成熟后才会用到RHEL上。

  • 每6个月发布新版本,支持周期约13个月
  • 默认使用最新内核和软件包
  • 是RHEL新技术的"试验田"

Ubuntu

类比:像"大众乒乓球"——平民化、好上手、社区庞大。

  • 每2年发布LTS(长期支持)版本,支持5年
  • 桌面版开箱即用,硬件兼容性好
  • 服务器版广泛用于云计算(AWS、阿里云等)

Debian

类比:像"老教授"——保守但极其可靠,只推荐经过充分验证的软件。

  • 稳定版(Stable)极其可靠,软件版本偏旧
  • 完全遵循自由软件理念
  • 是Ubuntu的上游基础

麒麟V10(银河麒麟)

类比:像"国产红旗轿车"——自主可控,适配国产硬件(飞腾、鲲鹏、龙芯)。
由于信创(国产化2.0)的原因国内大型政企单位都改用了自研或麒麟系统。

  • 服务器版基于openEuler(RHEL系),使用yum/dnf
  • 桌面版基于Ubuntu,使用apt
  • 通过国家安全认证,广泛用于政务、教育领域
  • 支持国产CPU架构(ARM、MIPS、LoongArch)

Kali Linux

类比:像"特工装备箱"——预装600+安全工具,是安全工程师的瑞士军刀。

  • 基于Debian Testing分支
  • 预装Metasploit、Nmap、Wireshark等工具
  • 不建议作为日常桌面使用
  • Live USB模式可在任何电脑上启动使用

发行版选择决策表

你的需求推荐发行版理由
学习Linux基础命令Ubuntu LTS 或 CentOS Stream资料多、社区大、遇到问题容易搜到答案
学校教学机房(桌面)麒麟V10桌面版 或 Ubuntu LTS中文支持好、开箱即用、维护简单
运行学校网站/OA系统Ubuntu Server LTS 或 麒麟V10服务器版稳定可靠、安全更新及时
政务/国企信息化麒麟V10服务器版满足国产化要求、通过安全认证
网络安全课程教学Kali Linux(Live USB)即插即用、工具齐全、不影响宿主系统
学习前沿技术Fedora软件版本新、紧跟上游技术
追求极致稳定Debian Stable久经考验、几乎不出错

1.2 系统安装方式

1.2.1 图形化安装(推荐初学者)

类比:图形化安装就像用手机App上的"一键装修"——按提示点几下,系统自动帮你安排好一切。

通用步骤(以Ubuntu/Kylin为例)

  1. 下载ISO镜像:从官网下载对应的ISO文件
  2. 制作启动U盘:使用Rufus(Windows)或dd(Linux)写入U盘
  3. BIOS设置U盘启动:开机按F2/F12/Del进入BIOS
  4. 选择安装语言和键盘布局
  5. 磁盘分区
    • 简单方案:自动分区(整个磁盘)
    • 推荐方案:手动分区
  6. 设置用户名、密码、主机名
  7. 等待安装完成并重启

推荐分区方案

分区大小建议说明
/boot500MB-1GB存放内核和引导文件
/ (根分区)30-50GB系统核心文件
swap内存的1-2倍交换分区(内存不足时使用)
/home剩余空间用户数据
/var10-20GB(服务器)日志和可变数据

小贴士:教学用虚拟机建议至少分配2GB内存、20GB磁盘。

1.2.2 文本模式安装

类比:文本模式安装就像"手动挡汽车"——更灵活但需要更多操作知识。

适用场景:服务器无图形界面、远程安装、资源受限环境。

# 使用dd命令制作启动U盘(Linux环境)
# 注意:/dev/sdb是你的U盘设备名,请确认后再执行!
sudo dd if=ubuntu-22.04-server-amd64.iso of=/dev/sdb bs=4M status=progress

# 验证写入
sync

1.2.3 虚拟机安装(学习推荐)

类比:虚拟机就像"沙盘演练"——在安全的环境中练习,不怕搞坏。

推荐工具:

  • VirtualBox:免费开源,跨平台
  • VMware Workstation Player:个人免费,性能好
  • KVM/QEMU:Linux原生虚拟化(高级)
# Ubuntu/Debian 安装VirtualBox
sudo apt update
sudo apt install virtualbox

# CentOS/RHEL/麒麟V10 安装VirtualBox
sudo dnf install -y epel-release
sudo dnf install -y VirtualBox

想一想:为什么学习Linux推荐使用虚拟机而不是直接在物理机上安装?如果虚拟机里的系统搞坏了,你的Windows宿主机会受影响吗?


1.3 系统目录结构:Linux的"房间布局"

生活类比

把Linux系统想象成一栋大楼:

  • /etc = 物业管理处(存放所有配置文件)
  • /var = 快递收发室(存放经常变化的文件:日志、邮件、缓存)
  • /usr = 工具间和图书馆(安装的程序和共享资源)
  • /home = 各个住户的私人房间(用户个人文件)
  • /tmp = 公共白板(临时文件,重启后清空)

目录结构详解

/                  ← 根目录,一切的起点
├── bin            ← 基本命令(ls, cp, cat等)→ 通常链接到 /usr/bin
├── boot           ← 启动文件和内核(vmlinuz, grub)
├── dev            ← 设备文件(硬盘=sda, 终端=tty)
├── etc            ← 【重要】系统配置文件
│   ├── passwd     ← 用户信息
│   ├── shadow     ← 密码哈希
│   ├── fstab      ← 磁盘挂载配置
│   ├── hosts      ← 主机名解析
│   ├── resolv.conf← DNS配置
│   └── sysconfig/ ← 网络等系统配置(RHEL系)
├── home           ← 普通用户的家目录
│   └── username/  ← 每个用户一个子目录
├── lib / lib64    ← 共享库文件(类似Windows的DLL)
├── media          ← 可移动设备挂载点(U盘、光盘)
├── mnt            ← 临时挂载点
├── opt            ← 第三方软件安装目录
├── proc           ← 【虚拟】进程和内核信息(不占磁盘)
├── root           ← root用户的家目录
├── run            ← 运行时临时数据
├── sbin           ← 系统管理命令(fdisk, iptables)
├── srv            ← 服务相关数据(网站文件等)
├── sys            ← 【虚拟】设备和驱动信息
├── tmp            ← 临时文件(重启清空)
├── usr            ← 用户程序和数据
│   ├── bin/       ← 用户命令
│   ├── lib/       ← 程序库
│   ├── local/     ← 手动安装的软件
│   └── share/     ← 共享数据(文档、图标)
└── var            ← 可变数据
    ├── log/       ← 【重要】系统日志
    ├── spool/     ← 邮件队列、打印队列
    └── www/       ← 网站文件(Apache/Nginx)

多发行版目录差异

目录/文件RHEL系 (CentOS/RHEL/麒麟V10服务器)Debian系 (Ubuntu/Debian/麒麟V10桌面)
网络配置/etc/sysconfig/network-scripts//etc/netplan//etc/network/interfaces
防火墙配置/etc/firewalld//etc/ufw/
软件包缓存/var/cache/yum//var/cache/dnf//var/cache/apt/
日志管理journalctl + /var/log/journalctl + /var/log/
默认Shell/bin/bash/bin/bash(Ubuntu桌面默认可能为dash)

想一想:如果你要查找某个服务的配置文件,应该先去哪个目录看看?如果你安装了一个新软件但找不到它装在哪里,应该检查哪些目录?


1.4 系统信息查看命令

掌握以下命令,就像学会了"给系统做体检",能快速了解系统的基本状况。

1.4.1 uname —— 查看系统内核信息

# 查看内核名称
uname
# 输出:Linux

# 查看全部信息(最常用)
uname -a
# 输出示例:Linux kylin-server 5.10.0-100-generic #106-Ubuntu SMP x86_64 GNU/Linux

# 只看内核版本
uname -r
# 输出示例:5.10.0-100-generic

# 查看系统架构
uname -m
# 输出示例:x86_64(64位) 或 aarch64(ARM64,如鲲鹏处理器)

各字段含义

字段含义示例
内核名称操作系统内核Linux
主机名计算机名称kylin-server
内核版本内核的具体版本5.10.0-100-generic
架构CPU架构x86_64 / aarch64

1.4.2 cat /etc/os-release —— 查看发行版信息

# 适用于所有现代Linux发行版
cat /etc/os-release

Ubuntu输出示例

NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
ID=ubuntu
ID_LIKE=debian
VERSION_ID="22.04"

麒麟V10服务器版输出示例

NAME="Kylin"
VERSION="V10 SP1"
ID=kylin
ID_LIKE="rhel fedora centos"
VERSION_ID="V10"

麒麟V10桌面版输出示例

NAME="Kylin"
VERSION="V10 SP1 Desktop"
ID=kylin
ID_LIKE=ubuntu
VERSION_ID="V10"

注意:通过ID_LIKE字段可以判断发行版的"血缘关系"——服务器版像RHEL,桌面版像Ubuntu。

1.4.3 lscpu —— 查看CPU信息

lscpu

输出关键字段

字段含义
ArchitectureCPU架构(x86_64=64位Intel/AMD)
CPU(s)CPU核心总数
Model nameCPU型号
Thread(s) per core每核心线程数(2=开了超线程)
Core(s) per socket每颗CPU的物理核心数
Socket(s)物理CPU颗数
# 快速查看CPU核心数
lscpu | grep "CPU(s):"

# 查看CPU型号(更简洁的方式)
cat /proc/cpuinfo | grep "model name" | head -1

1.4.4 free —— 查看内存使用

# 以人类可读格式显示(加-h参数)
free -h

输出示例

              total        used        free      shared  buff/cache   available
Mem:           7.8Gi       2.1Gi       3.5Gi       256Mi       2.2Gi       5.2Gi
Swap:          2.0Gi          0B       2.0Gi

字段解读

字段含义类比
total总内存你的书桌总面积
used已使用被文件占用的面积
free完全空闲什么都没放的面积
buff/cache缓存占用放了常用工具方便拿取的面积
available可用内存收拾一下就能用的面积(最有参考价值!)

关键提示:看内存够不够,看 available 列就对了,不要只看 free 列!Linux会"聪明地"把空闲内存用作缓存,需要时会自动释放。

1.4.5 df —— 查看磁盘使用

# 以人类可读格式显示(最常用)
df -h

# 只看特定文件系统类型
df -hT | grep -v tmpfs

# 查看inode使用情况(文件数量)
df -i

输出示例

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   12G   35G  26% /
/dev/sda3       200G   45G  145G  24% /home
/dev/sda2        20G  3.2G   15G  18% /var

运维经验:当 Use% 超过 85% 时就应该关注并清理了,超过 95% 可能导致服务异常。


想一想:如果一台服务器的free -h显示 free 只有 200MB,但 available 有 4GB,这台服务器内存紧张吗?为什么?


1.5 首次配置:安装后的"必修课"

系统安装完成后,还需要进行一系列基础配置才能投入使用。这就像新房交房后,还要通水通电、换锁、装窗帘。

1.5.1 网络配置

RHEL系(CentOS/RHEL/麒麟V10服务器版)—— 使用nmcli

# 查看网络连接状态
nmcli connection show

# 查看网络接口信息
ip addr show
# 或简写
ip a

# 配置静态IP(以ens33网卡为例)
nmcli connection modify ens33 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "114.114.114.114,8.8.8.8"

# 重启网络连接使配置生效
nmcli connection up ens33

# 测试网络连通性
ping -c 4 www.baidu.com

Debian系(Ubuntu/Debian/麒麟V10桌面版)—— 使用Netplan

# Ubuntu 18.04+ 使用 Netplan 配置静态IP
# 编辑配置文件(文件名可能不同,请先ls查看)
sudo nano /etc/netplan/01-netcfg.yaml
# Netplan配置示例
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [114.114.114.114, 8.8.8.8]
# 应用配置
sudo netplan apply

# 验证配置
ip addr show ens33

通用方法(临时配置,重启失效)

# 临时设置IP地址(所有发行版通用)
sudo ip addr add 192.168.1.100/24 dev ens33
sudo ip route add default via 192.168.1.1

# 临时设置DNS(所有发行版通用)
echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf

1.5.2 时区配置

类比:就像手表要对准北京时间,服务器的时间也必须准确,否则日志时间戳就会混乱。

# 查看当前时区
timedatectl

# 列出所有可用时区
timedatectl list-timezones | grep Asia

# 设置为中国标准时间(CST, UTC+8)
sudo timedatectl set-timezone Asia/Shanghai

# 启用NTP自动对时
sudo timedatectl set-ntp true

# 验证时间是否正确
date

各发行版差异

操作RHEL系Debian系
时区配置timedatectl set-timezone Asia/Shanghai同左(通用)
NTP服务chronyd(默认安装)systemd-timesyncd(默认)
手动同步时间chronyc makestepsudo ntpdate ntp.aliyun.com

1.5.3 主机名配置

# 查看当前主机名
hostnamectl

# 修改主机名(立即生效且持久化)
sudo hostnamectl set-hostname math-server

# 同时更新hosts文件(重要!)
sudo sed -i 's/旧主机名/math-server/g' /etc/hosts

# 验证
hostname
cat /etc/hostname

小贴士:主机名建议使用有意义的名称,如math-web01(数学组Web服务器01号),方便日后管理。

1.5.4 防火墙配置

类比:防火墙就像学校的门卫——只允许持有通行证的人进出。

RHEL系 —— firewalld

# 查看防火墙状态
sudo systemctl status firewalld

# 启动防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld   # 开机自启

# 查看已开放的端口和服务
sudo firewall-cmd --list-all

# 开放SSH端口(22)
sudo firewall-cmd --permanent --add-service=ssh
# 开放HTTP(80)和HTTPS(443)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 开放自定义端口(如8080)
sudo firewall-cmd --permanent --add-port=8080/tcp

# 重新加载使配置生效
sudo firewall-cmd --reload

# 查看最终配置
sudo firewall-cmd --list-all

Debian系 —— ufw

# 安装ufw(如未安装)
sudo apt install ufw

# 查看状态
sudo ufw status verbose

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 开放SSH
sudo ufw allow ssh
# 或指定端口
sudo ufw allow 22/tcp

# 开放HTTP和HTTPS
sudo ufw allow http
sudo ufw allow https

# 开放自定义端口
sudo ufw allow 8080/tcp

# 启用防火墙(会提示确认)
sudo ufw enable

# 查看状态
sudo ufw status numbered

# 删除某条规则
sudo ufw delete 3

防火墙命令对比表

操作firewalld (RHEL系)ufw (Debian系)
查看状态firewall-cmd --stateufw status
开放端口firewall-cmd --permanent --add-port=80/tcpufw allow 80/tcp
关闭端口firewall-cmd --permanent --remove-port=80/tcpufw deny 80/tcp
重载规则firewall-cmd --reloadufw reload
开机自启systemctl enable firewalldufw enable(自动)

想一想:为什么在开放一个Web服务端口之前,一定要先确认防火墙规则?如果配置了Nginx但浏览器打不开网页,你会按什么顺序排查问题?


1.5.5 软件源配置(换源加速)

类比:默认的官方软件源就像从国外仓库发货,速度慢;换成国内镜像源就像从本地仓库发货,下载嗖嗖的。

RHEL系 —— yum/dnf 换源

# 备份原有源配置
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 使用阿里云镜像源(以CentOS 8为例)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo \
  https://mirrors.aliyun.com/repo/Centos-8.repo

# 清除并重建缓存
sudo dnf clean all
sudo dnf makecache

# 验证
sudo dnf repolist

Debian系 —— apt 换源

# 备份原有源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为阿里云镜像源(以Ubuntu 22.04为例)
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

# 更新缓存
sudo apt update

# 验证
apt policy

1.5.6 系统更新

# RHEL系
sudo dnf update -y       # 全量更新(包含内核)
sudo dnf upgrade -y      # 更新软件包

# Debian系
sudo apt update          # 更新软件包列表
sudo apt upgrade -y      # 升级已安装的软件包
sudo apt full-upgrade -y # 完整升级(可能删除旧包)

想一想apt updateapt upgrade有什么区别?为什么必须先执行update再执行upgrade?(提示:想想超市的商品目录和实际购买商品的关系)


1.6 systemd 服务管理

类比:systemd就像学校的教务处——负责"安排课程"(启动服务)、"调整课表"(管理服务状态)、"确保按时上课"(开机自启)。

# 查看某个服务的状态
sudo systemctl status sshd       # SSH服务
sudo systemctl status firewalld  # 防火墙

# 启动/停止/重启服务
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd

# 设置开机自启/取消开机自启
sudo systemctl enable sshd
sudo systemctl disable sshd

# 查看所有正在运行的服务
systemctl list-units --type=service --state=running

# 查看服务日志
journalctl -u sshd --since today
journalctl -u sshd -f  # 实时跟踪日志

各发行版SSH服务名差异

发行版SSH服务名启动命令
RHEL系sshdsystemctl start sshd
Ubuntusshsystemctl start ssh
Debiansshsystemctl start ssh
麒麟V10服务器sshdsystemctl start sshd
麒麟V10桌面sshsystemctl start ssh

本章小结

知识点核心命令
查看内核版本uname -a
查看发行版信息cat /etc/os-release
查看CPU信息lscpu
查看内存free -h
查看磁盘df -h
配置网络nmcli(RHEL) / netplan(Debian)
设置时区timedatectl set-timezone Asia/Shanghai
设置主机名hostnamectl set-hostname
防火墙管理firewall-cmd(RHEL) / ufw(Debian)
软件更新dnf update(RHEL) / apt update && apt upgrade(Debian)
服务管理systemctl start/stop/restart/enable/status

运维常用命令精选

以下命令是运维工程师日常使用频率最高的"瑞士军刀",建议熟记于心。

命令用途示例
top实时查看系统资源占用top(按q退出,按1看各CPU核心)
htoptop的增强版(需安装)htop(支持鼠标、彩色显示)
ss -tlnp查看监听端口和进程ss -tlnp | grep :80
netstat -tlnpss的老版本替代netstat -tlnp | grep sshd
uptime查看系统运行时间和负载uptime
dmesg查看内核消息(硬件故障排查)dmesg | tail -20
last查看用户登录历史last -n 10
history查看命令历史history | grep apt
w查看当前登录用户w
du -sh查看目录大小du -sh /var/log/*

系统健康检查"五件套"

# 每次登录服务器后,建议依次执行以下命令快速了解系统状况:

# 1. 系统负载和运行时间
uptime

# 2. 内存使用情况
free -h

# 3. 磁盘使用情况
df -h

# 4. CPU和进程概况
top -bn1 | head -20

# 5. 网络连接状况
ss -tlnp

趣味命令专栏

学习之余,试试这些有趣的命令,给课堂增添一些欢乐吧!

# 1. 让终端说话(文字转语音)
# 安装:sudo apt install espeak(Debian系)或 sudo dnf install espeak(RHEL系)
espeak "你好,欢迎来到Linux的世界"

# 2. 终端里看星球大战(ASCII动画版)
# Debian系需先安装:sudo apt install telnet
telnet towel.blinkenlights.nl
# 按 Ctrl+] 然后输入 quit 退出

# 3. 用cowsay让牛说话
# 安装:sudo apt install cowsay 或 sudo dnf install cowsay
cowsay "同学们好!今天学Linux!"
# 输出:
#  ___________________________
# < 同学们好!今天学Linux! >
#  ---------------------------
#         \   ^__^
#          \  (oo)\_______
#             (__)\       )\/\
#                 ||----w |
#                 ||     ||

# 4. 随机名言
# 安装:sudo apt install fortune 或 sudo dnf install fortune-mod
fortune

# 5. 显示系统信息的"仪表盘"
# 安装:sudo apt install neofetch 或 sudo dnf install neofetch
neofetch
# 会以漂亮的ASCII艺术显示你的发行版Logo和系统信息

# 6. 终端里的计算器(数学老师的最爱!)
echo "scale=10; 3.14159 * 5^2" | bc
# 输出:78.5397500000(计算圆的面积)

# 7. 实时显示系统状态的"彩虹仪表盘"
# 安装:sudo apt install glances 或 sudo dnf install glances
glances

本章思考

  1. 列举3个RHEL系和3个Debian系的发行版,并说出它们的包管理器分别是什么。
  2. 在一台新安装的Linux服务器上,你会按什么顺序完成首次配置?为什么?
  3. 如果df -h显示根分区使用率已达92%,但du -sh /*没有发现特别大的目录,可能是什么原因?