イントロ

この記事では、クラウドサーバーでzshを使用する方法について説明します。 zshがVPSにインストールされていることを確認するには、次のようにします。

zsh

zshがインストールされている場合は、そのシェルを直接起動します。

それ以外の場合は、続行する前にzshをインストールすることをお勧めします。

zshの使用

この時点で、bashのようなシェルよりもzshがどれほど強力であるかを理解するのは難しいかもしれません。 シェルのオートコンプリート機能を調べることから始めましょう。

オートコンプリート

テキストエディタの設定ファイルを整理するために「vim-addon-manager」をインストールしたいとします。 しかし、パッケージが何と呼ばれているのか思い出せません。 apt-cacheを使用してパッケージ名を検索する代わりに、zshを使用して「vim」で始まるパッケージのリストを提供できます。

sudo apt-get install vim<tab>
vim                vim-doc            vim-lesstif        vim-scripts
vim-addon-manager  vim-gnome          vim-migemo         vim-syntax-go
vim-athena         vim-gtk            vim-nox            vim-syntax-gtk
vim-common         vim-gui-common     vim-puppet         vim-tiny
vim-conque         vimhelp-de         vim-rails          vim-vimoutliner
vim-dbg            vim-latexsuite     vim-runtime        

使用する場合 aptで完了すると、利用可能なパッケージのリストが表示されます。 次に、ユニークなヒットを得るために必要な追加の文字を入力できます。 この場合、「-ad」と入力します 」は、必要に応じてコマンドを完了します。

sudo apt-get install vim-ad<tab>

オートコンプリートをさらに強力にしましょう。 次のセクションを.zshrcに追加しましょう。

nano ~/.zshrc
zstyle ':completion:*' menu select
setopt completealiases

これは2つのことを行います。 これにより、.zshrcに書き込む可能性のあるエイリアスをオートコンプリートできます。また、複数の選択肢がある場合は、メニューから選択することもできます。 .zshrcファイルを再度ソースして変更をロードしてから、apt-getの例を再試行してみましょう。

source ~/.zshrc
sudo apt-get install vim<tab>

それは同じように見えます。 違いは、今ではを押すことができるということですもう一度キーを押してから、 オプションを選択するための矢印キー。 これにより、場合によっては選択がはるかに速くなる可能性があります。

グロビング

最初に設定したオプションの1つは、拡張グロブ式を使用することでした。 Globbingは、任意のプログラムまたは関数に引数を検索または渡すときに、特殊な記号を使用して結果を照合およびフィルタリングする構文の一種です。

いくつかの例を試してみましょう。 まず、アイデアに慣れていない場合に備えて、より伝統的なグロブを試してみます。 テストディレクトリを作成し、いくつかのファイルを追加してみましょう。

mkdir test
cd test
touch file1 file2 file3 file100 file120 file122 file200 file222
touch file250 file800 file808 file80 somefile anotherfile
touch thisotherfile file.txt file.c file.o file.html file.css
touch completelydifferent different separate
mkdir directa directb directc directd

テストディレクトリには、選択して操作できる多数のファイルとディレクトリがあります。

単語ファイルが含まれているものをすべて選択しましょう。 アスタリスク(*)文字は、0文字以上を表します。

ls *file*
anotherfile		file120		file200		file3
file808			file.html	somefile	file1
file122			file80		file.c		file.o
thisotherfile		file100		file2		file250
file800			file.css	file.txt

結果は、タイトルに「file」という単語が含まれるすべてのファイルです。 「file」で始まるファイルのみを検索するとします。

ls file*
file1		file122		file222		file80
file.c		file.o		file100		file2
file250		file800		file.css	file.txt
file120		file200		file3		file808
file.html

これにより結果が少し減りますが、これをさらに絞り込みましょう。 カレット文字(^)は、次のパターンを否定するために使用されます。 したがって、「file」で始まるすべてのファイルが必要であるが、「file」の直後に「1」が続くファイルは必要ないとします。

