程序员的macOS系列:Mac开发环境配置

1、前言

最近在写《程序员的macOS系列》文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS开发环境,系统默认自带ruby、python2、gcc、g++、bash等环境,并且因为macOS是以Unix为基础,所以有传统Unix/Linux的特性,很适合高效少折腾的开发者。所以,本文主要讲解一些通用开发环境配置,主要是以必须和提高效率为主!也没有什么高深介绍,当然,由于楼主目前主职是iOS,所以其它的开发环境接触不多(谦虚),当前大家要学以至用,环境搭建都是相似的,熟悉了就不是问题。文章短短不可能详尽也,要学好每一个点也不是那么简单,惟有抛砖引玉,希望大家努力提高!

  • 程序员的macOS系列:精选Mac App
  • 程序员的macOS系列:Mac开发环境配置
  • 程序员的macOS系列:高效Alfred进阶

目前计划写《程序员的macOS系列》三篇,后续有想法在更新吧~

2、开发环境配置

需要提前说明一下,本文不使用代理源,如果命令无效,大家记得一下啊。另外,如果是通过软件包安装的方式,就不在这里列举了,比如Java的安装、MySQL的安装这些自行搜索~

Homebrew

Homebrew 是强大的终端工具,用来管理很多在终端下操作的程序以及软件包的依赖,对于经常需要使用终端应用的程序员来说,是必不可少的第一步!

打开终端,安装命令:

/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 一些常用命令:

brew search
brew info
brew install
brew remove
brew update
brew upgrade

brew 命令就不多说了,类似linux系统下的apt-get,程序员都要从入门到精通啊~

命令行工具(Command Line Tools)

如果不是开发 iOSmacOS 可能就没有必要安装Xcode,但是可能需要安装一下Xcode 命令行工具,因为很多环境和软件都会使用到和依赖它(下面说到的Carthagepython3就依赖它)。

xcode-select --install

xcode-select 这个命令还可以切换xcode build的版本(目录),可以 xcode-select --help 查看更多。

这里提醒一下新手,终端的命令,如果记得命令名字,不记得用法,可以使用:

xxx --help

也可以用:

man xxx

--helpman 命令的区别,是man命令是详细全面的介绍。

Bash(Zsh)

zsh是一种shell语言,兼容bash,提供强大的命令行功能,比如tab补全,自动纠错功能等。

安装 zsh

brew install zsh

使用 oh-my-zsh 可以将zsh变得更加强大而灵巧:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

另外可以安装 oh-my-zsh 一些插件,比如实现自动跳转:autojump、fasd

个性化配置,包括别名,都在目录 ~/.zshrc 下,需要深入教程的大家自动网上搜索啊。这里只是配置入门,修行还是看个人啊!

创建别名的示例:

vim ~/.zshrc //vim 命令下面会说到
alias myblog='cd /Users/HTC/Documents/iHTCBlog' //快速到达指定目录
alias st='open -a "Sublime Text"' //打开某个app

Node/npm

Node(Node.js) 是一个基于Chrome V8 引擎、能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式I/O 的模型,使其轻量又高效。

brew install node

安装 Node 后,也会自动安装npm工具。npm 即 node package manager,用来搜索、下载、管理 Node.js 相关的套件。

npm 一些常用命令:

npm help //查看npm帮助
npm find //查找组件
npm install //安装组件
npm remove //删除组件
npm update //更新组件

Node 除了用于前端/后台开发外,react nativeHexo博客也是依赖 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)快捷键小记

更多vi的知识,大家自行搜索学习啊~

Git

git的作用就不多说了,如果是刚毕业的新手入门,建议自行学习,对你的开发帮助一定非常大~

git 安装:

brew install git

git基本配置:

git config --global user.name "iHTCboy"
git config --global user.email "[email protected]"
git config --global color.ui true
git config --global alias.co checkout  # 别名
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "vim"  # 设置Editor使用vim
git config --global core.quotepath false # 设置显示中文文件名

用户的git配置文件目录: ~/.gitconfig

git 更多命令教程,大家自行搜索,如果要达到熟悉,还是要多实践练习啊~ 当然,原理也是必不可少的一步!

python3

python3是未来,所以还是要安装使用和开发的!

brew install python3

查看 python3的版本:

python3 --version

python 能做的事件就不多说了,人工智能,机器学习,大数据分析,爬虫,web,可以说python已经渗透到各个地方~

jenkins

暂时留存,日后回来写

CocoaPods

CocoaPods 是iOS的包管理工具,类似于 java 的Maven、Node.js 的 npm、Python 的 pip、Ruby 的 gem

CocoaPods 基于Ruby开发的,因此安装CocoaPods前需要先安装Ruby环境。而前面提到macOS系统默认自带Ruby环境! 所以,直接用 Ruby 的 gem 环境安装吧~

1.安装命令:

sudo gem install cocoapods

2.配置CocoaPods环境,安装Specs库,由于库很大(几百MB),需要一些时间和网速:

