如何优雅地使用 macOS

运维技术 jikk345 1266℃ 0评论

0x00 前言

谈及 macOS , 很多人喜欢和 Win 比个高下。在我看来, Win 虽在非编程类生态和易用性比 Mac 要好很多,可专业人士之所以专业是因为他能挑选适合的武器发挥最大的效用,不是吗?

适合自己的,能让自己用最大效率生产或者是娱乐的,才是更好的工具。

Win 的优点如下:

  • 优良的兼容性。
  • 由于出自于什么都爱做的微软公司,从整体来说,VS,.NET, 游戏性,兼容性,性能,新手上手速度来说,都是遥遥领先 Mac 的。

Win 的缺点如下:

  • 微软的战线实在是拉的太长,什么都想做,什么都想垄断。于是,与之服务密切相关的公司也就受到了 MS 的牵制。这对大公司来说,几乎是不能够忍受的行为。
  • 糟糕的终端环境(DOS)和无法与、*nux 世界的脚本友好相处使得系统的可定制性和进阶操作性大大降低。
  • 虽然有 Everything,TotalCMD,AHK 这种神级辅助工具可以满足定制要求。但由于过高的学习成本(哈哈哈,混乱也是学习成本之一,AHK 语言真的很混乱啊,TC 实在是太不人性化了)。
  • Python 的环境配置实在是太头疼了

Win 的缺点就是我切到 Mac 上面的原因。

macOS 的优点如下:

  • Mac 的好在于终端和美观的图形的结合。适合不是微软技术栈和重度 Office 的用户。
  • *nux 应用的方便以及非常容易与脚本文件配合出强大的组合技能。
  • 反观 Win 上,则这种组合技能则在环境配置上和操作流畅度上差了很多。

macOS 的缺点如下:

  • 娱乐项目实在是少的要死。Metal 和 DirectX 相差不是一点点。
  • 软件和有些少的不只一点点。

本文从下面几处入手,分别从下面几个角度介绍了 macOS

▼ 如何优雅地使用 macOS
    0x00 前言
▼ 0x01 系统内置
    1.1 系统设置
    1.2 自带软件
    1.3 快捷键与触摸板
▼ 0x02 必备软件
    2.1 必备软件 之 日常必备
    ▼ 2.2 必备软件 之 开发必备
        2.2.1 GUI 应用
        2.2.2 CMD 命令
    ▼ 2.3 必备软件 之 编程语言
        2.3.1 Shell
        2.3.2 Python
▼ 0x03 踩坑史
    ▼ 3.1 日常类
        01. 时间机器无法完成备份
        02. 下载站的软件包显示损坏
    ▼ 3.2 编程类
        01. homebrew 的与 Python 的问题
    0xEE 参考链接

0x01 系统内置1.1 系统设置

General

  • 默认浏览器 : Google Chrome

Decktop & Screen Saver

  • 桌面 / 屏保

Language & Region

  • 语言
  • 地区设置

Security & Privacy

  • 防火墙

Sharing

  • Remote Control – SSH

