fcitx

fcitx https://wiki.archlinux.org/title/Fcitx5 archlinux KDE 安装 fcitx https://blog.csdn.net/GaaraZ/article/details/128618441 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma # include 1) fcitx5 2) fcitx5-configtool 3) fcitx5-gtk 4) fcitx5-qt sudo pacman -S fcitx5-im sudo pacman -S fcitx5-chinese-addons # disable fcitx5 desktop file after install fcitx5 in kde sudo mv /etc/xdg/autostart/org.fcitx.Fcitx5.desktop/org.fcitx.Fcitx5.desktop /etc/xdg/autostart/org.fcitx.Fcitx5.desktop/org.fcitx.Fcitx5.desktop.bak #--- sudo pacman -S fcitx-table-extra # kcm-fcitx5 包的实际内容是 fcitx5-configtool # fcitx-table-extra: 输入法模块-五笔, 可能需要重启 # fcitx-configtool: gtk3 config tool, optional chrome application launcher> right click chrome> command line arguments: –ozone-platform=wayland ...

2025-12-22 · 3 min · 620 words · -

nerdctl

nerdctl nerdctl 是 containerd 的命令行客户端工具,它提供了与 Docker CLI 兼容的用户体验。 什么是 nerdctl containerd 的 CLI 工具:nerdctl 全称是 “non-enterprise control”(或 containerd ctl) Docker 兼容:命令语法与 docker 命令高度兼容,降低学习成本 CNCF 项目:由 containerd 社区开发和维护 功能丰富:支持 Docker 不支持的一些高级功能 主要特性 1. Docker 兼容性 nerdctl 的命令与 docker 几乎完全兼容,可以无缝切换: # Docker 命令 docker run -d -p 80:80 nginx docker ps docker images docker build -t myapp . # nerdctl 命令(完全相同) nerdctl run -d -p 80:80 nginx nerdctl ps nerdctl images nerdctl build -t myapp . 2. 增强功能 nerdctl 支持一些 Docker 不支持的高级特性: ...

2025-12-18 · 6 min · 1227 words · -

Ubuntu 显示器分辨率问题修复:手动加载 EDID 固件

问题描述 在使用 Ubuntu(特别是 AMD GPU + 多显示器环境)时,可能遇到显示器无法识别正确分辨率的问题: 显示器只能使用低分辨率(如 1024x768) xrandr 显示物理尺寸为 0mm x 0mm 内核日志出现 EDID block 0 is all zeroes 错误 休眠恢复后显示器被错误识别 TL;DR 快速解决 # 1. 创建 EDID 固件目录 sudo mkdir -p /lib/firmware/edid # 2. 生成 EDID 文件(以 1920x1200 显示器为例) # 见下文 Python 脚本,生成后复制到 /lib/firmware/edid/ # 3. 配置 GRUB(替换 DP-X 为实际接口) sudo vim /etc/default/grub # 添加:drm.edid_firmware=DP-9:edid/dell_u2412m.bin # 4. 更新并重启 sudo update-grub && sudo reboot 诊断问题 检查显示器状态 # 查看当前显示器配置 xrandr # 查看物理尺寸(有问题的显示器会显示 0mm x 0mm) xrandr | grep -E "connected|mm" 检查内核日志 # 查看显卡信息 lspci | grep -i vga lspci -k | grep -A 3 -i vga # 检查内核日志中的 EDID 错误 sudo dmesg | grep -i "drm\|amdgpu\|edid" | tail -30 如果看到以下错误,说明 EDID 读取失败: ...

2025-12-12 · 5 min · 1037 words · -

apt-get, apt basic command

apt-get, apt basic command, apt command apt upgrade 后是否需要重启 需要重启的包类型 包类型 示例 原因 内核 linux-image-* 内核在启动时加载,更新后需重启才能使用新内核 C 标准库 libc6 (glibc) 几乎所有程序都依赖它,热更新风险高 systemd systemd, systemd-sysv 系统初始化和服务管理的核心 D-Bus dbus, libdbus-1-3 系统进程间通信的基础设施 图形驱动 nvidia-*, mesa-* 需要重新加载驱动模块 系统会提示需要重启吗? 会的! Ubuntu/Debian 有专门的机制: # 检查是否需要重启 cat /var/run/reboot-required # 查看哪些包导致需要重启 cat /var/run/reboot-required.pkgs 示例输出: *** System restart required *** 其他提示方式 apt 升级时的提示 - 更新关键包后会显示提示信息 MOTD (登录提示) - SSH 登录时会显示 “System restart required” 图形界面 - Ubuntu Desktop 会弹出重启提示通知 快速检查命令 # 一行命令检查 [ -f /var/run/reboot-required ] && echo "⚠️ 需要重启" || echo "✅ 不需要重启" 不重启会怎样? 旧内核继续运行,新内核下次启动才生效 旧版本的库可能还在内存中被进程使用 安全补丁可能未完全生效 简单原则: ...

