75 Zsh コマンド、プラグイン、エイリアス、ツール

5月 9, 2021
admin

私は一日の多くをターミナルで過ごし、私の選択したシェルは Zsh です。 私は怠惰な開発者であるため、より少ないタイプですべてのことを自動化する方法を常に探しています。 幸運なことに、これは Zsh が得意とするところです。

この投稿では、キーストロークを節約して日々の仕事の生産性を高めることを期待する 75 のコマンド、プラグイン、エイリアス、ツールを紹介します。

Zsh がマシンにインストールされていない場合は、この投稿をチェックして、立ち上げおよび実行する方法を紹介しています。 以下のものはどれも Zsh 独自のものではありませんが、それでも知っておくとよいでしょう。 以下のような操作を行うために、コマンドラインを使い始めることをお勧めします。

  • ファイルシステムのどこからでも cd を入力すると、ホームディレクトリにまっすぐ戻ります。
  • !! を入力すると、最後のコマンドを表示します。 これは、あるコマンドが管理者権限を必要とするために失敗した場合に便利です。 この場合、sudo !!.
  • と入力します。&&を使用すると、複数のコマンドを連結することができます。 例えば、mkdir project && cd project && npm init -y.
  • 条件付き実行は||を使用することで可能です。 例えば、git commit -m "whatever..." || echo "Commit failed".
  • mkdirコマンドで-pスイッチを使用すると、必要に応じて親ディレクトリを作成することができる。 中括弧の展開を使用すると、繰り返しを減らすことができます。 たとえば、mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • のように、コマンドごとに環境変数を設定します。 NODE_DEBUG=myapp node index.js. または、セッション単位で次のように設定します。 export NODE_DEBUG=myapp. 設定されているかどうかは、echo $<variable-name>.
  • あるコマンドの出力を別のコマンドにパイプする。 例えば、長いログを読めるようにするには cat /var/log/kern.log | less 、”ssh” を含む履歴を検索するには history | grep ssh とします。
  • ターミナルからエディタでファイルを開くことができます。 例えば、nano ~/.zshrc (nano)、subl ~/.zshrc (Sublime Text)、code ~/.zshrc (VS Code)などです。 ファイルが存在しない場合、エディターで保存を押すと作成されます。
  • ナビゲーションはマスターすべき重要なスキルです。 矢印キーだけに頼らないでください。 例えば、Ctrl + a は行頭に移動します。
  • Ctrl + e は行末に移動します。
  • Ctrl + w で単語を 1 つ削除できます(逆方向)。
  • Ctrl + u はカーソルから行頭まですべてを削除します。
  • Ctrl + k はカーソルから行末まですべてをクリアします。 これは、右クリックしてコピーを選択するよりもはるかにエレガントです。
  • 逆に、Ctrl + Shift + V でコピーしたテキストを貼り付けることができます。

    15 カスタム エイリアスで生産性を向上

    エイリアスは、通常のコマンドのターミナル ショートカットです。 エイリアスを ~/.zshrc ファイルに追加し、(source ~/.zshrc を使用して) ターミナルをリロードすると、それが有効になります。

    エイリアスを宣言するためのシンタックスは次のとおりです。 以下は、私が日常的に使用しているものです:

    • A myipエイリアスは、現在のパブリック IP アドレスをターミナルに表示します。 alias myip='curl http://ipecho.net/plain; echo'.
    • A distro エイリアスで、Linux ディストリビューションに関する情報を出力します。 alias distro='cat /etc/*-release'.
    • A reload というエイリアスは、ターミナルをリロードする方法を決して覚えていないようなので、次のようにします。 alias reload='source ~/.zshrc'.
    • A undo-git-reset のエイリアス。 alias undo-git-reset-head="git reset 'HEAD@{1}'". これは、パッケージリストを更新するために git reset HEAD~.
    • An alias を実行した効果を元に戻すものです。 alias sapu='sudo apt-get update'.
    • 以前のコマンドを sudo で再実行するためのエイリアスです。 alias ffs='sudo !!'.
    • 私は怠け者なので、yyarn コマンドにエイリアスしています。 alias y='yarn'. これは、レポをクローンして、y とタイプするだけですべての依存関係を取り込むことができることを意味します。 これは、Syntax の Scott Tolinski から学びました。
    • 私が使用しているものではありませんが、このエイリアスは、プロジェクトの依存関係を再インストールする前に node_modules フォルダを消去し、package-lock.json ファイルを削除します。 alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. ご存知のように、yolo は You Only Live Once の略です。
    • 私の .zshrc ファイルを編集用に開くためのエイリアスです。 alias zshconfig='subl $HOME/.zshrc'.
    • rbenv がインストールできる Ruby のバージョンのリストを更新するためのエイリアスです。 alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
    • 現在のディレクトリでサーバーをキックオフするエイリアス (npm パッケージは不要)。 alias server='python -m SimpleHTTPServer 8000'.
    • また、ブラウザでドキュメントを開くためのエイリアスを作成することができます。 alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
    • コマンドの出力を less にパイプするグローバル・エイリアス。 alias -g L='| less'. このように使うことができます。 cat production.log L.
    • コマンドの出力を grep にパイプするグローバルなエイリアス。 alias -g G='| grep'. というように使うことができます。 history G ssh.
    • また、関数を使用してエイリアスを作成することも可能です。 次の例では、GitHub にコードを追加、コミット、プッシュするエイリアスを作成しています:
      bash
      function acp() {
      git add .
      git commit -m ""
      git push
      }

    エイリアスに関するアイデアは、オンラインでたくさん見つけることができます。 たとえば、この Hacker News の議論や、Zsh によるコマンドラインの生産性に関するこの投稿です。

    15 Cool Things You Can Do with (Oh My) Zsh

    Oh My Zsh はコミュニティ主導の Zsh 設定管理用フレームワークで、何千もの役立つ関数、ヘルパー、プラグイン、テーマがバンドルされています。 もしあなたが Z シェルを毎日のドライバにするつもりなら、Oh My Zsh をインストールするべきです。

    以下は Oh My Zsh があなたにできる 15 の便利なことです:

    • take コマンドは新しいディレクトリを作ってその中に移動します。 take my-projectmkdir my-project && cd my-project を置き換えます。
    • zsh_stats は上位 20 コマンドのリストと何回実行されたかを表示します。
    • Oh My Zsh はファイルシステムのナビゲーションを単純化します。 例えば、..cd .. のエイリアスです。
    • 同じように、... は 2 つ上のディレクトリに、.... は 3 つ上に、そして ..... は 4 つ上に移動します。
    • 移動するときに cd を省略することが可能です。 例えば / と入力すると、ファイルシステムのルートに直行する。
    • 部分一致もサポートされている。 たとえば、/h/j/De と入力して TAB キーを押し、リターンを押すと、/home/jim/Desktop/ に移動します。
    • rdrmdir のエイリアスで、mdmkdir -p のエイリアスです。
    • d と入力すると、端末セッションから最後に使用したディレクトリをリストアップします。
    • その後、cd -n (n はディレクトリ番号) を使用してこれらのどれかに移動することができます。 たとえば、ls - と入力して TAB キーを押すと、コマンドのすべてのオプションが、それらが何をするかについての有益な説明とともにリストアップされます。 これは cap, rake, ssh, そして kill でも動作します。
    • alias と入力すると、現在のエイリアスをすべて表示します。
    • Grobing (Zsh 機能) により、特定の拡張子を持つファイルをリストすることができます。 たとえば、ls *.html と入力すると、現在のディレクトリにあるすべての HTML ファイルをリストアップします。 サブディレクトリを含めるには、次のように変更します。 ls **/*.html.
    • グロブ修飾子を使用すると、フラグを使用してファイルの種類を選択することができます。 例えば、ls -l **/*(.x) は現在のディレクトリとすべてのサブディレクトリにあるすべての実行ファイルを探します。
    • 更新日時でファイルを検索することができます。 例えば、ls *(m-7)は最近1週間以内に変更されたすべてのファイルをリストアップします。
    • サイズによってファイルを検索することができます。 たとえば、ls *(Lm+1) は 1MB 以上のサイズのファイルをすべて見つけます。

    Using Plugins for Fun and Profit

    Oh My Zsh には多くのプラグインが同梱されています。

    私がいつも使っている、便利なショートカットやエイリアスを提供する 3 つのプラグインを紹介します。

    10 Nifty Git Aliases

    git プラグインは多くのエイリアスやいくつかの便利な関数を提供しています。 これらを一通り見て、トップ10を記憶することを試みてはいかがでしょうか。

    1. gは、gitの便利なエイリアスです。 つまり、git clone <whatever>の代わりにg clone <whatever>のようなものを入力することができるのです。
    2. gaagit add all のエイリアスです。
    3. gbgit branch のエイリアスで、現在のレポのすべてのブランチをリストアップし、どのブランチにいるのかを表示してくれます。
    4. gcbgit checkout -b のエイリアスで、新しいブランチを作成するためのコマンドです。 これは master ブランチに戻ります。
    5. gdcagit diff --cached のエイリアスです。 これは、コミット用にステージングしたすべてのファイルの diff を取得できます。
    6. gfgit fetch のエイリアスです。
    7. gmgit merge のエイリアスです。
    8. gpgit push のエイリアスです。 レポのフォークを同期するには、こうします。 gf upstream, gm upstream/master, それに続く gp.
    9. gloggit log --oneline --decorate --graph のエイリアスで、これはきれいな git ブランチグラフになります。

    10 便利な npm エイリアス

    npm プラグインは、便利なエイリアスの束と同様に補完機能を提供します。 たとえば、npmg nodemon.

  • npmSnpm install --save のエイリアスで、依存関係をインストールし、package.jsondependencies セクションに追加するために使用します。 npm 5.0.0 では、これは npm i <package> を実行したときのデフォルトであることに注意してください。
  • npmDnpm install --save-dev のエイリアスで、依存関係をインストールし、それらを package.jsondevDependencies セクションに追加するために使用されます。
  • npmOnpm outdated のエイリアスで、インストールされたパッケージが現在古くなっていないかレジストリをチェックします。
  • npmLnpm list のエイリアスで、インストールされたパッケージをリストします。 これは、巨大な依存関係ツリーで端末を溢れさせることなく、 グローバルにインストールされているモジュールを見るのに特に有用です。 npmL0 -g.
  • npmstnpm run start のエイリアスで、アプリケーションを起動するためによく使われる npm スクリプトです。
  • npmtnpm run test のエイリアスで、推測通り、テストの実行に使われます。
  • npmRnpm run のエイリアスです。 このコマンドは、プロジェクトで利用可能なすべての npm スクリプトを、それらの動作の説明とともにリストアップします。 スクリプト名と組み合わせて使用すると、そのスクリプトを実行します。たとえば、npmR build.
  • npmI は、npm init のエイリアスです。 これは多くの質問をし、その答えに基づいてpackage.jsonを作成します。 このプロセスを自動化するには -y フラグを使用する。 たとえば、npmI -y.

