【初学者の敵】シェルを理解して使いこなそう

僕を含め、初学者はシェルが苦手です。

あの黒い画面がどうしてもとっつきにくく、慣れるのに非常に時間がかかります。

この記事では、初学者にとって難解に感じることが多いシェルの基本知識と、より便利に使うためのテクニック(サジェスト機能)について解説します。

シェルについて

シェルは、ユーザーがコンピューターと対話するためのインターフェースを提供します。

ユーザーは、シェル上でコマンドを入力し、プログラムを実行したり、ファイルシステムを操作したりすることができます。

シェルには様々な種類があり、それぞれが異なる機能と特徴を持っています。

熟練エンジニアがUNIX系OSを選ぶ理由

シェルの設定ファイルは「.」から始まるファイル

シェルの設定ファイルは、ユーザーのホームディレクトリに配置され、主に「.」(ドット)で始まる隠しファイルです。

これらのファイルを編集することで、シェルの動作をカスタマイズできます。

例えば、.bashrcや.zshrcは、それぞれbashとzshシェルの設定ファイルです。

これらのファイルにエイリアスや環境変数を定義することが一般的です。

windows、Linuxそれぞれで使用するシェルを使い分ける

WindowsとLinuxでは、デフォルトで使用されるシェルが異なります。

WindowsではPowershellやコマンドプロンプトが一般的であり、Linuxではbashやzshがよく使われます。

各シェルは特定のオペレーティングシステムに最適化されており、それぞれの環境に合わせて最も適したシェルを選択することが重要です。

設定ファイルを編集したらdotfilesとしてGitHubに保存しておく

.zshrcなどのシェルの設定ファイルは、dotfilesとしてGitHubに保存し、パソコンが新しくなった時に同じ環境でシェルを使えるように準備しておくのが良いです。

Windows Terminalでシェルを使い分ける

Windows Terminalは、Windows上で複数のシェルを統合的に使用できる強力なツールです。

このツールを使うことで、1つのアプリケーション内でPowershell、コマンドプロンプト、さらにはWSLを介してUNIX系で良く使用されるzshも利用することができます。

インストール方法

Windows Terminalを使い始めるには、まずインストールが必要です。

Windows TerminalはMicrosoft Storeから簡単にインストールすることができます。

開発シナリオに応じてシェルを使い分ける

シェルを使い分ける理由は、それぞれのシェルが提供する機能と利便性が異なるためです。

ウェブアプリケーションの開発においては、zshが好まれる傾向にあります。

その理由は、zshが提供する豊富なプラグインとカスタマイズオプションにより、開発者がより効率的に作業を進めることができるからです。

sheldonなどのプラグインマネージャーを利用することで、コマンドラインから直接Git操作を行ったり、開発に必要な様々なツールへのアクセスを簡単に行うことができます。

しかし、すべての開発がzshで効率的に行えるわけではありません。

windowsのOSでlinux環境を使用するにはWSLを使用しますが、WSLでのUSBデバイスのサポートが限定的である為、GUIアプリケーションを開発する際は追加の設定が必要となる場合があります。

USBカメラなどの物理的デバイスの接続や特定のWindows固有の機能を扱う場合、Powershellやコマンドプロンプトがより直接的でネイティブなサポートを提供する場合が多いため、Windows環境での開発においてはPowershell等を使用した方が適切な場合もあります。

ポイント

開発シナリオに応じて最適なシェルを選択しよう
WSLでは、USBデバイスを使用する開発やGUIアプリケーション開発のサポートが限定されている

USBが反応しない!WSL使用時の注意点

サジェスト機能を追加しよう

シェルが異なれば、打ち込むコマンドもシェルごとに異なります。

zshなどのUNIX系のシェルはプログラミングに特化しているので独自のコマンドを実装出来たり、ウェブアプリケーションを作成する際のコマンドが充実しています。

複数のシェルのコマンドを使いこなすには、サジェスト機能を追加すると良いでしょう。

サジェスト機能は、ユーザーがコマンドラインに入力している最中に、既存のコマンドやファイル名を自動で提示してくれる機能です。

これにより、コマンドの入力ミスを減らすことができるだけでなく、覚えるべきコマンドの量を減らすことができ、シェルの使い勝手が大幅に向上します。

zshの場合は、sheldonをインストール

Powershellの場合は、PSReadLineをインストール

まとめ

シェルは最初にとっつきにくいかもしれませんが、少しずつ慣れていけば、作業効率は飛躍的に向上します。

是非、この機会にシェルを使いこなすスキルを身につけてください。