‹ 返回笔记 Esc·

macOS 问题与修复

.DS_Store 隐藏文件 .DS_Store(Desktop Services Store)文件是 macOS 系统自动生成的隐藏文件,它存在于 Finder 访问的每个文件夹中,用于存储有关文件…

.DS_Store 隐藏文件

.DS_Store(Desktop Services Store)文件是 macOS 系统自动生成的隐藏文件,它存在于 Finder 访问的每个文件夹中,用于存储有关文件夹的自定义属性和视图设置。如提交代码存在,可用 gitignore 忽略掉此文件。


._ 开头的隐藏文件

当您将文件复制到 U 盘等外部存储设备时,可能会发现生成了一些以 ._ 开头的隐藏文件。这些文件是 macOS 为了在不支持其文件系统特性的设备上保存文件的元数据(如资源分支、Finder 信息、扩展属性等)而创建的。

macOS 使用 AppleDouble 格式来存储文件的元数据。当您将文件复制到不支持 macOS 扩展属性的文件系统(如 FAT32、exFAT、NTFS)时,系统会将这些元数据分离出来,存储在一个以 ._ 开头的文件中,与原始文件并存。例如:en.wikipedia.orgreddit.com

  • 原始文件:example.jpg
  • 元数据文件:._example.jpg

这些 ._ 文件在 macOS 上通常是隐藏的,但在 Windows 或其他设备上可能会显示出来,并可能被误认为是损坏的文件。

使用 dot_clean 命令

macOS 提供了一个名为 dot_clean 的命令行工具,用于合并或删除这些 ._ 文件。操作步骤如下:

  1. 打开“终端”应用程序。
  2. 输入以下命令
1dot_clean -mv /Volumes/SanDisk
  1. 按下回车键执行命令。
  2. 等待命令执行完成后,安全弹出 U 盘。

此命令会合并元数据到原始文件中,并删除多余的 ._ 文件。


已损坏,无法打开

打开 Finder 进入 Application 目录,找到该软件将其拖到终端窗口里并获取到文件路径,在拼接为命令运行

1sudo xattr -r -d com.apple.quarantine /Applications/attu.app

进入 Privacy & Security 允许运行


ComputerName、LocalHostName、HostName 区别

ComputerName(电脑名称) 用途:给人看的设备名称,显示在 Finder、隔空投送、系统设置等界面。 示例:Zailiang MacBook Pro 建议:使用可读性好的完整名称,可以包含空格。

LocalHostName(本地主机名) 用途:局域网(Bonjour/mDNS)名称,对应 xxx.local,用于 SSH、文件共享等。 示例:mbp → mbp.local 建议:使用简短、唯一的英文名称,只用字母、数字、连字符(-)。

HostName(主机名) 用途:系统级 hostname,会覆盖系统默认的主机名行为,主要用于服务器和企业环境。 示例:dev-server、prod-api-01 建议:个人 Mac 不要设置,保持未设置(Not Set)。

1scutil -–get ComputerName
2sudo scutil –set ComputerName "Zailiang MacBook Pro"
3scutil -–get LocalHostName
4sudo scutil -–set LocalHostName "mbp"
5# 恢复默认(推荐):
6sudo scutil -–set HostName ""

开启文件共享给 Windows

mac 配置

  1. 打开:系统设置 → 通用 → 共享
  2. 开启:文件共享(File Sharing),默认文件夹是 Public
  3. 设置权限(右侧列表):你的用户 → 读与写(Read & Write)
  4. 点击选项(Options)→ 确保:✔ 使用 SMB ✔ 勾选 Zailiang,并输入密码

win 连接

  1. 在 Windows 里:\\192.168.x.x 然后输入用户名:Zailiang,密码:你的 Mac 密码

  2. 右击想映射的文件夹并映射为网络驱动器,驱动器盘符 mac 建议映射为 M:

  3. 重命名驱动器名称,建议 Public


Termius 中本地终端中文显示乱码

export LANG=en_US.UTF-8


IDEA 全局搜索快捷键与 mac 快捷键冲突

