程序员的新 Mac 必备配置清单,拿走不谢~
入职新公司,居然给我们配置的全是Mac本,这一点很nice。于是我从0到1
将其 “武装”
了一下,由于一些众所周知的原因,安装一些常用的工具(比如 Homebrew
,这个东西太好用,用过的都知道)并不是一帆风顺的,还好社区有很多 “用爱发电”
的开拓者们,帮我们淌平了那些翻不过的墙,我都一一记录下来了,给需要的同学,拿走不谢~
0、Mac 快捷键
新入 Mac 的同学,可能有一部分是第一次使用 Mac,用好 Mac 的第一步就是记住一些常用的高效快捷键 ~
// 访达 Command + Shift + 3 // 截取全屏到桌面 Command + Shift + 4 // 截取所选区域到桌面 Command + Shift + N // 新建文件夹 Command + Shift + . // 显示/隐藏 隐藏文件 Command + Shift + G // 调出窗口,可输入绝对路径直达文件夹 Command + C // 复制文件 Command + V // 粘贴文件 Command + Option + V // 剪切文件,需要先复制文件 Command + Option + C // 复制选中文件的路径 // 浏览器 Command + L // 光标直接跳至地址栏 Command + T // 打开一个新标签页 Command + 数字键 N // 切换到第 N 个标签页 Command + '+-' // 放大/缩小页面 Command + 左右箭头 // 返回上一页或者下一页 Control + Tab // 转向下一个标签页 Control + Shift + Tab // 转向上一个标签页 // 应用程序 Command + H // 隐藏非全屏的应用程序 Command + W // 关闭当前应用窗口 Command + Q // 完全退出当前应用 Command + N // 新建当前应用窗口 Command + , // 打开当前应用的偏好设置 Command + 空格 // 打开聚焦搜索 Command + Option + esc // 打开强制退出的窗口 Command + control + F // 应用全屏 Command + control + 空格 // 打开表情符号选择界面 // 其他 Command + control + Q // 锁定屏幕 option + 空格 // 打开你安装的 UTools
更多快捷键可参考官方:Apple 键盘快捷键
1、Chrome安装
基于众所周知的原因,Mac 里面自带了一些“你能看却不能用”的APP,夏天太热,就先把它们放到文件夹里凉快去吧,还有底部程序坞中的一些无用APP也移除掉,看着就清爽干净了! ~
Mac自带的Safari也不是说不好用,但是我只用Chrome,所以先上 Chrome。
顺带把输入法也下载了把,目前最好用的还是搜狗吧(虽然已经卖身了),其他输入法没深入体验过,还是看个人习惯吧~
2、搜集一些常用的网站书签
我们先来做一些简单但又很有必要的事儿,比如把一些常用的网站集成到快捷标签栏:
下面是我自己搜集的一些常用的:
- google – 不用Google的程序员是不哇噻的
- github – 这个不用多说了吧,码农必备
- stackoverflow – 找答案,就上stackoverflow!
- stackblitz – 一个针对 JavaScript 生态系统的即时全栈网络IDE,目前感觉是最好用的,当然也还有 码上掘金、codesandbox 和 codepen 等也不错,看个人选择。
- reddit – 国外知乎,关注一些自己感兴趣的技术栈,偶尔也能看到一些不错的讨论,值得关注
- chatGPT – 当红炸子鸡,不会用就别写程序了,回去继承爸妈的几栋楼收房租吧 ~
- Vercel:静态托管服务
3、常用的软件下载
3.1 笔记 – 语雀
语雀是我认为目前国内做得最好的在线文档协同平台,我从很早就开始用它了(白嫖了好几年),现在好像也开始会员制了,不过免费版足够个人笔记使用了~
3.2 网盘 – 阿里云盘
日常办公学习,少不了大文件的一些上传下载,阿里云盘比起某度不限速还是很有一点点良心的,但不多,哈哈~
当然你也可以使用百度云盘。
3.3 截图工具 – iShot
一直在用的截图工具,截图美观且可编辑,基础功能够用 ~
3.4 剪切板工具 – clipy
其实一开始我是使用 Alfred 的剪切板工具的,但是后来变收费了,就找到下面这个平替了。实际上,想继续用 Alfred 也有办法,办法你懂的~
一个小日子过得不错的人开发的免费的剪切板工具,没有会员没有收费,轻量好用,墙裂推荐!(原生快捷键:command + shift + v
,不好用可以自己改)
3.5 视频播放器 – IINA
这个神器应该没人不知道吧?除了他,其他的那些,啥也不是 ~
3.6 Markdown 编辑器 – Typora
老一代神级 Markdown 编辑器!我指的是它免费的时候 。
备用:macdown
3.6-1 Typora 平替 – MarkText
MarkText 也是一个不错的选择,说是永久免费。
3.7 hosts 文件修改 – SwitchHosts
有时候会有一些改动hosts文件的场景,会命令行的直接粗暴:
sudo vim /etc/hosts # 然后:wq保存
那么有木有可视化工具管呢?答案:当然是有的。SwitchHosts
是一个管理、切换多个 hosts 方案的工具。它是一个免费开源软件。
3.8 API 浏览器 – Dash
Dash是一个API文档浏览器和代码片段管理器。Dash可以立即搜索200多个API的离线文档集,100多个小抄等。你甚至可以生成你自己的文档集,或要求将文档集包括在内。
3.9 Gif 录制 – gifox
很喜欢这个 GIF 录制工具,小巧美观,也很便宜:
4、开发必备
4.1 IDE
笔者主要的技术栈是 React/Vue/Flutter + Go/Node.js
,所以主要使用 VS Code + AS + Goland
。
4.1.1 前端 – VS Code
这个就不用多说了,前端开发首选~
再介绍一下我日常开发用的插件吧:
Debugger for Chrome
、Apollo GraphQL
、Auto Rename Tag
Chinese (Simplified) Language Pack for Visual Studio Code
Code Runner
、EditorConfig for Visual Studio Code
ESLint
、filesize
、HTML Snippets
、Image Preview
、Import Cost
JavaScript (ES6) snippets
、JSON Tools
、JSON Viewer
、koroFileHeader
Minify
、Monokai Theme
、npm (npm support for VS Code)
Open in Browser
、Path Intellisense
、Prettier - Code formatter
Prettify JSON
、Todo Tree
、Vetur
、View Node Package
、vscode-icons
Sass/Less/Stylus/Pug/Jade/Typescript/Javascript Compile Hero Pro
- …(其他的大家补充)
4.1.2 Flutter – Android Studio
由于笔者平时也会玩玩 Flutter(之前也干了两年Flutter开发),虽然VS Code也可以开发Flutter,但这个是我觉得体验更好的IDE~
4.1.3 后端 – Goland
Go开发的首选IDE,做过Go的都知道~
4.2 辅助工具
4.2.1 Postman – API 管理工具
Postman是一个用于构建和使用API的API平台。Postman简化了API生命周期的每个步骤,并简化了协作,因此你可以更快地创建更好的API。
当然你也可以选择一些国产的平台,比如:
4.2.2 Docker – 容器化
Docker 是一个开源的容器化平台,用于构建、部署和运行应用程序。它提供了一种轻量级的虚拟化技术,可以将应用程序及其所有依赖项打包到一个独立的容器中,使其可以在任何环境中以相同的方式运行。
通过使用 Docker,开发人员可以更轻松地构建、交付和运行应用程序,无论是在开发环境、测试环境还是生产环境中。它提供了一致的运行环境,简化了应用程序的部署和维护过程,同时也提供了更好的可移植性和可扩展性。
4.2.2-1 Docker 平替 orbstack
macOS 从 2020 年发布 Big Sur 开始,提供了虚拟化的框架,开发者可以在 macOS 上构建基于 Intel/ARM 的 Linux 环境。macOS 上的 Parallels Desktop 和 Docker Desktop 都在使用这个框架,但这二者都比较重。
macOS 上的 Docker Desktop 原本就是饱受诟病,慢、重、资源消耗巨大。OrbStack 的出现就是为了解决这个问题。
OrbStack 是一个可以在 macOS 上快速运行 Docker 容器,和 Linux 虚拟机的工具,资源占用率低,高带宽,速度快。
4.3.3 Tower – git管理工具
超过10万名开发者和设计师使用Tower —— Mac和Windows上最强大的Git客户端,提高工作效率。
Tower,也可以使用 sourcetree
5、终端 – iTerm2
Term2是终端的替代品,界面更美观,更现代化,体验更好~
安装完成之后查看下本机的shell是啥:
# 查看本机上所有的shell list cat /etc/shells
输出:
# List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/dash /bin/ksh /bin/sh /bin/tcsh /bin/zsh
查看当前使用的shell:
echo $0
如果想要修改默认shell,可以使用(但建议使用zsh):
chsh -s /bin/bash
原始的 iTerm2 界面还比较素,可以对其按照自己的审美适当美化一下。
5.1 安装 Oh My Zsh
linux 和 Mac OS
系统,shell
类型默认都是bash
,在使用时候预发提示,页面美观等都不够强大,后来诞生了zsh,但zsh配置复杂,就有人在zsh基础开发出了 oh-my-zsh。
下载地址: ohmyz
终端执行如下命令:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
执行过程遇到443
问题。
HQITI0010:.ssh shiyang.long$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
原因是使用了国外资源,改国内镜像安装:
sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)"
安装成功后,你就会看到:
5.2 安装 Oh My Zsh PowerLevel10K 主题
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
安装成功后,用你喜欢的编辑器打开“~/.zshrc”文件,然后按如下所示修改“ZSH_THEME”的值:
ZSH_THEME="powerlevel10k/powerlevel10k"
生效:
source ~/.zshrc
就可以得到一个干净、精致的终端了:
5.3 常用插件
5.3.1 zsh-syntax-highlighting 语法高亮插件
依次输入以下的命令
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
vim ~/.zshrc
在文件里找到plugins=(git),括号是插件列表,git是默认安装的插件。添加插件
plugins=( git zsh-syntax-highlighting )
让插件生效:
source ~/.zshrc
5.3.2 zsh-autosuggestions 自动路径补全
输入命令时可提示自动补全(会出现灰色的命令提示,你曾经访问过的命令),然后按键盘 → (右方向键)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
vim ~/.zshrc
在文件里找到plugins,添加:
plugins=( git zsh-syntax-highlighting zsh-autosuggestions )
让插件生效:
source ~/.zshrc
接下来重启一下 terminal
终端,就可以了。
5.3.3 autojump 跳转插件
这一个需要在下面的 homebrew 安装后再操作。
实现目录间快速跳转,想去哪个目录直接 j + 目录名
,或者想在Finder打开哪个目录就直接jo + 目录名
,不用频繁的 cd 了:
安装:
brew install autojump
vim ~/.zshrc
在文件里找到plugins,添加:
plugins=( git zsh-syntax-highlighting zsh-autosuggestions autojump )
然后在 .zshrc 文件末尾(最后一行)添加:
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh source $ZSH/oh-my-zsh.sh
让插件生效:
source ~/.zshrc
这样你的终端就变得很“哇噻”了呀:
5.4 终端bash&zsh&fish对比
5.4.1 bash
默认的shell工具,大多的Linux系统自带的。
bash2也有自动补全与语法高亮,工具bel.sh(opens new window)
5.4.2 zsh
zsh相对于bash 高可配置、高扩展。目前是mac上的默认的shell工具。推荐它的主题网址:ohmyz
通过扩展可以获得如下功能:
- 自动补全
- 语法高亮
- 插件系统(插件管理)
- 命令行提示(git仓库)
- 颜色主题
下面截图的就是一个示例,这些都需要手动设置。
bash 与 zsh已经诞生大概有30年了历史了。
5.4.3 fish
1)特点
官网:fishshell
相比于zsh,fish会有很多自动化的配置,默认的安装即可。
特点:
- 命令历史
- 自动补全、自动搜索
- 语法高亮
- 运算+逻辑
- 运行行颜色设置
2)安装方法
安装方法:
macOS上:
brew install fish
windows上可以通过
- MSYS2 (opens new window)命令:
pacman -S fish
- 安装配置CygWin (opens new window),在安装的过程中可以选择fish作为默认的shell
3)美化&扩展
omf就是fish的一个插件管理工具,扩展fish主题配色,项目地址:github。
还有一个插件管理工具是fisher:github
强烈推荐starship
来美化你的fish shell,地址:starship,安装方式:
brew方案:
brew install starship
Linux方案:
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
添加配置:
# fish配置文件 ~/.config/fish/config.fish starship init fish | source # 选择一:~/.bashrc 针对于平时使用bash的小伙伴 eval "$(starship init bash)" # 选择二:~/.zprofile 针对于平时使用zsh的小伙伴 eval "$(starship init zsh)"
5.5 warp
Warp,一个超级牛叉的 terminal,号称是 21 世纪的终端,还未正式发布,就获得了两千三百万美元的融资。
-
- Warp解决第一个痛点,是通过减少配置、方便输入,优化输出,增加常用命令行自动提示(通过fig),方便查看历史记录,可定义流程,等等实现的。
- 解决第二个痛点,则是增加协作功能。例如可以共享自己的命令行、设置项、历史记录。
6、包管理神器 – Homebrew
Homebrew是一款MacOS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。 通常用于Mac系统,也可以安装在Linux系统。
Homebrew
主要有四个部分组成: brew
、homebrew-core
、homebrew-cask
、homebrew-bottles
。
名称 | 说明 |
---|---|
brew | Homebrew 源代码仓库 |
homebrew-core | Homebrew 核心源 |
homebrew-cask | 提供 macOS 应用和大型二进制文件的安装 |
homebrew-bottles | 预编译二进制软件包 |
brew官网:brew
注意M1处理器的安装位置(与intel有所区别): brew的安装位置:/opt/homebrew brew安装的所有【软件安装位置】在 /opt/homebrew/Cellar 目录下
6.1 brew安装&卸载
推荐自动脚本安装-国内源,在终端中执行下面脚本即可:
6.1.1 安装
Mac电脑标准(完整版)安装脚本:(推荐,优点全面,缺点慢一点)
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
Mac电脑极速安装脚本:(优点安装速度快 缺点update功能需要命令修复 )
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed
Linux 标准安装脚本:
rm Homebrew.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh ; bash Homebrew.sh
6.1.2 卸载
Mac电脑卸载脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"
Linux卸载脚本:
rm HomebrewUninstall.sh ; wget https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh ; bash HomebrewUninstall.sh
6.2 brew使用
6.2.1 手动设置镜像
1)中科大源
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git brew update
2)清华大学源
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git brew update
6.2.2 设置 bottles 镜像
设置环境变量需要注意终端的类型,可以先通过以下方式获取:
执行命令echo $SHELL
,根据结果判断:
/bin/zsh
=>zsh
=>.zprofile
/bin/bash
=>bash
=>.bash_profile
然后继续正式操作,以中科大源为例:
从macOS Catalina
(10.15.x) 版开始,Mac
使用zsh
作为默认Shell
,对应文件是.zprofile
,所以命令为:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.zprofile source ~/.zprofile
如果是macOS Mojave
及更低版本,并且没有自己配置过zsh
,对应文件则是.bash_profile
:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.bash_profile source ~/.bash_profile
注意:上述区别仅仅是
.zprofile
和.bash_profile
不同,上下文如有再次提及编辑.zprofile
,均按此方法判断具体操作的文件。
至此,安装和设置操作都完成了。
6.2.3 恢复默认源
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git git -C "$(brew --repo homebrew/cask)" remote set-url origin https://github.com/Homebrew/homebrew-cask.git brew update
homebrew-bottles
配置只能手动删除,将 ~/.zprofile
文件中的 HOMEBREW_BOTTLE_DOMAIN=https://mirrors.xxx.com
内容删除,并执行 source ~/.zprofile
。
6.3 cask相关
目前cask
是从GitHub
上读取软件源,而GitHub Api
对访问有限制,如果使用比较频繁的话,可以申请Api Token
,然后在环境变量中配置到HOMEBREW_GITHUB_API_TOKEN
。
在.zprofile
中追加,注意替换yourtoken
:
echo 'export HOMEBREW_GITHUB_API_TOKEN=yourtoken' >> ~/.zprofile source ~/.zprofile
注意:因为
cask
是从GitHub
下载软件,所以目前是无法加速的。
6.4 brew 常用指令
// 1、安装任意包,例如 brew install node brew install appName // 2、卸载任意包,例如 brew uninstall git brew uninstall appName // 3、查询可用包 brew search appName[当不知道具体名字时-这里可直接用关键字搜索] // 4、查看任意包信息 brew info appName // 5、更新Homebrew brew update // 6、查看Homebrew版本 brew -v // 7、Homebrew帮助信息 brew -h // 8、列出已安装的软件 brew list 或者 brew ls // 9、用浏览器打开brew的官方网站 brew home // 10、显示包依赖 brew deps // 11、升级到最新版本 brew upgrade
7、常用开发工具
7.1 Git 安装
# git安装 brew install git # 可视化工具 git-gui brew install git-gui
安装好git之后就要进行初始化操作。第一次使用git的时候我们需要给git配置用户名和邮箱,用户和邮箱可以使用github的,也可以使用自己公司的gitlab仓库的账号。
# 配置用户名 git config --global user.name "用户名" # 配置邮箱 git config --global user.email "邮箱地址"
配置好这个以后我们输入便可以看到我们所有的配置信息了,然后可以看到user.name和user.email配置得对不对:
git config -l
然后就可以配置ssh密钥了。ssh密钥允许系统和 github/gitlab
之间建立安全连接。在上传代码的时候使用https需要频繁的输入密码,而使用ssh的话可以省去这个步骤。
- 检查SSH秘钥是否存在。控制台输入:
cat ~/.ssh/id_rsa.pub
- 若密钥不存在,就需要生成SSH 密钥 。执行命令
ssh-keygen -t rsa -C "邮箱地址"
- 在
github/gitlab
上添加SSH key。执行命令查看公钥:cat ~/.ssh/id_rsa.pub
,然后将显示出来的一大串字符串复制下来 - 打开
github/gitlab
的找到Profile Settings
下的SSH Keys
,在Add an SSH key
中,将刚刚复制的一大串字符串密钥粘贴到Key的框框里,在Title这里给这个key设置一个响当当的名字,点击Add key就大功告成。
如果你在每次 Git 操作时都被要求输入密码,这可能是因为你使用了基于 HTTPS 的远程存储库,并且每次都需要验证身份。
有几种方法可以避免频繁输入密码:
- 使用 SSH 密钥对:这是一种更安全和方便的身份验证方式。你可以生成 SSH 密钥对,并将公钥添加到你的远程存储库中。这样,你就可以使用 SSH URL 克隆和推送代码,而无需每次输入密码。要生成 SSH 密钥对,请使用
ssh-keygen
命令,并按照提示进行操作。 - 使用凭据管理器:一些操作系统或 Git 客户端提供了凭据管理器,可以将你的密码保存在加密的密钥链中。这样,当你执行 Git 操作时,凭据管理器将自动填充密码,而无需手动输入。
- 使用 Git 凭据存储:Git 提供了凭据存储功能,它可以将你的凭据保存在本地。你可以运行以下命令来启用 Git 凭据存储:
git config --global credential.helper store
这将在全局配置中设置凭据存储为 “store”,并将你的凭据保存在明文文件中。请注意,这种方法不是最安全的,因为凭据以明文形式存储在磁盘上。但是,如果你的计算机只有你自己可以访问,这可能是一个方便的解决方法。
无论你选择哪种方法,都应该权衡安全性和方便性。如果你处理敏感数据或与他人共享计算机,使用 SSH 密钥对是更安全的选择。
7.2 node 安装
1、查看当前电脑通过brew安装的node:
ls /usr/local/Cellar/node*
2、查看可安装的node:
brew search node
3、安装其他版本node:
brew install node@12
4、brew切换node版本:
brew unlink node@10 brew link --overwrite --force node@12 # 连起来 brew unlink node@18 && brew link --force node@16 echo 'export PATH="/usr/local/opt/node@16/bin:$PATH"' >> ~/.zshrc source ~/.zshrc node -v # 16.20.1
7.3 NVM 安装
温馨提示:nvm会遇到蛮多的坑,个人更喜欢直接用 brew 来安装和切换node版本,也很方便。当然,如果你喜欢折腾,可以开启下面的旅程了 ~
7.3.1 安装
Nvm是node版本控制工具,可安装多个node版本任意切换,老前端必备~ 不同的项目可能对 Node.js 的版本要求不同,这时我们就需要切换不同版本的 Node.js。我们可以通过 Nvm 来管理Node.js 版本。
那 nvm 是什么?和 npm 是什么关系?
- nvm(Node Version Manager)是一个用于管理 Node.js 版本的工具,它被设计成每个用户独立安装,并在每个终端会话中调用。nvm 可以在任何符合 POSIX 标准的 shell(如 sh、dash、ksh、zsh、bash)上运行,特别适用于以下平台:Unix、macOS 和 Windows 的 WSL(Windows Subsystem for Linux)。
- nvm 的主要功能是允许用户轻松切换不同版本的 Node.js,并在不同的项目中使用不同的 Node.js 版本。它为每个已安装的 Node.js 版本提供隔离的运行环境,使得用户可以在同一系统上同时使用多个 Node.js 版本而不会相互干扰。
首先在终端中通过nvm官方GitHub上提供的以下命令来安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
当我输入该命令后,终端就报错了,报错信息:curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 5 ms: Couldn't connect to server
,这个报错是因为github 有些域名访问不到,可以通过配置hosts里面的ip域名对应关系解决。
进入ipaddress网站,在打开的网站中将 raw.githubusercontent.com
复制到查询栏中进行搜索,可以看到域名对应的IP地址信息:
在终端中输入以下命令来打开hosts文件以进行编辑:
sudo vim /etc/hosts
在文件中追加以下对应关系:
185.199.108.133 raw.githubusercontent.com 185.199.108.133 user-images.githubusercontent.com 185.199.108.133 avatars2.githubusercontent.com 185.199.108.133 avatars1.githubusercontent.com
如下:
然后按下ESC键,输入 :wq
来保存即可。这个配置不仅可以解决 nvm 的安装问题,还能使加载不了图片的 GitHub页面恢复正常,homebrew 也能装了。然后再输入上面的命令就可以安装nvm了。
然后在 .zshrc
文件中添加以下内容:
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"
别忘了 source 一下:
source ~/.zshrc
国内源
方案:
- 官网下载直装:nodejs
- 使用nvm(Node Version Management,node版本管理工具)安装 (推荐)
- mac:github
- 国内镜像仓库地址:gitee安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash # or wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash # 国内 curl -o- https://gitee.com/mirrors/nvm/raw/master/install.sh | bash
国内加速:
export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
1.阿里云
# 设置npm_mirror: nvm npm_mirror https://npmmirror.com/mirrors/npm/ # 设置node_mirror: nvm node_mirror https://npmmirror.com/mirrors/node/
2.腾讯云
# 设置npm_mirror: nvm npm_mirror http://mirrors.cloud.tencent.com/npm/ # 设置node_mirror: nvm node_mirror http://mirrors.cloud.tencent.com/nodejs-release/
- windows:nvm-windows 安装包:1.1.9.zip
配置nvm环境,找到如下位置的文件(如果没有则新建):
- M1:
~/.zprofile
- Intel:
~/.bash_profile
,~/.zshrc
,~/.profile
或者~/.bashrc
添加如下内容:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
还有一个可以用:nvm-cn
7.3.2 使用
注意:安装前先删除之前安装的node,卸载已安装到全局的 node/npm。
// 1. 删除node brew uninstall --ignore-dependencies node brew uninstall --force node // 2. 安装nvm brew update brew install nvm // 3. 安装成功后不能直接使用 nvm 命令, 安装成功之后,还不能直接使用 nvm 命令,需要进行以下配置,将以下命令复制到终端执行: echo "source $(brew --prefix nvm)/nvm.sh" >> .zsshrc // 4. 验证 nvm -v // 0.39.3 nvm list // 5. 安装最新稳定版,会变成默认的版本,你也可以手动安装其他版本,下面有指令 nvm install stable node -v // v20.3.0
常用的 nvm 命令:
nvm list ##是查找本电脑上所有的node版本 - nvm list ##查看已经安装的版本 - nvm list installed ##查看已经安装的版本 - nvm list available ##查看网络可以安装的版本 nvm install ##安装指定版本node nvm uninstall ##卸载制定的版本 nvm install stable ## 安装最新稳定版 node nvm install ##安装指定版本,可模糊安装,如:安装v4.4.0,既可 nvm install v4.4.0,又可nvm install 4.4 nvm use ##切换使用指定的版本node nvm -v ##查看当前的版本 nvm ls ## 列出所有安装的版本 nvm ls-remote ## 列出所有远程服务器的版本(官方node version list) nvm current ## 显示当前的版本 nvm alias ## 给不同的版本号添加别名 nvm alias default ## 设置默认版本,如: nvm alias default v11.1.0,这样就不用每次都切换版本了 nvm unalias ## 删除已定义的别名 nvm reinstall-packages ## 在当前版本 node 环境下,重新全局安装指定版本号的 npm 包 nvm on ##打开nodejs控制 nvm off ##关闭nodejs控制 nvm proxy ##查看设置与代理 nvm node_mirror [url] ##设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/ nvm npm_mirror [url] ##设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/. nvm use [version] [arch] ##切换制定的node版本和位数 nvm root [path] ##设置和查看root路径
7.3.3 可能遇到的问题
1)zsh: command not found: nvm
如果你遇到了 “zsh: command not found: nvm” 的错误信息,这意味着你的 shell(命令行解释器)无法识别 nvm
命令。这个错误是特定于 Zsh shell 的。
以下是解决此问题的几个步骤:
- 验证安装:确保你已成功安装了 Node Version Manager(
nvm
)。如果你尚未安装它,请按照你的操作系统的安装说明进行操作。通常你可以使用软件包管理器安装nvm
,或者运行nvm
项目提供的脚本进行安装。 - 检查你的 Shell:确认你正在使用 Zsh shell。你可以通过运行以下命令来检查:
echo $SHELL
如果输出结果不是
/bin/zsh
或/usr/bin/zsh
,你可能需要切换到 Zsh,或者修改相应的配置文件以适应你的 shell。 - 更新 Shell 配置:Zsh 使用特定的配置文件来设置环境。主要的配置文件通常是
~/.zshrc
。使用文本编辑器打开该文件,检查是否存在类似以下行的内容:source ~/.nvm/nvm.sh
如果你没有看到这一行,或者
nvm.sh
的路径不正确,请添加或更新该行,确保它反映了nvm.sh
文件的正确路径。保存更改并重新启动终端,或者运行source ~/.zshrc
来应用更新的配置。 - 验证环境变量:确保
NVM_DIR
环境变量设置正确。它应该指向nvm
安装的目录。你可以通过运行以下命令来检查:echo $NVM_DIR
如果输出为空或不正确,你可以在
~/.zshrc
文件中手动设置它,添加以下行:export NVM_DIR="/path/to/nvm"
将
/path/to/nvm
替换为nvm
安装的实际目录路径。保存更改并重新启动终端,或者运行source ~/.zshrc
来应用更新的配置。
按照这些步骤,你应该能够解决 “zsh: command not found: nvm” 错误,并在 Zsh shell 中成功使用 nvm
。
2)Version ‘stable’ not found…
安装好 nvm,本来以为可以开心滴使用了,没想到 nvm install stable
,shell 等了好久,出现了如下报错:
Version 'stable' not found - try `nvm ls-remote` to browse available versions.
7.3.4 n – nvm 平替
有些同学反映说nvm总是连接不到nodejs.org的问题,找了老半天,也没发现特别好的解决方案(有的话提供一下),其实还有一个 nvm 的平替 – n,一直在维护更新中。
1)安装 node
先安装 node:
brew install node
替换成淘宝源,淘宝 npm 地址。
- npm 临时使用
# 以 events 依赖包为例 npm --registry https://registry.npmmirror.com install events --save
- npm 持久使用
npm config set registry https://registry.npmmirror.com # 验证:通过以下方式验证结果 npm config get registry # 使用:以 events 依赖包为例 npm install events --save
- cnpm 使用
npm install -g cnpm --registry=https://registry.npmmirror.com # 使用:以 events 依赖包为例 cnpm install events --save
- 还原 npm 仓库地址:
npm config set registry https://registry.npmjs.org/
2)安装 n
cnpm install n -g
这时候如果你接着使用n安装node,还是会出现以下的问题:
❯ sudo n stable Password: curl: (28) Failed to connect to nodejs.org port 443 after 151020 ms: Couldn't connect to server Error: failed to download version index (https://nodejs.org/dist/index.tab)
解决办法是:
N_PREFIX=$HOME/.local n stable
然后在 .zshrc
中添加:
export N_PREFIX=$HOME/.local # 记得source source ~/.zshrc
解决方案来自: stackexchange
然后你就可以使用n安装了:
❯ n ls node/18.16.1 ❯ n ls-remote Listing remote... Displaying 20 matches (use --all to see all). 20.4.0 20.3.1 20.3.0 20.2.0 20.1.0 20.0.0 19.9.0 19.8.1 19.8.0 19.7.0 19.6.1 19.6.0 19.5.0 19.4.0 19.3.0 19.2.0 19.1.0 19.0.1 19.0.0 18.16.1
卸载 node:
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
删除 node 安装目录下的相关配置文件:
sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm sudo rm /usr/local/bin/node sudo rm /usr/local/share/man/man1/node.1
3)n 指令
# 查看n版本 n -V # 查看本地的node版本列表 n ls # 安装指定版本的node sudo n 10.13.0 # 切换版本 sudo n # 删除指定版本 sudo n rm 12.10.0
7.3.5 Volta – nvm 平替
如果你要是觉得上面两个都不好用,可以试试这个新出的:Volta
Volta 是一个命令行工具,用于 Node.js 和 JavaScript 包管理器(npm、yarn 等)的简单版本管理。
简而言之:
- 快速版本切换:Volta 允许您使用单个命令立即切换 Node.js 版本。
- 每个项目的版本指定:通过在每个项目的配置文件中指定版本,您可以自动使用该项目专用的版本。
- 跨平台:支持 macOS、Linux、Windows 和所有主要操作系统。
安装 Volta 非常简单。下面描述了每个操作系统的安装过程。
macOS/Linux
只需在 shell 中输入以下命令即可。
curl https://get.volta.sh | bash
此命令将从官方网站下载脚本并自动安装。
Windows 用户可以通过从官方网站下载安装程序并运行来安装。
安装 Volta 后,让我们看看如何实际对 Node.js 进行版本控制。
要安装新的 Node.js 版本,请使用类似于以下内容的命令:
volta install node@latest
此命令将安装最新的 Node.js 版本。如果要安装特定版本,@latest
请替换为所需的版本号。
volta install node@14.15.0
要查看已安装的 Node.js 版本的列表,请使用以下命令:
volta list node
此命令将显示所有当前安装的 Node.js 版本和当前活动版本。
如果要指定特定项目使用哪个版本的 Node.js,请在项目的根目录中运行以下命令:
volta pin node@14.15.0
这可确保只有该项目使用指定版本的 Node.js。
如果要更改全局使用的版本,请运行以下命令:
volta default node@14.15.0
7.4 nrm
nrm(NPM registry manager)是 npm 的镜像源管理工具,使用它可以快速切换 npm 源。
作为前端开发,你一定使用过 npm 来安装第三方依赖包,但由于 npm 默认的下载仓储地址是 https://registry.npmjs.org/
,属于外国的网站,所以我们下载的时候可能会非常的慢。所以淘宝也做了一个 npm 的镜像网站(看这里)。
7.4.1 安装
原始源:
# the original source https://registry.npmjs.org/
安装 nrm:
npm install -g nrm
列出源的候选项:
nrm ls
输出结果:
npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.com/ cnpm ------- http://r.cnpmjs.org/ taobao ----- https://registry.npm.taobao.org/ nj --------- https://registry.nodejitsu.com/ npmMirror -- https://skimdb.npmjs.com/registry/ edunpm ----- http://registry.enpmjs.org/
使用淘宝源:
nrm use taobao
7.4.2 修改全局的注册
设置成淘宝源:
npm config set registry https://registry.npm.taobao.org
查看结果:
npm config get registry
输出结果:
https://registry.npm.taobao.org/
测试一下:
npm info underscore
在命令行里指定源:
npm --registry https://registry.npm.taobao.org install [name]
修改 ~/.npmrc
registry = https://registry.npm.taobao.org
使用cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install [name]
7.5 pnpm
pnpm 是 Node.js 的替代包管理器。它是 npm 的直接替代品,速度更快、效率更高。它的主要特点是:
- 空间效率:pnpm 使用了一种称为“链接式依赖管理”的方法,它通过在磁盘上共享相同的依赖项,减少了重复的包的拷贝。这种链接方式可以显著减少项目的磁盘空间占用,特别是当你有多个项目使用相同的依赖项时。
- 安装速度:由于 pnpm 采用链接式依赖管理,它能够更快地安装和更新依赖项。相对于传统的包管理器如 npm 或 Yarn,pnpm 只需要下载依赖项一次,并在不同项目之间共享。这可以加快依赖项的安装速度,特别是在大型项目或具有复杂依赖关系的项目中。
- 网络带宽节省:由于链接式依赖管理,pnpm 在下载依赖项时可以节省网络带宽。当多个项目使用相同的依赖项时,pnpm 只需要从网络上下载一次,而其他项目可以通过链接进行共享。这对于团队合作或在有限的网络环境下工作的开发人员来说尤为有用。
- 兼容性:pnpm 完全兼容 npm 生态系统,它可以使用 package.json 文件来管理依赖项,可以运行 npm 脚本,并且可以与现有的 npm 包无缝配合使用。这意味着你可以在项目中使用 pnpm,而不需要对现有的代码和工作流进行任何修改。
安装:
brew install pnpm
pnpm
可能过长而难以输入,您也可以使用较短的别名,例如 pn
。只需将下面这行代码放入 .bashrc
、 .zshrc
或 config.fish
文件中:
# 使用较短的别名 alias pn=pnpm # 保存之后,source 一下 source ~/.zshrc
7.6 Go
需要Go开发的同学可以安装一下,不需要的可跳过~
1、brew install go 默认安装最新的,更新go也是这条命令,建议使用这个方法,省事。
2、从官网或其他网站下载pkg安装包
3、Mac 卸载方法参考: golang/doc
sudo rm -rf /usr/local/go sudo rm -rf /etc/paths.d/go
4、brew 安装Go流程
# 升级brew brew update # 更新版本 brew update go # 切换版本 brew switch go 1.16 # 卸载 brew uninstall go # 安装指定版本 brew install go@1.17 # 使用这种方式有个问题就是安装的路径不在go路径下,而是在路径go@17下,这样使用 brew switch go 1.17 时就会提示找不到这个版本,因为brew switch 只识别路径go # 解决办法就是: mv go@1.17 go,把整个目录移动到go目录
5、mac下go多版本共存切换
brew info go
可以查看当前安装的go版本有哪些,比如当前安装的是go1.15,现在想安装个低版本如go1.12.17。 操作如下:
ll /usr/local/bin/go # 查看当前go对应的软连接 brew search go # 查看可用的go版本 brew install go@1.12 # 安装1.12版本 brew unlink go # 将当前软链移除 brew link go@1.12 # 指定新的软链 ll /usr/local/bin/go && go env # 验证修改后的版本
brew list name: 来显示安装路径
- 通过brew install 安装应用最先是放在/usr/local/Cellar/ 目录下
- 有些应用会自动创建软连接放在/usr/bin或者/usr/sbin,同时也会将真个文件夹放在/usr/local
- 可以使用 brew list 软件名 比如 brew list oclient 确定安装位置
8、Mac 效率神器 —— Alfred
一直用的一个神器,真神器!谁用谁知道~
在Mac生态系统中,有很多原生和第三方的软件,可以极大的提高Mac系统的使用效率。在这些众多的App中,有一款著名的软件你不得不知,那就是Mac下大名鼎鼎的效率神器—Alfred。
下载链接:Alfred
使用Alfred,你完全可以在手不离开键盘、完全脱离鼠标的情况下,完全操控你的Mac。你可以使用Alfred快速打开某个App,搜索想要的文件,快速搜索网络上的内容,定制特定的workflow,移动任意的文件,让系统剪切板在你的掌控之下,等等等。Alfred在某些场合下就是Mac原生软件Spotlight的完美替代品,但是其功能范围远远超过Spotlight。所以,有了Alfred,你完全可以抛弃Spotlight了。
Alfred提供了以下的一系列特征功能:
- App启动。只需输入简单的几个字母,就能快速打开某个App;
- 文件搜索。只需输入部分文件名字符串,就能快速的搜索出某个文件,甚至能基于文件内容中的关键字进行搜索;
- 网络搜索。输入特定的关键字,就能在任意特定的搜索引擎中进行内容的搜索,而无需首先打开浏览器;
- 计算器。可以直接在输入栏中输入表达式进行计算;
- 字典。可以直接在输入栏中输入单词进行翻译;
- 联系人列表。可以快速打开某个联系人的相关信息,包括电话和Email;
- 剪切板历史。可以记住你之前对文本、图片、链接等的所有复制记录,然后进行选择性粘贴;
- 缩略语和文字拓展。只需简单的几个字母,就能输入一些常用的语句;
- iTunes迷你播放器。可以使用迷你播放器,在没有鼠标的情况下控制你的音乐集;
- 1Password。有太多的密码需要记住,是不是好头疼?没关系,1Password来帮你;
- 系统命令。Alfred包含了一系列的系统命令,可以在Alfred中输入这些命令来控制你的Mac;
- 终端。你可以在Alfred输入栏里快速执行一些常用的终端命令;
- 远程控制。让Alfred变成Mac的控制中心,可以使用iPhone或者iPad远程控制你的Mac;
- Workflow。Alfred最强大的工具,可以定制你想要的任意工作流程,使一些需要很多步骤的复杂工作变成简单的自动化流程,大大提高你的学习工作效率;
- 外观主题。颜值控?没关系,你可以定制Alfred的外观,选择自己想要的主题。
这里我就推荐几个:
- Dash : 快速索引跳转到 dash 手册的
- CalireSearch : 索引 calibre 里面的书籍进行跳转
- Github repos : 快速跳转到自己的一些 github 仓(需要配置 token)
- NpmSearch : 快速搜索 npmjs.org 上的某个包,直接浏览器打开
- StackOverflow: .so + question 筛选出问题列表,浏览器打开
- Colors: 颜色处理
它有大量的骚操作,网上有很好的教程:Alfred系列教程
Alfred 平替 – Raycast
Raycast 是一个类似 Alfred ,但是比 Alfred 更加强大的效率软件。
平替:raycast
无法验证开发者
A: 系统偏好设置 -> 安全性与隐私 -> 通用 -> 允许
快捷键 | 功能 |
---|---|
⌘ + → |
下一页 |
⌘ + ← |
上一页 |
⌘ + P |
打开环境设置页面(如果有) |
⌘ + D |
打开详情页(如果有) |
⌘ + O |
在浏览器打开页面(如果有) |
⌘ + Enter |
在表单页,提交表单(如果有) |
9、Mac 自带的快速操作
有时候我们想快捷地再某一些 IDE 中打开电脑中的某一个项目或者文件夹,如果按照常规操作,是先打开IDE,再把项目文件拖进去,或者直接用IDE的打开文件夹功能,这总会花几步来实现,有点麻烦,Mac 提供了快速操作功能:
怎么设置呢?
这时候就可以用7种的神器 Alfred 来快捷找到自动操作这个功能:
接着选“快速操作”:
然后找到“打开访达项目”,打开方式,找到你想要打开的应用程序即可:
然后保存,这一套流程命名.
你就可以右键,看到快捷操作中实现了快捷在 Android Studio 中打开项目的快速操作了。
是不是很方便!
结语
目前基本的配置就这些了,后续再根据需求继续配置新东西,然后再同步更新给大家~如果大家有更好的配置,欢迎留言。