10 Time-saving Rails/Rake Aliases

このプラグインは Ruby on Rails フレームワークと Rake プログラムの補完、およびログと環境変数の別名を追加します。

  • rcrails console のエイリアスで、CLI から Rails アプリを操作できるようにします。
  • rdcrake db:create のエイリアスで、(RAILS_ENV が設定されていなければ)アプリ用の開発およびテスト データベースを作成するようにします。
  • rddrake db:drop のエイリアスで、アプリの開発およびテスト用データベースを削除します。
  • rdmrake db:migrate のエイリアスで、保留中のデータベース マイグレーションを実行します。
  • rdsrake db:seed のエイリアスで、db/seeds.rb ファイルを実行して開発用データベースにデータを入力します。
  • rgenrails generate のエイリアスで、ボイラープレート コードを生成します。 例えば rgen scaffold item name:string description:text.
  • rgmrails generate migration のエイリアスで、データベースのマイグレーションを生成するものです。 例えば rgm add_description_to_products description:string.
  • rrrake routesのエイリアスで、アプリのすべての定義済みルートをリストします。
  • rrgrake routes | grepのエイリアスで、定義済みルートのリストとフィルタリングが可能です。 たとえば、rrg user.
  • rsrails serverのエイリアスで、RailsのデフォルトWebサーバーを起動します。

