从此
📄文章 #️⃣专题 🌐酷站 👨‍💻技术 📺 📱

Windows安装、Linux内核、macOS操作系统、知名软件、常用工具、快捷键、终端命令行

综合/最新

操作系统、跨平台
苹果M系列笔记本电脑和华为鸿蒙笔记本电脑,均为 ARM 架构。

通用

烧录工具 - Rufus(分区类型全部用GPT)

字体 - Ubuntu、Debian等Linux发行版的默认中文字体是Noto Sans SC,Windows也已内置Noto Sans SC,Chrome默认字体Noto Sans SC;macOS 只自带了 Noto Sans Myanmar缅甸字体。

macOS是认证过的Unix,Linux则是类Unix。
家目录(也翻译为用户主目录):
  所有操作系统均通过相同的命令行变量获取:echo $HOME
  所有操作系统均存在桌面目录:echo $HOME/Desktop/
  Windows   C:\Users\<用户名>
  Linux     /home/<用户名>
  macOS     /Users/<用户名>

环境变量:
  Linux和macOS通过 env 命令获取;Windows 则要用 ls env: 或 Get-ChildItem env:
  固化:
    Linux/macOS  /etc/profile.d/my.sh  写入  export PATH="$HOME/.cargo/bin:$PATH"
    仅macOS      /etc/paths.d/my       写入  /opt/homebrew/bin/

DNS:TTL老化时间通常为20分钟
  Linux/Windows/macOS 用 nslookup example.com

mDNS:TTL老化时间通常为20分钟
  Windows 用 Resolve-DnsName device.local
    Resolve-DnsName blog.kaciras.com -Server 114.114.114.114

软件工具:
  QQ支持远程桌面功能,但微信没有。

Windows

注意 - Win11_23H2_Chinese_Simplified_x64.iso 之后系统开始要求硬件必须支持 SSE4.2,强装则报"Fail Invalid parameter"无限重启。
  查看 *.iso 操作系统版本信息 - 右键 H:\setup.exe 详细信息 或 dism /Get-WimInfo /WimFile:H:\sources\install.wim /index:1

硬件唯一标识符:
  主板 - Get-WmiObject win32_baseboard | Format-List Product,SerialNumber

Windows新版本通常每年10月份发布。
宿主机安装 NVIDIA Windows GPU 驱动程序后,WSL 2 会感知到,就无需再安装 Linux 版本的 NVIDIA GPU 驱动了,但 CUDA 仍然需要,需要注意的是,必须勾掉 CUDA Toolkit 内置的 NVIDIA GPU 驱动。

Windows安装:
  本地账号 - “改为域加入”。
  密钥激活(终端管理员) - https://learn.microsoft.com/zh-cn/windows-server/get-started/kms-client-activation-keys#windows-11-and-windows-10-semi-annual-channel
    slmgr /ipk <product-key>
    slmgr -skms <kms.domain>
    slmgr -ato

切换至带空格目录:    
  cd C:\Progra~1\ = C:\Program Files  C:\Progra~2\ = C:\Program Files (x86)
  注 - Program Files 和 C:\Windows\System32 存放当前架构的程序,后者名字中的32不再用于区分架构,对应的32位路径则为 Program Files (x86) 和 C:\Windows\SysWOW64。

PowerShell:
  Get-Variable  在Name列前加个$符号即可取值:$HOME  ${HOME}  输出 C:\Users\person

系统盘占用情况:
  说明 - Windows操作系统重装后约占45GB,故系统盘至少80GiB,若装Android Studio则要160GiB。
  C:\Windows\WinSxS\    存储系统组件、Windows核心DLL等文件的多个副本,恢复分区不可用时来抽取重置系统,约7GiB≈13GiB;%systemroot%\WinSxS
  $HOME\AppData\Local\Android\Sdk\system-images   各软件数据目录,约15GiB,即只保留2个模拟器系统。
  $HOME\AppData\Roaming\Godot\export_templates    各软件同步用数据目录,约3.5GiB,即只保留2个导出模板。
  $HOME\.android\avd\   Android缓存目录,约20GiB,即只保留2个模拟器镜像。
  $HOME/.gradle         Gradle缓存目录,约500MiB≈10GiB,若 Gradle toolchain 指定了其他 JDK,则每个 JDK 会在 C:\Users\pc\.gradle\jdks 中多占500MiB。

查看恢复分区文件:
  分配盘符(用完必须移除盘符,避免误删文件) - https://www.disktool.cn/content-center/unhide-recovery-partition-2111.html
  ls 列不出该分区文件,故应使用 Get-ChildItem -Force 查看;通常为 H:\Recovery\WindowsRE\Winre.wim。

Linux

Arduino/OpenWRT/树莓派

