Oh-My-Zsh! A Work of CLI Magic – Tutorial for Ubuntu

Michiel Mulders
Michiel Mulders

Follow
Aug 29, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

コマンドラインインターフェースは大歓迎ですが…。 マウスを使うのが嫌いなんです! このため、CLIでのユーザーエクスペリエンスを向上させる素晴らしいツールを探す気になりました。 私はインターンシップ中にOh-My-Zshに出会いました。 何人かの友人が、そのシンプルさと調整可能性から、このシェルを使うように説得してくれました。 ボーナスとして、CLIは多くのプラグインで拡張可能です。

これは、その機能のリストです。

  • コマンドの検証
  • スペルチェック
  • 実行中のすべてのシェル間でコマンド履歴を共有
  • テーマ別のプロンプト (Agnoster, RobbyRussell, …)..)
  • ディレクトリ履歴
  • 起動/終了スクリプトは zshenvzprofilezshrczloginzlogout経由
  • 強力なオートコンプリート機能です。 TABキーで各オプションを移動し、Enterキーで正しいフォルダを選択することができます。 例えばBashは全てのオプションを表示します。

  • プラグインの追加: 例: Git エイリアスの巨大なリストを含む Git プラグイン。
    – 緑: 変更がない場合のブランチ
    – 黄色の丸いアイコン: 未追跡ファイル
    – 黄色のプラスのアイコン: コミット可能なファイル

Ubuntu 16.04 Virtual Machine上でこのインストールガイドを実行しています。 Oh-My-Zsh の底力をお見せするために、Git プラグイン (Git-core) をインストールします。 このプラグインは、プロジェクトの Git の状態を視覚的にフィードバックします。

  1. Install prerequisite packages
    $ sudo apt install git-core zsh
  2. Robby Russell のリポジトリから Oh-My-Zsh をインストール
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”.
  3. CLIをアイコンでスパイスするためにPowerlineフォントをインストールする
    $ sudo apt install fonts-powerline
  4. 伝説のOh-My-Zshテーマを使うためにテーマを ‘robbyrussell’ から ‘agnoster’ に変える
    $ nano ~/.NET Framework
  5. $ apt install fonts-powerline $ sudo apt install fonts-powerline $ sudo apt install fonts-powerlinezshrc

  6. Find the ZSH_THEME variable and change it:ZSH_THEME="agnoster"
  7. I don’t like that the theme shows my username and host.私はテーマが私のユーザー名とホストを表示することが好きではありません。 これを取り除くために、ディレクトリを
    $ cd ~/.oh-my-zsh/themes
  8. 次に、エディタで ‘agnoster’ のテーマファイルを開きます
    $ nano agnoster.zsh-theme
  9. ここで ‘Main prompt’ を変更できます。 関数 build_prompt() 内の prompt_context は必要ありません。 この行をコメントアウトするか、削除してください。 最後に、PROMPT変数を$(build_prompt)に変更します。

Agnoster theme configuration

実際にテーマを見るには、.zshrcファイルをこのようにソース化する必要があります。 source ~/.zshrc. すべてがうまくいった場合、カバー画像のようなものが表示されるはずです!

おまけ。 zsh をデフォルトのシェルとして設定します。 これをデフォルトのシェルで実行します。ほとんどの場合、これは bash になります。 zsh でこのコマンドを実行しても何も変わりません。
$ chsh -s $(which zsh)

注意: sudo を使うと root のシェルは変わりますが、あなたの作業用ユーザーのシェルは変わりません。

プラグインのインストール

Githubのプラグインページにあるすべてのプラグインは、~/.oh-my-zsh/pluginsでOh-My-Zshにプレインストールされています。 カスタムプラグインは~/.oh-my-zsh/custom/pluginsでインストールすることができます。 プラグインを使用するには、~/.zshrcファイルのプラグインリストに追加するだけです。 プラグインが多すぎるとシェルの起動が遅くなるので、賢く追加してください。

Colored-man-pages

この例では、man pages にカラーハイライトを与える便利なプラグインをインストールしました。 このプラグインを使用できるようにするには、.zshrc ファイルをソースしてください。
$ source ~/.zshrc

Colored Man Page of ls command

Zsh-syntax-highlighting

The 別の素晴らしいプラグインにシェル用の syntax highlighting があります。

このプラグインは Oh-My-Zsh ではインストールされません。 ~/.oh-my-zsh/custom/plugins に移動し、Github からこのフォルダにコードをクローンします:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

すると、zsh-syntax-highlighting という名前のフォルダが表示されるはずです。 これは、プラグインリストに追加する必要がある名前です。

Zsh-autosuggestions

コマンド補完に zsh-autosuggestions を使用することもできます。 これはコマンド履歴に基づいてコマンドを提案してくれます。 非常に便利です!

インストールは zsh-syntax-highlighting と同様 :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
そしてプラグインリストへ zsh-autosuggestions を追加してください。

Takes Care of Alias Enthusiast

Oh-My-Zsh は、あなたが最後に訪れた 20 のディレクトリを自動的に記憶しています。 履歴は dirs -v で時系列に並べることもできますし、d だけでも可能です。

通常は cd +1 で前のディレクトリに行くなどして、そのディレクトリを利用することができます。 Oh-My-Zsh はこれをさらに簡単にし、行きたいディレクトリ履歴のエントリの番号だけを使うようにしました… 1.

Other Interesting Aliases

  • alias : すべてのエイリアスをリスト表示します。 出力をgrepにパイプすれば、特定のエイリアスを検索できます。
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. 分かったよね…?
  • take test_folder : test_folder というフォルダを作成し、そこに変更する
  • x : タイプのアーカイブを展開するtar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : インストールをアップグレードする簡単コマンド

よくある問題& 解決策

歴史ファイルが破損していることがある。 具体的なことは聞かないでください。

zsh: corrupt history file /home/myusername/.zsh_history

以下のコマンドで解決してください。 homefolderのrootにいることを確認してください。 fcコマンドは、以前にシェルに入力したコマンドを一覧表示したり、編集したり、再実行したりするコマンドです。 history コマンドは、入力中のコマンドラインで以前のコマンドラインの単語を使用できます。

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history

結論

Oh-My-Zsh はとにかくすごい!

役に立つリンクとソース

この記事は TheLedger.

  • Oh-My-Zsh の助けを得て作成されました。 http://ohmyz.sh/
  • Plugins: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
  • Themes: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
  • Git プラグインとすべてのエイリアス。 https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • シェルのプロンプトをカスタマイズする。 http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki で Zsh について。 https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh syntax highlighting plugin。 https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosuggestions plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Zshのカスタマイズに関するWikiです。 https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

コメントを残す

メールアドレスが公開されることはありません。