- Linux 的本质与优势:并非 “难用的命令行系统”,而是开源、稳定、安全的多用户操作系统,服务器领域占比超 80%,嵌入式设备(路由器、智能电视)、云计算(阿里云 / AWS)均以其为基础
- 2023 主流发行版对比:
- 新手首选:Ubuntu 22.04 LTS(图形界面友好,社区支持完善,适合桌面 / 入门服务器)
- 企业服务器:CentOS Stream 9(兼容 RHEL,长期支持,稳定优先)、Rocky Linux(CentOS 替代方案)
- 专精场景:Debian(极致稳定,适合服务器)、Kali Linux(渗透测试专用)
- Linux 与 Windows 的核心差异:文件权限机制(Linux 更精细)、分区逻辑(无 C/D 盘,按目录功能划分)、运行模式(后台服务优先,资源占用低)
- 想自学 Linux 却怕难:先装 Ubuntu 桌面版,用图形界面过渡,避免一上来被命令行劝退
- 企业运维选型:若需对接 RedHat 生态,选 CentOS Stream;若追求轻量化,选 Debian
- 安装前准备:
- 硬件要求:最低 2GB 内存、20GB 硬盘(服务器建议 8GB+50GB),支持 64 位架构
- 工具:U 盘(8GB+)、rufus(制作启动盘)、镜像文件(官网下载,校验 MD5 避免损坏)
- 两种安装模式:
- 单系统:直接覆盖硬盘,适合专用服务器 / 虚拟机
- 双系统(Windows+Linux):需划分独立分区(至少 3 个:根分区 /boot 分区 / 交换分区),注意关闭 Windows 快速启动,避免分区冲突
- 关键设置:时区(选 Asia/Shanghai)、语言(建议英文,避免中文路径乱码)、用户创建(需设管理员权限用户,不建议直接用 root 登录)
- 开机找不到 Linux:进入 Windows 磁盘管理,确认 Linux 分区未被隐藏,或用启动盘修复引导
- 安装卡住:检查镜像完整性,或更换 U 盘(部分老旧 U 盘兼容性差)
- 主流桌面环境:
- GNOME(Ubuntu 默认):简洁现代,支持手势操作,适合触控屏
- KDE:功能丰富,自定义程度高,类似 Windows 界面,适合习惯传统桌面的用户
- Xfce:轻量化,占用资源少,适合老旧电脑 / 服务器远程桌面
- 基础操作:
- 终端打开:快捷键 Ctrl+Alt+T(所有桌面环境通用),是 Linux 操作核心入口
- 文件管理器:左侧导航栏对应 “常用目录”(Home 是个人文件,/ 是系统根目录)
- 软件启动:应用菜单搜索程序,或终端输入程序名(无需记住路径,系统自动匹配)
- 桌面卡顿:若用 GNOME 卡,换 Xfce 环境;关闭 “动态特效”(设置 - 外观 - 特效)可提升流畅度
- 中文显示乱码:终端输入 “语言支持”,安装缺失的中文字体包
- 文件系统核心结构(“目录即分区”):
- /(根目录):所有文件的 “顶层文件夹”,类似 Windows 的 “此电脑”
- /home:每个用户的个人文件目录(如 /home/ubuntu,仅该用户可修改)
- /etc:系统配置文件存放地(如网络、用户、软件配置,修改需管理员权限)
- /var:动态文件目录(日志、缓存、数据库数据,服务器需重点关注空间)
- /bin/sbin:系统命令存放地(如 ls、cd 命令,普通用户用 /bin,管理员用 /sbin)
- 文件路径规则:
- 绝对路径:从 / 开始(如 /etc/nginx/nginx.conf),任何位置都能访问
- 相对路径:从当前目录开始(如./file.txt,../parent 表示上一级目录)
- 用 “生活场景类比”:/ 像 “小区总入口”,/home 是 “每家每户”,/etc 是 “小区物业办公室”,/var 是 “小区快递柜(动态存放)”
- 用户类型:
- root(超级管理员):拥有系统所有权限,误操作会导致系统崩溃,不建议日常使用
- 普通用户:仅能操作自己目录下的文件,需管理员权限时用 “sudo” 临时提权
- 系统用户:无登录权限,仅用于运行服务(如 nginx 用户、mysql 用户,避免服务权限过高)
- 权限核心逻辑:
- 每类文件 / 目录有 3 组权限:所有者(u)、所属组(g)、其他用户(o)
- 权限标识:r(读,如打开文件)、w(写,如修改文件)、x(执行,如运行程序 / 进入目录)
- 通俗理解:文件像 “房间”,所有者是 “房主”,所属组是 “家人”,其他用户是 “访客”;r = 能看房间,w = 能改房间,x = 能进房间
- 忘记 root 密码:开机时按 e 进入编辑模式,添加 “init=/bin/bash”,回车后重置密码(无需重装系统)
- 给文件提权:若普通用户无法运行程序,用 “sudo chmod +x 文件名” 赋予执行权限(仅对所有者生效)
- 文件操作三巨头:
- ls:查看目录内容(ls -l 显示详细信息,ls -a 显示隐藏文件)
- cd:切换目录(cd .. 回到上一级,cd ~ 回到个人目录,cd / 进入根目录)
- cp/mv/rm:复制 / 移动 / 删除(rm -rf 删除文件夹,需谨慎,Linux 无回收站)
- 信息查询命令:
- pwd:显示当前目录路径(迷路时必用)
- find:查找文件(find /etc -name "*.conf" 找 /etc 下所有.conf 文件)
- df -h:查看磁盘使用情况(-h 用 “GB/MB” 显示,更易读)
- free -h:查看内存使用(total = 总内存,used = 已用,free = 空闲)
- 命令使用逻辑:
- 格式:命令 + 选项 + 参数(如 ls -l /home,-l 是选项,/home 是参数)
- 忘记命令:用 “命令 --help” 看帮助(如 ls --help),或 “man 命令” 看详细手册(按 q 退出)
- 误删文件:若刚删除,立即用 “sudo cp 源文件 目标路径” 恢复(前提是未覆盖磁盘);长期建议装 “trash-cli” 工具,把 rm 变成 “移到回收站”
- 命令输错:按 Ctrl+C 终止当前命令,避免乱按导致意外操作
- 新手友好型工具:
- nano:简单直观,底部有操作提示(Ctrl+O 保存,Ctrl+X 退出),适合修改简单文件(如配置文件)
- gedit:图形界面编辑器,类似 Windows 记事本,支持语法高亮(编辑代码 / 配置文件更清晰)
- 专业级工具(vim)基础:
- 不用记复杂命令,先掌握 “3 步操作”:
- 终端输入 “vim 文件名” 打开文件
- 按 “i” 进入编辑模式(底部显示 --INSERT--)
- 编辑完按 “Esc”,输入 “:wq” 保存退出(:q! 强制退出不保存)
- 适用场景:远程服务器(无图形界面),或需快速修改文件时
- 修改网络配置:用 nano /etc/netplan/01-network-manager-all.yaml(新手推荐)
- 编辑代码:用 vim 文件名(支持代码缩进、语法提示,熟练后比图形工具快)
- 2023 主流包管理器(按发行版分):
- Debian/Ubuntu 系列:apt(如 sudo apt install 软件名,安装;sudo apt update,更新软件列表)
- RHEL/CentOS 系列:dnf(替代旧版 yum,命令类似:sudo dnf install 软件名)
- 通用工具:snap(跨发行版,如 sudo snap install firefox,适合安装最新版软件)
- 软件安装三种方式:
- 包管理器安装(推荐):自动解决依赖(如装 Chrome 会自动装依赖的库文件),安全稳定
- deb/rpm 包安装(手动):适合官网下载的软件(如 sudo dpkg -i 软件.deb),需手动解决依赖
- 源码安装(进阶):下载源码包后 “编译安装”,适合需要自定义功能的场景(如优化软件性能)
- 软件更新逻辑:
- 先更列表:sudo apt update(拉取最新软件版本信息,不更新软件)
- 再更软件:sudo apt upgrade(按列表更新所有已装软件,需确认磁盘空间)
- 安装提示 “依赖缺失”:Ubuntu 用 “sudo apt -f install” 自动修复,CentOS 用 “sudo dnf install -y 缺失依赖名”
- 软件装不上:检查是否启用了第三方源(如 EPEL 源,CentOS 需手动启用)
- 进程概念:运行中的程序(如浏览器是 1 个进程,打开多个标签可能是多个子进程),每个进程有唯一 PID(进程号,类似身份证)
- 核心管理命令:
- top:实时查看进程(按 CPU / 内存排序,默认按 CPU 使用率排,按 M 切换内存排序)
- ps:查看当前用户进程(ps aux 查看所有用户进程,ps -ef 查看进程树)
- kill:终止进程(kill PID 正常终止,kill -9 PID 强制终止,用于无响应进程)
- 进程状态:
- R(运行中):正在占用 CPU
- S(睡眠中):等待事件(如等待用户输入),不占用 CPU
- Z(僵尸进程):进程已结束但资源未释放,需用 “kill -9 父进程 PID” 清理
- 电脑卡顿:打开 top,看 CPU / 内存使用率最高的进程,若不是必要程序(如游戏),用 kill 终止
- 远程服务器卡:用 “ps aux | grep 进程名” 找到占用资源的进程(如 java 进程),再 kill
- 基础网络设置:
- 图形界面:设置 - 网络,可配 WiFi / 有线网(静态 IP 需手动填 IP、子网掩码、网关、DNS,如 DNS 填 114.114.114.114)
- 命令行:Ubuntu 用 netplan(修改 /etc/netplan/ 配置文件),CentOS 用 nmcli(nmcli connection up 网卡名,启动网卡)
- 远程连接核心(SSH):
- 作用:在 Windows/mac 上远程控制 Linux 服务器(无需接显示器)
- 开启 SSH:Ubuntu 用 “sudo apt install openssh-server”,CentOS 用 “sudo dnf install openssh-server”,启动后用 “systemctl enable sshd” 设开机自启
- 连接工具:PuTTY(免费)、Xshell(功能全)、FinalShell(国产,支持文件传输 + 终端),输入服务器 IP 和用户名即可连接
- 文件传输:
- SCP:命令行传输(如 scp 本地文件 用户名 @服务器 IP: 目标路径,Windows 需装 Git Bash 用 scp)
- 图形工具:FileZilla(免费,填 IP / 用户名 / 密码,可视化拖放文件)
- 远程连不上:检查服务器防火墙是否放行 22 端口(SSH 默认端口),或服务器是否在同一局域网
- 传输文件慢:用 “scp -C 文件名” 开启压缩传输,或换有线网(WiFi 受信号影响大)
- 服务概念:后台长期运行的程序(如 SSH 服务、Web 服务),Linux 用 systemd 管理所有服务(2023 所有主流发行版通用)
- systemd 核心命令:
- 启动 / 停止:systemctl start 服务名 /systemctl stop 服务名(如 systemctl start nginx)
- 开机自启 / 禁用:systemctl enable 服务名 /systemctl disable 服务名(避免每次开机手动启动)
- 查看状态:systemctl status 服务名(显示是否运行、日志片段,故障排查必用)
- 常见服务:
- sshd:远程连接服务(必开,否则无法远程管理)
- nginx/apache:Web 服务(搭建网站用)
- mysql/mariadb:数据库服务(存储网站数据用)
- 搭建网站后:用 “systemctl enable nginx” 和 “systemctl enable mysql” 设开机自启,避免服务器重启后网站打不开
- 服务启动失败:用 “systemctl status 服务名” 看日志,常见原因是配置文件错误(如端口被占用)
- Shell 脚本是什么:把多个 Linux 命令写在一个文件里,一键执行(避免重复输入命令,适合批量操作)
- 脚本核心逻辑(不用写代码,懂思路):
- 开头声明:#!/bin/bash(告诉系统用 bash 解释器执行)
- 命令顺序:按手动操作的步骤写(如先备份文件,再删除旧文件,最后输出 “完成”)
- 执行方式:给脚本文件赋予执行权限(chmod +x 脚本名),再用 “./ 脚本名” 运行
- 常用自动化场景:
- 日志清理:每天自动删除 7 天前的 /var/log 日志(避免磁盘满)
- 文件备份:每周自动把 /home 目录压缩备份到 U 盘
- 批量创建用户:一次创建 10 个员工账号(企业运维常用)
- 先改现成脚本:网上找 “日志清理脚本”,把目录、时间改成自己的需求,比从零写简单
- 用 “echo 命令” 调试:在脚本关键步骤加 “echo 正在备份文件”,执行时能看到进度
- 监控工具(看状态):
- htop:top 的增强版,图形化显示 CPU、内存、磁盘 IO(按 F6 排序,F9 终止进程)
- iostat:查看磁盘 IO(% util 列 > 90% 表示磁盘忙,需换 SSD)
- vmstat:查看系统整体状态(r 列 > CPU 核心数表示 CPU 忙,需升级 CPU 或优化程序)
- 性能优化方向(不用改配置,懂策略):
- CPU 优化:关闭无用服务(如桌面环境的蓝牙服务,服务器用 “systemctl disable bluetooth” 禁用),给重要进程提优先级(nice 命令)
- 内存优化:清理缓存(sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches,临时生效),避免程序内存泄漏(定期重启易泄漏的服务)
- 磁盘优化:用 SSD 替代机械硬盘(提升 IO 速度),分区时给 /var 目录单独分大空间(日志多易占满)
- 服务器频繁死机:看 /var/log/messages 日志,若显示 “out of memory”(内存不足),加内存条或设置交换分区(类似 Windows 虚拟内存)
- 网站打开慢:用 htop 看 nginx 进程是否占用过高 CPU,或用 iostat 看磁盘 IO 是否满(可能是数据库查询慢,需优化 SQL)
- 防火墙配置(拦截危险访问):
- Ubuntu 用 ufw(简单):sudo ufw allow 22/tcp(允许 SSH 端口),sudo ufw allow 80/tcp(允许 Web 端口),sudo ufw enable(开启防火墙)
- CentOS 用 firewalld:sudo firewall-cmd --add-port=22/tcp --permanent(永久允许 SSH),sudo firewall-cmd --reload(生效)
- 用户安全(防破解):
- 密码策略:设置复杂密码(字母 + 数字 + 符号),定期更换(用 “passwd 用户名” 修改)
- 禁用 root 远程登录:修改 /etc/ssh/sshd_config,把 “PermitRootLogin” 设为 no(避免黑客暴力破解 root)
- 用密钥登录:生成 SSH 密钥对(本地用 ssh-keygen,把公钥传到服务器),禁用密码登录(更安全,不怕密码泄露)
- 文件安全(防篡改):
- 给重要文件加锁:chattr +i /etc/passwd(i 表示不可修改,需 root 才能解锁)
- 日志审计:用 auditd 服务监控 /etc 目录(修改时自动记录日志,方便追溯谁改了文件)
- 开启防火墙后远程连不上:忘记允许 22 端口,用物理机登录服务器,执行 “sudo ufw allow 22/tcp”
- 密钥登录失败:检查服务器~/.ssh/authorized_keys 文件权限是否为 600(权限太高会被 SSH 拒绝)
- KVM 虚拟化(装多系统):
- 作用:在 Linux 上创建虚拟机(如装 Windows、CentOS),每个虚拟机独立运行(类似 “电脑里装电脑”)
- 条件:CPU 支持虚拟化(BIOS 里开启 VT-x/AMD-V),安装 libvirt 和 virt-manager(图形工具,新手友好)
- 适用场景:测试不同发行版、运行 Windows 软件(如用虚拟机装 Office)
- Docker 容器(轻量级虚拟化):
- 与 KVM 区别:容器共享主机内核,启动快(秒级)、占用资源少(一个容器仅占几十 MB 内存),KVM 虚拟机需独立内核(启动慢、占资源多)
- 核心概念:镜像(容器的 “模板”,如 nginx 镜像)、容器(镜像运行后的实例,可创建多个)
- 2023 常用场景:装 Web 服务(Docker 装 nginx 比直接装更干净,删除时不留垃圾)、开发环境一致性(开发者和服务器用相同容器,避免 “本地能跑服务器跑不了”)
- Docker 基础操作(思路):
- 拉取镜像:docker pull nginx(从 Docker Hub 下载镜像)
- 启动容器:docker run -d -p 80:80 nginx(-d 后台运行,-p 把容器 80 端口映射到主机 80 端口)
- 管理容器:docker ps(看运行中的容器),docker stop 容器 ID(停止容器)
- 先玩 Docker:比 KVM 简单,用 “Docker Desktop”(Windows/mac 也有)练手,熟悉后再学 KVM
- 避免容器滥用:简单服务(如 nginx)用 Docker,复杂服务(如数据库)建议直接装(容器删除时数据易丢,需额外配置数据卷)
- 架构概念:把 “Web 服务 + 数据库 + 脚本语言” 组合,实现动态网站(如博客、电商网站)
- 两种主流架构:
- LAMP:Linux + Apache + MySQL + PHP(Apache 兼容性好,适合传统网站,如 WordPress)
- LNMP:Linux + Nginx + MySQL + PHP(Nginx 性能好、并发高,适合高访问量网站,如电商)
- 搭建思路(不用代码,懂步骤):
- 第一步:装数据库(MySQL/MariaDB),创建数据库和用户(给网站分配单独权限,避免全库权限)
- 第二步:装 Web 服务(Apache/Nginx),配置端口(默认 80)和虚拟主机(一个服务器跑多个网站)
- 第三步:装 PHP,配置 Web 服务与 PHP 联动(让 Web 服务能解析 PHP 代码,返回动态内容)
- 第四步:上传网站代码(如 WordPress),修改配置文件连接数据库,完成安装
- 静态资源优化:Nginx 处理图片、CSS、JS(速度快),PHP 处理动态内容(如用户登录),Apache 可作为后端服务器(动静分离)
- 数据库优化:给 MySQL 加索引(提升查询速度),定期备份(用 mysqldump 命令),避免数据库直接暴露在公网(只允许 Web 服务器访问)
- 自动化运维工具(批量管理):
- Ansible:无代理(不用在服务器装客户端),用 “Playbook”(类似脚本)批量执行命令(如同时给 100 台服务器装 nginx)
- 2023 场景:企业有几十台服务器时,用 Ansible 替代手动操作(避免重复劳动,减少误操作)
- 思路:先在 “控制机”(自己的电脑)装 Ansible,配置服务器列表(inventory 文件),再写 Playbook 定义操作步骤,最后执行 “ansible-playbook 文件名”
- 故障排查方法论(按优先级):
- 第一步:看状态(systemctl status 服务名,是否运行)
- 第二步:看日志(/var/log/ 对应服务日志,如 nginx 日志在 /var/log/nginx/error.log)
- 第三步:看资源(htop、iostat,是否 CPU / 内存 / 磁盘满)
- 第四步:看配置(对比备份的配置文件,是否改了不该改的参数)
- 常见故障案例:
- 网站打不开:先看 nginx 状态(systemctl status nginx),若没运行看日志(是否端口被占用);若运行正常,看 PHP 是否能连接数据库(检查数据库地址、密码)
- 数据库连不上:看 mysql 状态,检查防火墙是否放行 3306 端口,或用户是否有远程访问权限
- 建立备份机制:配置文件(/etc)、数据库、网站代码定期备份,存到不同服务器(避免单点故障)
- 记录操作日志:每次修改配置、安装软件都记录(用 “history” 命令看历史操作),方便故障时追溯


雷达卡


京公网安备 11010802022788号