2025-12-12 · 5 min · 906 words · -

containerd

containerd containerd: 2.2.0-1 runc: 1.4.0-1 nerdctl: 2.2.0-1 cni-plugins: 1.9.0-1 archlinux install containerd # archlinux install containerd pacman -S containerd runc nerdctl cni-plugins # containerd config sudo mkdir /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl daemon-reload sudo systemctl enable --now containerd # containerd 内存占用 47MB # containerd、runc、nerdctl 都是用户空间的程序, 不是内核模块,不需要重新加载内核, 不需要重启系统, 只需要运行守护进程即可, 安装完成就可以使用 sudo nerdctl pull hello-world sudo nerdctl run --rm hello-world # 如果需要编译镜像 sudo pacman -S buildkit sudo systemctl enable --now buildkit # build image, 需要在有 Dockerfile 的目录下运行 nerdctl build -t foo:v1.0.0 . sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml sudo systemctl restart containerd ubuntu install containerd https://gist.github.com/Faheetah/4baf1e413691bc4e7784fad16d6275a9 https://www.techrepublic.com/article/install-containerd-ubuntu/ ...

2025-12-10 · 12 min · 2376 words · -

windows wsl

Windows WSL WSL: Windows Subsystem for Linux 官方文档 微软官方安装文档 WSL 文档 WSL 中文文档 基本命令 以管理员模式打开 PowerShell 或 CMD # 查看已安装的 WSL 发行版 wsl --list --verbose wsl -l -v # 启动指定的发行版 wsl -d archlinux wsl -d archlinux -u wiloon # 指定用户 # 列出可用的发行版 wsl --list --online wsl -l -o # 安装 WSL Ubuntu (默认安装最新 LTS 版本) wsl --install # 安装指定的发行版 (如 ArchLinux) wsl --install -d archlinux # 卸载发行版 wsl --unregister Ubuntu-22.04 # 安装 Windows Terminal winget install Microsoft.WindowsTerminal # 关闭所有 WSL 实例 wsl --shutdown # 强制关闭某一个实例 wsl --terminate Ubuntu wsl -t Ubuntu # 设置默认发行版 wsl --set-default archlinux wsl -s archlinux # 简写形式 # 查看 WSL 状态 wsl --status Ubuntu 基本设置 # 更新系统 sudo apt update && sudo apt upgrade # git 默认已安装 文件共享 Ubuntu 访问 Windows 文件 cd /mnt/c/ ls -l Windows 访问 Ubuntu 文件 在文件资源管理器地址栏输入: ...

2025-12-10 · 11 min · 2144 words · w1100n

drill, dns tool, dig/drill, dnsutils to ldns dig -> dirll

drill, dns tool, dig/drill, dnsutils to ldns dig -> dirll drill if you can, dig if you have to, nslookup if you must https://imdjh.github.io/toolchain/2015/10/07/drill-if-you-can-dig-if-you-have-to.html # install drill ## macOS brew install ldns ## aws linux yum install ldns-utils ## archlinux sudo pacman -S ldns # ubuntu sudo apt install ldnsutils # alpine apk add drill # install dig ## cenos yum install bind-utils # DNS 解析跟踪 dig +trace wiloon.com dirll -T wiloon.com drill -TD wiloon.com drill wiloon.com @192.168.50.1 drill wangyue.dev NS dig,其实是一个缩写,即Domain Information Groper。 ...

2025-12-07 · 1 min · 206 words · -

nodejs basic

