Mac 配置终端环境

Mac 配置终端开发环境


概述

作为一个服务端开发人员基本上都是通过终端和服务器打交道,所以一个好个开发人员那么他的终端配置也是高效的。“工欲善事必先利器”,今天来写一下个人mac下的终端配置环境。我的个人终端开发环境有以下组成:

  • iTerm2+Oh My Zsh
  • tmux
  • emacs

这些软件对于终端服务器开发足矣,废话少说我们来介绍一下它的配置和安装。

iTerm2+Oh My Zsh

iTerm2是一个终端模拟器,官方下载地址(DownLoad)[http://iterm2.com/downloads.html], 选择你需要安装的版本,然后安装把需要安装的软件拖拽到应用程序。安装完成后打开iTerm2,然后安装Oh My Zsh,

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

其次安装PowerLine

pip install powerline-status

下载并安装字体库,然后在安装配色方案,这里我个人选择的是Solarized:

git clone git://github.com/altercation/solarized.git

然后打开 solarized/iterm2-colors-solarized/ 双击里面的文件,最后依次打开依次打开 iTerm2 - Preferences - Profiles - Text - Text Rendering,将 Draw bold text in bright colors 前面的勾去掉.整体界面如下所示:

iTerm2 快捷键

快捷键很多,这里就不一一列出,只列出了比较常用的几个快捷键:

  • ⌘ + Click:可以打开文件,文件夹和链接
  • ⌘ + n:新建窗口
  • ⌘ + t:新建标签页
  • ⌘ + w:关闭当前页
  • ⌘ + 数字 & ⌘ + 方向键:切换标签页
  • ⌥⌘ + 数字:切换窗口
  • ⌘ + enter:切换全屏
  • ⌘ + d:左右分屏
  • ⇧⌘ + d:上下分屏
  • ⌘ + ;:自动补全历史记录
  • ⇧⌘ + h:自动补全剪贴板历史
  • ⌥⌘ + e:查找所有来定位某个标签页
  • ⌘ + r & ⌃ + l:清屏
  • ⌘ + /:显示光标位置
  • ⌥⌘ + b:历史回放
  • ⌘ + f:查找,然后用 tab 和 ⇧ + tab 可以向右和向左补全,补全之后的内容会被自动复制, 还可以用 ⌥ + enter 将查找结果输入终端. 很多快捷键都是通用的,和 Emace 等都是一样的
  • ⌃ + u:清空当前行
  • ⌃ + a:移动到行首
  • ⌃ + e:移动到行尾
  • ⌃ + f:向前移动
  • ⌃ + b:向后移动
  • ⌃ + p:上一条命令
  • ⌃ + n:下一条命令
  • ⌃ + r:搜索历史命令
  • ⌃ + y:召回最近用命令删除的文字
  • ⌃ + h:删除光标之前的字符
  • ⌃ + d:删除光标所指的字符
  • ⌃ + w:删除光标之前的单词
  • ⌃ + k:删除从光标到行尾的内容
  • ⌃ + t:交换光标和之前的字符

zsh

我们接下来安装zsh,这个需要通过mac brew的命令来安装,例如:

brew install zsh
#在全局shells增加zsh
emacs /etc/shells最后增加如下:
/usr/local/bin/zsh
然后运行命令
chsh -s /usr/local/bin/zsh

至此zsh已经安装完成,我们接下来安装Oh My Zsh,它用来管理zsh的配置和个性化。

Oh My Zsh

我们现在首先下载Oh My Zsh,通过github克隆:

git clone https://github.com/robbyrussell/oh-my-zsh.git

它的配置文件在当前目录里面的.zshrc,下面是我的配置文件简单设置:

# 设置主题
ZSH_THEME="agnoster"
# 设置亮高
source $ZSH/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
plugins=(git autojump osx zsh-syntax-highlighting ...)
# 设置环境变量PATH
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
一般我的个人配置的环境变量都会放在我个人目录.profile下面,如果想让在zsh生效的话,需要在.zshrc最后加入
source ~/.profile
配置完成之后,你需要手动在shell里面运行如下命令让其生效。
source .zshrc

当然你也可以自定制一些alias,这样你可以方面的调用shell命令,比如:

# man page highlight
export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
export LESS_TERMCAP_me=$'\E[0m'           # end mode
export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m'           # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline

如果你在shell运行man 3 printf,你看到的界面是已经亮高的。如下图所示:

Tmux利器

tmux可以说是linux从业者必备利器,作为一个服务端开发人员来说这是必备的。如果使用默认的风格是比较朴素设置有些简陋,建议使用gpakosz的tmux配置,它实现了一下功能:

  • 基于powerline的美化显示。
  • 显示电池电量
  • 和Mac胡同的剪切复制。 废话少说,我们来安装一下:

Tmux基本概念

tmux主要由session、window和Panel三层元素构成的,具体区别如下:

  • Session是窗口的集合,通常窗口集合的父类。
  • Window单个可见的窗口。
  • Pane窗格,被划划分成小块的窗口。
#安装tmux
$ brew install tmux
#个性化定制
$ cd
$ rm -rf .tmux
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

安装完成之后,我们启动界面可以自定制window、session、panel等,先看一下界面:

Tmux相关操作

Prefix-Command前置操作:所有下面介绍的快捷键,都必须以前置操作开始。tmux默认的前置操作是CTRL+b。例如,我们想要新建一个窗体,就需要先在键盘上摁下CTRL+b,松开后再摁下n键。 下面所有的prefix均代表CTRL+b

Session相关操作

  • 查看/切换session: prefix s
  • 离开Session: prefix d
  • 重命名当前Session: prefix $ Window相关操作
  • 新建窗口: prefix c
  • 切换到上一个活动的窗口: prefix space
  • 关闭一个窗口: prefix &
  • 使用窗口号切换: prefix 窗口号 Pane相关操作
  • 切换到下一个窗格: prefix o
  • 查看所有窗格的编号: prefix q
  • 垂直拆分出一个新窗格: prefix “
  • 水平拆分出一个新窗格: prefix %
  • 暂时把一个窗体放到最大: prefix z

Emacs

我们现在来安装一个强大的文本编辑器,那就是Emacs非常的强大。由于mac的emacs版本非常老,并且没有图形化界面,现在新版的osx系统都增加了保护系统程序。如果想删除原来的emacs,可以按照以下步骤做: 1.开机按 cmd+r,选择utilities-》terminal 2.执行 csrutil disable 3.reboot 4.启动后 执行如下脚本:

rm /usr/bin/emacs
 	rm -rf /usr/share/emacs
rm -rf .emacs.d/
rm .emacs 
$ brew install emacs --cocoa --use-git-head --HEAD
$ cp -r /usr/local/Cellar/emacs/HEAD/Emacs.app /Applications/

5.按1的方法,再执行 csrutil enable PS:操作前请备份好系统,请注意。 根据自己的爱好来配置emacs,你也可以下载一个preclude这样大师的配置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Tomcat源码 Connector(2)

 Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理、Net IO、线程(可选)、协议解析和处理的工作。 一、...

10710
来自专栏CSDN技术头条

资源控制在大数据和云计算平台中的应用

本文针对大数据平台中资源控制这个层面来详细介绍资源控制在不同操作系统上的具体技术实现,以及大数据平台和资源控制的集成。

64880
来自专栏计算机编程

SNS项目笔记<四>--RXjs简要用法

在命令行输入ionic g provider youProviderName 在创建好后,系统会自动导入从@angular/http里导入Http这个类,方便后...

15840
来自专栏编程思想之路

Android四大组件完全解析(一)---Activity

本文参考\android\android\frameworks\base\core\java\android\app\Activity.java文件中的类注释,...

536100
来自专栏网络

代理工具shadowProxy之神出鬼没的切换IP地址

前言 在渗透测试过程中,往往会遇到特别“小气”的目标,稍微碰一下就封IP。这种情况下,我们很自然的想到通过网上大量的免费代理进行IP隐匿。 那么问题来了,难道拿...

40480
来自专栏Seebug漏洞平台

使用 XML 内部实体绕过 Chrome 和 IE 的 XSS 过滤器

来源:BypassingXSSFiltersusingXMLInternalEntities 原作者:DavidLitchfield (david@davidl...

423100
来自专栏NetCore

Identity Service - 解析微软微服务架构eShopOnContainers(二)

接上一篇,众所周知一个网站的用户登录是非常重要,一站式的登录(SSO)也成了大家讨论的热点。微软在这个Demo中,把登录单独拉了出来,形成了一个Service,...

28050
来自专栏Felix的技术分享

《一个操作系统的实现》笔记(2)--保护模式

41080
来自专栏数据之美

使用 django-blog-zinnia 搭建个人博客

django-blog-zinnia 虽然小巧,但是具备了个人博客应用的全部基础功能,且具有很高的拓展性,并且开箱即用。以下是官方列出的一些特性: 评论 站...

35790
来自专栏魏艾斯博客www.vpsss.net

如何创建.htaccess 文件

关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 ...

47880

扫码关注云+社区

领取腾讯云代金券