ターミナルでスマートに作業するためのBashのヒントとコツ

Linuxユーザーとして、ターミナルを初めて開いて、最も効率的で強力かつ柔軟な方法でシステムに取り組む瞬間は特別なものです。しかし、ターミナルへの最初の挑戦は、点滅するカーソルと無限の可能性の世界に迎えられるため、潜在的に intimidating かもしれません。それを助けるために、ターミナルでよりスマートに、よりハードに作業するためのいくつかのBashのヒントとコツを紹介します。
また読む: Linux初心者のための基本的なBashコマンド
Aproposを使ったコマンドの検索
Apropos (app-row-POE) は、説明に基づいて man またはマニュアルエントリを使用してコマンドを見つけることができるコマンドです。コマンドのmanページを見たことがあるなら、それは次のようなものです:

その「NAME」セクションが私が言っている部分です。aproposを使ってpingコマンドを見つけたい場合、ターミナルにapropos icmpと入力してEnterを押します。大文字と小文字は区別されません。これにより、「ICMP」を含むNAMEエントリのあるすべてのコマンドが表示されます。

aproposのもう一つの素晴らしい使い方は、selinuxのようにあまり馴染みのないツールを探ることです。apropos selinuxコマンドを発行すると、SELinuxと対話するために使用できるさまざまなコマンドのリストが得られ、効率的に強制するための道を開きます。
前のコマンドの置換
ターミナルで私の時間を大幅に節約してくれたのは、前のコマンドの中の何かを置き換える方法を見つけることです。何かを誤ってスペルミスしたり、前のコマンドのオプションを置き換える必要がある場合、^キーを使ってスペルミスした単語を引き出し、次に別の^を使って望んでいた単語やオプションを入れることができます。
例を見てみましょう。「maketecheasier.com」にpingを送り、完全なインターネット接続(DNSを含む)を確認したいとします。しかし、何かをスペルミスすると、何らかのエラーが発生する可能性があります。したがって、もし私が誤ってmaktecheaser.com(「i」を欠いている)にpingを送った場合、問題が発生します。
スペルミスしたオプションを置き換えるために、^maktecheaser.com^maketecheasier.comと入力すると、コマンドは期待通りに実行されます。これは単純な例ですが、長いコマンドを多くのオプションで実行したり、コマンドの出力やエラーを誤って指示したりする場合を考えてみてください。複雑なコマンドで>を>>に置き換えることができるのは、命の恩人です。

もう一つの例は、systemdとsystemctlコマンドです。私はしばしば、サービスを開始、停止、有効化、または無効化するために異なるsystemctlサブコマンドを複数発行します。^start^enableでそれらを置き換えることができ、時間を節約できます。
!!
これは、私にとって非常に特定のシナリオで非常に便利なものです。!!(バンバン)は、前のコマンドを完全に引き出します。一見役に立たないように思えるかもしれませんが、スーパーユーザー権限で実行する必要があるコマンドを入力するたびに考えてみると、どこで役立つかがわかるようになります。
素晴らしい例は、インストールスクリプトです。例えば、「./SCRIPT-NAME.sh」でインストールスクリプトを実行し、スーパーユーザー権限で実行する必要があると言われたとします。sudo !!と入力し、パスワードを入力すれば、すぐに実行できます。これにより、時間が大幅に節約され、そのシーケンスが筋肉の記憶に入ると、間違っていたときよりも早く実行できるようになります。

前のコマンドからの引数の渡し
!$を使用すると、コマンドから最後の引数を現在のコマンドに渡すことができ、わずかな変化を加えることで、任意の引数を現在のコマンドに渡すことができます。
いくつかの例を見てみましょう。スクリプトを編集している場合、nano samplescript.shというコマンドを使用するかもしれません。そのスクリプトが終わったら、実行可能にしたいので、8進数の権限を755に変更するかもしれません。そのために、chmod 755 !$コマンドを使用できます。その後、スクリプトの名前を再度引き出すために、./!:2を使用して2番目の引数を引き出すことができます。

他の例:
!^ - 最初の引数
!* - すべての引数
!:2-$ - 2番目から最後の引数
!:2-4 - 2番目から4番目の引数任意の引数を引き出すために数字を置き換えることができます。この方法でBashは約100の引数を保持し、こうした単純作業を迅速に処理できます。
これらのBashのヒントとコツが、ターミナルでよりスマートに作業するのに役立つことを願っています。また、Bashの変数や特殊文字についても学ぶべきです。