nodejs basic version current v14.21.3 latest v21.6.2 Node.js 版本管理工具对比 nvm vs fnm 特性 nvm fnm 性能 较慢 (shell 脚本) 快速 (Rust 编写) 启动时间 明显延迟 (每次启动 shell) 几乎无延迟 自动切换 需手动配置 hook 内置支持 --use-on-cd 配置文件 .nvmrc .nvmrc 或 .node-version 跨平台 macOS/Linux macOS/Linux/Windows Windows 支持 需要 nvm-windows (独立项目) 原生支持 项目隔离 支持 (通过 .nvmrc) 支持 (自动检测) 安装速度 较慢 快速 内存占用 较高 较低 成熟度 非常成熟 (2010年) 较新 (2019年) 社区 庞大 增长中 推荐场景: 使用 nvm: 需要最成熟稳定的方案,或团队已在使用 使用 fnm: 追求性能,需要 Windows 支持,或新项目 nvm, Node Version Manager https://github.com/nvm-sh/nvm ...

2025-12-05 · 3 min · 514 words · -

netcat

netcat check if netcat is installed # check if netcat is available which nc # or try to get the version/help nc -h # or check if it's installed via package manager pacman -Qs netcat check remote UDP port # send UDP packet to remote host and check if port is listening echo "test" | nc -u -w 1 remote_host port # use -v for verbose output, -z for scan mode nc -vuz remote_host port # if port is closed, you may receive ICMP port unreachable response # if port is open but service doesn't respond, it's hard to determine the status 参数说明: ...

2025-12-05 · 2 min · 383 words · -

ubuntu basic

ubuntu basic 显示器分辨率问题 详细的显示器分辨率问题修复指南已移至专门文档: Ubuntu 显示器分辨率问题修复:手动加载 EDID 固件 该文档包含完整的诊断、修复步骤和故障排除方法。 apt-select # https://pypi.org/project/apt-select/ pip install apt-select apt-select -C JP sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup && sudo mv sources.list /etc/apt/ mirrors http://mirrors.ubuntu.com/ deb, deb-src 不是要看代码或者自己编译的话 deb-src 可以注释掉或者删除 backports proposed security updates 简单的解释: 基础:由于ubuntu是每6个月发行一个新版,当发行后,所有软件包的版本在这六个月内将保持不变,即使是有新版都不更新。除开重要的安全补丁外,所有新功能和非安全性补丁将不会提供给用户更新。 security:仅修复漏洞,并且尽可能少的改变软件包的行为。低风险。 backports:backports 的团队则认为最好的更新策略是 security 策略加上新版本的软件(包括候选版本的)。但不会由Ubuntu security team审查和更新。 update:修复严重但不影响系统安全运行的漏洞,这类补丁在经过QA人员记录和验证后才提供,和security那类一样低风险。 proposed:update类的测试部分,仅建议提供测试和反馈的人进行安装。 个人认为: 1.重要的服务器:用发行版默认的、security 2.当有要较新软件包才行能运作的服务器:用发行版默认的、 security、(backports 还是不适合) 3.一般个人桌面:用发行版默认的、 security、backports、update 4.追求最新、能提供建议和反馈大虾:发行版默认的、 security、backports、update、proposed 全部用上! Ubuntu 22.04 LTS (Jammy Jellyfish) ubuntu mirror aliyun deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse 163 deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse vim /etc/apt/sources.list %s/archive.ubuntu.com/mirrors.163.com/g tsinghua deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse # wsl export DISPLAY=172.18.80.1:0 # windows 里ipconfig看到的连接wsl的ip apt install git-svn apt install openjdk-8-jdk apt install maven # config ~/.m2/settings.xml apt install nautilus sudo apt-get install ttf-wqy-microhei #文泉驿-微米黑 sudo apt-get install ttf-wqy-zenhei #文泉驿-正黑 sudo apt-get install xfonts-wqy #文泉驿-点阵宋体 sudo apt install keepassxc 中文乱码问题 # 安装中文支持包language-pack-zh-hans sudo apt-get install language-pack-zh-hans # 设置语言 vim /etc/environment ## 中文语言环境, 设置后 vim 进入编辑状态屏幕下方会显示中文"插入"的那种 LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh:en_US:en" ## 英文环境 LANG="en_US.UTF-8" LANGUAGE="en_US:en" vim /var/lib/locales/supported.d/local en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK zh_CN GB2312 sudo locale-gen # 中文乱码是空格的情况,安装中文字体解决 sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming https://blog.csdn.net/weixin_39792252/article/details/80415550 ...

2025-12-04 · 5 min · 867 words · -

archlinux kde, config

