macos常用指令
在终端中使用 code 命令启动 vscode
先安装 code:打开 VSCode -> 查看 -> 命令面板 -> 输入 shell command –> 点击 Shell Command: Install 'code' command in PATH
然后在终端中可以使用 code 命令打开 vscode 了, 或者 code . 打开当前目录,code /Users/ 打开固定目录
提示 程序损坏,需要移动到废纸篓
或者提示应用未验证等, 可以到访达里, 找到应用程序, 按下 control 键点击, 选择打开,或者到系统设置的隐私与安全性里进行打开,或者去除苹果的 quarantine 属性, 执行这条命令可能需要 APP 管理 这个权限。
sudo xattr -r -d com.apple.quarantine /Applications/WebStrom.app
brew操作
# 更新 brew
brew update
# 搜索软件包
brew search <package name>
# 查看软件包信息
brew info <package name>
# 查看软件包主页/官网
brew home <package name>
# 查看一下安装位置
brew --prefix mysql@8.0
# 查看受管理的服务
brew services
# 直接启动,不配置开机自启动
brew services run mysql@8.0
# 停止服务
brew services kill mysql@8.0
# 重启服务,配置开机自启动
brew services restart mysql@8.0
# 启动并且配置开机自启动
brew services start mysql@8.0
# 停止服务,取消开机自启动
brew services stop mysql@8.0
# 查看需要升级的软件包
brew outdated
# 锁定指定软件包的版本
brew pin <package name>
# 解除对指定软件包版本的锁定
brew unpin <package name>
# 更新指定的软件包
brew update <package name>
# 更新所有需要升级的软件包
brew upgrade
# 允许 cask 仓库的软件也能被更新(建议关闭所有软件的内置更新,仅通过 brew 更新)
brew upgrade --greedy
# 查看已经安装的所有包
brew list
# 查看有哪些旧软件包会被清理
brew cleanup --dry-run
# 清理旧软件包
brew cleanup
# 列出已经安装的软件包
brew list
# 列出已经安装的软件包及版本信息
brew list --versions
# 以树状图展示「已安装包」的依赖信息
brew deps --installed --tree
# 安装指定的版本
brew install mysql@5.7
# 卸载包
brew uninstall font-meslo-lg-nerd-font
macOS音频卡顿
资源管理器关闭audiod进程
服务器DD脚本
前言
在每次使用VPS之前,我都会习惯性地执行一次DD命令。
这样做的好处:
- 一方面可以将系统更换为我熟悉的Debian
- 另一方面可以移除VPS供应商系统内置的"使用情况监控",顺便修改SSH连接端口
前奏
下载前记得更新源,安装 wget 组件,以下命令仅对应原系统:
Debian 系(Debian/Kali/Ubuntu)
apt update
apt install wget -y
红帽系(CentOS/AlmaLinux/RockyLinux/Fedora 等)
dnf install wget -y
AlpineLinux
需要安装 wget bash 组件,并把系统默认的 shell 从 ash 改成 bash:
apk update
apk install wget bash
sed -i 's/root:\/bin\/ash/root:\/bin\/bash/g' /etc/passwd
下载脚本
国外机器
wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh
国内机器
国内机器现在可以从 Gitee 下载:
wget --no-check-certificate -qO InstallNET.sh 'https://gitee.com/mb9e8j2/Tools/raw/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh
运行DD脚本
脚本格式
bash InstallNET.sh -系统版本 -项目 "数值"
也可以添加其它参数如 raid、bbr、硬盘格式等等,详情看介绍文档
常用版本
bash InstallNET.sh -debian 12 -pwd 'xiaoge.org' -port "45622" --bbr
示意:
- DD为
debian 12系统 - SSH密码设置为
xiaoge.org - SSH端口改为
45622 - 使用
bbr+fq
完成后按提示,运行 reboot 重启系统即可(首次启动会比较慢)。
后记
该脚本已经成功在以下VPS上完成DD测试:
- DMIT
- 搬瓦工
- 斯巴达
- 甲骨文
- NC
- RN
包括IPv6在内的所有功能均正常,感谢项目作者的无私奉献。
项目地址
https://www.nodeseek.com/post-9383-1
利用cloudflare R2+page构建图床项目部署
使用CloudFlare R2 + Pages,免服务器搭建图床服务! - 小鸽志
前言
有小伙伴上回看完 白嫖Cloudflare R2 对象存储:10G存储+免流量费,打造免费图床 的文章后,有来问能否不用服务器搭建图床!
你这是要白嫖到底呀!?当然对于CF大善人来说,还真的可以!🙂
项目介绍
CloudFlare-ImgBed 是一个基于 CloudFlare 的开源文件托管解决方案(图床/文件床/网盘)
具有上传、管理、读取、删除等全链路功能,覆盖文件全生命周期,支持鉴权、目录、图片审查、随机图等各项特性(详见功能文档)。
演示站点: https://cfbed.1314883.xyz/,访问密码:cfbed
准备工作
需要准备以下资源:
- 1个域名托管到CF(作为图片直链、图床程序的访问域名)
- 1个Github账户(用于复刻和快速启动图床项目)
- 1个CloudFlare账号(用于白嫖下面的服务🙂)
- R2 对象存储(10G空间内免费,不限出口流量)
- Pages 静态托管(运行图床程序)
- KV 数据库(存储图床设置)
⚠️ 注意: 除R2对象存储需要绑卡激活外,其余的CF服务都可以白嫖(每天10万次请求,达到暂停)。对象存储空间在10G内也不会产生费用,具体可以看下R2的介绍!
Fork 项目
- 打开Github项目地址:https://github.com/MarSeventh/CloudFlare-ImgBed
- 点击 Fork 复刻一份到你的仓库,什么都不用改动
创建 Pages 项目
- 登录CloudFlare → 计算 Workers → Workers 和 Pages → 创建
- 选择 Pages → 导入现有 Git 存储库,添加你的Github账户,并选择 Fork 的 CloudFlare-ImgBed → 开始设置
配置参数
| 配置项 | 值 | 说明 |
|---|---|---|
| 名称 | cloudflare-imgbed |
随意,可不改 |
| 产生分支 | main |
默认 |
| 框架预设 | 无 | - |
| 构建命令 | npm install |
- |
| 输出目录 | 不用填 | 默认根目录 |
等待几分钟,就可以通过分配的域名访问了(国内pages.dev域名会打不开,稍后再设置)
绑定 KV 数据库、R2 对象存储
创建 KV 数据库
- 存储与数据 → KV → Create Instance
- 命名空间名称:
img_url(建议用这个,创建后什么都不用做)
绑定到 Pages
到 pages 里面绑定:KV 数据库、R2 对象存储
| 变量名 | 选择内容 | 说明 |
|---|---|---|
img_url |
选择创建的 KV数据库 | - |
img_r2 |
选择你之前设置的R2桶 | - |
之后重新部署,让其生效
顺便绑定个图床程序的域名
完成部署
到此 CloudFlare-ImgBed 部署完毕,访问设置的域名即可!
推荐设置
基本设置
- 访问图床程序域名,右下角进入设置
- 左上角切换到系统设置 → 上传设置,设置并开启CF R2存储
- 安全设置里面可以设置上传密码和管理员账户密码
高级设置
如果要图片链接与R2那边的域名完全一致,网页设置 → 默认URL前缀设置为R2域名(有后斜杠)!
💡 提示: 这样方便于以后迁移别的程序,或者是直接后台管理
参考资源
- 更多的设置或教程,请看开源项目的WIKI:https://cfbed.sanyue.de/
- 如果对R2不清楚,请先花点时间,仔细阅读前文:白嫖Cloudflare R2 对象存储:10G存储+免流量费,打造免费图床
Git 彻底删除在GIT中的.DS_Store文件跟踪
在本文中,我们将介绍如何彻底删除在GIT中的.DS_Store文件跟踪。
阅读更多:Git 教程
什么是.DS_Store文件?
.DS_Store是macOS操作系统中的一个隐藏文件,用于存储文件夹的布局和属性信息,以便让用户自定义文件夹的显示方式。这个文件对于操作系统来说是很有用的,但是在版本控制系统如GIT中,.DS_Store文件是一种噪音文件,对代码仓库没有实际意义,而且可能会造成冲突和不必要的麻烦。
忽略.DS_Store文件
为了避免将.DS_Store文件纳入GIT的跟踪中,我们可以通过.gitignore文件在项目根目录下进行配置。.gitignore文件用于忽略特定文件和文件夹,不让GIT对其进行跟踪。
在.gitignore文件中添加一行.DS_Store即可忽略.DS_Store文件的跟踪。如果你的项目中已经存在.gitignore文件,可以直接编辑它,如果不存在,可以创建一个新的文件并命名为.gitignore并添加上述内容。
以下是一个.gitignore文件的示例:
# 忽略.DS_Store文件
.DS_Store
# 忽略其他不需要跟踪的文件或文件夹
node_modules/
dist/
tmp/
... (根据项目需要添加其他忽略规则)
Bash
清除已经被跟踪的.DS_Store文件
如果在之前的版本中,你已经将.DS_Store文件纳入了GIT的跟踪中,那么使用.gitignore文件并不能直接将其排除出去,因为这些文件已经被GIT跟踪了。
要彻底清除已被跟踪的.DS_Store文件,我们需要使用以下命令:
git rm --cached .DS_Store
Bash
这条命令会将.DS_Store文件从GIT的跟踪列表中删除,但是不会删除实际的文件。我们通过--cached参数来告诉GIT只将.DS_Store文件从缓存区中删除,并保留实际文件。
curl常用操作
简介
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
常用参数详解
-A (User-Agent)
-A 参数指定客户端的用户代理标头,即 User-Agent。curl 的默认用户代理字符串是 curl/[version]。
# 将User-Agent改成 Chrome 浏览器
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' https://google.com
也可以通过 -H(更改 Header) 参数直接指定 User-Agent:
curl -H 'User-Agent: php/1.0' https://google.com
-b (Cookie)
-b 参数用来向服务器发送 Cookie。
# 发送cookie
curl -b 'foo=bar' https://google.com
curl -b 'foo1=bar1;foo2=bar2' https://google.com
-c (保存Cookie)
-c 参数将服务器设置的 Cookie 写入一个文件。
# 将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt
curl -c cookies.txt https://www.google.com
-d (POST数据)
-d 参数用于发送 POST 请求的数据体。
# 使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded
# 并且会自动将请求转为 POST 方法,因此可以省略-X POST
curl -d'login=emma&password=123' -X POST https://google.com/login
curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login
发送JSON数据:
# 发送JSON格式的API请求
curl -d '{"name":"john","age":30}' -H 'Content-Type: application/json' https://api.example.com/users
# 从文件读取JSON数据
curl -d '@data.json' -H 'Content-Type: application/json' https://api.example.com/users
-e (Referer)
-e 参数用来设置 HTTP 的标头 Referer,表示请求的来源。
# 将Referer标头设为https://google.com?q=example
curl -e 'https://google.com?q=example' https://www.example.com
-F 和 -T (文件上传)
-F参数用来上传多个文件-T参数用于上传单个文件
# 给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传
curl -F 'file=@photo.png' https://google.com/profile
curl -F 'file=@photo.png;filename=me.png' https://google.com/profile
# 上传单个文件
curl -T 'photo.png' https://google.com/upload
-H (请求标头)
-H 参数添加 HTTP 请求的标头。
curl -H 'Accept-Language: en-US' https://google.com
curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com
-i (显示响应标头)
-i 参数打印出服务器回应的 HTTP 标头。
# 收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码
curl -i https://www.example.com
-I (HEAD请求)
-I 参数向服务器发出 HEAD 请求,然后将服务器返回的 HTTP 标头打印出来。
curl -I https://www.example.com
-k (跳过SSL检测)
# 跳过 SSL 检测
curl -k https://www.example.com
-L (跟随重定向)
-L 参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
curl -L -d 'tweet=hi' https://api.twitter.com/tweet
--limit-rate (限制带宽)
--limit-rate 用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。
# 将带宽限制在每秒 200K 字节
curl --limit-rate 200k https://google.com
-o (保存到指定文件)
-o 参数将服务器的回应保存成文件,等同于 wget 命令。
# 需要指定保存的文件名
curl -o example.html https://www.example.com
-O (保存到默认文件名)
-O 参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
# 将服务器回应保存成文件,文件名为bar.html
curl -O https://www.example.com/foo/bar.html
-s (静默模式)
-s 参数将不输出错误和进度信息。
# 一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果
curl -s https://www.example.com
-u (身份认证)
-u 参数用来设置服务器认证的用户名和密码。
# 设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1
curl -u 'bob:12345' https://google.com/login
-v (详细输出)
-v 参数输出通信的整个过程,用于调试。
curl -v https://www.example.com
-x (代理设置)
-x 参数指定 HTTP 请求的代理。
# 请求的代理默认使用 HTTP 协议
curl -x '127.0.0.1:8080' https://www.example.com
curl -x 'http://user:pass@proxy.example.com:8080' https://www.example.com
-X (指定请求方法)
-X 参数指定 HTTP 请求的方法。
curl -X POST https://www.example.com
curl -X DELETE https://api.example.com/users/123
curl -X PUT -d '{"name":"updated"}' -H 'Content-Type: application/json' https://api.example.com/users/123
常用API请求示例
发送JSON数据到API
# POST请求发送JSON数据
curl -X POST \
-H "Content-Type: application/json" \
-d '{"username":"john","email":"john@example.com","age":30}' \
https://api.example.com/users
# 从文件读取JSON数据
curl -X POST \
-H "Content-Type: application/json" \
-d @user.json \
https://api.example.com/users
带认证的API请求
# Bearer Token认证
curl -H "Authorization: Bearer your_token_here" \
https://api.example.com/protected
# API Key认证
curl -H "X-API-Key: your_api_key_here" \
https://api.example.com/data
文件上传API
# 上传文件到API
curl -X POST \
-F "file=@/path/to/file.jpg" \
-F "description=My photo" \
https://api.example.com/upload
许可协议: CC BY-NC-SA 4.0
原文来源: 杂烩饭 - https://zahui.fan/posts/lqyxid2z/
指令集版本区分
AI写的,每次选版本都得反应一下,不如顺便总结了
架构分类总览
x86架构系列
基于Intel 8086处理器发展而来的架构系列
ARM架构系列
基于精简指令集(RISC)的处理器架构
详细对照表
| 名称 | 架构类型 | 位数 | 全称/说明 | 常见用途 |
|---|---|---|---|---|
| x86 | x86架构 | 32位 | Intel 8086架构的泛称 | 老式PC、嵌入式系统 |
| x86_32 | x86架构 | 32位 | 32位x86架构的明确表示 | 老式PC、一些Linux发行版 |
| x32 | x86架构 | 32位 | x86_32的简化写法 | 部分软件包命名 |
| i386 | x86架构 | 32位 | Intel 80386处理器 | Linux发行版常用标识 |
| i686 | x86架构 | 32位 | Intel Pentium Pro(686)优化版本 | Linux发行版、软件包 |
| x86_64 | x86架构 | 64位 | 64位x86架构(AMD64的通用名) | 现代PC、服务器 |
| x64 | x86架构 | 64位 | x86_64的简化写法 | Windows系统常用 |
| amd64 | x86架构 | 64位 | AMD开发的64位x86扩展 | Debian系Linux、Docker镜像 |
| Intel64 | x86架构 | 64位 | Intel的64位x86实现 | Intel官方称呼 |
ARM架构详细分类
| 名称 | 架构类型 | 位数 | 说明 | 常见用途 |
|---|---|---|---|---|
| arm | ARM架构 | 32位 | ARM架构的通用称呼 | 嵌入式设备、老式手机 |
| armv6 | ARM架构 | 32位 | ARM架构第6版 | 树莓派1代 |
| armv7 | ARM架构 | 32位 | ARM架构第7版 | 大部分32位ARM设备 |
| armhf | ARM架构 | 32位 | ARM Hard Float(硬件浮点) | Linux ARM发行版 |
| armel | ARM架构 | 32位 | ARM EABI Little Endian | 老式ARM Linux |
| arm64 | ARM架构 | 64位 | 64位ARM架构 | 现代手机、M系列Mac |
| aarch64 | ARM架构 | 64位 | ARM 64位架构的官方名称 | Linux ARM64发行版 |
| armv8 | ARM架构 | 64位 | ARM架构第8版(支持64位) | 现代ARM处理器 |
快速识别方法
按架构类型分类
x86架构系列 (Intel/AMD处理器)
- ✅ x86, x86_32, x32, i386, i686 → 32位
- ✅ x86_64, x64, amd64, Intel64 → 64位
ARM架构系列 (手机、平板、M系列Mac)
- ✅ arm, armv6, armv7, armhf, armel → 32位
- ✅ arm64, aarch64, armv8 → 64位
按位数分类
32位处理器
x86架构: x86, x86_32, x32, i386, i686
ARM架构: arm, armv6, armv7, armhf, armel
64位处理器
x86架构: x86_64, x64, amd64, Intel64
ARM架构: arm64, aarch64, armv8
实际应用场景
下载软件时的选择
Windows用户
- 现代Windows PC →
x64或x86_64 - 老式Windows PC →
x86或x86_32
Mac用户
- Intel Mac →
x86_64或amd64 - M系列Mac →
arm64或aarch64
Linux用户
- Intel/AMD处理器 →
x86_64或amd64 - 树莓派4/5 →
arm64或aarch64 - 树莓派1-3 →
armv7或armhf
Docker镜像选择
# Intel/AMD 64位
docker pull ubuntu:latest # 默认amd64
docker pull ubuntu:20.04-amd64
# ARM 64位 (M系列Mac、新树莓派)
docker pull ubuntu:20.04-arm64
# ARM 32位 (老树莓派)
docker pull ubuntu:20.04-armhf
常见混淆概念澄清
❓ AMD64 vs Intel处理器
- AMD64: 虽然叫AMD64,但Intel处理器也支持
- 原因: AMD首先开发了64位x86扩展,Intel后来兼容实现
- 结论: Intel和AMD的64位处理器都可以用amd64标识
❓ x64 vs x86_64
- x64: Windows常用的简化写法
- x86_64: Linux/Unix常用的完整写法
- 结论: 两者指的是同一种架构
❓ arm64 vs aarch64
- arm64: 通用简称
- aarch64: ARM官方标准名称
- 结论: 两者指的是同一种架构
如何查看当前系统架构
Linux/Mac
# 查看架构
uname -m
# 可能输出: x86_64, aarch64, armv7l等
# 查看详细信息
lscpu # Linux
sysctl -a | grep machdep.cpu # Mac
Windows
# 命令提示符
echo %PROCESSOR_ARCHITECTURE%
# 可能输出: AMD64, x86
# PowerShell
Get-WmiObject Win32_Processor | Select-Object Architecture
编程语言中查看
# Python
import platform
print(platform.machine()) # x86_64, ARM64等
print(platform.architecture()) # ('64bit', 'ELF')
总结要点
- x86架构 = Intel/AMD处理器系列
- ARM架构 = 手机、平板、M系列Mac处理器
- 数字后缀: _64, 64 = 64位;_32, 32 = 32位
- 特殊标识:
- amd64 = x86_64 (都是64位x86)
- aarch64 = arm64 (都是64位ARM)
- 现代设备大多是64位,除非是特殊的嵌入式设备
选择软件时,先确定架构类型(x86还是ARM),再确定位数(32位还是64位)即可!

Comments NOTHING