zsh笔记

April 26, 2013

相关概念

怎样理解zsh?iterm和zsh的关系是什么?

zsh,全称为Z-shell,是Shell(壳)的一种,在计算机科学的术语中,shell区别与核,是指“提供使用者使用界面”的软件(命令解析器),我们以前熟悉的MS-DOS就是命令行shell的一种,当然window实质上也是shell的一种,而随着图形化shell的普及,shell的含义渐渐只特指命令行的使用界面了。在OSX中,其默认的shell为bash,zsh是一种更为强大和适于个性配置的shell。

iterm2,我们不难观察到一个现象,就是我们一般在使用命令行界面时都会启动OSX的终端软件,iterm是系统终端软件的替代者,可以将其看作是命令行界面在图形化界面体系中的代理或展示管理工具,所以我们可以通过iterm进行不同的shell切换。 关于iterm2的特色功能介绍

安装

按照老阳的安装笔记,我们实际上做了这样几件事情:

下载.dotfiles:

.dotfiles是为了繁复的新机配置而生的,当你在不同机器或新机上重新配置环境时,会发现这玩意忒有用了,一方面可以保存下自己的习惯用法和配置,另一方面可以使用别人优秀的dotfiles,看看高手是怎么进行配置的。老阳的做法是先下高手的东西,然后自己修改,适合入门后的自己折腾。

Github上的dotfiles

安装Oh-My-Zsh:

Oh-My-Zsh就是一个zsh的配置包,可以配置出一些比较有趣的功能,比如命令行中的主题颜色,按键进行命令填充之类

安装zsh:

安装非常简单,只要我们已经安装了Homebrew可以通过命令轻松的安装zsh。

brew install zsh

配置:

我们已经安装了zsh和相应的配置包,他们存在与不同的目录中,这个时候需要用到一个Linux常用的系统命令ln -s,来为其建立软连接

ln -s ~/.dotfiles/zsh ~/.zsh
ln -s ~/.dotfiles/zsh/zshrc ~/.zshrc
ln -s ~/.dotfiles/zsh/zshenv ~/.zshenv
ln -s ~/.dotfiles/zsh/zprofile ~/.zprofile

那么什么是软连接,ln的命令又是怎么回事?

ln是link 是链接的意思,再其后加参数可代表建立链接的类型,比如-s,是标识软链接,我们可以将其理解为为某一个文件在另外一个位置建立一个同步的链接,通常不加参数时会将源文件copy到目标目录下,而软链接则不会拷贝目录,而只产生镜像,这样能够保证不占用重复的硬盘空间,又能够保持两者的同步。

对zsh设置默认
1、打开配置文件
subl /etc/shells
2、添加zsh路径
/usr/local/bin/zsh
3、保存后到命令行中执行默认命令
chsh -s /usr/local/bin/zsh

link命令解释

相关配置文件的下载和安装详见老阳笔记不再重述,配置应该根据不同人的习惯而进行设置,在你对此没有概念的时候,可以采取使用流行配置,使用高手配置的方法,来看是否顺手,并在此基础上进行修改。

技巧1:如何进行别名快捷方式(aliases)的建立

为什么要建立别名?建立别名可以在命令行界面快速的启动某种服务或开启某个目录,类似于我们在桌面上设置快捷方式,以方便我们更加有效率的工作。

进入zsh目录

cd .dotfiles  #进入.dotfiles文件夹
cd .zsh       #进入zsh
subl .        #启动sublime text2对该文件夹文件进行编辑

打开aliases.zsh 我们可以看到类似这样的字样

alias ga='git add'
alias gp='git push'
alias gl='git log'

现在的需求是建立一个快速进入某项目路径的别名,在其中添加

alias 'snaapp=cd dev/github/sna.psyapp.com'

重启iterm后,在终端输入

$ snaapp

则会自动跳转至所设置的目录了

技巧2:如何应对zsh的“Command not found”问题

在安装一些软件的过程中,经常会碰到明明已经安装好了,但是zsh显示找不到该命令,多半和路径有关,因为安装的方法各不相同,有可能软件安装在硬盘的不同文件夹内,而zsh会在配置文件中写好优先在一些文件地址内寻找,如果你安装的路径不在里面,zsh就无法识别了。

如何打开系统默认路径的配置文件:

subl /etc/paths

一般修改后的次序如下,Homebrew的安装路径优先:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

在一些安装到其他目录无法识别的软件命令,你可以将其添加在尾部,即可识别。

comments powered by Disqus