删除和重新安装 KDE 删除 KDE # 连接到远程主机 ssh root@192.168.50.19 # 1. 停止并禁用 SDDM 显示管理器 systemctl stop sddm systemctl disable sddm # 2. 查看已安装的 KDE 相关包 pacman -Qq | grep -E 'plasma|kde' # 3. 删除 KDE Plasma 桌面环境及相关包 # 删除 plasma 元包和所有依赖 sudo pacman -Rns plasma-desktop plasma-wayland-session # 删除其他 KDE 应用(根据需要) sudo pacman -Rns konsole dolphin kate kwalletmanager # 删除 KDE 主题和附加组件 sudo pacman -Rns breeze-gtk breeze kde-gtk-config kdeplasma-addons # 删除 SDDM(如果不再需要) sudo pacman -Rns sddm # 4. 清理孤立的依赖包 sudo pacman -Rns $(pacman -Qtdq) # 5. 清理配置文件(可选) # 删除系统级配置 rm -rf /etc/sddm.conf.d/ rm -rf /usr/share/sddm/ # 删除用户配置(谨慎操作,会删除个人设置) rm -rf ~/.config/plasma* rm -rf ~/.config/kde* rm -rf ~/.local/share/plasma* rm -rf ~/.local/share/kwalletd/ rm -rf ~/.kde4/ # 6. 清理缓存 rm -rf ~/.cache/plasma* rm -rf ~/.cache/kde* 重新安装 KDE # 1. 更新系统 sudo pacman -Syu # 2. 安装 KDE Plasma plasma-meta(元包/包组) sudo pacman -S plasma-meta # 3. 安装常用的 KDE 应用 sudo pacman -S konsole dolphin kate # 4. 安装 SDDM 显示管理器 sudo pacman -S sddm # 5. 启用 SDDM systemctl enable sddm systemctl start sddm # 6. 安装 Wayland 支持(可选) # 注意:plasma-wayland-session 已集成到 plasma-workspace 中 # 如果已安装 plasma-desktop,Wayland 会话支持已经包含 # 只需安装 XWayland 相关组件即可 sudo pacman -S xorg-xwayland # 7. 安装 GTK 主题支持(可选) sudo pacman -S breeze-gtk breeze kde-gtk-config # 8. 安装 KDE 附加组件(可选) sudo pacman -S kdeplasma-addons # 9. 安装钱包管理器(可选) sudo pacman -S kwalletmanager # 10. 重启系统 reboot 选择性安装 - X11 或 Wayland 纯 Wayland 会话(推荐) 如果只想使用 Wayland 模式,仍需安装少量 X11 组件以支持 XWayland 兼容层: ...

2025-12-03 · 3 min · 504 words · -

ubuntu archlinux dual boot

ubuntu archlinux dual boot 因为某种原因, ubuntu 安装的时候选了 luks + lvm, 只能格掉整个硬盘安装 ubuntu ubuntu 安装之后再手动的给分区缩容, 然后再安装 archlinux 分区缩容的过程在这里 wiloon.com/disk/resize 双系统分区配置 主硬盘 nvme0n1 的完整分区布局(四个分区): 1. nvme0n1p1 - EFI 分区(共享) 文件系统:vfat (FAT32) 大小:1.1GB 挂载点: Ubuntu: /boot/efi Arch Linux: /efi 使用率:1% UUID:FF07-C6C8 说明:双系统共享的 UEFI 引导分区 2. nvme0n1p2 - Ubuntu Boot 分区 文件系统:ext4 大小:2.0GB 挂载点:/boot (Ubuntu) 使用率:12% UUID:a45ac700-f127-447d-880d-8a8d51d37f49 说明:Ubuntu 的 boot 分区,存储内核和 initramfs 3. nvme0n1p3 - Ubuntu 加密根分区 类型:crypto_LUKS (LUKS2 加密) 加密 UUID:4bb8683a-8706-44e1-ad3b-0388d44759cb 内含 LVM 配置: 卷组:ubuntu-vg 逻辑卷:ubuntu-lv (492GB, ext4) 挂载点:/ (Ubuntu 根目录) 使用情况:198GB 已用 / 269GB 可用 (43%) 文件系统 UUID:e3ad7c01-acec-4afc-9915-2203badc5e11 说明:Ubuntu 的加密根分区,使用 LUKS + LVM 4. nvme0n1p4 - Arch Linux 根分区 文件系统:ext4 大小:约 353GB 挂载点:/ (Archlinux 根目录) 使用情况:90GB 已用 / 245GB 可用 (27%) UUID:63c2c764-83b9-4b1b-99f3-db52c03f0109 说明:Archlinux 的根分区,无加密 查看分区信息的命令 # 查看所有块设备及其文件系统类型 lsblk -f # 查看磁盘空间使用情况 df -h # 查看详细分区信息 sudo parted /dev/nvme0n1 print # 查看文件系统挂载配置 cat /etc/fstab 又因为要开 secure boot, 需要在 ubuntu 的 grub 里引导 archlinux 的内核, 所以不能用 archinstall, 因为 archinstall 会安装自己的 grub ...