IDEA 中使用 Shift+Command+F 全局搜索时,若选中文本则会调用 系统自己的访达搜索,解决办法:系统设置 - 键盘 - 键盘快捷键 - 服务 - 搜索 - 取消勾选聚焦


QuickTime Player 快捷键停止录制

Control+Command+Esc键退出录制,或点击状态栏的停止录制按钮


压缩文件出现 __MACOSX 文件夹

__MACOSX 是一个特殊的隐藏文件夹,通常在 macOS 系统中的 Finder 中不可见,但在命令行界面或第三方文件管理器中可以看到。是在 mac 系统上压缩出来的文件,这个文件夹用于存储 macOS 文件系统元数据,以及某些应用程序的额外信息,尤其是那些使用 macOS 的元数据存储特性的应用程序。下载安装一个免费的第三方压缩软件压缩就行,如 Fastzip。


U 盘内生成的隐藏文件

  1. Trashes 文件夹
    • 作用.Trashes 是 macOS 用来存储外部存储设备(如 U 盘、移动硬盘、网络驱动器等)上被删除文件的 回收站。每当你从外部驱动器中删除文件时,这些文件会被放入 .Trashes 文件夹,直到你清空回收站。
    • 出现原因:当你删除外部驱动器上的文件时,macOS 会将它们移动到 .Trashes 文件夹,而不是直接从设备中删除。这是为了避免文件被误删除并且能够恢复。
    • 如何避免:如果不希望这个文件夹出现在 U 盘中,可以在复制文件到 U 盘之前先清空回收站,或者在删除文件时使用 Shift + Command + Delete,强制彻底删除。
  2. .Spotlight-V100 文件夹
    • 作用.Spotlight-V100 是 Spotlight 搜索功能创建的文件夹。它用于存储与外部存储设备上的文件相关的索引数据,以便 macOS 能够快速地在该设备上进行文件搜索。Spotlight 是 macOS 的桌面搜索工具,它会为存储在外部驱动器上的文件生成索引,以便快速查找。
    • 出现原因:当你将外部存储设备连接到 macOS 并开始使用 Spotlight 搜索时,macOS 会在设备上创建这个索引文件夹,保存文件的元数据。即使你没有显式搜索文件,Spotlight 也可能会主动建立索引。
    • 如何避免:为了避免在外部设备上生成 .Spotlight-V100 文件夹,可以在磁盘工具中禁用 Spotlight 对外部磁盘的索引(通过终端命令)。例如,使用以下命令禁用外部磁盘上的 Spotlight 索引:
1sudo mdutil -i off /Volumes/YourVolumeName
  1. ** .fseventsd 文件夹 **
    • 作用.fseventsd 是 macOS 文件系统事件的日志文件夹。它用于记录文件系统的变化(例如文件添加、删除、修改等)并用于系统的文件系统监控。这是 文件系统事件(File System Events)机制的一部分,帮助 macOS 在文件系统发生变化时进行跟踪和管理。
    • 出现原因:每当你在外部存储设备(如 U 盘)上做文件操作时,macOS 会创建 .fseventsd 文件夹,用于记录文件系统的事件。这有助于 macOS 系统能够同步文件和保持文件系统的完整性。
    • 如何避免:你可以通过在终端禁用文件系统事件日志,但一般不建议这么做,因为这可能会影响系统的稳定性和文件系统的完整性。默认情况下,macOS 会自动管理这些文件。
  2. ._ 文件
    • 作用:它们是 AppleDouble 格式的文件,它们用于存储与文件相关的 扩展属性(如文件的图标、权限、标签、注释等),这些信息在非 macOS 系统中是无法直接存储的。
    • 出现原因:当你将文件从 macOS 拖拽到外部存储设备(如 U 盘)时,这些扩展属性(例如文件图标、标签等)无法直接存储在 FAT 或 exFAT 等文件系统中(因为这些文件系统不支持 macOS 特有的文件属性)。因此,macOS 会自动为每个文件创建一个 ._ 开头的文件,用来存储这些扩展属性。这些文件通常包含 文件的元数据,而不是文件的实际内容。
    • 如何避免:在终端输入以下命令来禁止 macOS 为外部设备生成 AppleDouble 文件:
