paint-brush
コマンドライン: 総合ガイド@marcinwosinek
2,181 測定値
2,181 測定値

コマンドライン: 総合ガイド

Marcin Wosinek9m2023/01/18
Read on Terminal Reader

長すぎる; 読むには

コマンド ライン インターフェイス (CLI) に慣れるためには、多くの良い議論があります。まず、ターミナル エミュレータが必要です。これは、マシンへのテキストのみのアクセスをエミュレートするプログラムです。
featured image - コマンドライン: 総合ガイド
Marcin Wosinek HackerNoon profile picture

コマンド ライン インターフェイス (CLI) に慣れるには、多くの良い議論があります。ただし、完全な初心者の場合、開始するのが難しい場合があり、新しいシェル セッションは少し怖く感じる場合があります。

CLI の基本を見ていきましょう。

どこから始めれば

最初に必要なのは端末エミュレーターです。これは、マシンへのテキストのみのアクセスをエミュレートするプログラムです。どのオペレーティング システム (OS) にもエミュレーターの大きな選択肢があります。それらはすべて非常に似ており、主な違いは次のとおりです。


  • サポートされている色の数、


  • フォントの種類、サイズ、またはカラー スキーマの利用可能なオプション


  • フォントサイズを大きくするためのキーショートカットなど。


最初は、OS または統合開発環境 (IDE) で利用できるもので問題ないはずです。

シェル

シェルは、コマンドを解釈してプログラムを実行するプログラムです。上で説明した端末シミュレーターとは別物です。ある意味では、グラフィック インターフェイスで端末を開き、端末内でコマンドのテキストのみのインタープリターを使用します。


利用可能なオプションは多数ありますが、微妙な違いによってユーザー エクスペリエンスが大きく変わる可能性があります。

ズシ

Z シェル (Zsh) は、最新の人気のあるコマンド インタープリターです。そのインターフェイスはユーザー フレンドリーで、シェル エクスペリエンスをカスタマイズできるコミュニティ パッケージが利用可能です: Oh My Zsh 。私はそれを数年間使用しており、私の CLI の習慣のほとんどはそれから適応されています。

バッシュ

Bash は Zsh の少し古い代替手段です。これは非常に一般的であるため、遭遇する多くのマシンで利用できることが期待できます。 Zsh からの多くのショートカットもそこで機能しますが、別の構成ファイルを使用しており、スクリプト言語も少し異なります。

SH

スタンダードなシェル。これは標準の Unix コマンドの一部であり、Unix ライクなマシンであればほぼ確実に使用できます。したがって、スクリプトの作成に関しては安全な賭けです。


ユーザー インターフェイスには多くの最新の改善点が欠けているため、ワイヤリング スクリプト以外には使用しません。

とにかく私のシェルは何ですか?

echo $?でシェルを確認できます。 :
画像説明n

私の場合、それはzshです

シェルを変更する方法

すべてのシェルはプログラムであり、別のシェルから直接実行できます。例えば:


アシキャスト

このようにして、インストールしたシェルを確認し、すばやくテストできます。シェルを永続的に変更するには、Linux と macOS の両方でコマンドchsh (シェルの変更) を使用できます。


アシキャスト

使用するシェルがない場合は、最初にインストールする必要があります。正確なコマンドは、OS または Linux ディストリビューションによって異なります。

ビルディングブロック

では、端末を起動して実行したら、それをどのように使用しますか?

コマンド

CLI を使用すると、ターミナルに名前を入力して Enter キーを押すことでコマンドを実行できます。各コマンドは、広範なインターフェイスを提供する個別のプログラムであり、それぞれに独自のドキュメントが付属しています。


同様に、各 OS は独自のコマンド セットを提供しますが、特に Unix、macOS、および Linux に触発されたシステムとの類似点を共有しています。


Windows では、標準のコマンド ラインcmdには非常に異なるコマンド セットがありますが、同様のインターフェイスを取得するために使用できる多くのオプションがあります。


  • Linux 用ネイティブ Windows サブシステム


  • Git for Windows が提供する Git BASH


Unix は 1973 年に公開された OS で、その後の多くのことに影響を与えました。現在の仕様では161 個のコマンドが定義されていますが、幸いなことに、CLI のメリットを得るために必要なコマンドはほんの一握りです。


