source命令、.bashrc 、.bash_profile、/etc/profile配置文件详解

文章目录

  • [Linux .bashrc、.bash_profile、/etc/profile 核心原理与区别详解](#Linux .bashrc、.bash_profile、/etc/profile 核心原理与区别详解)
    • [一、source ~/.bashrc 命令核心作用](#一、source ~/.bashrc 命令核心作用)
      • [1.1 什么是 .bashrc?](#1.1 什么是 .bashrc?)
      • [1.2 为什么必须执行 source 命令?](#1.2 为什么必须执行 source 命令?)
    • [二、source 命令完整原理与用法](#二、source 命令完整原理与用法)
      • [2.1 基本语法](#2.1 基本语法)
      • [2.2 核心原理:区分当前 Shell 与子 Shell](#2.2 核心原理:区分当前 Shell 与子 Shell)
      • [2.3 典型使用场景](#2.3 典型使用场景)
      • [2.4 source 与普通脚本执行对比](#2.4 source 与普通脚本执行对比)
      • [2.5 注意事项](#2.5 注意事项)
    • [三、三大核心配置文件:/etc/profile、~/.bash_profile、~/.bashrc 区别](#三、三大核心配置文件:/etc/profile、/.bash_profile、/.bashrc 区别)
      • [3.1 基础定义与核心区别](#3.1 基础定义与核心区别)
      • [3.2 各文件详细解析](#3.2 各文件详细解析)
        • [3.2.1 /etc/profile(系统全局大管家)](#3.2.1 /etc/profile(系统全局大管家))
        • [3.2.2 ~/.bash_profile(用户专属全局配置)](#3.2.2 ~/.bash_profile(用户专属全局配置))
        • [3.2.3 ~/.bashrc(终端交互专属配置)](#3.2.3 ~/.bashrc(终端交互专属配置))
      • [3.3 核心疑问:已有 profile 为什么还需要 bashrc?](#3.3 核心疑问:已有 profile 为什么还需要 bashrc?)
        • [1. 适配不同终端打开场景](#1. 适配不同终端打开场景)
        • [2. 性能优化,避免资源浪费](#2. 性能优化,避免资源浪费)
        • [3. 安全隔离,避免脚本异常](#3. 安全隔离,避免脚本异常)
    • [四、实战场景:OpenCode 安装为什么写入 .bashrc?](#四、实战场景:OpenCode 安装为什么写入 .bashrc?)
      • [4.1 安装核心逻辑](#4.1 安装核心逻辑)
      • [4.2 选择 .bashrc 的三大核心原因](#4.2 选择 .bashrc 的三大核心原因)
        • [1. 全 Shell 兼容性最强](#1. 全 Shell 兼容性最强)
        • [2. 贴合日常使用场景](#2. 贴合日常使用场景)
        • [3. 简化安装脚本逻辑,降低报错率](#3. 简化安装脚本逻辑,降低报错率)
      • [4.3 规范优化小技巧](#4.3 规范优化小技巧)
    • 五、最终总结
    • [一、source ~/.bashrc 命令核心作用](#一、source ~/.bashrc 命令核心作用)
      • [1.1 什么是 .bashrc?](#1.1 什么是 .bashrc?)
      • [1.2 为什么必须执行 source 命令?](#1.2 为什么必须执行 source 命令?)
    • [二、source 命令完整原理与用法](#二、source 命令完整原理与用法)
      • [2.1 基本语法](#2.1 基本语法)
      • [2.2 核心原理:区分当前 Shell 与子 Shell](#2.2 核心原理:区分当前 Shell 与子 Shell)
      • [2.3 典型使用场景](#2.3 典型使用场景)
      • [2.4 source 与普通脚本执行对比](#2.4 source 与普通脚本执行对比)
      • [2.5 注意事项](#2.5 注意事项)
    • [三、三大核心配置文件:/etc/profile、~/.bash_profile、~/.bashrc 区别](#三、三大核心配置文件:/etc/profile、/.bash_profile、/.bashrc 区别)
      • [3.1 基础定义与核心区别](#3.1 基础定义与核心区别)
      • [3.2 各文件详细解析](#3.2 各文件详细解析)
        • [3.2.1 /etc/profile(系统全局大管家)](#3.2.1 /etc/profile(系统全局大管家))
        • [3.2.2 ~/.bash_profile(用户专属全局配置)](#3.2.2 ~/.bash_profile(用户专属全局配置))
        • [3.2.3 ~/.bashrc(终端交互专属配置)](#3.2.3 ~/.bashrc(终端交互专属配置))
      • [3.3 核心疑问:已有 profile 为什么还需要 bashrc?](#3.3 核心疑问:已有 profile 为什么还需要 bashrc?)
        • [1. 适配不同终端打开场景](#1. 适配不同终端打开场景)
        • [2. 性能优化,避免资源浪费](#2. 性能优化,避免资源浪费)
        • [3. 安全隔离,避免脚本异常](#3. 安全隔离,避免脚本异常)
    • [四、实战场景:OpenCode 安装为什么写入 .bashrc?](#四、实战场景:OpenCode 安装为什么写入 .bashrc?)
      • [4.1 安装核心逻辑](#4.1 安装核心逻辑)
      • [4.2 选择 .bashrc 的三大核心原因](#4.2 选择 .bashrc 的三大核心原因)
        • [1. 全 Shell 兼容性最强](#1. 全 Shell 兼容性最强)
        • [2. 贴合日常使用场景](#2. 贴合日常使用场景)
        • [3. 简化安装脚本逻辑,降低报错率](#3. 简化安装脚本逻辑,降低报错率)
      • [4.3 规范优化小技巧](#4.3 规范优化小技巧)
    • 五、最终总结

Linux .bashrc、.bash_profile、/etc/profile 核心原理与区别详解

一、source ~/.bashrc 命令核心作用

source ~/.bashrc 是 Linux、macOS 终端高频常用命令,核心功能:让当前终端窗口立即生效 .bashrc 的最新配置,无需关闭重启终端

1.1 什么是 .bashrc?

.bashrc 是 Bash Shell 的用户个人专属交互式配置文件 ,存放于用户家目录 ~/ 下,仅对当前用户生效。文件中主要存储终端个性化交互配置,常见内容如下:

  • 命令别名 :简化长命令,如 alias ll='ls -alh'
  • 环境变量 :追加软件安装路径到系统 $PATH
  • 自定义配置:终端提示符样式、自定义函数、快捷键配置等

默认规则:只有新建终端窗口时,系统才会自动加载 .bashrc 配置,已打开的终端不会主动更新配置。

1.2 为什么必须执行 source 命令?

手动修改、保存 .bashrc 后,当前已打开的终端无法感知配置变更,新配置不会即时生效,仅有两种解决方式:

  1. 重启终端:关闭当前窗口,重新打开(自动加载最新配置);
  2. 执行刷新命令:source ~/.bashrc,强制当前终端重新读取配置文件,即时生效。

直观示例

在 .bashrc 末尾添加自定义别名:alias hello='echo "你好!"'

  • 不执行刷新:当前终端输入 hello,提示命令不存在;
  • 执行 source ~/.bashrc 后:输入 hello 即可正常输出内容。

二、source 命令完整原理与用法

source 是 Shell 内置命令,核心逻辑:在当前终端 Shell 环境中执行文件命令,不创建子 Shell,所有配置修改会直接保留在当前会话中。

2.1 基本语法

Plain 复制代码
source 文件名 [参数]
# 等效简写(兼容性更强)
. 文件名 [参数]

2.2 核心原理:区分当前 Shell 与子 Shell

这是理解 source 命令的关键,两种执行方式差异极大:

  • 普通执行脚本(./xxx.sh / bash xxx.sh :新建子 Shell 进程执行脚本,环境变量、目录、配置修改仅在子进程生效,脚本运行结束后修改全部失效,不影响当前终端。
  • source 执行脚本 :复用当前 Shell 进程,逐行执行文件内命令,所有配置变更永久保留在当前终端会话中。

2.3 典型使用场景

  1. 刷新配置文件(最常用) :修改 .bashrc/etc/profile 等配置后,无需重启登录,即时生效;
  2. 加载自定义环境变量:批量导入脚本中定义的变量,供当前终端使用;
  3. 导入自定义函数/别名:将通用工具函数、命令别名单独封装,随时导入调用;
  4. 脚本模块化开发:主脚本通过 source 引入外部配置文件,简化代码结构。

2.4 source 与普通脚本执行对比

对比项 source 脚本 / . 脚本 ./脚本 / bash 脚本
执行环境 当前 Shell 新建子 Shell
环境修改有效性 永久保留在当前会话 脚本结束即失效
权限要求 仅需读权限 需要可执行权限(chmod +x)
含 exit 命令影响 直接关闭当前终端 仅退出子 Shell,无影响

2.5 注意事项

  • 慎用 source 执行含 exit 的脚本,会直接关闭当前终端;
  • 优先使用绝对路径/相对明确路径执行文件,避免文件找不到报错;
  • 部分系统默认 sh 为 dash,不支持 source 关键字,统一用 . 命令兼容性更强。

三、三大核心配置文件:/etc/profile、/.bash_profile、/.bashrc 区别

三者均用于配置 Shell 环境变量、终端参数,核心差异为作用范围、加载时机、使用场景,并非冗余配置,而是分工互补。

3.1 基础定义与核心区别

文件名 作用范围 加载时机 核心用途
/etc/profile 系统全局(所有用户) 用户登录系统时(仅登录式Shell) 配置系统全局基础环境(PATH、语言、权限)
~/.bash_profile 当前单个用户 用户登录系统时(仅登录式Shell) 配置用户专属全局环境变量
~/.bashrc 当前单个用户 每次新开交互式终端(非登录Shell) 配置终端个性化交互参数(别名、提示符)

3.2 各文件详细解析

3.2.1 /etc/profile(系统全局大管家)

系统级公共配置文件,所有用户通过账号密码登录系统(SSH、物理终端登录)时自动执行,优先级最高。

  • 核心作用:定义全系统通用的基础环境,如全局 PATH、系统语言、文件默认权限 umask;
  • 扩展机制:不建议直接修改该文件,系统会自动加载 /etc/profile.d/ 目录下所有 sh 脚本,全局软件配置可在此新建脚本;
  • 权限要求:需 root 权限修改。
3.2.2 ~/.bash_profile(用户专属全局配置)

当前用户的私人登录配置文件,仅本人登录系统时生效,用于覆盖/补充系统全局配置。

  • 核心作用:配置用户私有软件环境变量、专属登录初始化命令;
  • 加载规则:系统优先查找该文件,不存在则依次查找 ~/.bash_login~/.profile,仅加载首个找到的文件;
  • 联动机制:主流 Linux 发行版默认在此文件中写入代码,自动加载 .bashrc,保证登录后个性化配置生效。

典型默认配置:

Plain 复制代码
if [ -f ~/.bashrc ]; then
    . ~/.bashrc  # 登录时自动加载终端个性化配置
fi
export PATH=$PATH:$HOME/bin
3.2.3 ~/.bashrc(终端交互专属配置)

专门服务于非登录式交互式终端(桌面点击图标新开终端、终端内执行 bash 命令),是日常终端使用的核心配置文件。

  • 核心作用:存放轻量、高频的交互配置,如命令别名、终端配色、自定义交互函数;
  • 加载规则:每次新开终端都会加载,无需登录系统;
  • 核心价值:弥补 profile 类文件无法适配日常新开终端的短板。

3.3 核心疑问:已有 profile 为什么还需要 bashrc?

根本原因:区分「登录式 Shell」和「非登录式交互式 Shell」,兼顾性能、体验与安全性

1. 适配不同终端打开场景
  • 登录式 Shell(SSH 远程登录、物理机登录):仅加载 /etc/profile + ~/.bash_profile
  • 非登录式 Shell(桌面新开终端):仅加载 .bashrc,完全不读取 profile 文件。

若所有配置都写在 profile 中,日常新开终端将无法加载别名、配色等个性化配置。

2. 性能优化,避免资源浪费
  • profile 文件存储全局环境变量等「重型配置」,仅登录时加载一次即可;
  • bashrc 保持轻量,仅存放交互配置,频繁新开终端、创建子 Shell 时快速加载,不卡顿。
3. 安全隔离,避免脚本异常

后台自动化脚本属于非交互式 Shell,不会加载 bashrc 中花哨的交互配置,可避免提示符、补全等个性化逻辑干扰脚本运行,保证后台任务纯净稳定。

四、实战场景:OpenCode 安装为什么写入 .bashrc?

通过 WSL 安装 OpenCode 时,安装日志提示 Successfully added opencode to $PATH in /home/caojinchao/.bashrc,脚本主动将环境变量写入 .bashrc,是工程层面的最优兼容方案,而非不规范操作。

4.1 安装核心逻辑

OpenCode 安装脚本的完整流程:

  1. 下载程序二进制文件到用户本地目录(默认 ~/.local/bin/);
  2. 在 .bashrc 末尾追加路径配置:export PATH="$HOME/.local/bin:$PATH"
  3. 将程序路径加入系统环境变量,实现全局调用。

此时当前终端无法识别 opencode 命令,必须执行 source ~/.bashrc 刷新配置,让 PATH 变更即时生效。

4.2 选择 .bashrc 的三大核心原因

1. 全 Shell 兼容性最强

不同终端的配置文件不统一:Bash 读取 bash_profile、Zsh 读取 zprofile、Fish 自有配置规则,但所有主流 Shell 都兼容加载 .bashrc。写入该文件可覆盖 99% 用户的终端环境,适配性最强。

2. 贴合日常使用场景

开发者日常使用 OpenCode,都是在桌面环境新开终端操作(非登录式 Shell),该场景仅加载 .bashrc。若写入 profile 文件,日常新开终端将无法识别命令,使用体验割裂。

3. 简化安装脚本逻辑,降低报错率

若适配所有 Shell、系统、配置文件场景,安装脚本逻辑会极度复杂。直接写入 .bashrc 是简单高效的工程妥协,可最大限度避免适配报错,提升安装成功率。

4.3 规范优化小技巧

若追求系统配置规范化,可手动整理配置:

  1. 打开 .bashrc,剪切 OpenCode 自动添加的 PATH 环境变量配置;
  2. 粘贴到~/.bash_profile 中(遵循「环境变量放 profile,交互配置放 bashrc」的规范);
  3. 保留 bash_profile 中调用 bashrc 的套娃代码,保证所有场景配置生效。

五、最终总结

  1. source ~/.bashrc:刷新终端个性化配置,让 PATH、别名等修改即时生效,无需重启终端;
  2. /etc/profile:系统全局公共配置,所有用户登录生效,存放系统基础环境参数;
  3. ~/.bash_profile:用户登录级私有配置,存放个人专属环境变量,仅登录时加载;
  4. ~/.bashrc:用户终端交互配置,存放别名、提示符等个性化设置,新开终端即加载;
  5. 软件安装写入 bashrc:为兼容全终端场景、适配日常使用习惯的工程最优解,兼顾通用性与稳定性。

(注:文档部分内容可能由 AI 生成)# Linux .bashrc、.bash_profile、/etc/profile 核心原理与区别详解

一、source ~/.bashrc 命令核心作用

source ~/.bashrc 是 Linux、macOS 终端高频常用命令,核心功能:让当前终端窗口立即生效 .bashrc 的最新配置,无需关闭重启终端

1.1 什么是 .bashrc?

.bashrc 是 Bash Shell 的用户个人专属交互式配置文件 ,存放于用户家目录 ~/ 下,仅对当前用户生效。文件中主要存储终端个性化交互配置,常见内容如下:

  • 命令别名 :简化长命令,如 alias ll='ls -alh'
  • 环境变量 :追加软件安装路径到系统 $PATH
  • 自定义配置:终端提示符样式、自定义函数、快捷键配置等

默认规则:只有新建终端窗口时,系统才会自动加载 .bashrc 配置,已打开的终端不会主动更新配置。

1.2 为什么必须执行 source 命令?

手动修改、保存 .bashrc 后,当前已打开的终端无法感知配置变更,新配置不会即时生效,仅有两种解决方式:

  1. 重启终端:关闭当前窗口,重新打开(自动加载最新配置);
  2. 执行刷新命令:source ~/.bashrc,强制当前终端重新读取配置文件,即时生效。

直观示例

在 .bashrc 末尾添加自定义别名:alias hello='echo "你好!"'

  • 不执行刷新:当前终端输入 hello,提示命令不存在;
  • 执行 source ~/.bashrc 后:输入 hello 即可正常输出内容。

二、source 命令完整原理与用法

source 是 Shell 内置命令,核心逻辑:在当前终端 Shell 环境中执行文件命令,不创建子 Shell,所有配置修改会直接保留在当前会话中。

2.1 基本语法

Plain 复制代码
source 文件名 [参数]
# 等效简写(兼容性更强)
. 文件名 [参数]

2.2 核心原理:区分当前 Shell 与子 Shell

这是理解 source 命令的关键,两种执行方式差异极大:

  • 普通执行脚本(./xxx.sh / bash xxx.sh :新建子 Shell 进程执行脚本,环境变量、目录、配置修改仅在子进程生效,脚本运行结束后修改全部失效,不影响当前终端。
  • source 执行脚本 :复用当前 Shell 进程,逐行执行文件内命令,所有配置变更永久保留在当前终端会话中。

2.3 典型使用场景

  1. 刷新配置文件(最常用) :修改 .bashrc/etc/profile 等配置后,无需重启登录,即时生效;
  2. 加载自定义环境变量:批量导入脚本中定义的变量,供当前终端使用;
  3. 导入自定义函数/别名:将通用工具函数、命令别名单独封装,随时导入调用;
  4. 脚本模块化开发:主脚本通过 source 引入外部配置文件,简化代码结构。

2.4 source 与普通脚本执行对比

对比项 source 脚本 / . 脚本 ./脚本 / bash 脚本
执行环境 当前 Shell 新建子 Shell
环境修改有效性 永久保留在当前会话 脚本结束即失效
权限要求 仅需读权限 需要可执行权限(chmod +x)
含 exit 命令影响 直接关闭当前终端 仅退出子 Shell,无影响

2.5 注意事项

  • 慎用 source 执行含 exit 的脚本,会直接关闭当前终端;
  • 优先使用绝对路径/相对明确路径执行文件,避免文件找不到报错;
  • 部分系统默认 sh 为 dash,不支持 source 关键字,统一用 . 命令兼容性更强。

三、三大核心配置文件:/etc/profile、/.bash_profile、/.bashrc 区别

三者均用于配置 Shell 环境变量、终端参数,核心差异为作用范围、加载时机、使用场景,并非冗余配置,而是分工互补。

3.1 基础定义与核心区别

文件名 作用范围 加载时机 核心用途
/etc/profile 系统全局(所有用户) 用户登录系统时(仅登录式Shell) 配置系统全局基础环境(PATH、语言、权限)
~/.bash_profile 当前单个用户 用户登录系统时(仅登录式Shell) 配置用户专属全局环境变量
~/.bashrc 当前单个用户 每次新开交互式终端(非登录Shell) 配置终端个性化交互参数(别名、提示符)

3.2 各文件详细解析

3.2.1 /etc/profile(系统全局大管家)

系统级公共配置文件,所有用户通过账号密码登录系统(SSH、物理终端登录)时自动执行,优先级最高。

  • 核心作用:定义全系统通用的基础环境,如全局 PATH、系统语言、文件默认权限 umask;
  • 扩展机制:不建议直接修改该文件,系统会自动加载 /etc/profile.d/ 目录下所有 sh 脚本,全局软件配置可在此新建脚本;
  • 权限要求:需 root 权限修改。
3.2.2 ~/.bash_profile(用户专属全局配置)

当前用户的私人登录配置文件,仅本人登录系统时生效,用于覆盖/补充系统全局配置。

  • 核心作用:配置用户私有软件环境变量、专属登录初始化命令;
  • 加载规则:系统优先查找该文件,不存在则依次查找 ~/.bash_login~/.profile,仅加载首个找到的文件;
  • 联动机制:主流 Linux 发行版默认在此文件中写入代码,自动加载 .bashrc,保证登录后个性化配置生效。

典型默认配置:

Plain 复制代码
if [ -f ~/.bashrc ]; then
    . ~/.bashrc  # 登录时自动加载终端个性化配置
fi
export PATH=$PATH:$HOME/bin
3.2.3 ~/.bashrc(终端交互专属配置)

专门服务于非登录式交互式终端(桌面点击图标新开终端、终端内执行 bash 命令),是日常终端使用的核心配置文件。

  • 核心作用:存放轻量、高频的交互配置,如命令别名、终端配色、自定义交互函数;
  • 加载规则:每次新开终端都会加载,无需登录系统;
  • 核心价值:弥补 profile 类文件无法适配日常新开终端的短板。

3.3 核心疑问:已有 profile 为什么还需要 bashrc?

根本原因:区分「登录式 Shell」和「非登录式交互式 Shell」,兼顾性能、体验与安全性

1. 适配不同终端打开场景
  • 登录式 Shell(SSH 远程登录、物理机登录):仅加载 /etc/profile + ~/.bash_profile
  • 非登录式 Shell(桌面新开终端):仅加载 .bashrc,完全不读取 profile 文件。

若所有配置都写在 profile 中,日常新开终端将无法加载别名、配色等个性化配置。

2. 性能优化,避免资源浪费
  • profile 文件存储全局环境变量等「重型配置」,仅登录时加载一次即可;
  • bashrc 保持轻量,仅存放交互配置,频繁新开终端、创建子 Shell 时快速加载,不卡顿。
3. 安全隔离,避免脚本异常

后台自动化脚本属于非交互式 Shell,不会加载 bashrc 中花哨的交互配置,可避免提示符、补全等个性化逻辑干扰脚本运行,保证后台任务纯净稳定。

四、实战场景:OpenCode 安装为什么写入 .bashrc?

通过 WSL 安装 OpenCode 时,安装日志提示 Successfully added opencode to $PATH in /home/caojinchao/.bashrc,脚本主动将环境变量写入 .bashrc,是工程层面的最优兼容方案,而非不规范操作。

4.1 安装核心逻辑

OpenCode 安装脚本的完整流程:

  1. 下载程序二进制文件到用户本地目录(默认 ~/.local/bin/);
  2. 在 .bashrc 末尾追加路径配置:export PATH="$HOME/.local/bin:$PATH"
  3. 将程序路径加入系统环境变量,实现全局调用。

此时当前终端无法识别 opencode 命令,必须执行 source ~/.bashrc 刷新配置,让 PATH 变更即时生效。

4.2 选择 .bashrc 的三大核心原因

1. 全 Shell 兼容性最强

不同终端的配置文件不统一:Bash 读取 bash_profile、Zsh 读取 zprofile、Fish 自有配置规则,但所有主流 Shell 都兼容加载 .bashrc。写入该文件可覆盖 99% 用户的终端环境,适配性最强。

2. 贴合日常使用场景

开发者日常使用 OpenCode,都是在桌面环境新开终端操作(非登录式 Shell),该场景仅加载 .bashrc。若写入 profile 文件,日常新开终端将无法识别命令,使用体验割裂。

3. 简化安装脚本逻辑,降低报错率

若适配所有 Shell、系统、配置文件场景,安装脚本逻辑会极度复杂。直接写入 .bashrc 是简单高效的工程妥协,可最大限度避免适配报错,提升安装成功率。

4.3 规范优化小技巧

若追求系统配置规范化,可手动整理配置:

  1. 打开 .bashrc,剪切 OpenCode 自动添加的 PATH 环境变量配置;
  2. 粘贴到~/.bash_profile 中(遵循「环境变量放 profile,交互配置放 bashrc」的规范);
  3. 保留 bash_profile 中调用 bashrc 的套娃代码,保证所有场景配置生效。

五、最终总结

  1. source ~/.bashrc:刷新终端个性化配置,让 PATH、别名等修改即时生效,无需重启终端;
  2. /etc/profile:系统全局公共配置,所有用户登录生效,存放系统基础环境参数;
  3. ~/.bash_profile:用户登录级私有配置,存放个人专属环境变量,仅登录时加载;
  4. ~/.bashrc:用户终端交互配置,存放别名、提示符等个性化设置,新开终端即加载;
  5. 软件安装写入 bashrc:为兼容全终端场景、适配日常使用习惯的工程最优解,兼顾通用性与稳定性。
相关推荐
上天_去_做颗惺星 EVE_BLUE1 小时前
Ubuntu Android 虚拟机安装使用教程
android·linux·测试工具·ubuntu·安卓
2023自学中2 小时前
imx6ull开发板 移植 ffmpeg 4.2.11 + x264 视频编码库
linux·ffmpeg·音视频·嵌入式·开发板
阿洛学长2 小时前
VMware安装虚拟机教程(超详细)
java·linux·开发语言
YOU OU2 小时前
Linux基本使用和程序部署
linux·运维·服务器
fred_kang3 小时前
如何找到 Linux 服务器上某个 URL 路径对应的实际部署位置
linux·运维·服务器
用户2367829801683 小时前
Linux iptables 深度解析:从规则匹配到 NAT 转发实战
linux
CairBin4 小时前
SideSail——Ubuntu 26.04(GNOME 50)侧边栏插件,支持设备信息剪贴板和米家设备简单控制
linux·ubuntu
howard20054 小时前
3.4 Linux目录操作
linux·目录操作
Volunteer Technology4 小时前
Flink的DataStream分区操作
大数据·linux·flink