ジャンナのテーマ ライセンスが検証されていません. テーマ オプション ページに移動してライセンスを検証します. ドメイン名ごとに XNUMX つのライセンスが必要です.

すぐにエクスペリエンスを変えるターミナルコマンドを見つける方法

もっと早く知っておきたかったターミナルの3つのコツ

調べる方法 ターミナルコマンド すぐに体験を変えてみませんか?
この記事では、隠れていたり見落とされがちな、ターミナルの強力なコマンドの秘密をご紹介します。日々の作業を簡素化し、システム速度を向上させ、完全な制御を可能にする強力なツールとなるコマンドを習得できます。まずは簡単な答えから始めて、その後詳しく説明します。

次のようなコマンド grep و tail و tmux ファイル管理、トレース、同時コマンド実行の方法を一変させます。コンテキスト、トラブルシューティングのヒント、そして実践的な例を紹介するので、初日から自信を持って使いこなせるようになります。

Ubuntu デスクトップのラップトップ画面で Linux ターミナルを開く方法

このガイドの各セクションは、あなたが探している内容に合わせて注意深く作成されています。まずは明確な回答、整理された小見出し、実用的な例、さらに深く掘り下げるのに役立つ関連トピックへの内部リンクが用意されています。

さあ、始めましょう。ターミナルはあなたを再び失望させることはありません。

ターミナルを使い始めたばかりの方でも、熟練のプロの方でも、学ぶべきちょっとしたコツはたくさんあります。時間を節約できるコツです。今回は、あなたの武器庫に加えておきたい、Bashの便利なコツを3つご紹介します。

置換プロセス、データを一時データファイルに変換する

パラメータとしてファイル パスが必要なのに、データしか持っていないという状況に遭遇したことがあるかもしれません。

たとえば、ターミナルにすでにあるテキストを編集したいとします。

echo "foo" | nano

上記のコマンドは、nano にデータを指定することができないため機能しません。代わりに、nano /path/to/file.txt のようにファイル パスを指定する必要があります。

この問題を解決するには、次のようなコマンド シーケンスを使用することが多いでしょう。

echo foo > bar.txt
nano bar.txt

2つの別々のコマンドを使ってファイルを作成し、それに対して操作を実行します。この方法は、ファイルがファイルシステム全体に散在し、パスも記述する必要があるため、理想的ではありません。この問題は、操作置換によって解決されます。

echo <(true)

上記のコマンドを実行すると、次のようにファイル パスが出力されます。

/ dev / fd / 16

プロセス置換は、コマンドの出力から一時ファイルを生成し、別のコマンドがそのファイルから読み取れるようにします。前の例では、「<(true)」が出力パスを生成し、「echo」がそれを受け取ります。出力データは単に「true」です。

助言
パスの「fd」部分は「ファイル記述子」、つまりプログラムが内部的に開いているファイルを参照するために使用する識別子を指します。この例では、ファイル記述子番号は16です。ファイル記述子は、それを使用するプロセス(この場合は「echo」)に固有のものです。

置換を便利な方法で使用してみましょう。

nano <(echo "foo")

上記のコマンドは、次のコマンドを記述することと同じです。

echo "foo" > /tmp/foo
nano /tmp/foo

ファイルは読み取り専用で作成されるため、nano <(echo “foo”) を実行しているときにテキストを保存および編集することはできませんが、Ctrl+o ショートカットを使用して保存場所を変更することはできます。

I/Oプロセスの置き換え

式「<(foo)」は入力操作の置換を作成します。また、出力操作の置換を作成することもできます。

echo "foo" > >(cat)

上記のコマンドは、次のコマンドを記述することと同じです。

echo "foo" > /tmp/foo
cat /tmp/foo

2つのコマンドは見た目は異なるかもしれませんが、動作は同じです。echo "foo" > >(cat) コマンドが "foo" を特別なファイルに書き込み、cat コマンドがそのファイルから読み取ることを理解すれば、動作は同じであることがより明確になります。

短い、

  • echo <(true) は入力操作の置換であり、echo コマンドは特別なファイル パスを介してデータを受信します (この場合、データは単に「true」です)。
  • echo “foo” > >(cat) は出力操作の置換です。cat コマンドは、エコーされた単語を特別なパス経由で受け取ります。最初の「>」文字はリダイレクト演算子であり、2番目の文字は置換式自体の一部です。

このセクションの最後に、実際の例を挙げてまとめると良いと思います。

diff <(ls -1 ~) <(ls -1 /tmp)

このコマンドは、2つのディレクトリ間の差分を比較します。この場合、diff関数はファイルパスを予測しますが、これは置換操作が提供するものなので、置換入力操作が便利です。

通知
記号「ls -1」は文字 l ではなく 1 です。

レプリケーションのレコード拡張コマンド