发行版:
  首选稳定的Debian,次选Debian衍生版Ubuntu;首选自定义用户名,而非root管理员账号,高权限时临时提升下即可。
  Debian - 安装程序首选700MiB的CD版(即netinst CD/debian-*.*.*-amd64-netinst.iso),完全离线则装3.7GiB的DVD版本,两者均含图形界面,桌面环境为Gnome。
    安装时若提示“缺失的固件文件是:ath10k/...”,说明需要额外的网卡驱动,可先“否”+“继续”跳过,虽缺失固件但WiFi还是能做到最基本的联网,软件源设置后似乎会自动安装上。
    安装时会提示设置root密码,如果留空则说明不启用root账号;磁盘分区方法应选择“手动”,避免误删重要数据,若磁盘分区无“挂载点 / 和 swap 等”,应再次指定为“用于:Ext4”并挂载点为 / 和格式化;
    自动分区的分区方案首选“放在同一个分区中”,即只分为 / 和 swap,用一段时间后,观察下实际占用,后续考虑其他方案,比如“将 /home 放在单独的分区”:/ 分区=16G(/root估计用不到1G)、swap 分区=10G(不要大于物理内存)、/home 分区=130G(剩余),如果用于服务器也可将 /var 分区独立出来。
    安装时选择国内源列表,mirrors.tuna.tsinghua.edu.cn 比 mirrors.163.com 延迟低,官方源域名已被国内严重劣化,国内源下载只需3分钟,官方源则要3个多小时!若用于服务端应勾上“SSH Server”。

硬件唯一标识符:
  固定硬件通过设备树来传递至Linux内核,比如树莓派等 cat /proc/device-tree/serial-number
    设备树 - 内核在启动时加载DTB文件,并解析其中的硬件资源描述,生成相应的设备节点。

  硬件不固定的设备:
    Intel 和 AMD CPU 为了防追踪而并不提供唯一标识符;退而求其次,可用主板代之。
    Debian已内置解析 SMBIOS 3.0.0 的 sudo dmidecode 命令:
      sudo dmidecode --string baseboard-serial-number
        .A1B2C3D.CN123456789012.
      等同 sudo cat /sys/class/dmi/id/board_serial

  其他设备:通过命令生成 systemd-machine-id-setup 查看 cat /etc/machine-id

