苹果电脑使用笔记

最近入手了一台苹果电脑(也有两个月了),成年人的第一台苹果电脑,Macbook Pro,M2芯片,Ventura 13.3。

Mac电脑的很多操作跟Windows电脑的不一样,导致经常按错 Ctrl 和 Command 或 Shift 和 中英文切换键,又比如用Windows电脑时习惯性刷新桌面,Mac没有这操作(或者说没必要),也没有右键新建文件等等。所以有必要好好学学,习惯下,提高效率。

Mac电脑也有一些缺点:没多少游戏,一些安全工具只支持win系统,部分软件不支持M2芯片。

但是用起来是真的流畅。

本文记录下我的个人常用操作,配置,和常用软件下载安装。

主桌面介绍

顶部菜单栏:

  • 去掉Siri:系统设置 - 控制中心 - Siri - 不在菜单栏中显示
  • 调整菜单栏APP顺序:Command + 鼠标拖动

右侧通知中心:两指从触控板最右向左滑 或 点击顶部菜单栏右侧的时间。(我就设置为显示个天气和日历)

控制中心:在顶部菜单栏右侧的一个按钮

底部程序坞:对于不常用的软件可以右键 - 选项 - 从程序坞中移除

调度中心:三指上滑打开

左侧台前调度:可在控制中心里打开。打开了这个,就不能同时显示多个不同应用的窗口了,但可以使用分屏。

启动台:拇指和另外三根手指合拢

触发角:屏幕的四个角,系统设置 - 桌面与程序坞 - 触发角。 可设置一两个常用的,如显示桌面

设置

  • 将光标移动速度调快(默认的设置移动得慢,在终端下移动尤为明显):设置 - 键盘, 将“键重复速率”调到快,将“重复前延迟”调到短。前者对应移动速度,后者移动前的反应时间。
  • 修改电脑名称:系统设置 - 通用 - 关于本机,直接在名称一栏打字修改; 修改本地主机名:系统设置 - 通用 - 共享,修改本地主机名
  • 访达里显示所有文件的扩展名:设置 - 高级 - 显示所有文件扩展名

操作与快捷键

按F1键:按住Fn再点击键盘上的触控栏(有的Mac电脑没触控栏,这种情况估计是按Fn键跟F1吧)

尽量避免单击触控板:

  • 用其他操作来代替单击:三指向上滑动和向下滑动来切换应用(不用单击触控板)
  • 可以设置:系统设置 - 触控板 - 触控板 - 轻点来点按, 这样就不用物理按下触控板(但可能会误触)

Safari:

  • 切换标签页:Control + Tab 或 Control + Shift + Tab。 通过快捷键来切换,感觉也不是很方便
  • 在新标签页中打开网页:按住 Command 键再点链接

自带终端:

  • 将光标移动到行首(Control + A)或行尾(Control + E)
  • 向左或向右移动一个单词:Option + 方向键
  • 删除一个单词:Control + W
  • 删除整行:Control + U(这是zsh的快捷键,在bash下,这个快捷键是删除光标到行首的字符)
  • 删除光标到行首的字符:Meta + W (终端 - 设置 - 描述文件 - 键盘 - 将Option作为Meta键)

访达:

  • 长按 Option 键:显示当前路径
  • Command + Option + C:复制当前路径
  • Command + 退格键:删除文件
  • 可右键新建目录,不可新建文件。要新建文件可用其他软件,如VSCode等,或 touch 命令
  • 复制粘贴文件:Command + C , Command + V。 剪切粘贴文件:Command + C , Command + Option + V

归档实用工具:

  • macOS自带的归档实用工具可以zip压缩和解压
  • 不支持rar格式压缩包
  • 不支持加密压缩
  • 可以安装 bandizip 或其他压缩软件
  • 对于rar格式压缩,可安装rar命令: brew install rar

