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 · -

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 · 1108 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 · -

HTTP status, HTTP code

HTTP status, HTTP code 204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 300 Multiple Choices 多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。 301 Moved Permanently, 301 redirect: 301 代表永久性转移(Permanently Moved)。 302 redirect: 302 代表暂时性转移(Temporarily Moved )。 499 客户端主动断开连接。 504 Gateway Timeout 301 (永久移动) Permanently Moved 请求的网页已永久移动到新位置。服务器返回此响应 (对 GET 或 HEAD 请求的响应) 时,会自动将请求者转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置。 302 (临时移动) redirect, Temporarily Moved 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个网页或网站已经移动,因为 Googlebot 会继续抓取原有位置并编制索引。 304 Not Modified (未修改) 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求 (一般是提供 If-Modified-Since 头表示客户只想比指定日期更新的文档) 。 服务器告诉客户,原来缓冲的文档还可以继续使用。 ...

2025-11-18 · 3 min · 484 words · -

Ollama - 本地大语言模型运行工具

Ollama 简介 Ollama 是一个开源的本地大语言模型运行工具,可以让你在本地轻松运行 Llama 2、Mistral、Qwen 等多种开源大语言模型。 安装 Ollama Linux 安装 # 使用官方安装脚本 curl -fsSL https://ollama.com/install.sh | sh 安装记录 (2025-11-14): 安装版本:v0.12.11 安装位置:/usr/local/bin/ollama 服务配置:已创建 systemd 服务 ollama.service 默认监听:127.0.0.1:11434 GPU 支持:检测到 AMD GPU,安装了 ROCm 支持 用户组:创建了 ollama 用户,并加入 render 和 video 组 自动启动:服务已启用并自动运行 手动安装 # 下载二进制文件 curl -L https://ollama.com/download/ollama-linux-amd64 -o ollama chmod +x ollama sudo mv ollama /usr/local/bin/ 验证安装 # 检查版本 ollama --version # 输出: ollama version is 0.12.11 # 检查服务状态 systemctl status ollama # 测试 API 是否可用 curl http://127.0.0.1:11434/api/version # 输出: {"version":"0.12.11"} 基本使用 启动 Ollama 服务 # 启动服务 ollama serve 拉取模型 # 拉取 Llama 2 模型(7B 参数版本) ollama pull llama2 # 拉取 Mistral 模型 ollama pull mistral # 拉取 Qwen 模型 ollama pull qwen # 拉取 Phi 模型(推荐入门) ollama pull phi 本地已安装模型 (2025-11-14): ...

2025-11-14 · 2 min · 416 words · -

audio fix

Ubuntu 24.04 音频问题修复记录 日期: 2025-11-04 系统: Ubuntu 24.04 硬件: Beelink SER8 音频芯片: Realtek ALC897 问题描述 在系统设置中测试音频时,音箱接入耳机接口(3.5mm)没有声音输出。 排查过程 1. 检查音频设备状态 # 查看可用的音频输出设备 pactl list sinks short 结果: 发现主板音频设备: alsa_output.pci-0000_65_00.6.analog-stereo (Family 17h/19h HD Audio Controller) HDMI音频设备也存在 2. 检查混音器配置 # 查看声卡列表 cat /proc/asound/cards # 检查混音器设置 amixer -c 1 scontents 发现: 音频设备被正确识别 Master, Headphone, Line Out 通道配置正常 Speaker 通道初始被关闭(音量0%, 状态off) 3. 检查系统日志 journalctl -b | grep -i 'audio\|sound\|alsa' | tail -50 发现: ALSA控制器初始化时有多个 “failed to obtain info for control” 警告 PipeWire和PulseAudio服务正常启动 硬件被正确识别: Realtek ALC897 4. 分析硬件Pin配置 cat /proc/asound/card1/codec#0 | grep -A 10 "Node 0x1b\|Node 0x14\|Node 0x15" 关键发现: ...

2025-11-04 · 3 min · 561 words · -

macos container

macos container Apple 官方的容器化工具,专为 Apple Silicon Mac 设计,使用轻量级虚拟机运行 Linux 容器。 系统要求 Apple Silicon Mac (M 系列芯片) macOS 26 或更高版本 Xcode (从 App Store 安装) 安装 # 使用 Homebrew Cask 安装 brew install --cask container # 启动 container 系统服务 container system start # 检查系统状态 container system status # 运行测试容器 container run --rm -it docker.io/library/hello-world:latest # 列出容器 (注意: 使用 ls 而不是 ps) container ls # 查看所有可用命令 container --help 从源码编译 git clone https://github.com/apple/container.git cd container swift build sudo cp .build/debug/container /usr/local/bin/container

2025-11-02 · 1 min · 78 words · -

tcp_syn_retries

tcp_syn_retries http://www.chengweiyang.cn/2017/02/18/linux-connect-timeout/ tcp_syn_retries tcp_synack_retries # ubuntu 24.04 ➜ ~ sysctl net.ipv4.tcp_syn_retries net.ipv4.tcp_syn_retries = 6 ➜ ~ sysctl net.ipv4.tcp_synack_retries net.ipv4.tcp_synack_retries = 5 ➜ ~ # 对于主动连接(客户端主动发起连接),每次SYN重试的间隔会逐步递增(不是固定值),由内核写死,不能通过 sysctl 直接调整。 t0 第一次请求 超时时间 1s t1 第一次重试 超时时间 2s t2 第二次重试 超时时间 4s t3 第三次重试 超时时间 8s t4 第四次重试 超时时间 16s t5 第五次重试 超时时间 32s t6 第六次重试 超时时间 64s 总计 1+2+4+8+16+32+64 = 127s http://www.cnitblog.com/Scripts/archive/2009/05/20/57350.html tcp_syn_retries等参数详解(转帖) tcp_syn_retries : INTEGER 默认值是5 对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的) tcp_synack_retries : INTEGER ...

