調べる方法 ターミナルコマンド すぐに体験を変えてみませんか?
この記事では、隠れていたり見落とされがちな、ターミナルの強力なコマンドの秘密をご紹介します。日々の作業を簡素化し、システム速度を向上させ、完全な制御を可能にする強力なツールとなるコマンドを習得できます。まずは簡単な答えから始めて、その後詳しく説明します。
次のようなコマンド grep و tail و tmux ファイル管理、トレース、同時コマンド実行の方法を一変させます。コンテキスト、トラブルシューティングのヒント、そして実践的な例を紹介するので、初日から自信を持って使いこなせるようになります。
このガイドの各セクションは、あなたが探している内容に合わせて注意深く作成されています。まずは明確な回答、整理された小見出し、実用的な例、さらに深く掘り下げるのに役立つ関連トピックへの内部リンクが用意されています。
さあ、始めましょう。ターミナルはあなたを再び失望させることはありません。
ターミナルを使い始めたばかりの方でも、熟練のプロの方でも、学ぶべきちょっとしたコツはたくさんあります。時間を節約できるコツです。今回は、あなたの武器庫に加えておきたい、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