目录约定:
  路径寻址时,应优先使用类 Unix(Unix-like)OS 均存在的 $HOME 环境变量,而非写死 /home/$USER。
  XDG Base Directory Specification(XDG基准目录规范) - 用来解决类Unix家目录点文件(dotfiles)混乱问题 /home/username/.gradle/。
    Environment variables: $XDG_DATA_HOME=$HOME/.local/share、$XDG_CACHE_HOME=$HOME/.cache、$XDG_CONFIG_DIRS=/etc/xdg(其中 /etc/xdg/autostart/*.desktop 支持自启)
    亲测已遵循的发行版:Debian、树莓派;且均已内置 XDG 命令包 xdg-utils,支持 xdg-open 等命令。

/tmp 目录存放文件在开机时会被删除(10天自动清理),而 /var/tmp 里面的文件在重启后仍会保留(30天自动清理)。

Linux命令:
  /bin/sh - 每个操作系统均存在,且符合POSIX,但没有 /bin/bash 功能多;若存在 $PATH 环境变量,则可简写为sh。
  ifconfig命令包net-tools已停止开发,并被iproute2包取代了,对应命令为ip addr。

中文输入法:
  Debian启用fcitx中文输入法快捷键是“Ctrl+空格键”,英文输入法与fcitx中文拼音输入法之间切换键为“左Shift键”;需要点击“fcitx”图标激活下?

DKMS:
  内核升级后,模块为了用上新内核的变动和修补,就要重新编译下。
  模块 apt 包(nvidia-kernel-dkms等)安装时会执行钩子脚本,将包内源码目录注册至 DKMS 系统,当 dkms 监测到内核升级后,会根据注册的源码配置文件(dkms.conf)来重新构建和分发。
  重新构建时,用的是 DKMS 的密钥(/var/lib/dkms/mok.key),因此需要将该目录的 mok.pub 导入 UEFI 公钥数据库:
    sudo mokutil --import /var/lib/dkms/mok.pub    设个一次性密码(比如1),用于重启后作为当此的导入凭证,Enroll MOK -> 输入密码1。
    sudo mokutil --test-key /var/lib/dkms/mok.pub  查看该公钥是否已登记。

  sudo dkms status 应该输出 ...: installed,若输出 ...: Added,可能缺失 linux-headers。

  [备忘/未使用]:
    sudo apt install linux-image-6.12.32-amd64
    命令 dkms install 依赖内核头:sudo apt install linux-headers-6.12.32-amd64
    sudo dkms install nvidia-current/550.163.01 -k $(uname -r)

显卡:
  Debian自带了nouveau驱动用于NVIDIA显卡,只能点亮屏幕而已,如果想安装CUDA或使用大模型,必须先禁掉该驱动再安装NVIDIA官方驱动(约1G大小)。  
  因Linux内核会小版本自动升级,DKMS 管理的 nvidia 模块需要重新签名,故必须导入 DKMS 公钥,或暂时禁用 UEFI 的 Secure Boot,查看禁用状态 sudo mokutil --sb-state
    否则 sudo modprobe nvidia 会报 modprobe: ERROR: could not insert 'nvidia': Key was rejected by service

  亲测 Debian 不加 options nouveau modeset=0 选项依然能禁用。
  cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
EOF
  sudo update-initramfs -u
  sudo reboot
  lsmod | grep nouveau  # 无输出即禁用成功;暂时由集成显卡接管。
  sudo apt update  确保 /etc/apt/sources.list 存在 contrib non-free non-free-firmware
  [待测] sudo apt install linux-headers-$(uname -r)  似乎 dkms install 依赖内核头
  sudo apt install nvidia-kernel-dkms nvidia-driver firmware-misc-nonfree
  sudo reboot
  nvidia-smi    显存用量在 Memory-Usage 下一格
  [输出N则需配置] sudo cat /sys/module/nvidia_drm/parameters/modeset
     cat <<EOF | sudo tee /etc/modprobe.d/nvidia-options.conf
options nvidia-drm modeset=1
EOF

  [可选] 主流发行版都将nouveau驱动作为内核的builtin模块了,如果 /etc/modprobe.d/*.conf 方式禁不干净,可在较早生效的 GRUB_CMDLINE_LINUX 中禁之。
    sudo vim.tiny /etc/default/grub
      追加参数值 GRUB_CMDLINE_LINUX="... modprobe.blacklist=nouveau nvidia-drm.modeset=1"
    sudo update-grub    sudo reboot


开机启动:
sudo dd of=/etc/xdg/autostart/demo.desktop << EOF [Desktop Entry] Exec=pcmanfm Type=Application EOF 树莓派内置命令启动桌面文件(*.desktop 写上 Type=Application) gio launch /usr/share/applications/lxtask.desktop Java桌面文件写法 Exec=env JAVA_HOME=/home/${USER}/jdk-23.0.2/ JAVA_OPTS=--enable-native-access=ALL-UNNAMED /home/${USER}/app/bin/app 临时测试含桌面程序可加上 env DISPLAY=:0 vlc 或 env DISPLAY=:0 gio launch /etc/xdg/autostart/demo.desktop 查看MIME关联的默认打开方式 gio mime video/mp4 输出 Default application for “video/mp4”: vlc.desktop gio mime application/x-desktop 输出 geany.desktop 指用 geany 文本编辑器打开,并非直接启动 Exec 指定程序。 首选 gio mime 查询,因 xdg-mime query default application/x-desktop 竟返回空。 设置MIME关联 gio mime video/mp4 vlc.desktop xdg 命令: xdg-open /etc/xdg/autostart/demo.desktop xdg-mime query default inode/directory xdg-mime query default text/html

macOS

相关:Xcode+Swift

约定:
  三个标准的应用程序存储位置: /Applications(对所有用户可用/最常用)、/Users/用户名/Applications(对拥有该文件夹的登录用户可用)、/Developer/Applications(对所有用户可用,用于Xcode软件)
  应用程序数据目录 - ~/Library/Application Support/
  [自用/可选] 个人文件均放在桌面目录 /main/ 中,比如 /main/game-dev/、/main/projects/。

常用:
  iPhone传照片或文件 - 通过USB线插入macOS后,打开“照片”应用会让你勾选后“导入”,若提示‘关闭“iCloud 照片”’,需要先到iPhone的Apple账号->iCloud->照片 中关闭 “iCloud 照片”;
    USB传Windows,插上就会弹出按月份分隔的照片目录(202505__),无需iTunes。

  终端命令 - defaults help  查看命令用法在macOS中弹出用法
  开机启动 - Dock栏右键点击应用图标 -> 选项 -> 登陆时打开;或「系统设置」-「通用」-「登录项」-「登录时打开」(「允许在后台」);或 ~/Library/LaunchAgents/our-env.plist。

死记:
  鼠标 - 滚轮方向正好相反,说是为了与iPhone达成统一。
  键盘 - option(⌥)=Alt、command(⌘/风景名胜区/大部分Ctrl作用)=Super Key、control(⌃/使用率低)=Ctrl、shift(⇧)。
    注意:部分游戏键盘可能会屏蔽Windows键,进而导致在macOS中也不识别,可尝试用FN+Gaming键来关闭。
  显示桌面 - F11;Windows则为Win+D。
  全角/半角切换 - Alt+Shift+H
  运行/搜索 - Win+R、macOS则用 Command+Space,若想接着打开终端,按z即可。

  快捷键 - Ctrl(macOS换用command)+c(复制/拷贝)、Ctrl(command)+v(粘贴)、全选 Ctrl(command)+A、查找 Ctrl(command)+F、截图 Shift-Command-5。
  窗口快捷键 - Command+Option+M+H 快速隐藏所有窗口
  窗口最大化 - Windows双击、macOS则是拖至最顶部,出预览框后释放即可,或窗口菜单->Windows->Fill填充;或悬停在绿色“全屏幕”按钮->填充图示。

  「前往文件夹」 - Command + Shift + G 后输入“/”会感应常用目录。
  文件夹路径层次关系 - 右键点击文件夹窗口名 或终端命令持续显示 defaults write com.apple.Finder _FXShowPosixPathInTitle -bool true  重启方生效 killall Finder
  Finder 查看隐藏文件的文件夹(再按则隐藏) - Command (⌘) + Shift + . (句号)。
    或终端命令显示 defaults write com.apple.Finder AppleShowAllFiles -bool true  重启方生效 killall Finder
  重新命名 - 选中后按Enter,Windows则为选中后按F2。

  浏览器 - 打开刚关页面 Ctrl(macOS换用command)+Shift+T;关闭标签页 Ctrl(command)+W;全屏 Control-Command-F;
    Command + L: 快速输入网址;刷新 Command+R


点击❌并非关闭,而是最小化了,Dock任务栏(程序坞)下方用圆点来表示该程序仍在运行,顶条菜单“应用名”->“退出(Quit)”才会彻底停止。
创建快捷方式:右键点“制作替身”(Make Alias)就会添加至桌面一个快捷方式。
无法上网,可能是VPN工具误开了代理,退出时未还原:网络->以太网->详细信息->代理->去掉勾选:网页代理、安全网页代理、SOCKS代理。
<input type="file" /> 标签点开后粘贴路径,会识别并转到。

macOS软件后缀通常为app, dmg, pkg,且必须进行公证,否则提示“无法验证开发者”,安装就无法继续下去了。
安装后打开报“已损坏”解决: sudo spctl --master-disable  执行后应尽快到“设置”->隐私与安全性->允许以下来源:任意来源。

电池健康度: ioreg -rn AppleSmartBattery | grep -i capacity  输出后计算百分比 AppleRawMaxCapacity / DesignCapacity * 100

macOS电源管理:
  说明 - Macmini m4默认息屏时间为无动作后10分钟。
  通常由pmset命令管理,参数-c指外部供电模式,参数-b指内置电池模式。

  powernap <0|1>:电能小憩(Power Nap) - 在睡眠模式(仅浅睡起效)下执行某些后台任务:更新同步等。
  womp <0|1>:网络唤醒(Wake On LAN)。
  sleep:睡眠 - 保持内存供电
  standby:待机?

  系统设置 -> 能源: “显示器关闭时,防止自动进入睡眠”指不论是自动还是主动关闭显示器,均永不睡眠;等同 sudo pmset -c sleep 0
  新macOS系统中,hibernatemode不再是用户可以直接调节的,macOS会自动管理;该参数决定浅睡(睡眠)还是深睡(休眠)。
  Mac mini无hibernatemode、autopoweroff参数。

  Mac mini: 
    原则是不落盘,改错了恢复原貌 sudo pmset restoredefaults

    // 内存供电,内存镜像不写入硬盘
    sudo pmset -c hibernatemode 0
    // 关闭 standby 模式
    sudo pmset -c standby 0

远程桌面:
  macOS连macOS - macOS内置“屏幕共享” Screen Sharing。
  macOS连Windows - https://apps.apple.com/us/app/microsoft-remote-desktop/id1295203466
  Windows连macOS - Remote Desktop Manager(Free edition)
    安装后,首次启动会提示安装固定版本.NET 桌面运行时(可与最新版共存/SDK包含桌面运行时),并跳过(Skip)“选择数据源”;
    支持mDNS主机名macdeMac-mini.local 用户名mac
    亲测剪切板能拷贝文字,但不支持文件。
    Macmini默认启用了"唤醒以供网络访问",故远程桌面一直可连。


Remote Desktop Manager - Windows远程桌面访问macOS设备,窗口显示模式首选“工作区屏幕(Work area screen)”。
Final Cut Pro - Mac系统知名视频编辑工具。

2025年初,苹果Swift Build开源,据称要支持Windows平台 - https://github.com/swiftlang/swift-build

其他