1、前言
最近在写《程序员的macOS系列》文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS开发环境,系统默认自带ruby、php、python2、gcc、g++、bash等环境,并且因为macOS
是以Unix
为基础,所以有传统Unix/Linux
的特性,很适合高效少折腾的开发者。所以,本文主要讲解一些通用开发环境配置,主要是以必须和提高效率为主!也没有什么高深介绍,当然,由于楼主目前主职是iOS,所以其它的开发环境接触不多(谦虚),当前大家要学以至用,环境搭建都是相似的,熟悉了就不是问题。文章短短不可能详尽也,要学好每一个点也不是那么简单,惟有抛砖引玉,希望大家努力提高!
目前计划写《程序员的macOS系列》三篇已经完成 ✅,后续有想法在更新吧~
2、开发环境配置
需要提前说明一下,本文不使用代理源,如果命令无效,大家记得翻墙一下啊。本教程尽量都通过命令行方式完成配置,命令行依然是程序员最高效的环境!如果是通过软件包安装的方式,就不在这里列举了,比如Java
的安装可以自行搜索~
命令行工具(Command Line Tools)
如果不是开发 iOS
或 macOS
可能就没有必要安装 Xcode,但是可能需要安装一下Xcode 命令行工具,因为很多环境和软件都会使用和依赖它(下面说到的Carthage
、python3
就依赖它)。
1 | xcode-select --install |
xcode-select
这个命令还可以切换 Xcode build 的版本(目录),可以用 xcode-select --help
查看更多帮助。
这里提醒一下新手,终端的命令,如果记得命令名字,不记得用法,可以使用:
1 | xxx --help |
也可以用:
1 | man xxx |
--help
和 man
命令的区别,是man
命令是详细全面的介绍。
另外,可以用 which
命令查看命令的路径目录,比如终端输入:
1 | which mysql |
就会打印出 mysql
这个命令的所在目录:
1 | /usr/local/mysql/bin/mysql |
Homebrew
Homebrew
是强大的终端工具,用来管理很多在终端下操作的程序以及软件包的依赖,对于经常需要使用终端应用的程序员来说,是必不可少的第一步!
打开终端,安装命令:
1 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
上面命令,我希望大家不只是复制粘贴运行就完事,更希望大家能了解更多:
/usr/bin/ruby -e
:使用ruby环境运行curl -fsSL
:使用curl命令下载
了解了这2点,那么ruby
环境、curl
命令和参数的作用,相信大家就可以自行搜索深入学习,而不是片面过一次复制粘贴运行
,达到学以致用,这才是真学习
!
brew
一些常用命令:
1 | brew search |
brew doctor
命令可以检查 brew 运行是否正常,xxx doctor 很多命令工具都有,用来帮助小白新手检查和解决命令环境无法正常使用时的错误提示和指导。
brew
命令就不多说了,类似linux系统下的apt-get
,程序员都要从入门到精通啊~
Homebrew Cask
使用 Homebrew 可以非常方便的安装命令行程序,而通过 Homebrew Cask 则可以优雅、简单、快速的安装和管理 macOS 图形界面(GUI)程序(.dmg/.pkg),比如 Google Chrome 、Atom 和 Sublime Text 等。
安装 macOS 图形界面程序:
1 | brew cask install google-chrome |
到底有多方便,看下面这个官方的示例图就明白:
Homebrew Cask 先下载软件后解压到统一的目录中(/opt/homebrew-cask/Caskroom
),然后再软链到 ~/Applications/
目录下,省掉了自己下载、解压、拖拽安装等步骤,同样的,卸载相当简单和干净,一句命令就可以完成。
更新 Homebrew Cask 命令:
1 | brew update && brew upgrade brew-cask && brew cleanup |
HomeBrew Cask 没有更新软件的命令,所以如果要更新软件得先卸载再安装:
1 | brew cask uninstall APP && brew cask install APP |
Bash(Zsh)
zsh是一种shell
语言,兼容bash
,提供强大的命令行功能,比如tab补全,自动纠错功能等。
安装 zsh
:
1 | brew install zsh |
使用 oh-my-zsh
可以将zsh变得更加强大而灵巧:
1 | sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" |
另外可以安装 oh-my-zsh 一些插件,比如实现自动跳转:autojump、fasd、命令行自动提示zsh-autosuggestions
个性化配置,包括别名,都在目录 ~/.zshrc
下,需要深入教程的大家自动网上搜索啊。这里只是配置入门,修行还是看个人啊!
创建别名的示例:
1 | vim ~/.zshrc //vim 命令下面会说到 |
Node/npm
Node(Node.js)
是一个基于 Chrome V8 引擎、能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。Node.js
使用了一个事件驱动、非阻塞式I/O 的模型,使其轻量又高效。
1 | brew install node |
Node.js
与 npm
捆绑在一起,因此它会与 npm
一起安装。npm
即 node package manager,用来搜索、下载、管理 Node.js 相关的套件。
注:npm 是 JavaScript 的程序包管理器。它是 JavaScript 运行时环境 Node.js 的默认包管理器。
npm
一些常用命令:
1 | npm help //查看npm帮助 |
Node
除了用于前端/后台开发外,react native
、Hexo
博客也是依赖 Node
环境,更多的 Node
知识,我也还在努力学习中,后续有新认识,再回来更新啊!就不误人子弟啦~
vi(vim)
vi
是 visual interface
的缩写,vim
是 vi IMproved
(增强版的vi)。vi(vim) 命令繁多,但是如果灵活使用之后将会大大提高效率!从此不用鼠标不是梦!
vi(vim)是 Unix/Linux 终端自带的,所以 macOS 也自带。那么 vi(vim) 要配置什么呢?
就是大家觉得 vi(vim) 好用,但是,还认为可以更好用,所以,有很多的插件(用更少的按键,实现更多更合理的功能),例如实现文件浏览(NERD Tree),代码补全(YouCompleteMe),语法检查(syntastic),文件模糊搜索(ctrlp),显示vim状态栏(Vim Powerline),主题颜色(Molokai),显示文件结构(tagbar)等多种功能
vi(vim) 操作的快捷键教程可以参考楼主之前的文章:vi(vim)快捷键小记
vim 设置编辑文本语法高亮:
1 | vim ~/.vimrc |
更多vi的知识,大家自行搜索学习啊~
Git
git
的作用就不多说了,如果是刚毕业的新手入门,建议自行学习,对你的开发帮助一定非常大~
另外,如果安装了Xcode,默认会安装git
,如果没有安装Xcode,可以自己安装:
git
安装:
1 | brew install git |
git
基本配置:
1 | git config --global user.name "iHTCboy" |
用户的git配置文件目录: ~/.gitconfig
- tig 高亮美化, 让 git 命令行可视化
git
更多命令教程,大家自行搜索,如果要达到熟悉,还是要多实践练习啊~ 当然,原理也是必不可少的一步!
Python3
python3 是未来,所以还是要安装使用和开发的!
1 | brew install python3 |
查看 python3
的版本:
1 | python3 --version |
python
能做的事件就不多说了,人工智能,机器学习,大数据分析,爬虫,web,可以说python
已经渗透到各个地方~
MySQL
安装:
1 | brew install mysql |
启动守护程序:
1 | brew services start mysql |
Jenkins
以后回来补充
CocoaPods
CocoaPods
是iOS的包管理工具之一,类似于 java 的Maven
、Node.js 的 npm
、Python 的 pip
、PHP 的 Composer
、Ruby 的 gem
。
CocoaPods
基于Ruby
开发的,因此安装CocoaPods
前需要先安装Ruby
环境。而前面提到macOS系统默认自带Ruby环境! 所以,直接用 Ruby 的 gem
环境安装吧~
1.安装命令:
1 | sudo gem install cocoapods |
2.配置CocoaPods
环境,安装Specs
库,由于库很大(几百MB),需要一些时间和网速:
1 | pod setup |
pod
一些常用命令:
1 | pod --version //pod版本 |
更多使用说明,自行搜索啊~
Carthage
我们使用包管理,就是为了集成第三方库的时候更加方便,迅速。有时候iOS包管理工具 CocoaPods
处理因包管理而导致的错误又浪费了我们很多时间。而 Carthage
使用的是一种非侵入性的哲学,Carthage
不会对我们的项目结构进行任何修改,更不多创建 workspace
。它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使用 xcodebuild
构建成 framework
文件。
另外 Carthage
除了非侵入性,它还是去中心化的,它的包管理不像 CocoaPods
那样,有一个**中心服务器(cocoapods.org)**,来管理各个包的元信息,而是依赖于每个第三方库自己的源地址,比如 Github
。
安装:
1 | brew install carthage |
carthage
一些常用命令:
1 | carthage version //查看版本 |
更多使用说明,自行搜索啊~
包管理工具
Package client | Language | Package format | Description |
---|---|---|---|
npm | JavaScript | package.json | Node package manager |
gem | Ruby | Gemfile | RubyGems package manager |
mvn | Java | pom.xml | Apache Maven project management and comprehension tool |
gradle | Java | build.gradle or build.gradle.kts |
Gradle build automation tool for Java |
docker | N/A | Dockerfile | Docker container management platform |
nuget | .NET | nupkg | NuGet package management for .NET |
pip | Python | requirements.txt | Python package manager |
Composer | PHP | composer.json | PHP package manager |
pod | ObjC/Swift | Podfile | Cocoa application package manager |
carthage | ObjC/Swift | Cartfile | Cocoa app package manager |
3、其它环境配置和插件
Finder(访达)预览插件
用于Finder
快速显示文件的内容,这个 GitHub 专门收集了特别的Finder
插件:
https://github.com/sindresorhus/quick-look-plugins
安装命令:
1 | brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlimagesize webpquicklook suspicious-package quicklookase qlvideo provisionql quicklookapk |
其中特别的插件说明,详细看quick-look-plugins:
- qlcolorcode: 代码文件预览时高亮
- qlstephen: 以纯文本的形式预览无拓展名或者未知拓展名的文件
- qlmarkdown: 预览渲染后的 markdown 文件
- quicklook-json: 预览格式化后的 json 文件
- ProvisionQL: ipa文件信息展示
- QuickLookAPK:apk文件信息展示
用图片来说明一下作用,一看就懂:
QuickLookJSON:
QLMarkdown:
ProvisionQL:
QuickLookAPK:
Hexo 博客
1 | npm install -g hexo |
具体hexo
使用,可能参考之前的文章:Hexo搭建Github Pages博客填坑教程
建议每一个技术人员都搭建自己一个博客,依靠GitHub
、oschina
或Coding.net
提供的免费服务,完全没问题,如果需要自己的域名,购买一个域名也就几百元就10年啦。程序员要多总结。比如你学习了一个技术或做了一个项目,没有一点记录,没有一点总结,没有一点思考,那么你能有收获吗???
Gitbook 博客
来到2020年,Gitbook 博客部署更加简单和快捷。
博主的Gitbook:iHTCboy 学习笔记
- 安装环境命令:
$ npm install gitbook-cli -g
- 在当前文件夹中,初始化一本书籍:
gitbook init
- 在当前文件夹中,生成 _book 目录下创建 HTML 静态网页版电子书:
gitbook build
- 本地预览:
gitbook serve
- 查看帮助:
gitbook -h
- 在根目录的
book.json
下编辑即可,可以在 gitbook 项目的根目录使用gitbook install ./
来自动安装设置的插件。
- Gitbook使用入门
- 如何优雅地使用 Gitbook | Xuan’s blog
- 推荐12个实用的gitbook插件 - 掘金
- gitbook常用的插件 - SegmentFault
- 记录GitBook的一些配置及插件信息 - 书栈网
- 使用GitBook编写项目文档 | 飞污熊博客
- GitBook源文件发布到gh-pages - 简书
- Gitbook踩坑记录III - 知乎
Safari Extensions
Safari 浏览器的插件
Apple - Safari - Safari Extensions Gallery
为什么会用Safari
? 不推荐 Google Chrome
? 一定很多人有这样的疑问,其实, Safari
作为官方浏览器,就像Windows
的 IE
/Edge
一样,自己的儿子,一定更好用。我认为有2点吧,
- 1.Safari 可以完美同步打开的页面、书签、历史到其它
macOS/iOS
设备,无缝的。 - 2.Safari 的兼容性和性能,确实是比其它的要好,不管你认不认同-。-。(虽然前端页面兼容开发工程师会踩坑多~)
我这里就推荐几个常用的:
另外,macOS 10.14 后,苹果 Safari 浏览器不再支持不安全的扩展。只可以在 App Store 或 Safari 浏览器扩展库中查找经过 Apple 审核的更新扩展。
Finder 访达
很多人可能跟我一样,不喜欢用第三方的文件管理应用,一般苹果自带能用的,我都不会使用第三方,一方便迁移成本高,另一方面系统自带的稳定性和内存占用都是做的较好。
对我来说,经常的痛点是,没有绝对路径显示!!!在 macOS 系统,可以通过 option + command + P
在Finder底部显示完整的当前路径和跳转。其它,还有一个骚操作,就是显示在标题栏:
- 在 Finder 标题栏显示完整路径
1 | defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES;killall Finder |
- 还原
1 | defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder |
效果如下:
报错:无法打开已损坏的安装包
遇到打开自己下载的安装包失败时,可执行下面命令解决:
1 | sudo spctl --master-disable |
macOS 10.14 后,苹果对安全和隐私保护这一块更加严厉,当然,事件有好的一面,也有不好(不方便)的一面,大家智者见智,我一般是把这个命令当成别名:
1 | alias macss="sudo spctl --master-disable" |
这里在终端输入 macss
就可以啦~
macOS Catalina 10.15 第三方软件文件提示已损坏解决办法
macOS 10.15 后,苹果加强了对第三方渠道下载软件的证书校验,对于无证书的应用,不允许打开。可以试试使用下面命令:
1 | sudo xattr -r -d com.apple.quarantine xxx.app |
终端命令
在终端和vim下,程序员的效率一定提升不少,但对于新手,下面也列出一些重要的终端命令,方便大家重点掌握,更多就大家自动搜索了:
命令 | 作用 |
---|---|
say xxx | 读单词 |
pwd | 显示当前目录的路径名 |
ls | 查看当前目录下的文件 |
ls -al | 查看所有文件,包含隐藏文件 |
clear | 清除屏幕或窗口内容 |
cd /xx/yy | 跳转到目录/xx/yy |
cd .. | 返回上一级目录 |
cd / | 返回根目录 |
cd - | 返回到上一步操作目录 |
cat xx | 查看xx文件的内容 |
man xx | 查看命令的详细帮助,比如 mac ls |
killall Finder | 重启Finder |
touch xxx | 创建xxx文件 |
mkdir xxx | 创建xxx文件夹 |
rm xxx | 删除文件 |
rm -rf xxxx | 删除文件夹 |
defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder |
查看隐藏文件 |
defaults write com.apple.finder AppleShowAllFiles FALSE killall Finder |
隐藏文件 |
↑ ↓ | 读取上一条或者下一条的命令记录 |
sudo vi /private/etc/hosts | 编辑hosts文件 |
还有非常多命令,大家可以自行搜索,比如
- ccat 高亮 cat 内容
总结
macOS的开发环境大概就讲到这些,如果大家还有不清楚的,网上搜索已经一大片,这里只是总结和归纳一下,让大家有一个系统性的了解和学习,只有大家系统性的全面了解,才能深入每一个知识点学习。这也是本文的目的,授于鱼,不如授于渔,希望大家努力学习~
楼主目前接触前端H5和后台开发时间不长,暂时不知道它们需要在macOS配置一些什么特别的环境,这些后续在补充,下面引用的参考,大家有时间一定要看看哦。这一篇就先这样~ 大家也可以留言反馈。国庆快乐~
参考
- 程序员的macOS系列:精选Mac App
- npm
- The missing package manager for macOS — The missing package manager for macOS
- vi(vim)快捷键小记 | iHTCboy’s blog
- Vim配置、插件和使用技巧 - 简书
- Hexo搭建Github Pages博客填坑教程 | iHTCboy’s blog
- 让你的iTerm更Geek! | iHTCboy’s blog
- Git常用命令备忘 - stormzhang
- EffectiveMac - bestswifter
- Oh My Zsh - a delightful & open source framework for Z-Shell
- zsh | 程序员的自我修养
- tig
- ccat
- sindresorhus/quick-look-plugins: List of useful Quick Look plugins for developers
- CocoaPods.org
- Carthage/Carthage: A simple, decentralized dependency manager for Cocoa
- Carthage 包管理工具,另一种敏捷轻快的 iOS & MAC 开发体验 - SwiftCafe 享受代码的乐趣
- Apple - Safari - Safari Extensions Gallery
- About GitHub Packages - GitHub Help
- Homebrew - Mac 开发配置手册 - 极客学院Wiki
- Homebrew/homebrew-cask: 🍻 A CLI workflow for the administration of macOS applications distributed as binaries
- 如有疑问,欢迎在评论区一起讨论!
- 如有不正确的地方,欢迎指导!
> 注:本文首发于 [iHTCboy's blog](https://iHTCboy.com),如若转载,请注来源