1defaults write com.apple.desktopservices DSDontWriteNetworkStores true
2defaults write com.apple.desktopservices DSDontWriteAppleDouble true

这个命令会禁用对外部存储设备(包括 U 盘、移动硬盘、网络共享等)生成 AppleDouble 文件(即 ._ 文件)。

如果你想恢复默认行为,即在网络共享上创建 .DS_Store 文件,可以使用以下命令:

1defaults write com.apple.desktopservices DSDontWriteNetworkStores false
2defaults write com.apple.desktopservices DSDontWriteAppleDouble false

压缩文件放入 U 盘内文件名乱码-归档实用工具

macOS 使用 UTF-8 编码,而 Windows 上通常使用 GBK 或 Windows-1252 编码,特别是如果文件名包含中文字符时。因为压缩过程中,macOS 会使用 UTF-8 编码存储文件名,而 Windows 在解压时默认可能无法正确识别这些文件名的编码,从而导致乱码。

解决方法

  • 避免使用特殊字符或中文:如果可能,尽量避免在文件名中使用中文或特殊字符。改用英文字符和数字,这样可以避免由于编码不一致而导致的乱码问题。
  • 使用兼容性格式压缩软件:使用兼容性更好的压缩工具(如 Keka、FastZip),确保压缩文件在跨平台时的兼容性。
  • 确保 U 盘格式正常:确保 U 盘使用 exFAT 或 FAT32 文件系统,避免 NTFS 格式导致的兼容性问题。

右键菜单功能不显示

在 macOS 14 中,Apple 禁用了在 iCloud 同步文件夹中使用访达扩展类 App,如果您在 “桌面” 和 “文稿” 里开启了 iCloud 同步,则无法在 “桌面”、“文稿”文件夹中显示右键菜单。但您仍可以在下载等文件夹中正常使用。 解决方案:在系统设置中的 Apple ID - iCloud - iCloud云盘中关闭桌面和文稿文件夹的 iCloud 同步功能,这样您就可以在“桌面”和“文稿”文件夹中正常使用软件右击功能了。


iCloud 云盘中存在“桌面”和“文稿”两个文件夹无法删除

Mac 登陆 Apple ID 的时候,默认是打开 iCloud 云盘的所有同步选项的,所以大部分人拿到新电脑登陆之后,iCloud 云盘中都会产生这两个文件夹,有和我一样的 iCloud 免费用户必然是会在设置里关掉“桌面与文稿文件夹”同步这个选项的,但是关闭之后,iCloud 云盘中还是会一直生成这个文件夹,本人尝试所有方法删除(换设备,手机,网页等),之后都会再次生成。 最后成功解决方案是首先关闭 iCloud 云盘设置里的“桌面与文稿文件夹”同步,再从访达的 iCloud 云盘选项中,将两个文件夹移动到电脑任意位置(比如桌面),最后从桌面上删掉或保留,iCloud 云盘都不会再次生成这两个文件夹。


自动切换输入法

设置 - 键盘 - 编辑 - 所有输入法 - 自动切换到文稿的输入法(勾选)


保持 iCloud Drive 目录永远下载

iCloud Drive → 右键目录 → 保留下载副本 (Keep Downloaded)


云同步文件本地一直保留

iCloud - 关闭 Optimize Mac Storage


设置关闭软件不停留 Dock 栏

设置 - 桌面与程序坞 - 在程序坞中显示建议 App 和最近使用的 App(取消)


自定义应用图标使用与移除

使用:Finder - Applications - Get Info - 将 icon 文件拖入到左上角应用图标上

移除:Finder - Applications - Get Info - 点击左上角应用图标,按下 Delete 键删除


tmux 调整框体长宽键失效