ls file^1*
file2		file222		file3		file800
file.c		file.html	file.txt	file200
file250		file80		file808		file.css
file.o

「file」で始まり、その後に100から300の範囲の番号を持つすべてのファイルを検索するとします。 より小さい(<)およびより大きい(>)記号を使用して、数値の範囲を囲むことができます。

ls file<100-300>
file100		file120		file122		file200
file222		file250

これらすべての結果が必要であるが、特にfile200が必要ない場合は、チルダ(〜)文字で選択しないようにzshに指示できます。

ls file<100-300>~file200
file100		file120		file122		file222
file250

もっと複雑な選択をしてみましょう。 括弧のセット内にセレクターを提供することにより、結果をさらに限定することができます。 通常のファイル(ディレクトリやリンクなどではない)をすべて選択したい場合は、次のようなものを使用できます。

ls *(.)
anotherfile		file100		file200			file80
file.css		separate	completelydifferent	file120
file222			file800		file.html		somefile
different		file122		file250			file808
file.o			thisotherfile	file1			file2
file3			file.c		file.txt

作成したディレクトリがリストされていないことに注意してください。 代わりに、ディレクトリのみが必要な場合は、次を使用できます。

ls *(/)
directa:

directb:

directc:

directd:

次に、テストディレクトリで最新の5つのファイルを選択しましょう。 これを行うには、括弧内に「o」修飾子を使用します。 これにより、並べ替え方法が選択されます。 「o」の後に「m」を付けます。これは、変更時間で並べ替えることを意味します。 最後に、必要な結果の数をzshに指示する範囲を角かっこで囲んで提供します。

ls *(.om[1,5])
completelydifferent	different	file.css	file.html	separate

その他

試してみるためのいくつかの追加のアイデアがあります。

特定のプログラムを自動的に使用してファイル拡張子に基づいてファイルを開くようにzshを構成できます。 これは、「サフィックスエイリアス」を使用して実現します。 これらを.zshrcに追加して、ファイルの名前を入力してReturnキーを押すだけで、正しいプログラムでファイルが開かれるようにすることができます。

「less」を使用して拡張子が.viewのファイルを開き、「nano」を使用して.editで終わるファイルを開きます。 この行を.zshrcの下部に追加します。

nano ~/.zshrc
alias -s view=less
alias -s edit=nano
source ~/.zshrc

それでは、これをテストするために2つのファイルを作成しましょう。

touch test.view test.edit

次のように入力します。

test.view

Enterキーを押すと、ファイルは「less」で開きます。 ただし、次のように入力すると、次のようになります。

test.edit

予想どおり、ファイルはnanoで開きます。

zshが提供するもう1つの優れた点は、完了のヒントです。 zshは、複数行の入力を入力する際に優れた視覚的インジケーターを提供します。 やるだけやってみよう。 このようなものを入力して「Enter」を押すと、次のようになります。

print “this is a line

次のようなプロンプトが表示されます。

dquote>

入力を二重引用符の2番目のセットで終了することにより、この行を完成させることができます。

 dquote> that goes onto the next line”

ご覧のとおり、ステートメントを完了するために閉じる必要のある入力の種類がわかります。 プロンプトに単純なシェルスクリプトを入力しようとすると、同様のことが起こることがわかります。

if [[ -o interactive ]]; then
then> print yes
then> else
else> print no
else> fi

ご覧のとおり、同じようなヒントが得られます。 これは、複数行にまたがる長い入力ステートメントがある場合に非常に役立ちます。

zshをデフォルトのシェルとして設定する

クラウドサーバー上のzshが日常のシェルのニーズに適していると判断した場合は、それをユーザーのデフォルトシェルにすることができます。 このように、ログインするたびに、設定が読み込まれ、zshセッションが生成されます。 VPSでzshにアクセスするために、「zsh」と入力する必要がなくなります。

chsh -s $(which zsh)

次回ログインすると、zshプロンプトが表示されます。

ジャスティン・エリングウッド