Apple Silicon Mac(M4/M3/M2)安装Ubuntu ARM64虚拟机:共享文件夹自动挂载+SSH免密+VSCode远程开发
本文完全基于 M4 Mac mini + VMware Fusion 25H2 实测,解决了网上许多教程没有讲清楚的痛点:共享文件夹开机自动挂载、SSH 免密登录、C++ 开发环境一键配置,并附带终端美化技巧。
一、安装 VMware Fusion 25H2
官网下载链接:VMware Fusion 免费下载(需注册 Broadcom)
1. 注册 Broadcom 账号
-
推荐使用 Gmail 邮箱,部分国内邮箱可能收不到验证码。
-
注册后登录。
2. 下载安装程序
-
第一次下载会要求阅读协议:点击页面中的蓝色
Terms and Conditions链接,阅读核心条款,勾选I agree to the Terms and Conditions,然后就可以下载了。
3. 执行安装
-
如果 macOS 提示“无法验证开发者”,请前往 系统设置 → 隐私与安全性,找到被阻止的软件,点击 “仍要打开”。
-
安装过程中会弹出 “VMware Fusion 想要访问辅助功能” 的提示,这是虚拟机正常工作(键盘、鼠标捕获)的必要权限,请允许。
二、创建 Ubuntu Server 虚拟机
1. 下载 ARM64 版本的 Ubuntu Server
特别注意:一定要下载 arm64 版本,而不是 amd64 或 x86_64。
2. 新建虚拟机
-
选择下载的 ISO 文件。
-
安装过程中 务必勾选
Install OpenSSH server,否则后续无法通过 Mac 终端远程连接。 -
其他选项按默认即可。
三、在 Mac 主机通过 SSH 连接虚拟机
1. 确认虚拟机 IP
登录 Ubuntu 后执行:
ip a
找到 eth0 或 ens 开头的网卡,记下 IP 地址(例如 192.168.xxx.xxx)。
2. 在 Mac 终端连接
ssh 用户名@虚拟机IP地址
例如:ssh ylj@192.168.1.100
断开连接:
-
输入
exit或按下Ctrl + D
3. 使用 VSCode 连接(推荐)
-
安装
Remote-SSH插件。 -
按
F1输入Remote-SSH: Connect to Host,输入虚拟机 IP 和用户名。 -
成功后左侧会出现远程文件夹,享受本地般的开发体验。
四、配置 SSH 免密登录(省去每次输密码)
1. 在 Mac 上生成 SSH 密钥(如果还没有)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
一路回车,使用默认路径
~/.ssh/id_rsa,不需要设置密码。
2. 将公钥复制到 Ubuntu 虚拟机
ssh-copy-id 用户名@虚拟机IP地址
输入一次密码后,以后 ssh 就不再需要密码了。
3. (可选)编辑 SSH 配置文件,简化连接命令
编辑 Mac 上的 ~/.ssh/config:
Host myserver
HostName 192.168.1.100 # 替换为你的虚拟机 IP
User ylj # 替换为你的用户名
IdentityFile ~/.ssh/id_rsa
Port 22
之后只需执行 ssh myserver 即可免密登录。
五、安装 C/C++ 开发工具(一条命令搞定)
build-essential 元包会自动安装 gcc、g++、make 以及编译所需头文件。
# 更新软件源
sudo apt update
# 安装编译工具链
sudo apt install build-essential -y
# 安装调试器 gdb
sudo apt install gdb -y
# 安装 cmake(强烈推荐)
sudo apt install cmake -y
验证安装:
gcc --version
g++ --version
make --version
cmake --version
gdb --version
六、启用 VMware 共享文件夹(全网最详细,解决开机自动挂载)
这是很多用户卡住的地方——手动挂载没问题,但重启后就不见了。下面提供 开机自动挂载 的永久解决方案。
1. 安装 open-vm-tools
sudo apt update
sudo apt install open-vm-tools -y
2. 在 VMware Fusion 中配置共享文件夹
-
菜单栏:Virtual Machine → Settings
-
选择 Sharing → 勾选 “Share folders”
-
点击 “+” 添加一个 Mac 上的文件夹(例如
~/shared),并设置共享名称(例如shared)
3. 确认共享名称
vmware-hgfsclient
输出示例:shared
4. 创建挂载点目录
sudo mkdir -p /mnt/hgfs
5. 配置开机自动挂载(编辑 /etc/fstab)
sudo vim /etc/fstab
在文件末尾添加以下一行(注意:必须是一行):
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,uid=1000,gid=1000 0 0
参数说明:
-
.host:/:代表宿主机上所有已启用的共享文件夹 -
/mnt/hgfs:挂载点(你可以改成其他路径) -
fuse.vmhgfs-fuse:文件系统类型 -
uid=1000,gid=1000:将1000换成你 Ubuntu 用户的 uid(用id命令查看)
6. 测试配置
sudo mount -a
ls /mnt/hgfs
如果能看到你设置的共享文件夹名称(如 shared),说明配置正确。
7. 重启验证
sudo reboot
重启后再次 ls /mnt/hgfs,确认自动挂载成功。
七、Ubuntu 终端前缀美化(可选,但提升幸福感)
默认的 PS1 提示符可能过长,你可以自定义成更简洁或带颜色的样式。
常用转义符
| 符号 | 含义 |
|---|---|
\u |
用户名 |
\h |
主机名(短格式) |
\W |
当前目录基名 |
\$ |
普通用户显示 $,root 显示 # |
临时修改(测试效果)
PS1='\u@\h:\W\$ ' # 显示 用户名@主机名:当前目录$
PS1='\u:\W\$ ' # 更简洁
PS1='\W\$ ' # 只显示当前目录名
永久修改
编辑 ~/.bashrc,在末尾添加:
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
保存后执行 source ~/.bashrc 即可生效。
恢复默认
删除或注释掉 ~/.bashrc 中你添加的 PS1 行,重新加载即可。
八、安装和使用 tree 命令(目录结构可视化)
tree 命令能将文件和目录以树状结构清晰地展示出来,在 Linux 系统管理中非常常用。不过,它通常不是系统默认自带的,需要手动安装。
1. 安装 tree
# 更新本地软件包列表
sudo apt update
# 安装 tree 软件包,“-y” 参数用于自动确认安装
sudo apt install tree -y
2. 基础用法速览
| 使用场景 | 命令示例 | 说明 |
|---|---|---|
| 查看当前目录结构 | tree |
从当前目录开始,展示所有文件和子目录的树状结构。 |
| 查看指定目录结构 | tree /var/log |
直接跟上目标目录路径。 |
| 仅显示目录 | tree -d |
只显示目录,不显示文件,适合快速概览项目框架。 |
| 显示隐藏文件 | tree -a |
显示以点(.)开头的隐藏文件。 |
| 限制显示层级 | tree -L 2 |
-L 参数限制目录树深度(如 -L 2 表示只显示到第2层)。 |
| 显示文件大小 | tree -h |
以 KB、MB 等易读格式显示每个文件的大小。 |
| 排除特定文件/目录 | tree -I "node_modules" |
排除不想看到的文件或目录,支持通配符,多个用 | 分隔。 |
| 输出结果到文件 | tree -o output.txt |
将输出保存到文件中。 |
3. 实用场景举例
快速了解项目结构
在项目根目录下,用 -L 和 -I 组合命令可以清晰看到项目骨架:
tree -L 2 -I "node_modules|.git|build"
-
-L 2:限制深度为2层 -
-I "node_modules|.git|build":忽略依赖、Git 版本库和构建产物
排查服务器配置目录
分析 /etc/nginx 这类深层目录时,可结合 -d、-L 和 -p:
tree -d -L 3 -p /etc/nginx
-
-d:仅显示目录 -
-L 3:限制3层 -
-p:显示权限信息
4. 常见问题
输出内容过多,终端卡死或显示不全
使用 -L 参数限制深度,或配合 less 分页查看:
tree -L 2 | less
用方向键滚动浏览,按 q 键退出。
九、总结
通过以上步骤,你将在 M4 Mac mini 上拥有一个:
-
支持 SSH 免密登录 的 Ubuntu 虚拟机
-
开机自动挂载共享文件夹(与 Mac 互通文件)
-
完整 C/C++ 开发环境(gcc/gdb/cmake)
-
VSCode 远程开发能力(Remote-SSH)
-
清爽的命令行提示符
-
目录结构可视化工具
tree
这套环境完全满足学习 Linux C/C++ 开发、网络编程、后端技术等需求。
📌 更新:下一篇已发布
环境搭好了,来配置代码仓库吧!本文的第二篇《Git从入门到工作流:GitLab私有仓库最佳实践》已发布。里面详细讲了SSH免密登录、推送代码,还有macOS下.DS_Store文件的终极处理方法,非常实用,快去看看吧!
更多推荐
所有评论(0)