perl regex
Perl 以其强大的正则表达式引擎而闻名,它为文本处理提供了无与伦比的灵活性和力量。 Perl 正则表达式正则表达式 (Regular Expression,简称 Regex 或 Regexp) 是一种用来描述、匹配字符串模式的强大工具。在 Perl 中,正则表达式是语言的核心部分,被广泛用于字符串搜索、替换、分割和数据验证。 1. 基本概念与操作符Perl 主要通过以下三个操作符来使用正则表达式: 匹配操作符 m// (或 /): 用于查找字符串中是否包含某个模式。 替换操作符 s///: 用于查找并替换字符串中的模式。 转换操作符 tr/// (或 y///): 用于将字符串中的字符一对一地转换。 默认情况下,这些操作符作用于特殊变量 $_。 示例:基本匹配 1234my $text = "Hello, world!";if ($text =~ /world/) { print "找到了 'world'。\n";} 2. 元字符 (Metacharacters) - 构建模式的基石...
samba
SMB (Server Message Block) ,SMB 是一种网络文件共享协议,允许 Windows、macOS 和 Linux 客户端访问服务器上的共享文件夹。我们将使用 Samba 软件包来实现 SMB 服务。 Samba 是一套开源软件套件,它实现了 SMB/CIFS 协议,从而使 Linux 服务器能够与 Windows 客户端进行文件和打印机共享。 1. 安装 Samba12345678910# Ubuntu/Debian 系统sudo apt updatesudo apt install samba# 完整安装sudo apt install samba smbclient cifs-utils# CentOS/RHEL 系统sudo yum updatesudo yum install samba 在 Ubuntu/Debian 系统上安装 Samba 时,通常会安装一系列核心软件包和相关的依赖,以便提供文件和打印共享服务。主要会安装以下软件包和涉及的服务: 1. 主要安装的软件包 (及其核心二进制文件)当安装 samba 软件包时,它...
dnsmasq
dnsmasq 详解dnsmasq 是一个轻量级的网络服务软件,它集成了 DNS 转发器 (DNS Forwarder)、DHCP 服务器 (DHCP Server) 和 TFTP 服务器 (TFTP Server) 功能。因其小巧、易用和高效的特点,dnsmasq 在家庭网络、小型办公室 (SOHO) 环境以及嵌入式设备(如路由器)中非常流行。 1. 什么是 dnsmasq?简单来说,dnsmasq 可以被视为一个本地的 DNS 缓存服务器和 DHCP 服务器。 DNS 转发器:当你的设备需要解析一个域名时,它首先会向 dnsmasq 发送请求。如果 dnsmasq 已经缓存了这个域名的 IP 地址,它会立即返回;如果没有,它会将请求转发给上游的 DNS 服务器(例如你的 ISP 的 DNS 或公共 DNS 如 8.8.8.8),获取结果后缓存并返回给客户端。 DHCP 服务器:它可以为连接到网络的设备自动分配 IP 地址、网关、DNS 服务器等网络配置信息。 TFTP 服务器:用于简单的文件传输,常用于网络启动 (PXE boot) 或固件升级。 2. dnsmasq 的...
dig
dig 命令参数大全dig (Domain Information Groper) 是一个强大的命令行工具,用于查询 DNS 域名服务器。它提供了高度的灵活性和详细的输出,是网络管理员和开发者诊断 DNS 问题的首选工具。 1. 基本语法1dig [@server] [name] [type] [options] **@server (可选)**:指定要查询的 DNS 服务器的 IP 地址或主机名。 示例:@8.8.8.8 (Google Public DNS), @1.1.1.1 (Cloudflare DNS) **name (必选)**:要查询的域名。 示例:example.com, www.google.com **type (可选)**:要查询的 DNS 记录类型。如果不指定,默认查询 A 记录。 示例:A, AAAA, MX, NS, CNAME, TXT, SRV, SOA, PTR, ANY **options (可选)**:控制 dig 命令行为的各种选项,通常以 + 开头。 2. 常用记录类型 (type)这些参数用于指定你希望 dig 查...
systemd
systemd:systemd 是当前 Linux 系统中主流的初始化系统和服务管理器,取代了传统的 SysVinit。 核心优势 并行启动: 显著加快系统启动速度,服务可同时启动。 依赖管理: 精确控制服务启动和停止顺序。 统一管理: 为所有系统服务提供统一配置和行为。 进程跟踪: 基于 cgroups,准确跟踪服务所有进程,避免孤儿进程。 按需启动: 服务只在需要时才启动,节省资源。 集中日志 (Journald): 统一收集和查询所有系统日志。 与 SysVinit 的主要区别 特性 SysVinit systemd 启动 串行 并行 配置 Shell 脚本 单元文件 (.service) 日志 分散文本 Journald (二进制日志) 跟踪 基于 PID 基于 Cgroups 机制 简单初始化 集成更多系统组件、功能更强大 systemctl:服务管理核心命令这是与 systemd 交互的主要工具。 sudo systemctl start <服务名>: 启动服务。 sudo systemctl stop <服务名&g...
firewalld/ufw
Linux 下的防火墙管理是系统安全的重要组成部分。虽然底层机制(netfilter、iptables 或 nftables)是相似的,但不同的发行版通常会提供不同的前端工具来简化配置。Red Hat 系列(如 RHEL、CentOS、Fedora、AlmaLinux、Rocky Linux)倾向于使用 **firewalld**,而 Debian 系列(如 Debian、Ubuntu、Linux Mint)则偏爱 **UFW (Uncomplicated Firewall)**。 1. Red Hat 系列:Firewalld 详解firewalld 是一个动态的防火墙管理工具,它通过 区域 (zones) 的概念来管理网络连接和接口的信任级别。它作为 iptables 或 nftables 的前端,提供了一个更高级别的接口,使得防火墙配置更直观、更灵活。 核心概念 **区域 (Zones)**:这是 firewalld 最重要的概念。每个区域都代表一个信任级别,并可以分配给一个或多个网络接口或源 IP 地址。例如: public:默认区域,适用于公共网络,信任度最低。 ho...
grub
GRUBGRUB 的原始版本更名为 GRUB Legacy。GRUB Legacy 上继续进行少量维护,但最后一个版本(0.97)是在 2005 年发布的。 大约在 2007 年,GNU/Linux 发行版开始在有限的范围内使用 GRUB 2,到 2009 年底,多个主要发行版都默认安装它。 GRUB 2 (GRand Unified Bootloader version 2) 是 Linux 系统中广泛使用的引导加载器。它在操作系统启动之前运行,负责加载操作系统内核到内存,并将控制权移交给内核。理解 GRUB 2 对于系统维护、故障排除以及多系统引导至关重要。 1. GRUB 2 核心概念GRUB 2 的设计非常模块化且强大,其核心概念包括: 多阶段引导 (Multi-stage Booting): boot.img (Stage 1): 位于硬盘的 MBR (Master Boot Record) 或 EFI 系统分区 (ESP) 的引导扇区。它非常小,主要任务是加载 core.img。 core.img (Stage 1.5): 包含文件系统驱动(让 GRU...
FHS和内核交互接口
Linux 文件系统结构(FHS)Linux 文件系统结构(Filesystem Hierarchy Standard,简称 FHS)是定义了 Linux 操作系统中文件和目录的布局与内容的一套标准。它的主要目的是为了让不同的 Linux 发行版能够保持文件系统的一致性,从而让软件开发者、系统管理员和用户都能更容易地找到特定的文件和目录,提高系统的兼容性和可管理性。 FHS 的设计理念是将系统文件和用户数据、可变数据和静态数据等进行逻辑上的分离,以实现以下几个关键目标: 可移植性(Portability):确保不同系统之间的文件路径和内容保持一致,方便应用程序在不同 Linux 发行版之间移植。 易管理性(Manageability):通过规范的目录结构,使系统管理员能够更容易地定位、备份、恢复和维护系统。 多用户环境(Multi-user Environments):区分用户数据和系统数据,支持多用户环境下的数据安全和隔离。 网络文件系统(Network Filesystems):方便通过网络挂载只读或共享文件系统,例如 /usr 和 /var。 FHS 的主要目录及其用...
chroot/initrd/rescue实战操作
1. chroot 命令实战:改变根目录环境chroot (change root) 命令能够改变当前进程及其子进程的根目录。这意味着被 chroot 过的程序将认为新的目录是其文件系统的根目录 (/),无法访问该新根目录之外的文件和目录。这在系统恢复、构建隔离环境或测试软件时非常有用。 1.1 chroot 的典型应用场景 系统恢复与修复: 当您的 Linux 系统无法正常启动,例如 GRUB 引导器损坏、核心配置文件错误、或者需要重置 root 密码时,chroot 是进入受损系统环境进行修复的关键工具。 构建隔离的构建/测试环境: 在一个干净、隔离的环境中编译软件,避免与宿主系统的库冲突,或为特定目的(如交叉编译)设置独立的开发环境。 创建“chroot jail” (监狱): 限制特定服务的访问权限,增强安全性。例如,可以将 FTP 服务器或 SSH 用户限制在文件系统的某个特定子目录中,防止他们访问其他敏感区域。 1.2 chroot 系统恢复实战(以 GRUB 修复为例)假设您的 Linux 系统(例如 CentOS/Ubuntu)因 GRUB ...
Linux:文件系统结构与启动过程深度解析
Linux 核心知识体系:文件系统结构与启动过程深度解析1. Linux 文件系统结构(FHS)文件系统层次结构标准(Filesystem Hierarchy Standard,FHS) 是 Linux 操作系统中文件和目录布局的规范。它确保了不同 Linux 发行版之间的一致性,便于软件管理、系统维护和可移植性。 FHS 的核心理念是将系统文件和用户数据、静态数据和可变数据进行逻辑分离,以实现系统稳定性、可管理性和多用户兼容性。 1.1 FHS 主要目录及其用途 / (根目录) 文件系统层次结构的起点,所有其他目录和文件都在其下。 只包含系统启动和运行所需的最少文件和目录。 /bin (用户二进制文件) 所有用户都可用的基本命令,如 ls, cp, mv。这些命令是单用户模式下系统启动和维护所必需的。 /sbin (系统二进制文件) 系统管理员使用的基本系统管理命令,如 fdisk, mkfs, reboot。通常用于系统启动、恢复和维护。 /etc (配置文件) 所有系统范围的配置文件,如 /etc/passwd, /etc/group, 服务配置文件。通常是文本...
