Linux 相关知识全面整理

一、Linux 基础概述

Linux 全称 GNU/Unix,是免费使用、自由传播的类 Unix 操作系统,支持多任务、多用户、多线程和多CPU,拥有社区开发与商业开发两大版本体系。

  • GNU:公共许可证
  • Unix:衔接计算机与用户的一系列操作程序
  • 操作系统/内核:软硬件的中间层,负责分配系统资源、管理计算机内部所有详细信息的核心程序
  • Linux 核心特点:免费开源、可靠稳定安全、多平台适配(手机、数码相机等)、多用户多任务、支持多线程多CPU
  • 安卓系统:基于 Linux 开发,由 Google 公司打造,主要适配手机、数码相机、平板电脑等便携设备
  • 主流版本:社区版(Debian、ArchLinux);商业版(红帽企业Linux、SUSE、Oracle Linux)

二、红帽(Red Hat)核心介绍

红帽是总部位于美国的开源软件方案供应商,主营操作系统、存储、中间件、虚拟化和云计算相关支持服务,以开源模式为企业提供跨物理、虚拟、云平台的运算解决方案,同时为全球用户提供技术支持、咨询培训服务。

  • 收购信息:2018年10月29日,IBM以340亿美元收购红帽

红帽企业 Linux 各版本核心信息

  1. RHEL 7:2014年6月发布,可整合裸机服务器、虚拟机、IaaS、PaaS构建强大数据中心,最终版本为7.9
  2. RHEL 8:2019年5月发布,为混合云时代重新设计,支持企业数据中心到多公共云的负载与操作,最终版本为8.5
  3. RHEL 9:2022年5月发布,首个基于 CentOS Stream 构建的版本,适配裸机服务器、云提供商、企业边缘网络,最终版本为9.6
  4. RHEL 10:2025年5月21日发布,基于Linux 6.12内核开发,整合红帽云原生技术、安全架构、AI创新技术,专为混合云和企业运算设计

三、CentOS 详细介绍

CentOS Linux 是源于 RHEL 开源源码编译的发行版,与 RHEL 功能完全兼容,是稳定、可预测、可复现、可管理的开源平台,完全免费,可基于其搭建与RHEL一致的企业级Linux系统。

  • 支持体系:每个版本可通过安全更新获得10年支持,约每两年发布新版本,每6个月更新一次以适配新硬件
  • 重要时间节点:
    1. 2023年7月5日:CentOS 宣布向全球开放,与社区展开深度合作
    2. 2024年6月3日:CentOS 7 系列全部停止更新

CentOS 两大版本区别

  1. CentOS Linux:每两年发布一次更新,每个版本提供10年安全维护支持
  2. CentOS Stream:滚动更新版,无固定版本号,采用动态更新模式

四、国产 Linux 发行版汇总

发行版名称 开发主体 基于体系/核心备注
Kylin OS(麒麟系统) 麒麟软件公司 Debian 系
Red Flag OS(红旗系统) 红旗软件公司 Debian 系
中科方德 OS 中科方得软件公司 Debian 系
New Star OS(新支点系统) 中兴通讯子公司中兴新支点 -
deepin OS(深度系统) 武汉深之度科技公司 Debian 系
统信 U OS 统信软件技术公司 Debian 系
Start OS 东莞软件技术公司 Debian 系,前身是雨林木风 OS
Euler OS(欧拉系统) 华为捐赠至开放原子开源中心 基于 CentOS 源代码,企业级商用开源发行版(Open Euler OS)
Hope Edge OS 江苏润和软件公司 轻量级物联网 Linux 操作系统
Fyde OS(燧炻系统) 燧炻科技公司 轻量级中国版 Google Chrome 操作系统
Harmoney OS(鸿蒙系统) 华为 面向物联网和智能终端的系统
CTyun OS(天翼系统) 中国电信天翼技术团队 基于华为开源欧拉改进,性能较CentOS7.6大幅提升

CTyun OS 性能提升亮点

  • CPU 调度时延降低约5%
  • 存储关键路径每面读写次数提升约3%
  • 容器部署密度提升约3%

五、VMware Workstation Pro 安装 Linux 完整步骤

VMware Workstation Pro 可在单台 Linux/Windows 主机上通过虚拟机安装多个操作系统,具体安装步骤如下:

  1. 选择安装语言,推荐选择英文
  2. 日期时间配置:选择上海时区时间
  3. 键盘配置:选择默认即可
  4. 配置语言环境
  5. 介质源:保持默认,可远程下载镜像文件
  6. 定制软件包:按需安装,建议选择最小安装,后续可自行补充安装
  7. 磁盘分区:类似Windows分盘,常规分3个分区(boot、/、swap)
  8. Kdump:选择关闭(Linux内核转储机制,关闭以节省内存)
  9. 网络和主机名:需远程下载资源则打开网络,主机名可自定义
  10. 安全策略:基于SCAP(Security Content Automation Protocol)标准定义,覆盖文件系统、账号密码、网络安全、系统日志等维度
  11. 设置root密码
  12. 创建普通用户
  13. 接受license协议
  14. 桌面初始化:选择首选语言
  15. 关闭SELinux(安全增强型Linux,最小化进程对系统资源的访问范围)
    • 编辑配置文件命令:vim /etc/selinux/config
    • 修改配置项:SELINUX=disabled
    • SELINUX三种运行模式:
      • 严格模式Enforcing:阻止违规操作并记录日志
      • 宽容模式Permissive:不阻止违规操作,但会记录日志
      • 禁用模式Disable:完全关闭SELinux功能
  16. 重启系统:可使用命令reboot/shutdown -r/shutdown -h 0

Linux 基础操作与命令大全

一、界面切换与主机名设置