2025-12-03 · 3 min · 512 words · -

devpi

什么是 devpi? devpi 是一个强大的 Python 包服务器,提供以下核心功能: PyPI 镜像缓存 - 缓存从 PyPI 下载的包,加速后续安装 私有包仓库 - 托管私有仓库的包 多源聚合 - 统一访问多个上游源(官方 PyPI、私有仓库) 离线使用 - 缓存后即使网络断开也能安装包 Web 管理界面 - 提供友好的 Web 界面,方便浏览包列表、查看索引配置、管理用户等操作 devpi 默认运行在 http://localhost:3141,可以通过浏览器访问 Web 界面进行可视化管理。 快速开始 如果你只想快速体验 devpi 的缓存功能,执行以下最简步骤: # 1. 启动 devpi 容器 sudo nerdctl run -d --name devpi --restart unless-stopped \ --network host docker.io/devpi/devpi-server:latest # 2. 配置 pip 使用 devpi(使用默认索引) pip config set global.index-url http://localhost:3141/root/pypi/+simple/ pip config set global.trusted-host localhost # 3. 测试安装包(第一次会从 PyPI 下载并缓存) pip install requests # 4. 再次安装体验缓存加速 pip uninstall -y requests && pip install requests 说明:这个配置使用 devpi 默认的 root/pypi 索引,自动缓存官方 PyPI 的包。数据存储在容器内部,适合快速测试。生产环境建议使用下文的完整配置。 ...

2025-12-02 · 9 min · 1766 words · -

linux desktop

Linux 桌面环境 Linux 桌面环境(Desktop Environment,简称 DE)是运行在 Linux 操作系统上的图形用户界面,提供窗口管理、文件管理、系统设置等功能。 流行的 Linux 桌面环境 GNOME 官网:https://www.gnome.org/ 特点:现代化设计,简洁优雅,注重工作流程 默认用于:Fedora、Ubuntu(自 17.10 起)、Debian 技术栈:GTK KDE Plasma 官网:https://kde.org/plasma-desktop/ 特点:高度可定制,功能丰富,类似 Windows 的操作体验 默认用于:Kubuntu、openSUSE、KDE neon 技术栈:Qt Xfce 官网:https://xfce.org/ 特点:轻量级,资源占用低,适合老旧硬件 默认用于:Xubuntu、Manjaro Xfce 技术栈:GTK 桌面环境对比 桌面环境 资源占用 可定制性 适合人群 GNOME 中高 中 追求现代化体验的用户 KDE Plasma 中 高 喜欢定制的高级用户 Xfce 低 中 老旧硬件用户 GTK 与 Qt 技术栈 Linux 桌面应用主要基于两种 GUI 工具包: 技术栈 使用的桌面环境 代表应用 GTK GNOME、Xfce、Cinnamon、MATE Firefox、GIMP、Thunar Qt KDE Plasma Dolphin、Konsole、VLC 跨技术栈运行 GTK 应用可以在 Qt 桌面(如 KDE)运行,反之亦然。应用程序只需安装一次,所有桌面环境共享。 ...

2025-11-29 · 4 min · 699 words · -

英语词汇辨析

本文汇总了英语中容易混淆或相似词汇的辨析。 upgrade 和 update 的区别 upgrade 一般是指比较重要的升级,或者说是主要的、独立版本的升级,其中软件改变很大。比如从 Windows XP 系统 upgrade 到 Windows 7 系统。 update 一般是指比较次要的升级或更新,软件改变比较小或者只是修复一些 bug。比如从 Windows 7 系统 update 到 Windows 7 SP1。 总结:upgrade 一般指质的变化,而 update 一般指量的变化。 参考: https://www.cnblogs.com/ini_always/archive/2011/08/29/2158895.html duration ,interval 隔一分钟打一次雷,每次雷持续响半分钟。 一分钟就是interval,半分钟就是duration http://zhidao.baidu.com/question/174688836.html