pod setup

pod 一些常用命令:

pod --version //pod版本
pod init //创建Podfile文件
pod install //项目pod安装
pod update //项目pod更新
pod search //搜索库

更多使用说明,自行搜索啊~

Carthage

我们使用包管理,就是为了集成第三方库的时候更加方便,迅速。有时候 CocoaPods处理因包管理而导致的错误又浪费了我们很多时间。而 Carthage 使用的是一种非侵入性的哲学,Carthage 不会对我们的项目结构进行任何修改,更不多创建 workspace。它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使用 xcodebuild 构建成 framework 文件。

另外 Carthage 除了非侵入性,它还是去中心化的,它的包管理不像 CocoaPods 那样,有一个中心服务器(cocoapods.org),来管理各个包的元信息,而是依赖于每个第三方库自己的源地址,比如 Github

安装:

brew install carthage

carthage 一些常用命令:

carthage version //查看版本
brew upgrade carthage //升级carthage
carthage update //安装或更新项目的库

更多使用说明,自行搜索啊~

3、其它环境配置和插件

Finder(访达)预览插件

用于Finder快速显示文件的内容,这个Github专门收集了特别的Finder插件:
https://github.com/sindresorhus/quick-look-plugins

安装命令:

brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlimagesize webpquicklook suspicious-package quicklookase qlvideo

其中特别的插件说明,详细看quick-look-plugins:

  • qlcolorcode: 代码文件预览时高亮
  • qlstephen: 以纯文本的形式预览无拓展名或者未知拓展名的文件
  • qlmarkdown: 预览渲染后的 markdown 文件
  • quicklook-json: 预览格式化后的 json 文件
  • ProvisionQL: ipa文件信息展示
  • QuickLookAPK:apk文件信息展示

用图片来说明一下作用,一看就懂:
QuickLookJSON:


程序员的macOS系列:Mac开发环境配置_第1张图片
QuickLookJSON.png

QLMarkdown:


程序员的macOS系列:Mac开发环境配置_第2张图片
QLMarkdown.png

ProvisionQL:


程序员的macOS系列:Mac开发环境配置_第3张图片
ProvisionQL.png

QuickLookAPK:


程序员的macOS系列:Mac开发环境配置_第4张图片
QuickLookAPK.png

Hexo 博客

npm install -g hexo

具体hexo使用,可能参考之前的文章:Hexo搭建Github Pages博客填坑教程

建议每一个技术人员都搭建自己一个博客,依靠GitHuboschinaCoding.net提供的免费服务,完全没问题,如果需要自己的域名,购买一个域名也就几百元就10年啦。程序员要多总结。比如你学习了一个技术或做了一个项目,没有一点记录,没有一点总结,没有一点思考,那么你能有收获吗???

Safari Extensions

Safari 浏览器的插件
Apple - Safari - Safari Extensions Gallery

为什么会用Safari? 不推荐 Google Chrome ? 一定很多人有这样的疑问,其实, Safari 作为官方浏览器,就像WindowsIE/Edge一样,自己的儿子,一定更好用。我认为有2点吧,

  • 1.Safari 可以完美同步打开的页面、书签、历史到其它macOS/iOS设备,无缝的。
  • 2.Safari 的兼容性和性能,确实是比其它的要好,不管你认不认。(虽然前端页面兼容开发工程师会踩坑多~)

我这里就推荐几个常用的:

  • Translate
  • Evernote Web Clipper
  • webQR
  • Search Alias
  • Awesome Screenshot

另外,macOS 10.14 后,苹果 Safari 浏览器不再支持不安全的扩展。只可以在 App Store 或 Safari 浏览器扩展库中查找经过 Apple 审核的更新扩展。

报错:无法打开已损坏的安装包

遇到打开自己下载的安装包失败时,可执行下面命令解决:

sudo spctl --master-disable

macOS 10.14 后,苹果对安全和隐私保护这一块更加严厉,当然,事件有好的一面,也有不好(不方便)的一面,大家智者见智,我一般是把这个命令当成别名:

alias macss="sudo spctl --master-disable"

这里在终端输入 macss 就可以啦~

终端命令

在终端和vim下,程序员的效率一定提升不少,但对于新手,下面也列出一些重要的终端命令,方便大家重点掌握,更多就大家自动搜索了:

命令 作用
say xxx 读单词
pwd 显示当前目录的路径名
ls 查看当前目录下的文件
ls -al 查看所有文件,包含隐藏文件
clear 清除屏幕或窗口内容
cd /xx/yy 跳转到目录/xx/yy
cd .. 返回上一级目录
cd / 返回根目录
cd - 返回到上一步操作目录
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文件

总结

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 | 程序员的自我修养
  • 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


  • 如有疑问,欢迎在评论区一起讨论!
  • 如有不正确的地方,欢迎指导!


注:本文首发于 iHTCboy's blog,如若转载,请注来源

你可能感兴趣的:(程序员的macOS系列:Mac开发环境配置)