1. 系统界面切换

  • 图形界面模式:Ctrl+Alt+F1
  • 命令行界面模式:Ctrl+Alt+F2

2. 主机名配置

  • 自定义主机名(示例:姓名全拼):hostnamectl set-hostname zhongli

二、Shell 基础介绍

Bash(GNU Bourne-Again Shell)是多数 Linux 发行版的默认 Shell,同时类 Unix 系统还有 tcsh、csh、ash、bsh、ksh 等 Shell 类型,Shell Script 语法大致通用,掌握一种即可快速上手其他类型。

  • 适用范围:bash 可运行于多数类 Unix 系统,也移植到 Windows 的 Cygwin 系统(实现 POSIX 虚拟接口),也是 Mac OS X 系统默认 Shell。

三、环境变量配置文件区别

  • .bashrc
  • .bash_profile

四、终端提示符标识

  • 管理员用户提示符:[root@thy ~]#
  • 普通用户提示符:[thy@thy root]$

五、终端常用快捷操作

  • tab:补全命令/文件/目录信息
  • 上下方向键:翻查历史执行命令
  • ctrl+a:移动光标至行首
  • ctrl+e:移动光标至行尾
  • ctrl+u:剪切光标到行首处的所有字符
  • ctrl+向左箭头:光标向左跳一个单词
  • ctrl+向右箭头:光标向右跳一个单词
  • ctrl+d:退出当前终端
  • ctrl+c:终止当前正在运行的命令

六、Linux 基础核心命令

1. 系统信息查询类

  • date:查看/更改系统时间
  • uptime:查看系统自启动以来的运行时长
  • who:查看当前登录系统的用户身份
  • history:查看成功运行的命令历史记录
  • hostname:查看当前主机名
  • whoami:查看当前登录的用户名
  • id:查看当前用户的UID/GID等身份信息
  • uname -a:查看系统详细内核信息
  • cat /etc/redhat-release:查看红帽系列系统版本信息
  • cat /proc/cpuinfo:查看CPU硬件详细信息
  • cat /proc/meminfo:查看物理内存详细信息
  • free:查看物理内存的可用/使用大小

2. 用户权限操作类

  • su:用户提权/切换(su - name 带环境变量切换,su name 仅切换用户)
  • passwd:更改当前用户/指定用户密码
  • chown:设置文件/目录的所有者和所属组
  • chmod:设置用户对文件/目录的读、写、执行权限

3. 目录文件操作类

  • ls:列出当前目录下的所有文件和目录
  • cd:切换工作目录(cd ~ 回主目录,cd .. 回上级目录)
  • pwd:显示当前工作目录的完整绝对路径
  • cp:复制文件/目录(cp -r 递归复制目录)
  • rm:删除文件/目录(rm -rf 强制递归删除)
  • mv:移动/重命名文件/目录
  • mkdir:创建目录(mkdir -p 递归创建多级目录)
  • rmdir:删除空目录
  • file:查看指定文件的类型/属性
  • touch:创建空文件/更改文件的时间戳属性
  • find:在指定目录下查找文件/目录
  • du:显示指定文件/目录占用的磁盘空间大小
  • df:显示文件系统的磁盘空间使用情况(含挂载点、使用率)

4. 网络操作类

  • ifconfig:查看/更改网卡网络配置
  • netstat:查看网络连接、端口、路由等配置信息
  • route:查看/更改系统路由表
  • mount:挂载文件系统/设备
  • umount:卸载已挂载的文件系统/设备