2025-11-29 · 1 min · 37 words · -

LibreOffice 命令行使用

文档格式转换 转换为文本格式 libreoffice --headless --convert-to txt document.docx 参数说明: --headless: 无界面模式运行 --convert-to: 指定转换的目标格式 txt: 输出为纯文本格式 其他常用转换格式 # 转换为 PDF libreoffice --headless --convert-to pdf document.docx # 转换为 HTML libreoffice --headless --convert-to html document.docx # 指定输出目录 libreoffice --headless --convert-to txt --outdir /path/to/output document.docx

2025-11-21 · 1 min · 40 words · -

幼儿园防拐骗专题安全演练

幼儿园防拐骗专题安全演练 背景说明 我家孩子所在的幼儿园小班需要进行一次防拐骗专题安全演练活动,邀请我扮演"坏叔叔"。因为我家孩子在小三班,为了避免被认出来,我要去小一班或者小二班进行演练。 目标群体:幼儿园小班(3-4 岁儿童) 演练目标:骗几个小朋友到幼儿园一楼大厅就算骗成功,然后老师会进行劝说和教育。 现有道具:一些气球 3-4 岁儿童特点: 认知能力:对陌生人概念模糊,容易被玩具、食物吸引 语言理解:能听懂简单指令,但逻辑思维能力弱 情感特征:好奇心强,容易相信成人,缺乏危险意识 社交行为:喜欢模仿同伴,从众心理明显 自我保护:基本没有防范意识,需要通过反复练习建立 演练剧本 场景一:物质诱惑法(气球诱惑) 时间:上午活动时间 地点:小一班教室外走廊或教室内 方案对比: 方式 优点 缺点 成功率预估 门口经过 更真实(模拟陌生人在公共区域)孩子需要主动走出教室教室内老师可能看不清门口情况 吸引力较弱孩子可能不敢离开教室 30-50% 走进教室 直接接触,吸引力强更容易建立互动近距离诱惑效果好 不够真实(陌生人不会随意进教室)老师可能会提前干预 60-80% 推荐方案:分阶段进行 阶段 1:门口经过(先测试警觉性) 在门口来回走动 2-3 次,故意让气球很显眼 观察孩子反应,看有没有人主动围过来 如果有孩子凑到门口,就在门口互动 测试目标:看孩子是否会主动靠近陌生人 阶段 2:走进教室(如果门口效果不好) 如果门口没人理你,或孩子不敢出来,就走进教室 假装找老师:“老师在吗?哎呀,老师不在呀” 然后开始与孩子互动:“哇,你们在玩什么呀?” 测试目标:看孩子对进入教室的陌生人是否警觉 剧本流程: ...

2025-11-20 · 2 min · 262 words · -

curl command

curl command curl [kɜrl] options --version, print version -s, --silent, 不显示下载进度, 不显示 error message -S, --show-error 在使用 -s 时, 打印 curl error message -C, --continue-at, 断点续传 -o, --output <file>, write output to <file> instead of stdout --connect-timeout <fractional seconds>, 建连接超时, 比如 tcp 三次握手 -m, --max-time <fractional seconds>, 单位: 秒, 可以用小数 0.5 代表 500ms, 传输超时, 比如 http 请求发送之后长时间没有响应, tcp 的 ack 收到了, 但是长时间没收到 http response. -G/--get 以 get 的方式来发送数据 -i, --include 输出时包括 protocol 头信息, 显示 response header, 例如: HTTP/1.0 200, Content-Type: text/plain -v, verbos -N, Disables the buffering of the output stream -I, --head 只返回头信息, 比如 FTP 服务器只返回文件大小. -H, --header LINE Custom header to pass to server (H) -d, --data # DATA HTTP POST data, 如果使用 -d 命令,curl 会以 application/x-www-url-encoded 格式上传参数。 从文件中读取数据 -d @/path/to/foo.json -b, --cookie <data|filename>, 发送请求时附带 cookie。可以直接传入 cookie 字符串,或从文件中读取 cookie --retry, 重试次数 -F curl 会以 multipart/form-data 的方式发送 POST 请求。-F 以 key=value 的形式指定要上传的参数,如果是文件,则需要使用 key=@file 的形式。 -k, --insecure flag to skip certificate validation. -L, --location: 追踪重定向, 如果服务器报告请求的页面已移动到其他位置(用 location: header 和 3xx 响应代码),此选项将使 curl 在新位置上重新执行请求。 -x, 参数指定 HTTP 请求的代理 -X, --request <method> Specify request method to use, -X POST, -X PUT -w, 完成请求传输后,使 curl 在 stdout 上显示自定义信息 --cacert, curl 用来验证对端的 CA 证书 -E, --cert, 客户端证书 --key, 客户端私钥 --pass, 客户端私钥的密码 --trace-ascii /tmp/curl.log, 把交互的数据打印到日志里, https 协议也能把明文打在日志里 -tlsv1.x 这个参数并不是说客户端按你指定的tls版本去跟服务端匹配,不是==的关系,是在≥的关系里面desc降序匹配, 比如支持tls1.0/1.1/1.2的Server,客户端分别以--sslv3、--tlsv1.0、--tlsv1.1、--tlsv1.2这些参数去请求,最终的结果都是以--tlsv1.2去建联,这就是我说的“在≥的关系里面desc降序匹配” --tls-max 1.x 这个参数则是限定死了,最大按哪个来, 比如说服务端最大支持到tlsv1.2,客户端限定最大按tlsv1.3来,那最终肯定就是以tlsv1.2建联了;如果服务端不变,我指定客户端以--tls-max 1.1请求,那最终肯定是以tlsv1.1建联了 -f, --fail 快速失败, 在服务器出错时不显示HTTP错误信息, 直接返回 error 22 -w -w 的作用 完成请求传输后,使 curl 在 stdout 上显示自定义信息 格式是一个字符串,可以包含纯文本和任意数量的变量 ...

