歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> 在Linux中如何安裝及配置Zsh

在Linux中如何安裝及配置Zsh

日期:2017/3/2 10:30:13   编辑:Linux維護

Zsh和bash都是能夠在Linux中運行的shell腳本,通常默認的是bash,要想使用Zsh需另外安裝,下面小編將針對Zsh在Linux系統中的安裝和配置給大家做個詳細介紹,感興趣的朋友可以來了解下。

1. 安裝

安裝zsh

在Gentoo中安裝zsh,我們需要通過emerge來安裝app-shells/zsh(zsh本身)和app-shells/zsh-completion (zsh補全腳本)兩個軟件包。

代碼 1.1: 通過emerge安裝zsh

# emerge zsh zsh-completion

進入zsh

當你第一次運行zsh的時候,你會得到如下的一些信息。因為我們會在後面創建一個init文件,所以你可以跳過這一個功能選單。

代碼 1.2: 跳過初始配置

$ zsh

This is the Z Shell configuration function for new users, zsh-newuser-install.

You are seeing this message because you have no zsh startup files

(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory

~)。 This function can help you with a few settings that should

make your use of the shell easier.

You can:

(q) Quit and do nothing. The function will be run again next time.

(0) Exit, creating the file ~/.zshrc containing just a comment.

That will prevent this function being run again.

(1) Continue to the main menu.

--- Type one of the keys in parentheses --- q

2. 配置

簡介

運行zsh會為一個會話啟動zsh。如果你要一個永久的解決方案,請參考保存設置這一個章節。在安裝完成以後,zsh看起來可能非常的簡單並且功能十分有限。為了改變這個狀況,你需要對幾個配置進行修改。

先進的Tab補全

你需要運行以下的命令來開啟zsh的tab補全系統:

代碼 2.1: 開啟補全系統

% autoload -U compinit

% compinit

默認的補全風格非常的普通和簡陋。如果你要改進它的外觀,運行以下的命令:

代碼 2.2: 改進補全風格

% zstyle ‘:completion:*:descriptions’ format ‘%U%B%d%b%u’

% zstyle ‘:completion:*:warnings’ format ‘%BSorry, no matches for: %d%b’

命令糾錯

開啟命令自動糾錯功能也是一個不錯的主意:

代碼 2.3: 開啟糾錯功能

% setopt correctall

提示符

當前的提示符可能看起來很乏味,然而我們可以通過簡單的幾個步驟來解決它。首先,我們需要初始化高級命令提示符支持:

代碼 2.4: 開啟高級命令提示符功能

% autoload -U promptinit

% promptinit

我們可以使用prompt -p命令來列出可用的提示符樣本。現在我們可以激活一個我們喜歡的了:

代碼 2.5: 選擇一個提示符樣本

(使用你選擇的提示符替代“gentoo”)

% prompt gentoo

注意: 如果你在嘗試不同的提示符,並且你不想看到每一個提示符的示例,那麼你可以使用prompt -l來列出可用的提示符。

另一個選擇是創建你自己的提示符。你需要設置PS1環境變量來實現這個想法。

代碼 2.6: 一個簡單的自定義提示符

% export PS1=“[Test Prompt] 》 ”

[Test Prompt] 》

能夠創建自定義的文本提示符一定很不錯,與此同時zsh也提供了許多的轉義序列來允許你把系統信息插入到提示符裡。一些可用的轉義序列如下:

轉義序列打印效果

%T系統時間(時:分)

%*系統時間(時:分:秒)

%D系統日期(年-月-日)

%n你的用戶名

%B - %b開始到結束使用粗體打印

%U - %u開始到結束使用下劃線打印

%d你目前的工作目錄

%~你目前的工作目錄相對於~的相對路徑

%M計算機的主機名

%m計算機的主機名(在第一個句號之前截斷)

%l你當前的tty

你只要將這些轉義序列插入到環境變量PS1裡就可以了,而後zsh會自動地解析他們。

代碼 2.7: 一個更復雜的提示符

% export PS1=“[%* - %D] %d %% ”

[08:44:23 - 06-02-18] /home/username %

歷史記錄

不幸的是Gentoo裡默認的zsh配置不包含對命令行歷史記錄的支持。因為使用沒有歷史記錄功能的shell是十分令人沮喪的,所以我們應該輸入以下的命令:

代碼 2.8: 基礎的歷史記錄配置

% export HISTSIZE=2000

% export HISTFILE=“$HOME/.history”

(如果沒有以下命令,歷史記錄不會被存儲)

% export SAVEHIST=$HISTSIZE

為了防止記錄重復的輸入(比如ls -l在同一個shell會話中輸入了太多次),你可以設置hist_ignore_all_dups選項:

代碼 2.9: 設置忽略重復的記錄

% setopt hist_ignore_all_dups

一個小技巧可以用來防止某些特定的輸入被記錄,那就是在輸入他們之前先輸入至少一個空格。

代碼 2.10: 防止某些特定的輸入被記錄

% setopt hist_ignore_space

(這個命令不會被記錄。請注意在它之前的多出來的那個空格。)

% cat /proc/cpuinfo

雜項設置

如果你想要避免在切換目錄時一直輸入乏味的cd命令(比如使用/etc而不是cd /etc)你可以設置autocd選項。

代碼 2.11: 設置autocd選項

% setopt autocd

如果標准的bash樣式的文件名替換(globbing)不和你的胃口,你可以通過extendedglob選項來設置開啟擴展的文件名替換(globbing)(與正則表達式有些類似)。

代碼 2.12: 設置擴展的文件名替換

% setopt extendedglob

當上面的選項被設置了以後,你可以使用擴展的文件名替換查詢,例如:cp ^*.(tar|bz2|gz)。

3. 保存設置

保存zsh設置

當我們將zsh設置成我們喜歡的樣子後,我們最好把這些設置保存成zsh的默認設置。一個可行的方法是把我們的配置寫入到/etc/zsh/zshrc腳本裡,這樣這些設置就會成為系統默認的設置。還有一個替代方案就是通過編輯/etc/zsh/zshrc文件來使我們的設置只對自己的帳號有效。

代碼 3.1: 一個zshrc范例

#!/bin/zsh

# completion

autoload -U compinit

compinit

# correction

setopt correctall

# prompt

autoload -U promptinit

promptinit

prompt gentoo

4. 把zsh設置成默認的shell

對於有root權限的用戶的選擇

我們可以通過usermod命令來設置某一個給定用戶的shell。

代碼 4.1: 使用usermod命令永久地切換到zsh

# usermod -s /bin/zsh userlogin

對於非root用戶的替代解決方案

如果你的系統管理員拒絕為你把shell設置成zsh(無論你的請求多麼地溫和),那麼你可以設置bash在啟動的時候執行zsh,你要做的一切就是對你的~/.bashrc做一個小修改。

代碼 4.2: ~/.bashrc樣本

(把以下內容加入到你的~/.bashrc裡)

exec zsh

改變shell的另外一種方法就是使用chsh命令(一個改變用戶登錄shell的實用程序)。一個普通用戶只能改變自己賬戶的登錄shell。而作為root,你可以改變所有用戶的登錄shell。

代碼 4.3: 使用chsh命令永久地切換到zsh

(使用你的用戶名替代“username”)

$ chsh -s /bin/zsh username

上面就是Linux安裝和配置Zsh的方法介紹了,安裝完Zsh後還需對其進行相關配置,而Zsh的使用可以參考系統之家Linux Zsh命令使用實例。

Copyright © Linux教程網 All Rights Reserved