その他のリソース

上に挙げたプラグインは主に、よく使うコマンドのエイリアスを提供するものです。

私のお気に入りの 4 つを紹介します。

  • sudo では、ESC を 2 回押すと、現在または以前のコマンドに簡単に sudo というプレフィックスを付けることができます。 その提案が求めているものであれば、→キーを押して受け入れることができます。 本当に時間の節約になります!
  • command-not-found: コマンドが $PATH で認識されない場合、これは Ubuntu の command-not-found パッケージを使ってそれを見つけたり、スペルミスを示唆したりします。
  • z は便利なプラグインで、最も頻繁に使用する最近のフォルダー (これを “frecent” と呼びます) のリストを構築し、ひとつのコマンドでそこにジャンプできるようにします。

また、ターミナルで多くの時間を過ごすなら、それを視覚的に魅力的にするための努力をする価値はあります。 幸運なことに、Oh My Zsh にはたくさんのテーマが同梱されており、その中から選ぶことができます。 私が選んだのは Agnoster です。

テーマについて詳しくは、10 Zsh Tips & Tricks の記事で紹介しています。 設定、カスタマイズ & 使用法

まとめ

以上、75 個の Zsh コマンド、プラグイン、エイリアス、およびツールを紹介しました。 そして、GUI からターミナルに移行することをお勧めします。 見た目よりも簡単で、生産性を高める素晴らしい方法です。

お気に入りのプラグインや、時間を節約するエイリアス/コマンドを見逃した場合は、Twitter で教えてください。 Visual Studio Code をチェックしてください。 Web 開発者のためのエンドツーエンドの編集およびデバッグ ツール』を Wiley から入手してください。

コメントを残す

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