Trackpad

  • 设置手势
  • 1.2 自带软件

    • iTunes
    • iPhoto
    • iMessage
    • 1.3 快捷键与触摸板

      • cmd 为 command 按键,通常情况下为所有桌面程序通用性的快捷键。
      • ctrl ,通常情况下是针对程序的功能进行加强,并且此功能往往是非 cmd 类(窗口操作,选择,复制粘贴等等)操作。
      • shift 按键通常用于加强操作。一般会让操作更进一步 or 相反操作。
      • cmd+tab =~ alt+tab 程序之间的切换
      • cmd+` 应用内窗口切换
      • cmd+h 窗口 hide
      • cmd+m 窗口 minimize
      • cmd+n 新建窗口
      • cmd+o 打开
      • cmd+s 保存
      • cmd+shift+s 另存为
      • cmd+p 打印 print
      • cmd+w 关闭
      • cmd+q quit
      • cmd+a select all
      • cmd+i show info
      • cmd+n create a new folder
      • cmd+f search
      • cmd+c copy
      • cmd+v paste
      • cmd+delete 删除选中文件
      • cmd+shift+delete 清空回收站
      • cmd+= 放大
      • cmd+- 缩小
      • cmd+t 新建选项卡
      • cmd+r 刷新
      • cmd+shift+3 截取整个屏幕
      • cmd+shift+4 截取选择区域
      • cmd+shift+4+SPACE 截取选择窗口
      • cmd+ 鼠标点击 -> 选中不连续文件
      • control+ 鼠标点击 -> 相当于 win 中右键点击
      • fn+left home
      • fn+right end
      • fn+up pageup
      • fn+down pagedown

      触摸板手势:

      • 点击
        • 单指点击 – 单击
        • 单指滑动 – 滑动鼠标光标
        • 双指点击 – 相当于 Windows 的鼠标右键
        • 三指点击 – 划词查找

      • 滑动与缩放
        • 双指上下滑动 – 滚动
        • 双指缩放 – 与 Android 上图片缩放一致
        • 双指双击 – 只能缩放
        • 双指旋转 – 旋转
        • 双指左右滑动 – 应用内切换网页
        • 双指头从右往左
        • 三指头左右滑动 – 全屏幕 App 切换
        • 大拇指和食中无名缩放 – launchpad

      0x02 必备软件2.1 必备软件 之 日常必备

      • 启动器
        • Alfred 3
        • SpotLight

      • 网络工具
        • Chrome

      • 社交通讯
        • QQ
        • WeXin

      • 图形图像
        • Adobe PhotoShop CC
        • Adobe PhotoShop LightRoom
        • Sketch
        • Annotate
        • Camtasia 2
        • Snagit
        • ScreenFlow
        • Final Cut Pro
        • MPlayerX
        • QuickTime
        • iQiyi
        • NeteaseMusic
        • IINA

      • 办公软件
        • 欧陆词典
        • Calibre
        • Wiznote
        • PDF Reader
        • iBook
        • Microsoft Office
        • Work 套件:包括 pages, numbers, keynote
        • XMind
        • Airmail
        • TeamViewer
        • OmniFocus
        • OmniGraffle
        • OmniOutline
        • OmniPlan

      • 系统软件
        • 搜狗输入法
        • AppCleaner
        • CleanMyMac
        • VMWare
        • BetterZip
        • Caffeine / Amphetamine
        • PopClip
        • HandShaker
        • AirDroid

      2.2 必备软件 之 开发必备2.2.1 GUI 应用

      • 终端用户
        • iTerm2

      • IDE
        • PyCharm
        • IntellijIDEA
        • WebStorm

      • 编辑器
        • MacVim 配合 C-VIM
        • Sublime Text 3

      • 后台组件
        • MySQL
        • PostgreSQL
        • Redis
        • MongoDB

      • 数据库管理软件
        • Navicat
        • Datagrip
        • RoboMongo
        • RDM
        • Dash

      • 网络工具
        • SS QT
        • Charles, Wireshark

      • Chrome
        • Exporter : 百度云,需要离线安装
        • AdBlock : 广告拦截
        • AutoPatchWork : 链接下一页
        • Axure RP Extension : Axure
        • CSSViewer
        • Dream Afar New Tab
        • JSON Editor
        • JSON View
        • Octotree
        • One-Click Extensions Manager
        • Proxy SwitchyOmega
        • React Developer Tools
        • Redux DevTools
        • Vue.js devtools
        • Vimium

      • 代码仓库
        • Github Desktop
        • SourceTree

      • GIS 相关
        • ArcGIS
        • QGIS
        • PostgreSQL + PostGIS

      2.2.2 CMD 命令

    • SpotLight -> Alfred 3
  • 滚轮 Scrool Direction : Natural
if test ! $(which brew); then
    echo "Installing homebrew..."
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi

# Make sure we’re using the latest Homebrew.
brew update

# Upgrade any already-installed formulae.
brew upgrade --all

# Install GNU core utilities (those that come with OS X are outdated).
# Don’t forget to add `$(brew --prefix coreutils)/libexec/gnubin` to `$PATH`.
brew install coreutils
sudo ln -s /usr/local/bin/gsha256sum /usr/local/bin/sha256sum

# Install some other useful utilities like `sponge`.
brew install moreutils
# Install GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed.
brew install findutils
# Install GNU `sed`, overwriting the built-in `sed`.
brew install gnu-sed --with-default-names
# Install Bash 4.
brew install bash
brew tap homebrew/versions
brew install bash-completion2
# We installed the new shell, now we have to activate it
echo "Adding the newly installed shell to the list of allowed shells"
# Prompts for password
sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'
# Change to the new shell, prompts for password
chsh -s /usr/local/bin/bash

# Install `wget` with IRI support.
brew install wget --with-iri

# Install RingoJS and Narwhal.
# Note that the order in which these are installed is important;
# see http://git.io/brew-narwhal-ringo.
brew install ringojs
brew install narwhal

# Install Python
brew install python
brew install python3

# Install ruby-build and rbenv
brew install ruby-build
brew install rbenv
LINE='eval "$(rbenv init -)"'
grep -q "$LINE" ~/.extra || echo "$LINE" >> ~/.extra

# Install more recent versions of some OS X tools.
brew install vim --override-system-vi
brew install homebrew/dupes/grep
brew install homebrew/dupes/openssh
brew install homebrew/dupes/screen
brew install homebrew/php/php55 --with-gmp

# Install font tools.
brew tap bramstein/webfonttools
brew install sfnt2woff
brew install sfnt2woff-zopfli
brew install woff2

# Install some CTF tools; see https://github.com/ctfs/write-ups.
brew install aircrack-ng
brew install bfg
brew install binutils
brew install binwalk
brew install cifer
brew install dex2jar
brew install dns2tcp
brew install fcrackzip
brew install foremost
brew install hashpump
brew install hydra
brew install john
brew install knock
brew install netpbm
brew install nmap
brew install pngcheck
brew install socat
brew install sqlmap
brew install tcpflow
brew install tcpreplay
brew install tcptrace
brew install ucspi-tcp # `tcpserver` etc.
brew install homebrew/x11/xpdf
brew install xz

# Install other useful binaries.
brew install ack
brew install dark-mode
#brew install exiv2
brew install git
brew install git-lfs
brew install git-flow
brew install git-extras
brew install hub
brew install imagemagick --with-webp
brew install lua
brew install lynx
brew install p7zip
brew install pigz
brew install pv
brew install rename
brew install rhino
brew install speedtest_cli
brew install ssh-copy-id
brew install tree
brew install webkit2png
brew install zopfli
brew install pkg-config libffi
brew install pandoc

# Lxml and Libxslt
brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

# Install Cask
brew install caskroom/cask/brew-cask
brew tap caskroom/versions

# aerial 屏保
# https://github.com/JohnCoates/Aerial
brew cask install aerial
# https://github.com/sindresorhus/quick-look-plugins
brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv betterzipql qlimagesize webpquicklook suspicious-package quicklookase qlvideo

brew update && brew upgrade --all && brew cleanup && brew prune

2.3 必备软件 之 编程语言2.3.1 Shell

MAC 使用的大多命令行工具来自于 FreeBSD , 并不是来自 GNU , 所以很多命令会与常规的 linux 命令大同小异。

而本人喜欢 GNU 系软件。

Shell 脚本可参考我的笔记。 第九节如何优雅的使用 Shell_

2.3.2 Python

笔者虽然也接触过很多语言,都是粗浅一过,但无一精通,唯一可以稍微谈谈的就是 Python 语言。

当然,安装完毕自然是可以参考一下我的 第三节 Pythonista 的工具集_

git clone https://github.com/yyuu/pyenv.git ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

# 接着另开终端
# 不喜写兼容代码,所有代码均向 3.5+ 靠拢
v=3.5.2|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
v=3.6.0|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
v=2.7.11|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
# 可以先用迅雷把 官网的 Anaconda3-4.4.0-MacOSX-x86_64.sh 下载下来,然后
mv Anaconda3-4.4.0-MacOSX-x86_64.sh ~/.pyenv/cache/ && pyenv install anaconda3-4.4.0

# 设置 Global Python 为 2.7.11, 备注:尽量不要把 Py3 设置为全局,否则由于 Homebrew 本身有一些依赖是依赖于 Py2 的,这样容易出现一些奇怪的问题。
pyenv global 2.7.11
pip install -i https://pypi.doubanio.com/simple requests
# 下面这个是用于安装基本的代码补全功能
pip install -i https://pypi.doubanio.com/simple --upgrade "jedi>=0.9.0" "json-rpc>=1.8.1" "service_factory>=0.1.5" flake8 pytest autoflake hy

# 创建最常用 Py3 虚拟环境
pyenv virtualenv 3.5.2 py3-daily
pyenv activate py3-daily
pip install -i https://pypi.doubanio.com/simple requests
pip install -i https://pypi.doubanio.com/simple beatutifulsoup4
pip install -i https://pypi.doubanio.com/simple ipython[notebook]
pip install -i https://pypi.doubanio.com/simple jupyter
# 下面这个是用于安装基本的代码补全功能
pip install -i https://pypi.doubanio.com/simple --upgrade "jedi>=0.9.0" "json-rpc>=1.8.1" "service_factory>=0.1.5" flake8 pytest autoflake hy

# 创建 Anaconda 的数据科学 AI 环境
pyenv virtualenv anaconda3-4.4.0 py3-ai
pyenv activate anaconda3-4.4.0/envs/py3-ai
pyenv deactivate

0x03 踩坑史3.1 日常类01. 时间机器无法完成备份

我有定期备份的习惯,在一次备份中,意外的发现怎么备份都无法备份完毕,经过几次测试:

  1. 我首先猜测是硬盘问题,换了一块硬盘,问题依旧。
  2. 复制了几个大文件,感觉也不太像是接口接触不良的问题。
  3. 02. 下载站的软件包显示损坏

    有的时候并不是软件损坏,而是 macOS 的安全配置中配置关掉了未识别出的 App

    在终端中开启这个选项,并在安全与隐私处点上 anywhere 即可。

  4. 我认为可能是文件数量过多导致的问题。于是删除掉 node_module 后再次备份,备份成功。当然,这也有一定概率是误打误撞。毕竟从概率学上讲,坏掉的钟还能一天有两次时间是对的呢。
sudo spctl --master-disable

3.2 编程类01. homebrew 的与 Python 的问题

在 Python 中执行下面的代码的时候总是报错:

ip = socket.gethostbyname(socket.gethostname())
# socket.gaierror: [Errno 8] nodename nor servname provided, or not known

# 最后发现是因为设置主机名没有设置好
sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
dscacheutil -flushcache
# 然后重启电脑即可

如果本机安装了 Homebrew 如果后面使用 PyEnv 或者 Anaconda 并且设置当前环境为默认 Python 为 Python3(不建议这么搞), 但是如果偏偏要把默认的 Python 版本换成 Python3, 会弹出一些 pythonpath 的问题,执行下面命令即可暂时屏蔽这个问题,但是没有隐患则不清楚。

mv /usr/local/lib/python2.7/site-packages/sitecustomize.py /usr/local/lib/python2.7/site-packages/sitecustomize.py.back


转载请注明:清麟博客 » 如何优雅地使用 macOS

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址