Mac终端增强技能

1、Shell介绍

1.1、何为shell

关于shell,一个广义的解释就是在用户与操作系统之间,提供一个工具或接口给用户来操作计算机系统;用户在shell中通过输入命令行,按下回车键,shell执行命令后就能返回结果,达到操作计算机的效果。

很多人会问,为什么要学习shell呢?

  • 在通过ssh来远程操纵Linux/Unix服务器时,都是使用shell而不是用户界面
  • 相比于通过点击多个用户界面来执行操作,输入命令行更加直接和快捷
  • 利用管道组合各种可用工具,来创建和定制宏工具
  • 使用shell script将重复简单的任务自动

1.2、Shell有哪些功能

具体使用见:Shell(一):功能、配置和插件

  • 命令历史记录
    • shell就会存储当前标签下正确执行过的命令。
    • 历史记录存放在~/.bash_history文件。
    • 你可以按方向键↑和↓来查看之前执行过的命令。
    • 可以使用ctrl-r来搜索命令历史记录。
  • 命令和文件补全(tab)
  • 命令别名alias
    • 命令别名是一个比较有用的东西,特别适应用于简化命令输入。
    • ~/.bash_profile或者~/.zshrc(当你使用zsh时)中配置别名对应的具体命令。
    alias pod_update='pod update --verbose --no-repo-update'
    
    • 修改~/.zshrc文件之后,要执行source ~/.zshrc
  • 任务控制
    • 将任务放在后台运行:command + &
    • 将任务丢到后台暂停:ctrl-z
    • 查看后台所有任务状态:jobs -l
    • 将后台的任务拿到前台处理:fg %jobnumber
    • 将后台的任务变成运行中:bg %jobnumber
    • 管理后台当中的任务:kill -signal %jobnumber
  • shell脚本
    • 一些shell命令组合在一起编写出来的程序。
    • 遵循shell的语法规则,搭配数据重定向、管道、和正则表达式等功能来组合各种工具,实现简单重复任务的自动化。
  • 通配符
    • 除了完整的字符串之外,shell还支持许多的通配符来帮助用户查询和命令执行。

2、iTerm 2 + oh my zsh

MacTalk终极Shell

2.1、bash与zsh

Linux/Unix提供了很多种Shell,常用的Shell有这么几种,sh、bash、csh等。通过命令cat /etc/shells可以查看系统支持哪些shell。

在 Linux 里执行这个命令和 Mac 略有不同,你会发现 Mac 多了一个 zsh,也就是说 OS X 系统预装了个 zsh。

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh。

2.2、iTerm 2与oh my zsh

  • 终端应用iTerm 2相比mac自带的Terminal应用,有太多优点了。例如,支持画面分割,可以设置主题,各种使用的快捷键,以及快速唤出。
  • 由于配置zsh过于复杂,所以初期无人问津,直到有一天,国外有个程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」。
  • oh my zsh安装
// curl方式
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
// wget方式
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
  • 查看当前终端使用的shell:echo $SHELL
  • 切换终端使用的shell:chsh -s /bin/zsh,指定shell的路径。

2.3、外观配置

2.3.1、iterm外观配置

iTerm - 让你的命令行也能丰富多彩

  • 配色方案:iTerm -> Preferences -> Profiles -> Colors
  • 不用鼠标也可以选择文本:cmd-F -> Tab,tab键可以一直一直按,每按一次多选中一个单词,自动复制到剪切板。
  • 支持一键调出命令行:iTerm -> Preferences -> Keys,Hotkey下的所有复选框选中,自定义快捷键:cmd-\。
  • 设置命令行背景图片、透明度、磨砂等效果。
  • 修改hotkey window的位置:Profile -> Hotkey Window -> window -> style

2.3.2、oh my zsh主题配置

Oh My Zsh - 社区力量全新方式定义命令行

  • Oh My Zsh 提供了很多主题风格,存放在 ~/.oh-my-zsh/themes 目录中
  • 主题的配置在 ~/.zshrc 文件中