其他快捷键:

  • 与Windows系统不同的是,Mac下有单独的中英文切换键,而不是用Shift切换中英文
  • Command + 空格键:显示聚焦搜索
  • Command + W:关闭窗口
  • Command + Q:关闭程序
  • Option + Command + D:显示/隐藏底部程序坞
  • Control + Command + Q:立即锁定屏幕
  • 长按 Command + 空格键:启动Siri (估计快捷键冲突了,在我电脑上按这个没反应)
  • Fn + F:全屏
  • Fn + 退格键:删除右侧字符
  • Command + 方向键:移到行首或行尾

(记不住那么多快捷键,容易搞混,选一些常用的记住,其余的用其他操作代替)

文件

  • Mach-O(Mach Object File Format)格式文件:可执行文件和动态库都是这个格式的文件。由dyld程序加载
  • .dylib后缀为动态库文件,.a后缀为静态库文件。 执行 otool -l /usr/sbin/tcpdump , 查看Mach -0 文件的加载命令信息,可以看到tcpdump会加载/usr/lib/libpcap.A.dylib ,但实际上并没有这个文件。原因:https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-release-notes 的 62986286 部分,可知苹果系统将所有系统提供的库放到了动态链接缓存
  • icns文件:图标文件。读写该文件的工具:https://github.com/relikd/icnsutil
  • dmg文件:文件查看:7z软件、hidutil。双击打开dmg文件,系统将会将其挂载为一个虚拟磁盘(挂载在 /Volumes 目录下),并在 Finder 中“位置”一栏里显示(默认也会在桌面显示,可在访达-设置-通用-取消勾选外置磁盘 来关闭显示)。运行完后直接推出即可。若在Finder里的位置对磁盘映像右键 - 不在Finder显示后,可以在磁盘工具里还能看到,可在这推出磁盘。
  • .DS_Store文件:Desktop Services Store(桌面服务存储),用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。
  • .app目录:软件包,双击运行。

目录

  • /Applications: 应用程序目录。该目录存放了系统与用户安装的应用程序,启动台(Launchpad)里可以看到所有安装的程序。
  • /Library: 存放系统应用的数据及文档信息。
  • /Network: 网络邻居虚拟目录。
  • /System/Library: 存放了系统运行的重要组件,如框架与内核模块。一些系统内置的第三方程序也在该目录下,如Perl
  • /Users: 所有用户的主目录都位于此目录下
  • /Volumes: 可移动媒体、磁盘、dmg镜像的挂载点。
  • ~/Library/Preferences//:存储应用程序的plist文件
  • ~/Library/Containers/:每个开启了沙盒的软件都会在此目录下生成一个以程序标识符命名的子目录,此目录下会将一些系统特定的目录以软链接的形式创建在此目录中的Data目录下。
  • ~/Library/Application Support/Core Data:另一种软件保存数据的地方,它本质上是对Sqlite数据库访问的一层外包装

软件

ClashX

https://clashx.org/clashx-download/

  • 配置 - 托管配置 - 管理: 添加订阅地址

  • 配置 - 托管配置,取消勾选自动更新:基于安全考虑,且不需要及时更新机场的节点变动、剩余流量和到期时间,可以取消掉

  • 设置为系统代理的原理是,修改了系统设置。也可自己手动设置系统代理,在 系统设置 - 网络,选择一个网络设置代理

  • 控制台 - 设置 - 代理模式:有三种:全局、规则、直连

  • 控制台 - 代理 - 策略组:策略组(proxy-groups)有:延迟最低、故障转移、手动选择、负载均衡 四种模式:

    • 自动选择(url-test),每隔一段时间进行延迟测试,选择延迟最低的节点。
    • 故障转移(fallback),每次都选组内第一个节点,无法使用再换到第二个,依次类推。
    • 手动选择(select),手动选节点。
    • 负载均衡(load-balance),每个节点都用用,由于很多机场都有连接数的限制,因此实际使用较少。

    当代理模式为“规则”时,根据规则匹配使用指定的策略组

