当前位置: 首页 > 科技观察

macOSCatalina新的命令行工具,这篇文章让你提前用起来

时间:2023-03-17 13:43:45 科技观察

在月初举办的WWDC2019上,苹果公布了下一代macOS——macOSCatalina。除了音乐和电视等新应用、支持iPad作为外接显示器等明显更新之外,macOSCatalina还为专业用户带来了重大变化——Zsh将取代Bash成为操作系统的默认Shell。虽然苹果没有对这一变化做出解释,但根据TheVerge的推测,可能与GPLv3协议有关。macOS目前使用的Bash3.2版本是基于GPLv2协议的,但是新版本的Bash已经转为GPLv3协议。GPLv3协议对苹果这样的大公司有更严格的限制,这可能是苹果不再使用Bash作为默认shell的原因。与Bash相比,Zsh还具有许多更强大的特性:更智能的自动补全、命令选项提示、更丰富的主题等等。在今秋体验macOSCatalina正式版之前,我们可以将macOS的默认shell切换为zsh,以熟悉新shell的功能。本文的目标是帮助您创建一个美观且易于使用的Zsh终端。一个漂亮而强大的终端Zsh和OhMyZshZsh虽然功能强大,但由于配置复杂,不适合普通用户使用。然而,一个开源项目的出现打破了这种局面——它就是本文的主角:OhMyZsh。使用OhMyZsh,您只需执行非常简单的安装和配置即可使用Zsh并享受许多很酷的功能。让我们正式开始安装过程。安装OhMyZshmacOSMojave已经自带了Zsh,所以我们直接安装OhMyZsh。安装过程非常简单,只需要打开终端,执行一行命令:sh-c"$(curl-fsSLhttps://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"in安装过程中会提示Doyouwanttochangeyourdefaultshelltozsh?[Y/n](是否将默认shell切换为Zsh),按Y回车。然后会提示Passwordforxxx,输入你的用户密码,回车。当您看到大大的Ohmyzsh标志时,OhMyZsh安装成功。显示“Ohmyzsh”,表示安装成功。基本设置安装OhMyZsh后,使用如下命令打开Zsh配置文件:vim~/.zshrc在vim编辑器中,可以使用方向键移动光标,按i进入编辑模式。编辑完成后按esc退出编辑模式,然后输入:wq回车保存。另外,Mac下的Vim默认是不显示行号&开启语法高亮的,可以参考如下命令开启行号显示&语法高亮:cp/usr/share/vim/vimrc~/.vimrc#Copyvim配置模板echo'syntaxon'>>~/.vimrc#启用语法高亮echo'setnu!'>>~/.vimrc#启用行号显示Zsh配置文件中有详细注释,可根据修改相关设置评论,以满足您自己的要求。比如你想关闭Zsh的自动更新,那么定位到DISABLE_AUTO_UPDATE这一行,按照之前的注释删除该行前的注释符号#。关闭自动更新,保存退出后,使用如下命令使Zsh配置立即生效:source~/.zshrc设置主题OhMyZsh自带大量主题文件。可以执行以下命令查看内置主题:ls~/.oh-my-zsh/themes内置主题的样式和渲染效果可以去OhMyZsh官方wiki查看。在这里,我选择使用agnoster作为我的主题。我们需要通过编辑zsh配置文件来修改主题:vim~/.zshrc定位到ZSH_THEME这一行,将双引号内的内容修改为我们选择的主题名称。修改主题名称后,保存退出,执行如下命令,使zsh的配置立即生效:source~/.zshrc安装电力线字体主题设置完成后,终端出现乱码:乱码这个由于我使用的agnoster主题包含特殊字符,需要安装Powerline字体支持才能正常显示。打开终端,参考以下命令安装Powerline字体:cd~/Downloads&&gitclonehttps://github.com/powerline/fonts.git#将Powerline字体文件下载到“Download”文件夹下cdfonts&&./install.sh#InstallallPowerlinefontscd&&rm-rf~/Downloads/fonts#删除下载的字体文件然后,我们按?,打开终端首选项,在“DescriptionFile>Text”中更改字体。更改字体选项在弹出窗口中选择一种Powerline字体(所有可用选项,请参阅Powerline的GitHub页面),并调整字体大小。这里我选择了DejaVuSansMonoforPowerline字体(抓住虾!),并将大小设置为14点。此时我的字体设置回到终端,发现指示文件目录的箭头可以正常显示:Powerline字体可以在agnoster主题中正常显示。配置终端配色方案。底部的白色文字看起来还是有点不舒服。在这里,我们不妨使用Solarized配色方案进一步美化终端。首先,使用以下命令下载Solarized配色方案:cd~/Downloads&&gitclonegit://github.com/altercation/solarized.git#将配色方案下载到“Download”文件夹中下载完成后,我们按?打开终端首选项,点击“描述文件>???>导入”。导入选项在弹出窗口中,导航到Downloads>solarized>osx-terminal.app-colors-solarized,双击SolarizedDarkansi.terminal以导入深色Solarized配色方案。选择下载的Solarized配色方案然后,我们在描述文件中选择SolarizedDarkansi,点击“Default”将其设置为默认配色方案;不要忘记将字体更改为Powerline字体并调整大小。不要忘记更改字体和颜色细节,修改细节并重新启动终端。至此,我们的漂亮终端已经基本完成,但是目前的配色让一些看不清的字:我绝对不能接受一些看不清楚的字,严重的强迫症。于是我们按下?,打开终端首选项,点击“描述文件>SolarizedDarkansi”,进一步自定义配色。单击要更改的颜色,然后在弹出的小窗口中单击颜色选择器(类似于吸管)。之后大家可以参照下图,一一挑选颜色。我这里的配置结合了iTerm2的配色和少量的个人修改。配色方案参考还有一点让我不太舒服——文件目录前面的长长的demo@Stevens-MacBook-Pro。通过修改主题配置文件,我们可以将其移除。使用以下命令编辑agnoster主题的配置文件:vim~/.oh-my-zsh/themes/agnoster.zsh-theme找到如下内容:#Context:user@hostname(whoamIandwhereamI)prompt_context(){if[["$USER"!="$DEFAULT_USER"||-n"$SSH_CLIENT"]];thenprompt_segmentblackdefault"%(!.%{%F{yellow}%}.)%n@%m"fi}inprompt_segmentblackdefault“%(!在.%{%F{黄色}%}之前添加注释符号#。)%n@%m”,保存退出,执行source~/.zshrc,使配置立即生效。配置插件OhMyZsh支持很多强大的插件,可以实现语法高亮、命令自动补全等功能。可以执行以下命令查看内置插件:ls~/.oh-my-zsh/plugins/内置插件的功能和使用方法可以去OhMyZsh官方Wiki查看。要启用某个插件,只需要用vim~/.zshrc编辑zsh配置文件,找到plugins这一行,在括号中添加需要的插件名称,用空格隔开。保存退出后不要忘记执行source~/.zshrc让配置立即生效。修改插件行的配置以启用插件。我使用的插件是默认启用的git插件,它提供了各种git命令的缩写。其官方描述提供了所有缩写的参考。z自带一个插件,将其添加到配置文件中即可启用,可以帮助你快速跳转到你访问过的文件夹。具体使用方法请谷歌或参考GitHub文档。zsh-syntax-highlighting正确输入的常用命令会以绿色高亮显示,输入错误则显示其他颜色。使用以下命令安装:gitclonehttps://github.com/zsh-users/zsh-syntax-highlighting.git${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting下载完成最后别忘了在配置文件的plugins中加入zsh-syntax-highlighting,执行source~/.zshrc使配置生效。zsh-autosuggestions输入命令时,建议的命令会以浅色字体给出,按→即可自动补全。使用如下命令安装:gitclonehttps://github.com/zsh-users/zsh-autosuggestions${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions下载后不要忘记在配置文件的plugins中添加zsh-autosuggestions,执行source~/.zshrc使配置生效。为了正确显示提示的字体颜色,我们还需要执行:echo"exportTERM=xterm-256color">>~/.zshrc#声明终端类型echo"ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'">>~/.zshrc#Set建议命令的文字颜色可以修改fg=后面的数字来指定建议命令的文字颜色,数字和颜色对应的表格请参考这里。总结至此,你已经完成了macOS下OhMyZsh的基本配置。现在你已经拥有了一个更加美观和强大的终端,相信这会让你在终端下操作时事半功倍。