コマンドの例:


  • lsはフォルダー内のファイルを一覧表示します。既定では、現在のフォルダーの内容が表示されます。
    画像説明n

  • pwdは、コマンドを実行している現在のパスを示します。


    画像の説明

  • cdはディレクトリを変更します。デフォルトでは、ホーム ディレクトリに移動します ( https://asciinema.org/記録またはスクリーンショット)。


    アシキャスト

引数

各コマンドは、追加の引数を取ることができます。引数は、コマンド名の後に続くスペース区切りの値です。引数の意味は、プログラムによって異なります。コマンドのドキュメントでさまざまな引数について読むことができます。


アシキャスト

オプション

多くの標準コマンドには、プログラムの動作を変更できるさまざまなオプションが付属しています。たとえば、 lsは次のオプションと一緒によく使用されます。


  • -a — で始まるファイルを含むすべてのファイルを表示します. — 隠しファイルに関する Unix の規則


  • -lファイルを長い形式で表示 — 詳細情報を提供


一般的な規則は、オプションを個別のパラメーターとして許可すること ( ls -a -l )、または 1 つのパラメーターに結合すること ( ls -la ) です。
画像説明n

パラメーター

パラメーターは、コマンドまたはそのオプションの 1 つに値を提供する引数です。


たとえば、上記の例では、パスを指定してデフォルトの動作を変更できます。


  • ls workspace — ワークスペース フォルダー内のファイルを一覧表示します。


    アシキャスト

  • cd workspace — 現在のディレクトリをワークスペースに変更します。


    アシキャスト

  • cat file :ファイルの内容を画面に表示します。


    アシキャスト

パラメーターの意味はプログラムによって異なります。最初は、ドキュメントをよく確認する必要があると予想できます。

標準出力

標準出力は、プログラムの実行時にコマンド ラインに追加されるテキストです。そのテキストは、実行のハッピー パスによって示されます。これまで見てきた例は、さまざまなコマンドの標準出力を示しています。


C++ を学ぶとき、最初に学ぶことの 1 つはcout (標準出力) です。


デフォルトでは、標準出力は画面に表示されるだけですが、 >演算子を使用して簡単にファイルにリダイレクトできます。例:


アシキャスト

エラー出力

エラー出力は、プログラムが実行中に発生した問題に関する情報を表示する場所です。ターミナルから直接コマンドを実行している間、エラー出力と標準出力は同じように扱われ、画面に表示されるだけです。たとえば、存在しないファイルをlsしようとすると、次のようになります。


画像説明n

出力をファイルにリダイレクトすると、違いが明らかになります。


画像の説明

標準入力

通常のワークフローでは、標準入力はプログラムに入力するものです。これまで見てきたコマンドは、通常、対話モードでは使用されません。簡単な例としては、スクロールできるmanページがあります。


アシキャスト

C++ の経験がある人は、次のcinという用語を聞いたことがあるでしょう。

 cin >> variable;


多くの一般的なコマンドでは、パイプ演算子があるため、標準入力が特に重要になります。

パイプ

パイプは、あるプログラムの標準出力を別のプログラムの標準入力に接続する方法です。これが、前回の記事で述べた相互運用性を CLI が実現する方法です。


パイプを使用すると、さまざまなコマンドをさまざまな方法で組み合わせることができます。このシリーズの後半でいくつかの例を紹介します。今のところ、簡単な例は次のとおりです。


アシキャスト

どこ:

  • cat … — ファイルを読み取り、その内容を標準出力に返します。


  • less — 標準入力から値を取得し、画面に合わせます


同様に、検索ユーティリティgrepを使用して:


アシキャスト

どこ:

  • cat … —上記のように


  • grep 1 — 標準入力から値を取得し、 1を含む行のみにフィルター処理します。

ファイルへの書き込み

コマンドの標準出力をファイルに書き込むために使用される>演算子については既に説明しました。この演算子は、提供する出力でファイルを上書きします。既存のファイルに追加したい場合は、代わりに>>を使用できます。

作業ディレクトリ

コマンド ラインで実行されるすべての操作は、特定のディスクの場所 (作業ディレクトリ) のコンテキストで実行されます。読み取りまたは書き込み用に相対ファイル パスを指定すると、それらは作業ディレクトリから解決されます。


通常、作業ディレクトリは、作業中のプロジェクトの最上位フォルダーに設定します。新しいセッションを開始すると、通常、作業ディレクトリはホーム ディレクトリに設定されます。

コマンドの実行

シェル インタープリターは、作業を高速化するための多くのショートカットを提供します。時間が経つにつれて、それらについて考えることなく、直感的に使用できるようになります。


初心者と画面を共有していると、これらのショートカットは明らかであることに気づきます。以下に、コマンド ラインで作業するための生産性向上のためのヒントをいくつか紹介します。


私は自分で Zsh を使用していますが、これらのショートカットはそこで機能します。少なくともそれらのいくつかは Bash でも動作するはずですが、正確なバージョンと構成に依存する可能性があります。

2 回入力しないでください - 矢印を使用してください

CLI を高速に使用するための主な秘訣は、常にすべてを入力しないことです。最も基本的なケースは、数行前に実行したコマンドを取り戻すことです。これを行うには、上矢印キーを押します。


上矢印と下矢印を使用して、最近のコマンドをスクロールできます。実行したいコマンドに類似したコマンドが見つかったら、それを編集できます。これにより、プロセス全体が大幅に高速化されます。これは、引数がわずかに異なるだけで、よく似たコマンドを実行するためです。


アシキャスト

古いコマンドを検索

手動スクロールは、最新のコマンドの 1 つまたは少数を取得するのに適しています。ただし、過去からさらに何かを取得したい場合は、検索機能を使用できます。デフォルトでは、コマンド履歴で検索を開始するために使用できるコマンドは CTRL + R です。


アシキャスト

自動入力に使用

実行したいコマンド全体を入力する必要はありません。 Zsh と Bash はどちらも、自動入力を要求する方法としてタブ キーをサポートしています。コマンドまたはファイル名が一意の場合は入力し、入力内容が多くの可能性に一致する場合は、使用可能なすべてのオプションを表示します。


Zsh は、コマンド オプションの自動入力も提供します。


オートフィルは 2 つのレベルで優れた機能です。入力の時間を節約し、間違いを減らします。 CLI を学習するにつれて、できるだけオートコンプリートを使用する習慣を身につける必要があります。


アシキャスト

ファイル名のワイルドカード

ワイルドカードを使用して複数のファイルの名前を一致させることで、入力をさらに高速化できます。


アシキャスト

ポケットベル - 少ない

多くの場合、プログラムの出力が多すぎて画面に収まらない場合、別のプログラムをページャー (出力をナビゲートして上下にスクロールできるツール) として使用します。ほとんどの場合、そのために使用されるプログラムはlessです。使用する際に注意すべき点がいくつかあります。

シンプルなスクロール

何よりもまず、端末エミュレータが提供するスクロールバーでスクロールしないでください。 lessは、出力の最後にテキストの画面全体を再描画します。


端末エミュレーター内を上にスクロールすると、読み取りたいファイルの内容ではなく、以前に他のプログラムによって返されたものが表示されます。スクロール バー (スクロール ホイール) でスクロールする代わりに、上下の矢印を使用してファイル内を移動します。


アシキャスト

出口

もう 1 つのよくある混乱のポイントは、どうすれば今すぐ退出できるかということです。 qを押すと、「less」の全画面表示モードを終了できます。他のプログラム ( vimなど) は:を使用してコマンドを開始するため、多くの場合:qとしてスタイル設定されます。

検索中

コマンド ラインでは、すべてがテキストであり、テキストは簡単に検索できます。 /<search term>と入力して less で表示されるコンテンツ内を検索し、 nNを入力して結果をナビゲートできます。


アシキャスト

ファンシースクロール

lessは、 vimにあるものと同様の他のナビゲーション コマンドをサポートします。


  • j — 1 行下にスクロール
  • k - 1 行上にスクロール
  • gg — ファイルの先頭までスクロール
  • G — ファイルの最後までスクロール
  • d/u : 半画面ダウン/アップ


これらのショートカットは、ファイル内をすばやく移動するのに役立ちます。

もっと学びたいですか?

それは素晴らしいことです!コマンド ラインは、プログラミングの効率を高める優れたツールです。ここでサインアップして、私が他のコマンド ライン関連資料を公開しているので、私から最新情報を入手してください。


こちらにも掲載