配置Mac系统的开发环境

2023年 9月 16日 39.0k 0

最近在公司申请到了一台新的21款MacBook Pro,16英寸,芯片是Apple M1 Pro的,32GB内存,HD512G,并回购了原来使用的18款MacBook Pro,15英寸,Intel芯片,16G内存,HD256G,配置上面有了不小的提升,并且M1芯片的Mac使用起来不发烫,工作的快乐这不就又回来了嘛!

俗话说得好,工欲善其事,必先利其器。在下根据之前的办公习惯,火速安装了一些效率软件,在此也不藏着掖着,就都奉献给在座的各位了。

  • 安装 iTerm2,一款替代Mac自带的终端软件
  • 安装 Homebrew,一款可用在macOS/Linux系统上面的包管理工具
  • 安装 zsh,一款好用的shell软件,安装后如果在zsh shell中找不到brew指令,则需要将brew配置到PATH环境变量中
  • // 将brew可执行文件所在目录添加到 ~/.zshrc 文件中
    echo "export PATH=/opt/homebrew/bin:$PATH" >> ~/.zshrc
    
    // 安装autosuggestions插件,可以根据命令的使用记录,提供自动补全提示功能
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    
    // 安装syntax-highlighting插件,提供语法高亮功能
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    
    cat /etc/shells    // 查看当前系统中可用的shell类型
    echo $SHELL    // 查看当前用户默认的shell
    echo $0    // 查看当前用户正在使用的shell
    cat /etc/passwd | grep `whoami`    // 查看用户配置的默认shell
    ps -ef | grep `echo $$` | grep -v ps | grep -v grep    // 查看当前shell进程
    
    ssh-keygen -t rsa   // 使用rsa加密算法,生成公私钥对,一直默认选择即可
    cat ~/.ssh/id_rsa.pub    // 输出公钥内容,可以copy到github或用于ssh登录
        ssh-copy-id user@remote [-p port]    // ssh server默认监听22端口,将公钥上传到remote机器user家目录的~/.ssh/authorized_key文件中
        ssh user@remote -p port 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub    // 如果ssh-copy-id不可用,可以执行该指令上传公钥
    scp a.txt user@remote:~/    // 将本地的a.txt文件上传到ip=remote的user家目录下
    
    ~/.ssh/config 创建文件,写入以下内容,可以实现更方便的登录远程主机
    Host host
        HostName example.com或者ip
        User user
        IdentityFile ~/.ssh/id_rsa
        Port 22
    
  • 安装 git
    理解工作区、暂存区、本地仓库的概念,熟悉常用git命令
  • brew install git
    // 常用git命令如下
    git pull/push/add/commit/fetch/status/merge/rebase
    git commit -am "msg"
    git log --pretty=oneline --graph —all
    git reset --hard head  // 丢弃当前工作区和暂存区的修改
    git rebase origin/master  // 将当前分支的commit按顺序变基到origin/master分支
    git rebase -i head~3 head  // 操作最近3个commit
    git rebase --onto origin/master head~1 head  // 将当前分支最近1个commit变基到origin/master分支
    git stash [pop/apply/drop/list]
    git checkout -b dev_anin  // 创建dev_anin分支,并指向当前commit
    git branch -d dev_anin  // 删除本地仓库dev_anin分支
    git push -d origin dev_anin  // 删除远程仓库dev_anin分支
    git remote show origin  // 展示远程仓库的一些信息
    git remote prune origin  // 将远程仓库中已经删除的origin/*分支在本地也删除
    
    // 统计个人代码提交行数
    git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | grep -v vendor | grep -v output | grep -v script | grep -v conf | grep -E "go$" | awk '{ add += $1 ; subs += $2 ; total += $1 + $2 ; net += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s, net increase lines: %sn",add,subs,total,net}'
    --since=2018-10-01 --until=2018-12-31 添加起止时间
    -n 1 指定最近1个commit
    
  • 安装 Alfred,可以通过关键字来执行本地或网络搜索,以及自定义控制行为
  • 安装 Spectacle [开源地址],一款便捷的分屏软件。Spectacle已经不再继续维护了,其用户建议使用 Rectangle 作为其开源替代,不过本人目前还在使用Spectacle
  • 安装 CheatSheet,通过它可以快速获取本地其他软件的快捷键,让你的操作效率一键起飞
  • 安装 Sublime Text,一款简洁的文本编辑器
  • 安装 Docker,至少可以在本地快速启动Redis、MySQL进程
  • 安装 Sequel Pro,一款通过图形界面来管理MySQL的前端工具,可以用来替代Navicat等付费软件,当然使用体验远不如后者
  • 安装 Java 及 Idea 本地开发工具
  • brew install openjdk
        brew install openjdk@8    // 如果安装openjdk8,对于M1芯片,无法直接安装,需要使用下面的指令 
        brew tap adoptopenjdk/openjdk
        brew install --cask adoptopenjdk8 // installed at /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home,在idea中配置该路径即可使用 
    
    // 安装完成idea,创建java项目
    Project Settings -> Modules 中配置jdk版本
    ll /Library/Java/JavaVirtualMachines/
    drwxr-xr-x  3 root  wheel    96B  4 21  2021 adoptopenjdk-8.jdk
    lrwxr-xr-x@ 1 root  wheel    45B  4 10 12:48 openjdk.jdk -> /opt/homebrew/opt/openjdk/libexec/openjdk.jdk
    // 根据需要添加 Module SDK即可
    
  • 安装 Python 及 Pycharm 本地开发工具
  • // 先安装conda,conda有anaconda和miniconda两个版本,个人倾向使用miniconda
    brew install --cask miniconda
    conda init "$(basename "${SHELL}")"    // 执行初始化指令
    conda create -n py37    // 创建一个空环境
    conda activate py37    // 激活py37环境,会从默认的base切换到py37环境
    conda install python=3.7    // 安装python3.7版本,在Apple Silicon系统上无法使用3.8以下版本,执行下面指令后才能安装python 3.7版本
        conda config --env --set subdir osx-64
    conda --version    // 查看版本
    conda env list    // 查看全部环境
    
    // 安装完成pycharm,创建python项目
    // 在project中设置python interpreter,选择conda environment,找到上面创建好的 py37 环境
    /opt/homebrew/Caskroom/miniconda/base/envs/py37/bin/python
    
  • 安装 Go 及 Goland 本地开发工具,安装go的版本管理工具 gvm,安装和使用说明见Github ReadMe
  • brew install go
    // Installed at /opt/homebrew/Cellar/go/1.20.2/bin/go
    // Symbolic link /opt/homebrew/bin/go -> ../Cellar/go/1.20.2/bin/go
    
    echo "source /Users/anin/.gvm/scripts/gvm" >> ~/.zshrc // 安装gvm后如果找不到gvm命令,可以执行该指令
    gvm install go1.19
    gvm use go1.19
    gvm use system
    gvm version
    gvm list
    
    go get xxx/xxx/xxx   // 更新项目go.mod中的 xxx/xxx/xxx 依赖,并下载依赖对应版本到 /Users/anin/go/pkg/mod
    go mod tidy    // 整理go.mod文件中依赖,下载go.mod中指定版本依赖至 /Users/anin/go/pkg/mod 中
    go mod why xxx/xxx/xxx    // 检查依赖 xxx/xxx/xxx 的原因,并列出依赖链路
    // go代码中格式化可能会出现多个空行,以下指令可以只保留一个空行
    go mod tidy | git add . | git diff --name-only head | grep -E "go$" | xargs -I{} sh -c "gsed -i '/import (/, /)$/{/^$/d}' ./{} && goimports -w {}"
        brew install gsed    // installed at /opt/homebrew/bin/gsed
        go install golang.org/x/tools/cmd/goimports    // installed at /Users/anin/go/bin/goimports, 可能需要将 /Users/anin/go/bin 添加到PATH变量中
    // 执行git merge或rebase代码时,go.mod与go.sum文件经常发生冲突,删除冲突标识,执行go mod tidy即可保留较新依赖版本,并修复go.sum文件,也可以直接执行下面指令一键解决冲突
    sh -c "sed '//d' > go.mod.bak" && rm go.mod && mv go.mod.bak go.mod && go mod tidy
    
    // 安装完成goland,创建go项目 
    // 配置goland中GOROOT,/opt/homebrew/Cellar/go/1.20.2/libexec 
    // 配置goland中Go Mudules,开启 Enable Go modules integration 
    go mod init [module-path] 
    

    go代码中格式化可能会出现多个空行,一种方式是手动执行上面的那行指令,另一种解决方式是在Goland做如下配置,即可在CMD+S保存时,自动格式化
    Settings -> Tools -> File Watchers -> gsed + goimports
    设置技巧是在File Watchers页面,点击+号,选择goimports,然后修改Name和Program为gsed,修改Arguments参数,注意Advanced Options不要选中

    -i "/import (/, /)$/{/^$/d}" $FilePath$
    

    image.png
    image.png

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论