ZSH_THEME="robbyrussel"// 主题名字
ZSH_THEME="random" // 随机主题

2.4、iterm 2 的功能

iTerm - 让你的命令行也能丰富多彩

  • 标签排列切换:如果你在一个窗口中打开了很多标签,使用cmd-option-e搜索你要找的那个标签。
  • ..回到上级。
  • 目录浏览和跳转:输入d,会列出当前会话里访问过的目录,输入列表前的序号,即可以跳转到对应目录下。
  • 命令行标记功能:光标在某一行按下cmd-shift-m,以后按下cmd-shift
  • 剪切板历史记录:
  • 快照返回:如果你想知道你在之前的某个时间段执行了哪些命令。
  • iTerm2 指南

2.5、oh my zsh 插件

  • Oh My Zsh 插件篇 - 实用工具
  • oh my zsh提供丰富的插件,存放在~/.oh-my-zsh/plugins目录下。
  • 想了解每个插件的功能以及如何使用,只要打开相关插件的目录下xxx.plugin.zsh文件即可。
  • 添加插件的方法一般是在~/.zshrcplugins=(xxx xxx)里面添加插件名字,然后重新打开命令行窗口。

2.5.1、git

2.5.2、autojump

"Please source the correct autojump file in your shell's startup file. For more information, please reinstall autojump and read the post installation instructions."

解决办法:往`~/.zshrc`中的插件中添加`autojump`
  • 自个电脑,自动安装成功。
  • 工作原理

    在你每次启动命令后,每次cd进哪个目录,autojump都会记录目录访问的频率,把它添加进它自身的数据库中。使用越多的目录权重越大,当你没有输入完整的名称,autojump会检索它的数据库,并返回最可能的结果。执行j -s可以查看当前autojump记录的目录和对应权重。

  • 几点注意:

    • 不要给autojump设置j别名,安装的时候已经设置了。
    • 必须在autojump启动后访问过的目录,才能使用autojump跳转。
    • 使用autojump作为命令名,无法实现跳转(尽管控制台输出了跳转的地址,但是实际依然停留在当前目录)。必须使用j
    • 如果要从当前目录,进入它自己的子目录,使用j,无法使用tab补全文件名,这时候连续点击两次tab,会列出所有曾经访问过的包含已输入字符的path,让用户自己选择要跳转的路径。
    • 如果要使用j + tab自动补全子文件名,应该代替使用jc + tabjc是专门用于打开子文件的。
  • 可以访问目录数据库,并修改它的内容。可以使用下面的命令来手动添加一个目录

autojump -a [目录]
  • 把当前目录变成你的最爱和使用最频繁的文件夹,通过命令增加它的权重(或者减少权重)
 autojump -i [权重] // 增加权重
 autojump -d [权重] // 减少权重

2.5.3、osx

  • tab在新的标签页打开当前目录
  • cdfcd到当前finder目录
  • quick-look快速浏览特殊文件
  • man-preview在preview打开特定的man page
  • trash将指定文件移到垃圾桶

2.5.4、wd(其实有autojump,wd也没啥必要了)

  • 能够快速的切换到常用的目录,有时候我们要进入层级很深的目录,使用cd目录非常耗时间,wd插件解决了这一问题。
  • 对于常用目录,第一次进入的时候,输入wd add web,给该目录做标记,以后再想进入这个目录,只需输入wd web
  • 使用wd rm xx删除已有的映射
  • 使用wd show查看已有的映射
  • github地址

2.5.5、web-search

使用goolge xxx在google下搜索xxx内容,同样支持baidu xxx或者bing xxx

2.5.6、last-working-dir

记录上一次退出命令行时候的所在路径,并且在下一次启动命令行的时候自动恢复到上一次所在的路径。

3、Mac专用命令行工具

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容