原来应该是 Control B(长按) 上下左右,这个键终端中很常用

  1. 需要取消 mac 中的快捷键 系统设置 - 键盘 - 键盘快捷键 - 调度中心|应用程序窗口|调度中心(全部取消)
  2. Apple 默认终端上下长按调整失效 终端 - 设置 - 描述文件 - 键盘 - 按键选择向上键|修饰键选择 Control |文本填\033\[1;5A 其中A为上,B为下,C为左,D为右。

桌面图标大小调整

Command``Shift``+ 变大 -变小


桌面图标自动吸附网格

右击 - Sort By - Snap to Grid


阻止 Mac 进入休眠模式

使用 Caffeinate:

1caffeinate -s -t 3600

禁止系统进入休眠,为期一个小时。 此时屏幕还是会进入休眠状态,但是系统不会进入休眠状态,下载仍在进行。

可使用 Control``Z 中断执行,或直接关闭命令行窗口。


Apple Music 无法使用媒体键控制

可能是其他音频播放占用了状态栏的 播放中,比如有道云翻译中的发音功能,退出此 App 即可解除音频控制占用。


启动磁盘安全性策略控制

Link: https://support.apple.com/zh-cn/guide/security/sec7d92dc49f/1/web/1


sftp 命令里面不能自动补全

1brew install openssh

主机名被系统临时设置该 IP 地址

当你连接到不同的网络时,Mac 可能会根据当前网络的配置更改其主机名,尤其是在局域网中。如果你的 Mac 被分配了一个静态 IP 或自动获得 IP 地址(如通过 DHCP),有时系统会临时显示该 IP 地址作为主机名。

如果你希望恢复原来的主机名(如 MacBook-Pro),可以使用以下命令修改主机名:

1sudo scutil --set HostName MacBook-Pro

1. 设置静态主机名(HostName)

你可以通过设置静态的主机名来确保它不会被 DHCP 或其他网络配置改变。执行以下命令:

1sudo scutil --set HostName Zailiang-MacBook-Pro.local

2. 修改本地计算机名称(ComputerName)

为了确保在 Finder 和其他应用中显示的名称与你设置的主机名一致,你也可以设置计算机名称:

1sudo scutil --set ComputerName your-static-hostname

将主机名恢复为默认

1sudo scutil --set HostName ""

这个命令会清除自定义的静态主机名,并将其恢复为动态主机名。此时,macOS 将自动根据网络环境或 DHCP 配置来为你的设备生成一个主机名。为了确保设置生效,建议重启 MacBook。

scutil --get ComputerName 查询计算机名称。

scutil --get LocalHostName 查询本地主机名。

scutil --get HostName 查询主机名。


已删除的应用图标在启动台变成问号

  1. 打开访达(Finder),点击最顶部菜单栏的“前往”-“前往文件夹”,接着输入“/private/var/folders”
  2. 然后在弹出的访达(Finder)窗口搜索栏输入:com.apple.dock.launchpad,搜索范围选择“folders”
  3. 接着进入“com.apple.dock.launchpad” 文件夹里,可以看到 “db”
  4. 目录的路径查看,可以打开db目录,然后按下快捷键Command + i,在弹出的窗口里有个位置内容,选中复制。打开终端输入如下参考命令,回车。

cd /private/var/folders/0k/hz5wrsfs4nv6z7rjcbb7r9lc0000gn/0

  1. 最后就是关键的一步,接着在终端输入带问号图标的命令行

sqlite3 db "delete from apps where title='appName';"&&killall Dock。

  1. 把’appName’替换为你的启动台程序名字,注意要区分大小写和空格,然后按下回车即可。
1/var/folders/86/_5qm15rs71x8mx53lqhslrrw0000gn/0/com.apple.dock.launchpad/db

每次重启后启动台图标位置都会被打乱

原因使用了 sqlite3 db "delete from apps where title='appName';"&&killall Dock

导致了数据库损坏!

解决方案:https://discussionschinese.apple.com/thread/250581574?sortBy=rank

1echo $TMPDIR
  • 它看上去是这个样子的:/var/folders/86/_5qm15rs71x8mx53lqhslrrw0000gn/T/ , 每个本地帐户都会在 /var/folders/ 目录下,都有一个自己的子目录,用于应用程序保存自己的运行时数据,一般有三个子目录,0, T, C。而我们关心的是 0,在里面有一个目录叫 com.apple.dock.launchpad,launchpad 的数据库就保存在它里面的 db 子目录内。
1echo "$(dirname $TMPDIR)/0/com.apple.dock.launchpad/db"
  • 输入完这条命令可以获得 /var/folders/86/_5qm15rs71x8mx53lqhslrrw0000gn/0/com.apple.dock.launchpad/db,并 cd 进去此目录,ls -l 可以查看文件变化时间,每次改变 Launchpad 中应用的图标位置,文件的时间就会变化。
  • 尝试把这个 com.apple.dock.launchpad 目录转移走备份/或者直接删除。
1killall Dock
  • 重启后,让系统重建一个新的,然后就解决问题了。

查看当前运行的 APP 架构

打开 Activity Monitor 中,查看 Kind 种类,是 Intel 还是 Apple,对应 AMD/ARM 架构,或者在 Application 中查看信息


自定义某个软件语言显示

  1. 在左侧栏中,找到并点击 「General」>「Language & Region」(通用 > 语言与地区)。
  2. 向下滚动到 「Applications」(应用程序)部分。
  3. 点击右下角的 「+」 按钮,添加一个新的应用语言设置。
  4. 在弹出的窗口中:
    • 「Application」选择 Maps(地图)
    • 「Language」选择 中文(Chinese),建议选「简体中文」。
  5. 点击「Add」(添加)。

清除 Apple Music 歌曲名歌手名变成英文

重新授权 Apple Music 应用

  1. 打开 Mac 上的“音乐”应用。
  2. 在菜单栏中选择“账户” > “授权” > “对这台电脑授权”。
  3. 即使系统提示“已授权”,也请再次输入 Apple ID 密码进行授权。
  4. 完成授权后,关闭并重新打开“音乐”应用,等待资料库重新加载。
  5. 设置 - 高级 - 还原音乐商店缓存:还原缓存

原生软件 Preview 压缩图片

Preview - File - Export - 选择 JPEG 调整质量即可


双击 fn 语言听写输入

系统设置 - Keyboard - Press 🌍 key to - Start Dictation(Press 🌍 Twice)


解除 control space 切换输入法

Keyboard - Keyboard Shortcuts - Input Sources - Select the previous input source

如没有需求请不要解除


裁剪图片

Preview 打开图片 - 点击 Markup - 点击 矩形 Selection Tools - 光标选中想要区域 - 点击 Crop to selection(交叉<>)


背景音

可以听 雨声、火声、风声等

System Settings - Accessibility - Audio - Background sounds


辅助功能快捷键面板

连按开机键 3 次即可呼出


重置权限设置命令

macOS 系统中,sudo tccutil reset Camera 这个命令用于 重置摄像头权限设置,也就是清除系统中关于“哪些应用曾被允许或拒绝访问摄像头”的记录。它的作用可以理解为让系统忘记所有之前对摄像头权限的授权选择,在下一次应用尝试访问摄像头时,macOS 会重新弹出权限请求对话框。

在 macOS 里有一套叫 TCC(Transparency, Consent, and Control) 的隐私权限管理机制,用来控制哪些应用可以访问摄像头、麦克风、定位等敏感资源。系统会记录每个应用用户是否同意访问这些资源,这些记录存储在 TCC 数据库里。

1sudo tccutil reset Camera
  1. 清除摄像头权限记录:macOS 会删除当前用户所有应用对摄像头的授权状态(包括已允许和已拒绝的)。
  2. 重新授权弹窗:清除后,下次某个应用需要访问摄像头时,会再弹出权限请求对话框,让你重新选择“允许”或“拒绝”。
  3. 解决权限问题:对于一些应用因为之前拒绝过摄像头访问、或权限数据异常不再弹出请求的情况,这个命令常用来“重置再来一遍”。

外接键盘调换 alt 与 win 键

System Settings - Keyboard - Keyboard Shortcuts - Modifier Keys

Select keyboard 选择 A87 Keyboard

Option (⌥) key -> ⌘ Command

Command (⌘) key -> ⌥ Option