クラウドサーバーでZシェル(zsh)を使用する方法
イントロ
この記事では、クラウドサーバーで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
使用する場合
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プロンプトが表示されます。