5. 压缩解压缩类

  • gzip:压缩文件(生成.gz格式,原文件消失)
  • gunzip:解压缩.gz文件(等同于gzip -d
  • tar:打包/压缩/解压缩(常用:tar -zcvf 压缩,tar -zxvf 解压缩)

6. 文件内容查看类

  • cat:一次性输出文件全部内容
  • more:滚动式查看文件内容(仅向下翻)
  • less:分页式查看文件内容(上下翻、搜索)
  • tail:查看文件行尾内容(tail -f 实时监控最新内容)
  • head:查看文件行首内容

7. 帮助文档类

  • man:查看命令/配置文件的帮助手册(最常用)
  • info:查看更详细的命令说明
  • --help:查看命令的简易帮助文档(如 ls --help

8. 进程管理类

  • top:实时动态显示当前正在运行的进程(按资源占用排序)
  • ps:查看当前系统的进程状态(常用 ps -ef
  • kill:杀死指定进程(kill -9 进程ID 强制杀死)

9. 其他实用命令

  • clear:清空终端屏幕内容
  • which:查找可执行文件的绝对路径
  • whereis:查找可执行文件的二进制、源代码、man手册路径
  • bc:调用任意精度计算器(终端内进行数值计算)

七、管道与过滤命令:grep

1. 核心功能

查找指定文件中的特定内容,常与管道符 | 配合使用,过滤命令输出结果。

2. 常用参数与用法

  • | grep 关键词:过滤出包含指定关键词的行
  • -v:排除指定内容(反向匹配)
    • 示例:查询不包含字母abc的行 → cat test.txt |grep -v 'abc'
  • ^:匹配行首字符
    • 示例:匹配以#开头的行(注释行)→ grep ^# 文件名
  • $:匹配行尾字符
    • ^$:匹配空行
  • 组合用法:过滤掉注释行和空行并输出到新文件
    cat /etc/ssh/sshd_config|grep -v ^# |grep -v ^$>>/tmp/a.log

八、输入输出重定向

1. 输出重定向

  • >覆盖式重定向,将命令输出写入文件(文件原有内容被清空)
  • >>追加式重定向,将命令输出追加到文件末尾(保留原有内容)

2. 输入重定向

  • <:将符号右侧文件的内容,作为左侧命令的标准输入

3. 即时输入重定向

  • <<:将输入的命令内容即时写入文件,常用于编写Shell脚本

九、vi 编辑器核心用法

vi 是 Linux 系统默认的文本编辑器,拥有三种核心模式,模式间可相互切换。

1. 命令模式(默认模式)

打开文件即进入,用于执行复制、剪切、跳转、撤销等操作,常用指令:

  • dd:剪切当前行
  • yy:复制当前行
  • p:将剪切/复制的内容粘贴到光标下方
  • P:将剪切/复制的内容粘贴到光标上方
  • G:跳转到文件最后一行
  • gg:跳转到文件第一行
  • u:撤销上一次的操作
  • Ctrl+r:重做上一次被撤销的操作
  • i:切换到插入模式(光标位置插入)
  • a:切换到插入模式(光标下一个位置插入)
  • o:在光标下方插入新行并切换到插入模式
  • O:在光标上方插入新行并切换到插入模式
  • ::进入底线命令模式

2. 插入模式

用于编辑/输入文件内容,通过 i/a/o/O 从命令模式进入,按 Esc 可返回命令模式

3. 底线命令模式

通过 : 从命令模式进入,用于执行保存、退出、查找、替换等操作,常用指令(示例):

  • :w:保存文件
  • :q:退出编辑器
  • :wq:保存并退出
  • :q!:强制退出(不保存修改)
  • :set nu:显示行号
  • :/关键词:查找文件中的指定关键词

Linux 系统核心知识:目录/用户/权限/设备管理

一、Linux 标准目录结构

Linux 采用树形根目录结构,所有文件/目录均基于/根目录展开,各目录分工明确,以下为核心目录说明:

  • /:根目录,所有目录的顶级父目录,系统所有资源的起始点
  • /usr:存放系统大部分应用程序、库文件、文档的核心目录
  • /bin:系统级二进制可执行文件目录(普通用户可执行),CentOS7/8 为/usr/bin的软链接
  • /sbin:管理员级二进制可执行文件目录(仅root可执行),CentOS7/8 为/usr/sbin的软链接
  • /var:存放系统动态数据的目录,核心子目录/var/log为系统所有日志文件的默认存放路径
  • /boot:系统启动相关文件目录,包含内核、启动引导程序、分区表等,缺一不可
  • /etc:系统全局配置文件目录,所有服务、环境的配置文件均在此(如网络、用户、SSH配置)
  • /opt:用户/第三方软件的自定义安装目录,适合存放独立的程序包
  • /tmp:系统临时文件存储目录,所有用户可读写,系统重启后文件会被自动清理
  • /dev:设备文件目录,Linux 中所有硬件(硬盘、键盘、鼠标等)均以文件形式存在于此
  • /home:普通用户的家目录,每个用户拥有独立的子目录(如/home/zhangsan),用户对自身家目录拥有完全权限
  • /lib:系统动态链接库文件目录,为/bin/sbin下的程序提供运行依赖
  • /proc:虚拟文件系统目录,存放当前系统的进程信息、内核状态、硬件参数等,数据仅存在于内存中,无实际磁盘占用

二、用户及用户组管理

Linux 为多用户多任务系统,用户和用户组是权限管理的核心,所有操作均围绕用户/组的权限划分展开。

1. 核心操作命令

操作类型 新增命令 删除命令 修改命令
用户管理 useradd 用户名 userdel 用户名 usermod [参数] 用户名
用户组管理 groupadd 组名 groupdel 组名 groupmod [参数] 组名

2. 核心配置文件(用户/组信息存储)

  • /etc/passwd:存放所有用户的基础信息(用户名、UID、GID、家目录、默认Shell等),对系统所有用户可读
  • /etc/group:存放所有用户组的信息(组名、GID、组成员列表等),对系统所有用户可读
  • /etc/shadow:存放经过哈希加密的用户密码、密码过期时间等敏感信息,仅root管理员可读,保证系统密码安全

三、文件/目录权限管理

Linux 中一切皆文件,每个文件/目录都拥有专属的权限属性,权限分为归属者操作权限两大维度,是系统安全的重要保障。

1. 权限查看与基础规则

  • 权限查看命令:ls -l 文件名/目录名(示例:ls -l aaa),执行后会显示完整的权限字符串(如-rwxr-xr--
  • 权限归属分类(三级):文件所有者所有者所在用户组其他用户(非所有者、非组内用户)
  • 操作权限与数字对应:读(r=4)、写(w=2)、执行(x=1),权限值为对应数字之和,支持数字式快速配置
  • 批量操作参数:-R,对当前目录及其所有子目录/文件执行相同的权限修改操作,递归生效

2. 权限修改核心命令

  • chown:修改文件/目录的所有者,或同时修改所有者+所属用户组
    语法示例:chown 用户名:组名 文件名/目录名
  • chmod:修改文件/目录的读、写、执行权限,支持数字式字符式两种配置方式
    语法示例:chmod 755 文件名chmod u+x,g-w 文件名

3. 常用权限组合(数字式)

Linux 中最常用的权限配置组合,适配绝大多数场景,牢记即可满足日常使用:

  • 755rwxr-xr-x,适用于可执行程序、脚本、公共目录(所有者全权限,组/其他用户只读可执行)
  • 644rw-r--r--,适用于普通配置文件、日志文件、文档(所有者可读可写,组/其他用户仅只读)
  • 700rwx------,适用于个人私密文件/目录(仅所有者可操作,组/其他用户无任何权限)

4. 特殊权限(SUID/SGID/Sticky)

为基础权限的补充,解决常规权限无法满足的特殊业务场景,有数字标识字符标识两种设置方式,需配合基础权限使用。

核心说明

  • s:权限传递标识,若显示为大写S,说明文件本身无执行权限,此时特殊权限无效
  • t:防误操作标识,仅针对目录生效

详细参数

特殊权限 数字标识 字符标识 核心功能 配置示例
SUID 4 u+s 执行文件时,临时切换为文件所有者身份,操作完成后自动恢复原身份 chmod 4777 文件名/chmod u+s 文件名
SGID 2 g+s 目录内创建的所有文件,所属组自动继承目录的所属组,组内用户可统一操作 chmod 2777 目录名/chmod g+s 目录名
Sticky(粘滞位) 1 o+t 同一组用户可在目录内创建/编辑文件,但无法删除/重命名其他用户的文件,防止误操作 chmod 1777 目录名/chmod o+t 目录名
全特殊权限 7 u+s,g+s,o+t 同时开启SUID、SGID、Sticky三种特殊权限 chmod 7777 文件名/chmod u+s,g+s,o+t 文件名

5. 权限字符串标识解析

ls -l执行后的权限字符串分为开头标识(文件/设备类型)和结尾标识(SELinux/扩展权限),结合中间的三级权限,可完整判断文件属性。

(1)权限开头标识(文件/设备类型)

  • d:目录
  • -:普通文件(文档、脚本、程序等)
  • l:链接文件(软链接/符号链接)
  • b:块设备文件
  • c:字符设备文件

(2)权限结尾标识(SELinux/扩展权限状态)

  • .:该文件/目录受SELinux安全策略管理(CentOS默认状态)
  • +:除了基础rwx权限外,还为文件/目录设置了其他扩展权限
  • 空格:该文件/目录不受SELinux安全策略管理

6. 软链接 vs 硬链接

Linux 中的链接文件分为两种,核心区别在于是否依赖原文件、是否支持跨系统/目录,实际使用中软链接更常用。

特性 软链接(符号链接) 硬链接
跨文件系统 支持 不支持
链接目录 支持 不支持
原文件删除 软链接立即失效 硬链接仍可正常使用(与原文件共享inode)
本质 独立文件,仅记录原文件的路径 原文件的另一个文件名,与原文件共用一个inode

四、设备文件管理

Linux 中所有硬件设备均在/dev目录下以文件形式存在,核心分为块设备文件字符设备文件,同时硬盘分区有严格的命名和规则。

1. 两类核心设备文件

(1)块设备文件(标识b

  • 读写单位:以固定大小的块为单位进行数据读写
  • 访问特性:随机访问、拥有数据缓冲区
  • 核心特点:存储容量大,适合大批量数据存储
  • 典型示例:硬盘、U盘、光盘、移动硬盘
  • 补充说明:日常编辑文档未保存时断电,内容丢失的原因是数据仅存于缓冲区,未写入块设备的物理存储

(2)字符设备文件(标识c

  • 读写单位:以单个字符为单位进行数据读写
  • 访问特性:顺序访问、无数据缓冲区
  • 核心特点:实时性强,操作即时反馈,无数据延迟
  • 典型示例:键盘、鼠标、终端(tty)、打印机
  • 补充说明:终端中敲入命令即时显示,就是因为终端作为字符设备,无缓冲区直接反馈

2. 硬盘分区命名与分区规则

(1)基础命名规则

  • sda:表示系统识别到的第一块硬盘(若有多块硬盘,依次为sdbsdc…)
  • sda1/sda2:表示sd a硬盘上的第1个/第2个分区,数字为分区编号

(2)两种分区模式(MBR/GPT)

Linux 支持两种硬盘分区模式,核心区别在于分区数量、支持的硬盘容量,现代系统优先使用GPT

分区模式 最大主分区数 逻辑分区规则 支持最大硬盘容量 适用场景
MBR(传统) 4个 需更多分区时,需创建1个扩展分区(仅为外壳,无实际存储),扩展分区内创建逻辑分区,逻辑分区编号从5开始 2TB 老旧系统、小容量硬盘
GPT(现代) 无限制(理论上128个) 无需扩展分区,直接创建主分区即可 无上限(支持8EB以上) 新系统、大容量硬盘、服务器

3. 本地终端相关说明

  • 标识:ttytty1-tty6,均代表Linux系统的本地物理终端
  • 数量:Linux 默认仅开启6个本地终端,可通过Ctrl+Alt+F1-F6切换
  • 配置文件:本地终端的数量、属性可通过/etc/systemd/logind.conf配置修改

Linux 网络配置与SSH服务配置笔记

本文整理了Linux系统下常用的网络配置方法、网络相关命令,以及SSH服务的配置、安全加固和常见问题解决,适用于Linux运维基础学习。

一、网络配置方法

Linux下有4种常用网络配置方式,其中nmcli为推荐的精准配置方式,配置永久生效。

1. 图形化界面配置

终端伪图形界面,操作直观,适合快速配置:

1
nmtui

2. 直接编辑配置文件

编辑网卡配置文件,修改后需重启网卡生效,配置文件路径固定:

1
2
# 编辑ens33网卡配置文件,其他网卡替换为对应名称(如ens34)
vi /etc/sysconfig/network-scripts/ifcfg-ens33

3. nmcli 命令配置(推荐)

替代ifconfig的新一代网络管理命令,配置精准且永久生效,以下为核心常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看网络设备/连接信息
nmcli d/c

# 查看整体网络状态
nmcli general status

# 管理网络连接:查看所有连接
nmcli connection show

# 管理网络设备:查看设备详细信息
nmcli device show

# 管理WiFi:扫描附近WiFi列表
nmcli device wifi list

# 配置静态IP(核心):给ens33配置IP、网关、DNS
nmcli connection modify ens33 \
ipv4.addresses 192.168.142.99 \
ipv4.gateway 192.168.142.2 \
ipv4.dns 114.114.114.114

4. 双网卡绑定(bonding)

核心原则

多网卡场景下,仅第一张网卡配置默认网关,其他网卡通过静态路由实现通信,避免网关冲突。

两种绑定模式

  • 主备模式:一张网卡主用,另一张备用,主网卡故障时自动切换,保障网络可用性。
  • 轮询模式:两张网卡同时工作,分担网络流量,提升传输效率。

内网网卡配置静态路由(示例)

给ens34网卡清空网关,添加指向10.0.0.0/24网段的静态路由,下一跳为10.0.0.1:

1
2
nmcli connection modify ens34 ipv4.gateway "" && \
nmcli connections modify ens34 +ipv4.routes "10.0.0.0/24 10.0.0.1"

二、常用网络管理命令

整理Linux下高频网络操作命令,涵盖网卡、路由、连接、网卡配置等场景:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 显示/设置网络设备信息(传统命令,可被nmcli替代)
ifconfig

# 显示IP路由表,查看网段转发规则
netstat -nr

# 显示所有活跃网络连接(TCP/UDP/UNIX套接字),不显示进程信息
netstat -an

# 显示活跃TCP连接,同时显示进程ID和程序名(排错常用)
netstat -natlp

# 查询/修改网卡硬件设置(如速率、双工模式)
ethtool 网卡名(如ens33)

# 关闭/启动指定网卡
ifdown 网卡名
ifup 网卡名

# 增加/删除静态路由:指定主机/网段的数据包转发规则
route add/del -host/-net 目标地址 网关地址

三、SSH 服务详解

SSH(Secure Shell)是应用层安全协议,专为远程登录和网络服务提供安全保障,有效防止远程管理中的信息泄露,默认基于C/S架构(客户端+服务端)。

1. SSH 基础信息

1
2
3
4
5
6
# SSH默认端口
22
# SSH核心配置文件目录
/etc/ssh/
# SSH服务端守护进程
sshd

2. SSH 安全验证级别

客户端提供两种验证方式,基于密钥的验证安全性远高于口令验证,推荐生产环境使用。

级别1:基于口令的安全验证

最基础方式,通过输入服务器账号+密码完成登录,简单但存在密码泄露风险。

级别2:基于密钥的安全验证

非对称加密方式,客户端生成公钥+私钥,公钥上传至服务器(加密),私钥由客户端保存(解密),无需输入密码即可登录,安全性高。

1
2
3
4
# 客户端生成公钥私钥(默认生成rsa算法密钥,保存在~/.ssh/下)
ssh-keygen
# 将客户端公钥上传至服务器(免密登录配置)
ssh-copy-id 用户名@服务器IP

3. SSH 版本与组件

版本兼容

SSH分为1.x和2.x两个不兼容版本,OpenSSH 2.x同时支持1.x和2.x,为目前主流版本。

服务端&客户端组件

  • 服务端sshd进程,后台运行,处理客户端连接请求,支持公钥认证、密钥交换、对称加密等。
  • 客户端:包含多款实用工具,满足远程操作需求:
    • ssh:核心远程登录工具
    • scp:远程文件拷贝,实现本地与服务器文件互传
    • slogin:直接登录远程服务器Shell
    • sftp:安全文件传输协议,可浏览、上传、下载服务器文件

4. SSH 安全加固(核心)

修改sshd_config配置文件,禁用危险配置,提升SSH服务安全性,修改后需重启sshd服务生效

1
2
# 编辑sshd核心配置文件
vi /etc/ssh/sshd_config

关键加固参数修改

1
2
3
4
5
6
7
8
9
10
# 1. 修改SSH默认端口,避免端口扫描(建议使用10000以上端口)
Port 18933
# 2. 禁止root用户直接登录,需普通用户登录后提权,降低风险
PermitRootLogin no
# 3. 禁止空密码用户登录,杜绝无密码访问
PermitEmptyPasswords no
# 4. 开启密码验证(若配置了免密登录,可保留yes;若仅需密钥登录,可改为no)
PasswordAuthentication yes
# 5. 关闭DNS解析,解决SSH登录对话框反应慢的问题
UseDNS no

5. sshd 服务管理命令

1
2
3
4
5
6
7
8
# 停止sshd服务
systemctl stop sshd
# 启动sshd服务
systemctl start sshd
# 重启sshd服务(配置文件修改后必执行)
systemctl restart sshd
# 查看sshd服务状态(检查是否正常运行)
systemctl status sshd

6. SSH 服务启动失败排错

sshd_config配置文件修改正确,但服务启动失败,优先检查SELinux状态,SELinux可能限制端口、权限等配置:

1
2
3
4
# 查看SELinux状态
getenforce
# 正常排错时,可临时关闭SELinux(Disabled为关闭状态)
setenforce 0

Linux 包管理工具 RPM/YUM 常用操作笔记

本文整理 Linux 中 RPM 与 YUM 包管理工具的核心概念、常用命令及配置方法,适用于 CentOS 等基于 RPM 包管理的发行版。

一、RPM 包管理工具

1. 基础概念

RPM(RedHat Package Manager)是 Red Hat Linux 专属的套件管理程序,简化 Linux 软件的安装、升级、卸载流程,提升系统易用性。

  • 套件:将程序、配置文件、依赖关系打包为单个文件,可通过 YUM 或直接 RPM 命令安装。
  • RPM 包命名规则包名-版本号-发布号.适用系统.架构.后缀
    示例:qt-mysql-4.8.7-8.el7.x86_64.rpm

2. 常用 RPM 命令

1
2
3
4
5
6
7
8
9
10
11
# 查询所有包含关键词xxx的套件
rpm -qa | grep xxx

# 安装RPM包(适用于无依赖/已装完依赖的情况,-i安装 -v显示详情 -h显示进度)
rpm -ivh xxx.rpm

# 删除指定套件
rpm -e xxx

# 强制删除套件(不验证依赖关联性,直接执行,慎用)
rpm -e xxx --nodeps

二、YUM 包管理工具

1. 基础概念

YUM 基于 RPM 包管理开发,核心优势是自动处理依赖关系,可从指定服务器自动下载并安装 RPM 包,无需手动逐个下载依赖。

2. YUM 源配置

(1)配置本地 YUM 源(以光盘源为例)

1
2
3
4
# 进入YUM源配置目录
cd /etc/yum.repos.d/
# 创建/编辑本地源配置文件
vi dvd.repo

dvd.repo 中写入以下内容:

1
2
3
4
5
[dvd]          # 仓库唯一ID(不可重复)
name=dvdrom # 仓库名称(自定义)
baseurl=file:///dvd # 本地源路径(光盘挂载路径)
gpgcheck=0 # 关闭数字签名检查(0关闭,1开启)
enabled=1 # 启用该仓库(可加,默认启用)

(2)配置网络 YUM 源

联网状态下,可替换为国内开源镜像源(阿里、腾讯、清华、百度等),直接下载对应发行版的 .repo 配置文件替换 /etc/yum.repos.d/ 目录下的原有文件即可。

3. YUM 核心常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 清除YUM缓存(解决源配置或包下载异常问题)
yum clean all

# 安装软件(自动处理依赖,xxx为包名/RPM包文件)
yum install foo-x.x.x.rpm
# 一键安装(直接写包名,自动匹配最新版)
yum install foo -y # -y 跳过确认步骤

# 删除软件(两种写法等效,自动处理依赖卸载)
yum remove foo-x.x.x.rpm -y
yum erase foo -y

# 升级软件(yum update 会升级系统所有可更包,yum upgrade 仅升级指定包,推荐upgrade)
yum upgrade foo -y
yum update foo -y

# 查询软件详细信息
yum info foo

# 搜索包含指定字段的软件包
yum search foo

# 显示软件包的所有依赖关系
yum deplist foo

三、DNF 包管理工具

1. 基础概念

DNF 是 YUM 的升级版,优化点如下:

  • 包解析速度更快
  • 运行时内存占用更低
  • 提供更友好的 API 接口
  • CentOS 8+ 已默认使用 DNF,此时系统中的 yum 命令是 DNF 的软链接,执行 yum 命令实际调用 DNF。

2. 核心特点

DNF 完全兼容 YUM 的所有命令,原 YUM 操作指令可直接在 DNF 中使用,无需额外学习,是 CentOS 8 及以上版本的推荐包管理工具。

Linux 磁盘与文件系统管理核心笔记

本文整理了Windows与Linux文件系统差异、磁盘分区、挂载、LVM逻辑卷、RAID磁盘阵列的核心操作与原理,适用于Linux运维入门学习。

一、文件系统基础

1. 定义

将数据分块存储,记录文件目录(位置)索引(inode),并管理文件权限的底层机制。

2. Windows vs Linux 文件系统核心差异

特性 Windows Linux
底层文件系统 NTFS(微软独有) Ext4(CentOS6/7)、XFS(CentOS8+)
根目录数量 多根目录(每块硬盘/分区一个) 单根目录(/)
新设备读取方式 直接识别 需挂载(/media、/mnt)
文件名大小写 不敏感 敏感
兼容性 封闭,仅支持少数格式 开源,支持所有格式(含NTFS)

3. Linux 主流文件系统对比

文件系统 适用系统 核心特性 最大文件系统 最大单个文件 子目录支持 适用场景
ext3 RHEL5 ext2基础上加日志,重启无需检查,速度快 16TB 2TB 32000个 传统小规模服务器
ext4 RHEL6/CentOS6/7 ext3大容量优化,性能提升 1EB 16TB 无限 中小规模业务
XFS RHEL7+/CentOS8+ 多线程/大文件读写性能优异,仅支持扩容 8EB-1字节 无明确限制 无限 企业超大规模业务

备注:XFS仅支持扩容不支持缩容;ext4支持扩容+缩容。

二、磁盘管理常用命令

1. 设备信息查询

1
2
3
4
5
6
# 树状列出所有块设备(disk/part/rom/lvm)及基本信息
lsblk
# 识别块设备属性(文件系统类型、UUID、标签)
blkid
# 查看挂载情况及磁盘空间使用
df -h

UUID:通用设备唯一识别码,用于永久挂载时精准定位设备,避免设备名漂移。

2. 分区工具

工具 默认分区格式 最大支持容量 分区数量限制 适用场景
fdisk MBR/msdos 2TB 最多4个主分区 小容量磁盘
parted GPT/guid PB级别 无限制 大容量现代存储

3. 格式化/挂载/卸载

1
2
3
4
5
6
7
8
9
10
11
# 格式化(XFS为例,ext4替换为mkfs.ext4)
mkfs.xfs /dev/设备名
# 临时挂载(重启失效):mount 设备 挂载点
mount /dev/sdb1 /data
# 永久挂载配置文件(系统启动自动挂载)
/etc/fstab
# 卸载设备(二选一)
umount 设备名
umount 挂载点
# 验证/etc/fstab配置(无报错则生效,有报错立即修改,禁止重启)
mount -a

三、MBR 与 GPT 分区表对比

分区表 英文全称 最大支持容量 主分区数量 核心优势 核心劣势
MBR Master Boot Record 2TB 最多4个 兼容性好,传统系统支持 容量小、无备份、分区少
GPT GUID Partition Table PB级别 无限制 大容量支持、分区无限制、带备份 老旧系统不兼容

四、磁盘挂载实现(临时+永久)

1. 临时挂载(重启失效)

1
2
3
4
5
6
7
8
# 步骤1:查看待挂载设备
lsblk
# 步骤2:创建挂载点(自定义,例:/wuxie)
mkdir -p /wuxie
# 步骤3:执行挂载
mount /dev/待挂载设备 /wuxie
# 步骤4:验证挂载结果
df -h

2. 永久挂载(修改/etc/fstab,推荐)

1
2
3
4
5
6
7
8
9
10
11
12
# 步骤1:获取设备UUID(精准定位,推荐优先使用)
blkid /dev/待挂载设备
# 步骤2:编辑配置文件
vim /etc/fstab
# 步骤3:文件末尾添加挂载配置,格式如下
UUID=设备UUID 挂载点 文件系统类型 权限 是否备份 是否开机检查
# 示例(XFS格式,默认权限,不备份,不开机检查)
UUID=ssa-3546-xxxx /wuxie xfs defaults 0 0
# 步骤4:验证配置(关键!有报错立即修改,禁止重启)
mount -a
# 步骤5:验证挂载结果
df -h

配置项说明

  • defaults:默认权限(可读可写、可执行)
  • 第1个0:不使用dump工具备份
  • 第2个0:开机时不执行fsck磁盘检查

五、磁盘分区+格式化+永久挂载实战

实战1:fdisk(MBR分区,≤2TB磁盘,例:10GB sdb)

1
2
3
4
5
6
7
8
9
10
# 步骤1:虚拟机/物理机添加新磁盘(识别为sdb)
# 步骤2:MBR分区
fdisk /dev/sdb
# 交互指令:n→p→默认分区号→默认起始扇区→默认结束扇区→w(保存)
# 步骤3:通知系统更新分区表
partprobe
# 步骤4:格式化(XFS为例)
mkfs.xfs /dev/sdb1
# 步骤5:永久挂载(参考上述永久挂载步骤)
blkid → vim /etc/fstab → mount -a → df -h

实战2:parted(GPT分区,≥2TB磁盘,例:10GB sdb)

1
2
3
4
5
6
7
8
# 步骤1:添加新磁盘(识别为sdb)
# 步骤2:GPT分区
parted /dev/sdb
# 交互指令:mklabel gpt → mkpart → 输入名称→选择文件系统→输入起止位置(如0% 100%)→quit
# 步骤3:格式化(XFS为例)
mkfs.xfs /dev/sdb1
# 步骤4:永久挂载(参考上述永久挂载步骤)
blkid → vim /etc/fstab → mount -a → df -h

六、LVM 逻辑卷管理(弹性管理磁盘空间)

1. LVM 核心组件(层级关系)

物理卷(PV) → 组成 → 卷组(VG) → 划分 → 逻辑卷(LV) → 格式化/挂载 → 业务使用

  • PV(物理卷):物理磁盘/分区打LVM标签,成为LVM基础单元
  • VG(卷组):将多个PV整合为一个“磁盘池”,统一管理空间
  • LV(逻辑卷):从VG中划分的可用空间,可弹性扩容/缩容

2. LVM 核心命令

组件 创建命令 查看命令 扩展命令
PV pvcreate 设备名 pvs -
VG vgcreate 卷组名 设备名 vgs vgextend 卷组名 新PV设备
LV lvcreate -L 容量 -n 逻辑卷名 卷组名 lvs lvextend -L 新容量 逻辑卷路径

3. LVM 完整实战(创建+挂载+扩容)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 步骤1:创建PV(例:sdb、sdc为新磁盘)
pvcreate /dev/sdb /dev/sdc
# 步骤2:创建VG(卷组名vg_data,整合sdb、sdc)
vgcreate vg_data /dev/sdb /dev/sdc
# 步骤3:创建LV(逻辑卷名lv_data,大小5G,从vg_data划分)
lvcreate -L 5G -n lv_data vg_data
# 步骤4:格式化LV(XFS为例)
mkfs.xfs /dev/vg_data/lv_data
# 步骤5:永久挂载(参考上述永久挂载步骤)
mkdir /lv_data → blkid → vim /etc/fstab → mount -a → df -h
# 步骤6:LV扩容(在线扩容,无需卸载,扩容到6G)
lvextend -L 6G /dev/vg_data/lv_data
# 步骤7:扩容文件系统(关键!让系统识别新空间,XFS/ext4区分)
# XFS文件系统
xfs_growfs /dev/vg_data/lv_data
# ext4文件系统
resize2fs /dev/vg_data/lv_data
# 步骤8:验证扩容结果
df -h

4. LVM 注意事项

  • XFS格式LV:仅支持扩容,不支持缩容
  • ext4格式LV:支持扩容+缩容(缩容需离线,先卸载文件系统)
  • 扩容顺序:先扩LV,再扩文件系统,缺一不可

七、文件系统修复

修复前必须卸载目标分区/逻辑卷,否则会损坏数据!

1
2
3
4
# 修复XFS系列文件系统(检查日志、重建元数据)
xfs_repair /dev/设备名
# 修复ext系列文件系统(CentOS7/8默认,检查并修复元数据)
fsck /dev/设备名

八、RAID 磁盘阵列

1. 定义

将多块物理磁盘通过硬件/软件方式整合为一个逻辑磁盘,实现性能提升空间扩容数据冗余

2. RAID 分类

类型 核心特点 空间利用率 最少磁盘数 适用场景
硬RAID 独立RAID硬件卡,性能高,稳定性好 - - 企业级高要求业务
软RAID 操作系统内核+CPU模拟,无硬件成本,性能略低 - - 中小规模业务/测试环境

3. 主流RAID级别对比

RAID级别 核心模式 核心优势 核心劣势 空间利用率 最少磁盘数 适用场景
RAID0 条带模式 速度最快,无冗余开销 无数据冗余,一块盘坏则全丢 100% 2块 临时数据、缓存、对速度要求高
RAID1 镜像模式 数据完全镜像,最安全 空间利用率低 50% 2块 系统盘、重要数据存储
RAID5 带校验的条带 平衡安全与空间,性价比高 仅支持单盘故障恢复 (n-1)/n 3块 通用业务、大部分企业场景
RAID6 带双校验的条带 双盘故障可恢复,更安全 空间利用率更低,性能略降 (n-2)/n 4块 核心重要数据、高可用场景
RAID1+0 先镜像后条带 安全+高速,稳定性强 空间利用率低 50% 4块 企业核心业务、高要求场景
RAID0+1 先条带后镜像 速度较快 稳定性差,故障风险高 50% 4块 几乎不使用

4. 特殊RAID相关

  • HotSpare(热备盘):待命备用盘,当RAID中某块盘故障时,自动替换故障盘并重建数据,提升高可用。
  • RAID2.0:现代主流,以为单位做冗余(传统RAID以盘为单位),切块虚拟化,支持大规模硬盘集群,单块盘故障影响可忽略。

5. 软RAID 实战(mdadm创建RAID5,3块盘:sdb/sdc/sdd)

1
2
3
4
5
6
7
8
9
# 安装mdadm工具
yum install -y mdadm
# 创建RAID5(逻辑设备/dev/md0,3块数据盘)
mdadm --create --verbose /dev/md0 \
--level=5 \
--raid-devices=3 \
/dev/sdb /dev/sdc /dev/sdd
# 后续操作:格式化→挂载(同普通磁盘)
mkfs.xfs /dev/md0 → mkdir /raid5 → mount /dev/md0 /raid5

Linux 常用运维命令整理

本文整理了Linux系统中防火墙管理、定时任务、root密码破解、救援模式的常用操作命令,适用于日常运维场景,命令均经过实操验证,可直接复用。

一、firewalld 防火墙管理

基础服务操作

1
2
3
4
5
6
7
8
9
10
# 启动firewalld服务
systemctl start firewalld.service
# 关闭firewalld服务
systemctl stop firewalld.service
# 重启firewalld服务
systemctl restart firewalld.service
# 查看firewalld状态
systemctl status firewalld.service
# 开机自启firewalld
systemctl enable firewalld

防火墙核心操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看firewalld版本
firewall-cmd --version
# 查看firewalld帮助信息
firewall-cmd --help
# 显示防火墙当前状态
firewall-cmd --state
# 查看public区域所有开放策略
firewall-cmd --zone=public --list-all
# 更新防火墙规则(修改规则后需执行)
firewall-cmd --reload
# 永久开放指定端口(示例:80/tcp),无--permanent则重启失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 查看指定端口是否开放(示例:80/tcp)
firewall-cmd --zone=public --query-port=80/tcp
# 永久删除开放的指定端口(示例:80/tcp)
firewall-cmd --zone=public --remove-port=80/tcp --permanent

注意:每次修改firewall规则后,必须执行firewall-cmd --reload使规则生效。

二、CentOS 6 版本 iptables 防火墙

CentOS 6 系统无firewalld,使用iptables管理防火墙,服务控制命令与后续版本不同:

1
2
3
4
5
6
7
8
9
10
# 停止iptables服务
service iptables stop
# 启动iptables服务
service iptables start
# 重启iptables服务
service iptables restart
# 查看iptables状态
service iptables status
# 查看iptables所有规则
iptables -L

三、Linux 服务通用查看命令

1
2
# 查看系统中已开机自启的服务列表
systemctl list-unit-files --type=service|grep enabled

说明:CentOS 6 版本系统使用servicechkconfig命令控制服务,而非systemctl

四、crontab 定时任务

基础操作命令

1
2
3
4
# 列出当前用户的所有定时任务
crontab -l
# 编辑当前用户的定时任务(打开vi编辑器进行编辑)
crontab -e

定时任务时间格式

1
2
3
4
5
6
7
8
*    *    *    *    *
- - - - -
| | | | |
| | | | +----- 星期(0 - 6),0代表星期天
| | | +---------- 月份(1 - 12)
| | +--------------- 日期(1 - 31)
| +-------------------- 小时(0 - 23)
+------------------------- 分钟(0 - 59)

示例*/5 * * * * /usr/bin/ls 表示每5分钟执行一次ls命令。

五、Linux 单用户模式破解root密码

适用于忘记root密码,可直接操作服务器的场景,步骤如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 开机在grub引导界面按e进入编辑模式
# 2. 找到linux16开头的行,将“ro”(只读)替换为:
rw init=/sysroot/bin/sh
# 3. 按Ctrl+x进入单用户模式
# 4. 切换到原始系统根目录
chroot /sysroot
# 5. 修改root密码,按提示输入新密码两次
passwd root
# 6. 让SELinux生效(必须执行,否则密码修改无效)
touch /.autorelabel
# 7. 退出chroot环境
exit
# 8. 重启服务器,使用新密码登录
reboot

说明:Linux用户密码存储在/etc/shadow文件中。

六、Linux 救援模式修复系统

适用于系统文件损坏、无法正常启动的场景,以虚拟机操作为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 虚拟机设置:选择需救援的系统,挂载镜像并勾选“启动时连接”
# 2. 启动虚拟机,进入固件设置
# 3. Boot菜单中,将CD-ROM Drive移至首位,F10保存并重启
# 4. 重启后选择Troubleshooting → 回车选择Rescue system
# 5. 选择continue,后续默认回车即可
# 6. 切换到系统根目录,提示符会从sh-4.2#变为bash-4.2#
chroot /mnt/sysimage
# 7. 查看本地目录,确认损坏文件位置
ls
# 8. 进入对应目录,编辑/修复损坏文件(使用vi/vim编辑器)
# 9. 退出chroot环境
exit
# 10. 关闭服务器,恢复Boot启动项顺序后重启
init 0
# 11. 重新进入系统,验证修改后的文件是否生效