2025-09-29 · 2 min · 266 words · -

wireguard

wireguard wireguard default port: 51820 install archlinux archlinux 新版本的内核已经集成了 wireguard,不需要单独安装. archlinux 集成了 wireguard 但是默认没加载, 需要配置一下启动的时候加载 wireguard 内核模块. # 查看 wireguard 内核模块是不是已经加载了 lsmod | grep wireguard # 手动加载内核模块 sudo modprobe wireguard # 再看一下应该已经加载了 lsmod | grep wireguard # load kernel module at boot vim /etc/modules-load.d/wireguard.conf # content of wireguard.conf # load wireguard module at boot wireguard # 安装 wireguard 管理工具, wireguard 集成进内核了, 但是管理工具 (wg) 还是要手动安装的 pacman -Sy wireguard-tools Ubuntu, Debian sudo apt install wireguard macos brew install wireguard-tools 在 App Store 安装 wireguard ...

2025-08-31 · 6 min · 1074 words · -

linux 目录

linux 目录, Filesystem Hierarchy Standard (FHS) / 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin 应该和根目录放置在一个分区中 /bin In Arch Linux the /bin is a symlink to /usr/bin /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有 cdrom 等目录。可以参看 /etc/fstab 的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom 。 /opt /opt 目录的主要用途是 存放第三方应用软件包(optional software packages),也就是那些不是由系统默认的包管理器(如 apt, yum, pacman 等)安装的程序。 /opt 的设计目的: “Optional” 的缩写:/opt = optional,表示这些软件是“可选”的,不属于系统核心组件。 保持系统整洁:与系统自带的程序(一般安装在 /usr/bin, /usr/lib 等)分开,避免混淆。 便于管理与卸载:每个软件通常会在 /opt 下有一个独立的子目录,比如 /opt/google, /opt/kong,便于手动安装与清理。 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在 Fedora Core 5.0 中,OpenOffice 就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中; 通过源码包安装的软件,可以通过 ./configure -prefix=/opt/目录 。 /opt 目录用来安装附加软件包,是用户级的程序目录,可以理解为 D:/Software。安装到 /opt 目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。在硬盘容量不够时,也可将 /opt 单独挂载到其他磁盘上使用。 ...

2025-07-31 · 3 min · 433 words · -

python set

python set 线上的某一个业务模块常规的执行时间大概是这样的 📊 总体统计: 完成的 xxx 总数: 379 最短耗时: 0.190 秒 最长耗时: 2815.415 秒 平均耗时: 67.626 秒 中位数耗时: 9.585 秒 标准差: 258.304 秒 ⏱️ 耗时分布: < 1秒: 33 次 ( 8.7%) 1-5秒: 101 次 ( 26.6%) 5-10秒: 64 次 ( 16.9%) 10-30秒: 99 次 ( 26.1%) 30-60秒: 9 次 ( 2.4%) 1-5分钟: 62 次 ( 16.4%) 5-10分钟: 2 次 ( 0.5%) 10-30分钟: 6 次 ( 1.6%) > 30分钟: 3 次 ( 0.8%) ...

2025-07-31 · 2 min · 287 words · -

python signal pause

python signal.pause() vs time.sleep() signal.pause() 系统调用实现, 直接向内核发起系统调用, 让当前线程进入休眠状态, 直到接收到信号为止. 内核将进程状态从 RUNNING → INTERRUPTIBLE_SLEEP 进程从CPU运行队列(CPU Run Queue)中移除 time.sleep() 是一个非阻塞函数, 它会在指定的时间内暂停当前线程的执行. 用户空间循环实现, 用户空间循环:完全在用户模式下运行 进程状态:持续保持 RUNNING 状态 CPU调度:获得常规CPU时间片 系统调用:重复调用 nanosleep() 或 select() CPU运行队列 (Run Queue) CPU运行队列是一个数据结构(通常是链表或红黑树),包含所有准备执行但正在等待CPU时间的进程/线程。 CPU运行队列是包含所有准备执行的进程/线程的数据结构,这些进程已经准备好使用CPU,只是在等待CPU时间片。 状态:进程处于 READY 状态 CPU占用:这些进程会消耗CPU时间 调度:调度器从这里选择下一个执行的进程 负载计算:运行队列长度影响系统负载平均值 等待队列 (Wait Queue) 等待队列包含不能立即执行的进程,它们在等待某些事件发生(如I/O完成、信号到达、锁释放等)。 状态:进程处于 WAITING/BLOCKED 状态 CPU占用:不消耗CPU时间, 0%(进程不被调度) 上下文切换:最少(仅当信号到达时) 事件驱动:等待特定事件唤醒 负载计算:不计入系统负载 INTERRUPTIBLE_SLEEP INTERRUPTIBLE_SLEEP 是一种进程状态。在 Linux 操作系统中,进程会经历多种状态,而可中断睡眠(Interruptible Sleep,通常用 ‘S’ 表示)就是其中之一。 进程不会占用 CPU 资源,而是自愿放弃 CPU,以便系统可以更有效地管理资源。 与 INTERRUPTIBLE_SLEEP 相对的是不可中断睡眠(Uninterruptible Sleep,通常用 ‘D’ 表示),处于此状态的进程通常正在执行关键的 I/O 操作,并且不能被信号中断,直到操作完成。 ...

2025-07-30 · 1 min · 82 words · -