后面会使用到Mac开发,在此做个配置的记录,方便自己后续查看
- 型号:MacBook Air 2020
- 芯片:Apple M1
- 系统:macOS Big Sur 11.6
- shell:zsh
办公软件
1. NTFS-3g:Mac下的NTFS盘读写
- 官网: Github上的Wiki
- 作用: NTFS-3G是为NTFS文件系统的磁盘提供读写支持的开源跨平台实现。 Mac默认仅支持NTFS的读取,不支持写入。
- 推荐安装教程:
- 上述Wiki提供详细安装教程:Github上的Wiki;
- macos 借用 ntfs-3g, 使得macos 支持 ntfs 文件系统 读写;Mac 挂载NTFS移动硬盘 原生方式;:文中提到了许多种MacOS挂载NTFS的办法。
推荐使用Omi NTFS实现Mac下NTFS盘的读写(见后记)。
- 安装过程:
在终端运行如下指令(须事先安装Homebrew,见下一节):
即完成brew tap gromgit/homebrew-fuse brew install ntfs-3g-mac
ntfs-3g
的安装。- 手动挂载NTFS磁盘:
- 先查看需要挂在的NTFS分区,
diskutil list
需要挂在的分区为disk4s1
(以下便以该分区为例,大家注意修改为自己的分区号)。 - 然后需要先卸载该分区(插入U盘会使用系统默认的挂载方式,但该方式仅可读不可写),
sudo diskutil unmount /dev/disk4s1
- 最后使用ntfs-3g挂载磁盘,
sudo mkdir /Volumes/NTFS sudo ntfs-3g /dev/disk4s1 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache
- 先查看需要挂在的NTFS分区,
- 自动挂载NTFS磁盘:
思路是需要将系统默认的/sbin/mount_ntfs
更换为ntfs-3g来挂载磁盘。(⚠️注意Wiki里的安全风险警告,下面的操作将使ntfs-3g拥有root权限)
日后更新,请先参照Wiki教程
- 手动挂载NTFS磁盘:
- 遇到问题:
- 之前老教程上直接
brew install ntfs-3g
的安装方式失效,提示“ntfs-3g要求闭源的macFUSE”。报错如下:
因此需要使用官方推荐的安装方式(上文)的安装方式。 - Wiki教程上的指令
sudo /usr/local/bin/ntfs-3g ...
针对Intel处理器的Mac电脑,而M1芯片的电脑上Homebrew默认将程序安装在/opt/homebrew/bin
,可以通过指令
来查看ntfs-3g的安装路径,因此需要修改指令为:which ntfs-3g
或者直接使用sudo /opt/homebrew/bin/ntfs-3g /dev/disk4s1 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache
ntfs-3g
:sudo ntfs-3g /dev/disk4s1 /Volumes/NTFS -o local -o allow_other -o auto_xattr -o auto_cache
- 缺少libfuse库:
dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib
之前安装过macFUSE,如果直接卸载掉macFUSE的话会遇到这个报错,重新安装上即可。(macFUESE官网,直接下载安装即可)
暂时不清楚未安装过macFUSE的朋友会不会遇到这个问题。 - 执行
sudo ntfs-3g...
时安全提示:
需要在系统偏好设置里“启用系统拓展…”。点击“Open System Preferences”后,弹出系统偏好设置,
“启用系统拓展…”,然后重启即可。
- 之前老教程上直接
- 后记: 对于跨平台文件共享有较大需求的朋友还是建议使用较为成熟的软件,例如:Paragan NTFS、Tuxera NTFS,免费的软件有Omi NTFS。毕竟MacOS的用户权限远没有Linux高,ntfs-3g的使用并不丝滑,自动挂载的方式又存在安全风险,同时官方也说对于Big Sur系统目前还没有比较简洁的自动挂载方式。
2. macFUSE+sshfs:在Mac上挂载Windows磁盘
- 官网: macFUSE、SSHFS
- 作用: 是现在Mac上挂载Windows磁盘。
- 安装过程:
- Windows上安装OpenSSH:
官方教程非常非常简洁且详细:Windows 中的 OpenSSH- 使用
Windows设置
来安装OpenSSH:(参见上述链接) - 启动并配置OpenSSH服务器:
Start-Service sshd # 启动sshd服务 Set-Service -Name sshd -StartupType 'Automatic' # [可选] 设置sshd服务开机启动 if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." } # 验证防火墙规则已配置。
- 使用
- Mac上安装macFUSE(和osxfuse):
直接去官网macFUSE下载对应版本安装即可。osxfuse是macFUSE的较老版本。开始没有安装osxfuse,导致后面sshfs缺少依赖库(见下文问题1)。执行如下指令安装:
brew install osxfuse
- Mac上安装sshfs:
参照Github Wiki的安装指引,下载安装包sshfs Download简易安装即可。网上一些老教程brew install
的方法可能已经失效(同ntfs-3g)。 - 使用sshfs指令挂载远程磁盘:
其中,sshfs -C username@serverip:server_path /local_path
username
为Windows电脑的用户名,可以通过如下指令(在Windows powershell下执行)查看:net user
serverip
为Windows电脑的ip地址,可以通过如下指令查看:
其中的ipconfig
IPv4 地址
即为serverip
;
server_path
为需要挂载在Mac上的Windows文件地址,注意Windows下目录使用反斜杠\
;
/local_path
为Mac上的挂载位置,使用MacOS下的文件路径。
示例如下:sshfs -C Eric@192.168.123.456:D:\学习资料 ./Documents
然后进入系统偏好设置
->安全性与隐私
重启电脑后,再次执行sshfs -C username@serverip:server_path /local_path
- Windows上安装OpenSSH:
- 遇到问题:
- 执行
sshfs
时提示缺少libosxfuse_i64.2.dylib
:
执行如下指令安装:
有趣的是,安装的时候他会提示:brew install osxfuse
虽然我已经安装了macFUSE,但还是可能会遇到这个问题,暂时还不知道原因。
- 执行
- 参考资料:
- MacOS将远程Linux服务器挂载到本地目录:
-o
选项用于断线重连; - 如何在mac上实现远程挂载方案 | osxfuse & sshfs:一键配置同步路径;
- windows下pwd、ls、tail-f命令使用:Windows Powershell下的一些指令。
- MacOS将远程Linux服务器挂载到本地目录:
开发环境
1. Homebrew
- 官网: Homebrew,里面有简体中文选项
- 作用: “Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。”
- 推荐安装教程(M1芯片):
- 安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 遇到问题:
- 使用上述指令下载龟速,甚至根本无法连接。改用国内源:
/bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"
- 中间提示要安装“命令行工具”,点击安装即可。貌似默认也是从国外服务器下载,安装速度较慢,耐心等待。
- 安装完后有句报错:zsh找不到brew,
command not found : brew
原因是M1芯片下homebrew的包安装位置改为了/opt/homebrew/
(之前是/usr/local/
)需要在.zshrc
中手动修改(没有这个文件的话就新建,在~/
下touch .zshrc
):
将homebrew部分的内容替换为(其实只是把原有的open -e ~/.zshrc
/usr/local/
替换为/opt/homebrew/
):
保存并关闭文件后别忘记在终端:export PATH=/opt/homebrew/bin:$PATH export PATH=/opt/homebrew/sbin:$PATH
(source ~/.zshrc
brew -v
测试下是否还有报错) - 安装过程默认把要删除的文件夹备份在了桌面
Old_Homebrew
内。
- 使用上述指令下载龟速,甚至根本无法连接。改用国内源:
- 参考资料:
- MacOs M1安装Homebrew 在国内最简单方法:M1芯片
- Mac必备神器Homebrew
- Homebrew介绍和使用:安装、卸载及常用指令
2. iTerm2 + zsh + oh-my-zsh
-
作用:
- iTerm2:Mac下超好用、方便的终端;
- zsh:被称为最强shell(参考为什么说 zsh 是 shell 中的极品);
- oh-my-zsh:用于管理zsh配置的框架(以下全部给予其来配置,自己配置的话会麻烦很多);
- Powerline:基于oh-my-zsh的主题和字体库;能够为显示agnoster主题提示符里的三角形提供支持;
- fonts:包含用于 Powerline statusline 插件的预修补和调整字体;
- solarized:很不错的一套配色方案(iTerm2已预先安装);
- oh-my-zsh-agnoster-fcamblor:很好看的一套主题;
- zsh-syntax-highlighting:使不同的类型的终端文本高亮为不同颜色(错误会高亮为红色);
- zsh-autosuggestions:终端代码提示及补全(神器!)。
-
推荐安装教程:
- 安装美丽的iterm2,从零开始,避免踩坑:下文的安装过程就是按照这个教程来的,记录了一些被卡的地方。
-
安装过程:
1) zsh:
现在的Mac默认就是zsh(可在终端
echo $0
查看当前shell),因此只需要安装iTerm2和oh-my-zsh2) iTerm2的下载和安装:
进入[iTerm2官网](https://iterm2.com)直接Download下载
解压后双击打开,选择Move to Applications Flolder,即完成iTerm2安装
3) oh-my-zsh安装:
执行安装命令: ```bash curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh ``` 报错:`curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443`
原因依旧是连不上境外的服务器,无法下载这个文件,解决办法就是手动把它下载下来进行安装:(可参考这篇文章)
先从Gitee上下载下来这个install.sh
,然后执行安装
bash chmod +x install.sh # 先为该文件添加执行权限 ./install.sh # 直接执行该文件进行安装
耐心等待安装完成。(安装完成后可以rm install.sh
删除install.sh文件)4) Powerline安装:
使用pip安装Powerline: ```bash pip install powerline-status ``` 由于本机还未安装pip,会报错`zsh: command not found: pip`,因此需要先通过以下指令安装pip: ```bash sudo easy_install pip ``` 看大家的讨论一般情况下执行这句安装pip是没问题的,但我的电脑这时候又出现了个新问题`SyntaxError: invalid syntax`
改用如下指令安装(参考MacOS安装pip失败,提示:SyntaxError: invalid syntax):
bash curl https://bootstrap.pypa.io/get-pip.py | python3
安装完后有个警告:
提示pip的安装路径不在环境变量PATH里面,还需要:
bash echo 'export PATH=$PATH:/Users/xxx/Library/Python/3.8/bin' >>~/.bashrc
或者也可以把export PATH=$PATH:/Users/xxx/Library/Python/3.8/bin
直接写到~/.zshrc
文件里面(注意:这里的路径是根据每个人的警告信息来写的)。(参考mac zsh: command not found: pip解决方法)
执行完成后可以pip -V
查看是否安装成功。
随后即可安装Poweline。
bash pip install powerline-status
5) fonts字体安装及配置:
直接执行: ```bash git clone https://github.com/powerline/fonts.git --depth=1 # 下载 cd fonts ./install.sh # 安装 cd .. rm -rf fonts # 清除安装文件 ``` 然后便可以在iTerm2内设置for Powerline的字体: 为什么要在第6步单独设置一下non-ASCII text,应该是为了保持所有字体的统一。(参考[【iterm2+zsh+oh-my-zsh】macOS终端美化终极方案!](http://www.old-wan.com/html/computer/mac/20190722/55.html))
6) solarized配色安装:
其实iTerm2自带这个配色的,可以直接选择(还是先进入`iTerm2 --> Preference..`):
7) oh-my-zsh-agnoster-fcamblor主题安装:
在终端执行如下命令下载下载(注意执行前要先登陆git并配置好公钥私钥,可参考[git登陆](https://www.cnblogs.com/feiquan/p/11249727.html)): ```bash git clone git@github.com:fcamblor/oh-my-zsh-agnoster-fcamblor.git ``` 安装(参考[默认终端 + iTerm2 + oh_my_zsh + agnoster theme + Powerline fonts + solarized 打造macOS炫酷终端](https://blog.youkuaiyun.com/toopoo/article/details/85301389)): ```bash cd oh-my-zsh-agnoster-fcamblor ./install ``` 配置: ```bash open -e ~/.zshrc ``` 打开`.zshrc`,找到`ZSH_THETE="robbyrussell"`,将其更改为(建议将之前的注释掉,另起一行重新写,养成好习惯): ```XML ZSH_THEME="agnoster" ``` 保存退出后, ```bash source ~/.zshrc ``` 焕然一新!(安装完后可以删除文件夹`oh-my-zsh-agnoster-fcamblo`)
8) zsh-syntax-highlighting高亮安装:
执行如下指令下载: ```bash git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting ``` 配置: ```bash open -e ~/.zshrc ``` 在`plugins=(git)`内添加`zsh-syntax-highlighting`,变为 ```bash plugins=(git zsh-syntax-highlighting) ```  **注意:无论后续添加多少插件,保持`zsh-syntax-highlighting`在最后**
9) zsh-autosuggestions命令自动补全插件安装
类似高亮插件的安装,执行如下指令下载: ```bash git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions ``` 配置: ```bash open -e ~/.zshrc ``` 在`plugins=(git)`内添加`zsh-autosuggestions`,变为 ```bash plugins=(git zsh-autosuggestions zsh-syntax-highlighting) ```  结果还真出了点问题:自动补全的字看不到,按➡️倒是可以自动补全。这是在iTerm2下的默认显示问题,解决方案如下(参考[iterm下面使用zsh-autosuggestions显示不清楚的解决方式](https://github.com/itgoyo/500Days-Of-Github/issues/142)): 打开`zsh-autosuggestions`的配置文件: ```bash open -e ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ``` 找到`typeset -g ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'`,并修改为 ```bash typeset -g ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10' ```  **需要重启终端生效。**
10) 为iTerm2添加背景:
在设置里面直接改就行:
-
遇到问题:
sh -c install.sh
时报错sudo easy_install pip
失败原因?- pip安装时报
Defaulting to user installation because normal site-packages is not writeable
- 按照最初的教程或
brew install zsh-syntax-highlighting
安装zsh-syntax-highlighting,会在source时报错[oh-my-zsh] plugin 'zsh-syntax-highlighting' not found
,因为其需要添加到~/.oh-my-zsh/custom/plugins
目录下,因此按照本教程安装较为方便。
-
其他参考:
- 收集了这么多实用技巧,帮助你的 iterm2 成为最帅的那个!:隐藏前缀
- 简单配置让iterm2用得更爽:全局快捷键、Vim配置、备份
- iTerm2 整合 Tmux 利器:整合Tmux,工作空间分类
- iTerm2牛逼的功能!!!!