golang多版本

https://github.com/voidint/g

  1. 下载release的二进制压缩包

  2. 将压缩包解压至PATH环境变量目录下(推荐~/.g/bin目录),将~/.g/bin/g重命名为~/.g/bin/gvm,(因为g太短容易冲突)

  3. 将所需的环境变量写入~/.g/env文件

    1
    2
    3
    4
    5
    #!/bin/sh
    # g shell setup
    export GOROOT="${HOME}/.g/go"
    export PATH="${HOME}/.g/bin:${GOROOT}/bin:$PATH"
    export G_MIRROR=https://golang.google.cn/dl/
  4. ~/.g/env导入到shell环境配置文件:vim ~/.bashrc

    1
    2
    3
    4
    # g shell setup
    if [ -f "${HOME}/.g/env" ]; then
    . "${HOME}/.g/env"
    fi
  5. 启用环境变量:source ~/.bashrc

  6. 安装指定版本的golang:gvm install 1.20.4

多Java版本管理

  1. https://www.oracle.com/java/technologies/downloads/archive/ 下载 Java SE 8 (8u202 and earlier) 和 Java SE 20 。 下载Java SE Development Kit 的 MacOS dmg包(M2芯片选AARCH64架构),双击启动,安装。
  2. vim ~/.bashrc:
1
2
3
4
5
6
7
8
9
10
11
# Java config
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home"
export JAVA_20_HOME="/Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home"

# config Java alias
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk20="export JAVA_HOME=$JAVA_20_HOME"

# config default jdk
export JAVA_HOME=$JAVA_8_HOME
export PATH="$JAVA_HOME:$PATH"
  1. ~/.zshrc 里加上 source ~/.bashrc 这句

多npm版本管理

安装nvm:https://github.com/nvm-sh/nvm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh> | bash

# vim ~/.bashrc ,加上:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \\. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

# 安装nodejs、npm
nvm install node

# 安装hexo
npm install hexo-cli -g
npm install hexo-deployer-git --save

Tabby终端

Tabby终端:https://github.com/Eugeny/tabby, 基于nodejs electron编写的,占内存多。之所以选这个终端软件,是因为当时看它Github介绍那图片,以为不用设置一堆就那么好看了,结果还是要装oh-my-zsh,配置一堆。

一些设置:

  • Preference - 应用 - Tabby集成。 Finder 右键一个目录 - 快速操作 - 自定义, 将Tabby勾选上
  • Preference - 配色方案,选一个背景颜色看起来可以的就行
  • 该终端下Command + 左/右方向键,光标移动到行首或行尾(该快捷键在其他应用下的也是一样的效果)
  • 删除光标到行首的字符:默认按Control + U是删除整行,无论光标在哪个位置。 点 Tabby - Preferences - 快捷键 - 删除整行,将该快捷键设置为Control + U即可

zsh:MacOS默认使用zsh

  • 兼容Bash
  • 命令选项补全:如输入git 再按TAB键
  • 等等特性

oh-my-zsh安装:https://ohmyz.sh/#install (运行它的安装脚本会被覆盖掉 ~/.zshrc ,所以需事先备份下这个文件)

  • 禁用自动更新:修改~/.zshrc,取消注释 zstyle ':omz:update' mode disabled
  • 关掉 URL 反斜杠转义:修改~/.zshrc,取消注释 DISABLE_MAGIC_FUNCTIONS=true , (就是在粘贴URL地址时一些特殊符号前面会加上反斜杠的问题)
  • 安装p10k主题,参考:https://github.com/romkatv/powerlevel10k#oh-my-zsh, 新建一个终端或者执行p10k configure配置,按提示进行配置(在选择编码时,选择Unicode,主题会好看些)。
  • 若p10k的prompt的unicode图标显示不出,但在上一步的p10k configure过程中明明是可以显示的。 则配置下字体: Tabby - Preferences - 外观 - 字体:选择Hack Nerd Font Mono。
  • 若macOS自带的终端应用里,p10k的unicode图标显示不出,则 终端 - 设置 - 描述文件,更改字体为 Hack Nerd font Mono。
  • 附:安装hack-nerd字体,参考:https://github.com/ryanoasis/nerd-fonts#option-4-homebrew-fonts。 (似乎MacOS默认已有该字体了,可打开“字体库app”确认下)