2025-11-20 · 6 min · 1210 words · -

Inotify

Inotify 概述 Inotify 是 Linux 内核提供的一个文件系统事件监控机制,从 Linux 2.6.13 版本开始引入。它允许应用程序监控文件系统的变化,如文件的创建、修改、删除、移动等操作。 核心特性 实时监控:基于事件驱动,当文件系统发生变化时立即通知应用程序 高效性:相比轮询方式,inotify 不需要不断检查文件状态,大大降低了系统开销 灵活性:可以监控单个文件或整个目录树 多事件支持:支持多种文件系统事件类型 工作原理 初始化:应用程序创建一个 inotify 实例(通过 inotify_init() 系统调用),返回一个文件描述符(fd) 添加监控:为需要监控的文件或目录添加 watch(通过 inotify_add_watch()),将 watch 与 inotify 实例关联 事件通知:当被 watch 的文件系统发生变化时,内核会将事件放入该 inotify 实例的事件队列 读取事件:应用程序从 inotify 文件描述符读取事件信息(通过 read() 系统调用) 简单来说: inotify 实例就像一个"邮箱"(用文件描述符标识) 添加 watch 就是告诉内核:“这些文件有变化就往我的邮箱里放消息” 文件变化时,内核自动把事件"投递"到这个邮箱 应用程序通过读取这个文件描述符来"收取邮件"(获取事件) 代码示例: #include <sys/inotify.h> #include <unistd.h> #include <stdio.h> int main() { // 1. 创建 inotify 实例,得到文件描述符 int fd = inotify_init(); // 2. 添加 watch,监控文件的修改事件 int wd = inotify_add_watch(fd, "/path/to/file", IN_MODIFY); // 3. 当文件被修改时,内核会把事件放入 fd 对应的队列 // 4. 应用程序从 fd 读取事件 char buffer[1024]; int length = read(fd, buffer, sizeof(buffer)); // 阻塞等待事件 // 5. 处理事件... struct inotify_event *event = (struct inotify_event *)buffer; printf("文件被修改了!\n"); // 清理 close(fd); return 0; } 关键点: ...

2025-11-19 · 6 min · 1066 words · -

kafka basic, command

kafka basic, command kafka_2.13-3.4.0.tgz scala 版本 2.13 kafka 版本 3.4.0 TLS kafka todo commands # list topic bin/kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092 # create topic bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic topic_0 --bootstrap-server 127.0.0.1:9092 # consumer bin/kafka-console-consumer.sh --topic topic_0 --bootstrap-server 127.0.0.1:9092 # producer bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic topic_0 # list group name bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list # 查看 consumer group offset bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group group0 # tls ./kafka-topics.sh --list --bootstrap-server 127.0.0.1:9093 --command-config /tmp/kafka.conf content of kafka.conf ...

2025-11-19 · 10 min · 1993 words · -