Bash開発者は「展開」という言葉をよく使います。複雑に聞こえるかもしれませんが、これは単に小さなものを大きなものに変更すること、つまり展開することを意味します。最も一般的な例はチルダ(~)展開で、これはホームディレクトリのパスに展開されます。

以下の3つの例はすべてログ展開と呼ばれます。これらの式はすべて、単純な文字入力からシェルログ内の項目へと展開されます。

バン、バン!!

これはcdとlsに次いで最もよく使われるコマンドの一つです。使いやすく理解しやすいです。最後に実行したコマンドを再実行します。

ls
!!

すぐにエクスペリエンスを変えるターミナルコマンドを見つける方法

コマンド出力から、ls コマンドが 2 回実行されていることがわかります。

履歴内の特定の項目を展開する
まず、履歴を確認して適切なコマンドを選択します。

history

次に、左側の数字の 1 つを選択し、それを N として入力します。

!N
ターミナルにBashの履歴が表示される: 二重感嘆符が入力され、最後のコマンドが再実行された シンプルなディレクトリリスト エクスペリエンスを瞬時に変えるターミナルコマンドの発見方法

警告
再度実行する前に、順序を再度確認してください。誤って間違った順序を実行すると、その日は最悪になります。

これらの番号付き履歴項目を展開する最大の利点は、番号が一定であるため、識別が容易なことです。もちろん、この保存は ~/.bash_history ファイルを削除した後でも有効です。

名前で展開して選択しやすくする

特定の番号のコマンドを見つけるためにコマンド履歴を何度も検索するのは面倒です。より効率的な方法があります。Bashでは、コマンドの先頭部分を入力すると、最後に一致したコマンドが実行されます。

echo foo
!e
!ech

これは、単一のターミナルセッション中に複数の注文を切り替える場合に最適です。ただし、長期間(かなり古い)注文の場合は、あいまい検索ツールを使用することをお勧めします。

コマンドグループ

複数のコマンドをまとめて実行し、それらの出力を一つの結果として扱いたい場合があります。次の例をご覧ください。

echo foo > /tmp/foo.txt
echo bar >> /tmp/foo.txt

「>」文字はリダイレクト演算子と呼ばれ、コマンドの結果を指定されたファイルに送信してその内容を置き換えます。「>>」文字も同じことを行いますが、ファイルに追加します。これはリダイレクト演算子として知られています。

上記のコマンドを実行すると、次のようなファイルが作成されます。

フーバー

コマンドが複雑な場合、この方法は不要な行が多くなりすぎて非効率になることがあります。より簡単な方法は、コマンドブロックを使用することです。

コマンド グループは、すべてのコマンド出力を 1 つのグループに結合するため、結果の処理がはるかに簡単になります。

{ echo foo; echo bar; } > /tmp/foo.txt

これにより、前のコマンドと同じ出力が生成されます。リダイレクトは一度だけ実行する必要があるため、リダイレクト演算子 (>>) は必要ありません。

警告
各コマンド、特に最後のコマンドの後にはセミコロンを必ず入れてください。括弧とコマンドワードの間にもスペースを入れてください。

次のコマンド シーケンスを実行すると、グループ外のコマンドが 1 回だけ実行されることを証明できます。

{ echo "A"; echo "B"; } | wc -l

ターミナルウィンドウに、2 つのエコー ステートメントを含むコマンド グループが表示されます。値は、行カウントを実行する wc コマンドにパイプされ、数値 2 が表示されます。エクスペリエンスを瞬時に変えるターミナル コマンドの見つけ方

このコマンドセットは、両方のエコー出力を単一のストリームとして送信します。したがって、「wc」コマンドは両方の行を1つのメッセージとしてカウントし、2を表示します。それ以外の場合は、1を2行に分けて表示します。

実際の使用例:

{ ping -c 1 example.com; ping -c 1 example.net; } > /tmp/ping.txt

簡単に:

プロセス置換は、プロセスを一時ファイルパスに置き換えます。例えば、nano <(echo “foo”) と echo “foo” > >(cat) です。

シェルレジストリ拡張は、bashレジストリ項目を参照する特殊文字です。例えば、!foo、!N、!!などです。

コマンドグループは、複数のコマンドの出力を1つの結果に結合します。例:{ echo “foo”; echo “bar”; } > /tmp/foo.txt。

上記で説明した内容は、bash の機能のほんの一部に過ぎません。シェルの履歴拡張機能に興味のある方は、history コマンドの使い方に関するチュートリアルをぜひご覧ください。また、コマンドラインの習得を容易にするヒントもご紹介しています。

これらのコマンドとヒントを確認すれば、ターミナルは単なるインターフェースではなく、障壁を打ち破り効率を高めるツールになります。まずは1~2つを毎日実践してみて、仕事の完了速度と満足度がどのように変化するかを確認してみてください。ただ読むだけでなく、実験と反復によって知識はスキルへと変わります。

トップボタンに移動