简介
- 版本:Mac M1 11.4
- M1是苹果基于arm架构设计的芯片
- Mac软件下载
M1模拟x86环境
- Mac M1(默认只能执行arm结构)执行x86(Intel)程序,可基于Rosetta,参考下文安装多版本brew
- 参考: https://notemi.cn/installing-python-on-mac-m1-pyenv.html
- 参考上文安装完后设置命令别名(brew和pyenv可选)
1 | vi ~/.zshrc |
快捷键
1 | cmd+c # 复制 |
命令
open /root
在Finder中打开某个目录(默认有些目录时不会显示在Finder中的)lsof -i -P | grep 21
查看端口占用情况,或lsof -i :21
(类似netstat查找端口功能)
个性化配置
- 终端文件夹颜色:基于别名完成,在
~/.bash_profile
中加入,然后设置echo 'source ~/.bash_profile' >> ~/.zshrc
让每次打开终端都生效
1 | #alias cls='tput reset' |
常用软件安装
- Keka 压缩/解压工具
- Easy New File 快捷创建新的文件和文件夹
- OmniPlayer Pro 视频播放器
- NeatDownloadManager 下载管理器,类似IDM
- Royal TSX 类似xshell/xftp,类似参考下文
- JD-GUI Java反编译工具
- Proxifier 代理工具(类似windows SocksCap小红帽)
开发软件安装
brew
brew安装
- 安装brew包管理工具
- 更换镜像
1 | ## 更换镜像(arm和x86模式需要分别设置),参考:https://www.cnblogs.com/trotl/p/11862796.html |
- arm和x86模式安装
1 | ## arm(M1)安装v3.2.11 |
brew使用
1 | ## brew 使用 |
brew安装常用软件
1 | # brew安装nginx仅稳定版,如果需要安装其他版本可基于docker运行 |
VPN(PPTP)
Royal TSX
- 支持多SSH/FTP/SFTP/RemoteDesktop终端管理
- 快捷键
- Cmd+0 切换左侧导航显示
- Cmd+i 显示当前连接配置
- New - Terminal 新建连接
- Terminal
- 只有通过SSH连接才能开启Tunnal,如果通过Customer Terminal + expect脚本则不行(且不能直接连接SFTP)
- Credentials
- ssh基于秘钥连接时: Credentials - Credential中用户名密码只需要配置用户名;Private Key File填秘钥路径
- Custom Properties
- 配置Key-Value键值对后: 可在连接配置 - 右键 - Copy to Clipboard - 可复制配置的键值对
- Tunnels
- Dynamic 只能绑定到本地(无法开放给局域网访问),如果基于局域网可以通过快捷命令完成
- Terminal
- New - Secure Gateway 新建加密网关
- 如访问生产环境一般需要跳板机,此处的加密网关就是配置登录跳板机,如果是基于秘钥的登录则需要先设置全局密码
- Application - Credentials 设置全局密码(可用于加密网关)
- 如果是基于秘钥的可同时设置账号(不用设置密码) + 秘钥文件
- Application - Tasks 全局命令(命令只能调用本地Terminal, 不能发送到Royal Terminal)
- 命令中可使用很多变量,如
$URI$
表示当前连接的ip地址
- 命令中可使用很多变量,如
Item2
- 终端管理相关软件
- Royal TSX比较好用(收费,可破解)
- 目前发现 Item2 还算比较理想
- mac不支持xshell
- FinalShell、Termius 不太好用
- Item2下载(v3.4.9):https://iterm2.com/
创建一个服务器Session
- 复制一个
Profile
(可立即为一个服务器Session配置) 创建文件,如
/Users/smalle/data/item2/login-aezo-ss.exp
1
2
3
4
5
6
7
8
9
10
11#!/usr/bin/expect
set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
"(yes/no)?"
{send "yes\n";exp_continue}
"password:"
{send "[lindex $argv 3]\n"}
}
interact设置文件为可执行
chmod +x /Users/smalle/data/item2/login.exp
- Profiles - Open Profiles - Edit Profiles - General - Command(并选择Command) - 输入
/Users/smalle/data/item2/login.exp 22 root 192.168.1.100 mypass
- Profiles - 双击对应Profile即可登录服务器
- 复制一个
- 快捷键
- 更多参考:https://www.jianshu.com/p/a0249778872e
- 在 Finder 中打开当前目录
open .
- 按住 ⌘ 键
- 可以拖拽选中的字符串
- 点击 url:调用默认浏览器访问该网址
- 点击文件:调用默认程序打开文件
- 点击文件夹:在 finder 中打开该文件夹
- 同时按住 option 键,可以以矩形选中,类似于 vim 中的 ctrl v 操作
- 呼出粘贴历史
Command + Shift + h
- 将文本内容复制到剪切板
pbcopy < text.md
- 热键悬浮窗口
- 创建一个Profile
- Keys - Configure Hotkey Window
- Hotkey(如设置cmd+g): 用于打开和关闭悬浮窗口
- Floating window: 勾选后,悬浮窗口会显示在屏幕最前面
- 使用 shell integration
- iTerm2 可以与 unix shell 集成在一起,在安装了 iTerm2 的 shell 集成工具后,可以在 iTerm2 中看到命令历史、当前工作目录、主机名、上传下载文件等
1 | ## 安装 item2 shell integration,会往 .zshrc 文件中增加一行代码 |
- 设置代理,加速访问github等
1 | # vi ~/.zshrc |
- 配色方案:https://iterm2colorschemes.com/
- 防止长时间不用断线问题:在
~/.ssh/config
(可能需要新建)中加入ServerAliveInterval 60
- 菜单说明
- New Python Scripts
- Basic(只能基于python官方库和item2库写脚本),Full(创建一个python虚拟环境)
- Simple(命令型)、Long-Running Daemon(后台一直运行)
- Open Python REPL(打开python命令行)
- Reveal Scripts in Finder(在Finder中显示脚本文件)
- Console 脚本执行日志控制台
- New Python Scripts
- API参考:https://iterm2.com/python-api/index.html
脚本案例: 启动代理(配合Proxifier可实现软件网络代理)
1
2
3
4
5
6
7
8
9
10
11#!/usr/bin/env python3.7
import iterm2
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
# 执行命令(开启SOCKS隧道)
await window.async_create(connection, command='ssh -D 0.0.0.0:1088 root@8.12.12.12 "vmstat 30"')
iterm2.run_until_complete(main)- 使用
- 启动此脚本
- 设置Proxifier Rules
- 访问目标网址,如: https://cip.cc
- 使用
- 菜单说明
- 基于lrzsz进行文件上传和下载
1 | # 参考:https://mikuac.com/archives/882/ |
- 通过命令启动多个Items2窗口并执行不同命令
1 |
|
JAVA
- 到Oracle官网下载dmg格式文件进行安装,可安装多个版本
/usr/libexec/java_home -V
查看可用的JDK版本- 切换版本参考下文jenv,也可修改
~/.zshrc
中配置中的JAVA_HOME
- 切换版本参考下文jenv,也可修改
- 安装完后删除
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
目录- 如
sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin.bak
- 否则mvn命令执行时报错,参考:https://blog.csdn.net/w605283073/article/details/111770386
- 如
PHP
- mac系统自带的php在目录/usr/bin/php,php-fpm在目录/user/sbin/php-fpm
- 重新安装php(基于arm安装,x86安装参考下文)
1 | # arm(M1)安装的brew为v3.2.11. 安装位置 /opt/homebrew, 安装的包位置 /opt/homebrew/opt |
- 基于x86模式安装
1 | # 命令行切换成x86模式 |
IDEA
- 插件目录
/Users/smalle/Library/Application\ Support/JetBrains/IntelliJIdea2021.2/plugins
Notepad代替版
- Notepad– 只支持macos 12.x版本
- Notepad Next
NVM/Node
- 安装Node(基于nvm)
1 | # 安装nvm |
- 安装vue-cli,使用root账号安装
npm install -g @vue/cli
- 部分使用sudo仍然安装失败,可使用如
sudo npm install --unsafe-perm=true --allow-root -g mirror-config-china --registry=https://registry.npm.taobao.org
- 部分使用sudo仍然安装失败,可使用如
- 常见问题
- 在npm install进行包依赖安装是,部分包需要依赖autoreconf命令,从而提示
/bin/sh: autoreconf: command not found
。此时可通过brew install autoconf automake libtool
先手动安装autoreconf,并将PATH="/opt/homebrew/opt/libtool/libexec/gnubin:$PATH"
添加到~/.zshrc
- 在npm install进行包依赖安装是,部分包需要依赖autoreconf命令,从而提示
FTP/SFTP
- MAC开启SFTP服务
- 偏好设置 - 共享 - 勾选远程登录 - 添加允许登录用户
- 执行
sftp localhost
即可
JD-GUI
- JAD官网: https://github.com/java-decompiler/jd-gui
- JD-GUI打开报错需要按照jdk 1.8+,解决办法参考:https://blog.csdn.net/lei182/article/details/111914142
- 修改Springboot jar中的某个class文件
1 | # 解压jar包,或者通过其他工具解压 |
Jenv(Java多版本管理工具)
1 | brew install jenv |
安卓模拟器
1 | # 参考: https://ov-vo.cn/573.html |
CrossOver
- CrossOver 20.0.4支持OSX 11.x上运行Windows应用,但是收费
- Wineskin 类似CrossOver,且免费
wine
wine
已经不支持 OSX 11.x(由于OSX不再支持32bit程序)- 有说可使用
https://hub.fastgit.org/Gcenx/WineskinServer
解决(没成功) - 可使用CrossOver代替
- 有说可使用
- wine依赖
XQuartz
,就是俗称的X11,是苹果电脑为Mac OS X上X Window系统的实作
1 | # 参考:https://wiki.winehq.org/MacOS |
相关技巧
更换App图标
- App图标为icns格式,可将png转icns图片;如: 大小300x300px, 边框留24px透明空白背景
- 右键App程序 - 简介 - 将icns图片复制粘贴到左上角的图标处
微信双开
- 参考: https://github.com/CLOUDUH/dual-wechat
- 运行
nohup /Applications/WeChat.app/Contents/MacOS/WeChat > /dev/null 2>&1 &
即可(只支持双开) - 或者将上面的命令封装成自动脚本
- 自动操作 - (新建)应用程序 - (搜索)运行Shell脚本 - 再脚本中填入上述命令 - 保存自动操作文稿(app到应用程序目录)
- 可修改自动操作图标: 参考上更换App图标(但是双击脚本启动的双开微信应用图标还是原来的)
- 运行
相关限制
- 不支持修改
/etc/profile
等配置,可修改~/.zprofile
或~/.bash_profile
代替。类似的文件.zshrc
- 不支持向
/usr/bin
目录添加文件,可向/usr/local/bin
目录添加来实现直接运行程序目的
常见问题
- Mac压缩文件,里面会包含
_MACOSX
等影藏文件夹- 参考:https://www.zhihu.com/question/475167014
- 右键 - 服务 - 使用Kaka压缩