Parallels Desktop

版本:https://download.parallels.com/desktop/v18/18.1.1-53328/ParallelsDesktop-18.1.1-53328.dmg

操作:

  • 打开多个虚拟机:窗口 - 控制中心
  • 取消自动更新:偏好设置 - 通用 - 检查更新, 从不
  • 有bug,容易卡住,也不知道怎么回事,如果遇到就重启虚拟机

镜像下载:

  • Kali Linux:渗透使用。下载iso镜像,Apple Silicon (ARM64)版: https://www.kali.org/get-kali/#kali-installer-images。Kali 2023.1 ARM64

    • 添加虚拟机过程中,取消勾选“在Mac桌面上创建别名”,勾选“安装前设定”,可设置下内存之类的
    • kali虚拟机安装过程中:位置选中国(这样系统字体才不是繁体字)
    • kali虚拟机安装后:安装 Parallels Tools

    上面这种下载Kali 2023.1 ARM64镜像再自己安装的方式,虚拟机内会出现鼠标失灵、键盘失灵,或键盘按一个字符就输了三次该字符的问题。所以还是直接用Paralles Desktop提供的kali 2022.2镜像。

    • 执行完 sudo apt updatesudo apt upgrade , 打个快照
    • 安装中文输入法:apt-get install fcitx fcitx-googlepinyin。点击右上角键盘按钮 - Configure - Input Method,添加一项Google Pinyin,并将其排到最顶。再点击 Global Config 栏,设置 Trigger Input Method 的快捷键为 LShift 和 RShift ,这样就可以用Shift键切换中英文了。
    • 取消共享:默认会将宿主机Mac的一些文件共享给Linux虚拟机。操作 - 配置 - 选项 - 共享 - 共享Mac,取消勾选“与Linux共享自定义Mac文件”等。
  • Windows 11:逆向、渗透使用。

    • 取消共享:默认会将宿主机Mac的一些文件共享给Win虚拟机,Win虚拟机的文件也可以被宿主机访问(后者我就不取消了)。 操作 - 配置 - 选项 - 共享 - 共享Mac,取消勾选“镜像Mac和Windows用户文件夹”(共享Mac:宿主机Mac的一些文件可被Win虚拟机访问;共享Windows:Win虚拟机下的文件可被宿主机Mac访问。)
    • 文件传输:可以直接拖动文件或Command + C 、 Command + V
  • MacOS 13:

    • Parallels Desktop对MacOS 虚拟机没有设置按钮,要设置内存、网络等需在MacOS虚拟机里用命令去设置,参考:https://kb.parallels.com/128842
    • 开启文件共享,参考: https://sspai.com/post/61388。 在宿主机连接共享文件时总连不上(点连接按钮时窗口抖动了几下),通过重启虚拟机解决。
    • MacOS 下的 Parallels Tools ,目前仅支持 共享粘贴板 的功能
    • 关闭Mac虚拟机的SIP机制:在 Parallels Desktop 控制台,右键MacOS - 以恢复模式启动,点击菜单栏打开终端,再执行 csrutil disablecsrutil enable --without dtrace (只关闭SIP对dtrace的限制),重启虚拟机

其他

还有其它一些免费的软件:

一些软件可以通过重置试用期来达到无限使用,如:

有的试用期到了还能用,不知道怎么回事。像:

有的网上有公开如何破解:

有的网上找个注册码就行了:

或者tb买激活码:

  • JetBrain的IDE,GoLand、PyCharm、IDEA等

有条件的话就支持正版吧。