すべてのユーザーが知っておくべきBashの重要なヒントとコツ

すべてのユーザーが知っておくべきBashの重要なヒントとコツ

Linux初心者にとって、ターミナルの起動はワクワクすると同時に、圧倒されるような感覚も味わえるかもしれません。ターミナルには豊富なコマンドと機能が備わっていますが、点滅するカーソルは初心者にとって少し不安に感じるかもしれません。そこで、この移行をスムーズに進めるために、ターミナル内でより効率的に操作するための、Bashの重要なヒントとコツを厳選してご紹介します。

Bashとターミナルの違いを理解する

Bashとターミナルの違いを明確にすることが重要です。ターミナルは、オペレーティングシステムと対話するためのコマンドを発行するためのインターフェースまたはアプリケーションとして機能します。一方、Bashはシェル(UNIXシステム用のコマンド言語インタープリター)であり、入力されたコマンドを処理・実行します。したがって、ターミナルを操作するときは、基本的にBashシェル(またはzshやfishな​​どの他のシェル)を使用していることになります。これから紹介するヒントとコツは、主にBash環境における効率を最適化することに焦点を当てています。

1.よく使うコマンドにカスタムエイリアスを使う

長いコマンドを繰り返し入力するのは面倒です。エイリアスを使用すると、ワークフローを大幅に効率化できます。エイリアスを使用すると、長いコマンドに覚えやすいショートカットを割り当てることができるため、入力の手間が省けます。

例えば、 と入力する代わりにgit status、 のようなエイリアスを作成できますgs。エイリアスは、セッション内で一時的に使用することも、永続的に使用することもできます。一時的なエイリアスを作成するには、次のコマンドを実行します。

alias gs="git status"

ここで、 と入力するgsと が実行されますgit status。永続的なエイリアスを作成するには、nanoなどのお好みのテキストエディタを使用して、Bash設定ファイル(通常は「~/.bashrc」または「~/.bash_profile」にあります)を編集します。

sudo nano ~/.bashrc

ファイルの末尾にエイリアス定義を追加して保存し、ターミナルを再起動するか、次のコマンドを実行します。

sudo source ~/.bashrc

今後、これらのエイリアスはすべてのセッションで利用可能になります。例えば、私は更新コマンドに以下を使用しています。

alias update='sudo apt update && sudo apt upgrade -y'

このように、 と入力するだけでupdateコマンド全体を実行できます。さらに、関数を使えば、パラメータを受け入れるエイリアスを作成することもできます。

mkcd() {mkdir -p "$1" && cd "$1"}

このコマンドはmkcd projects/new-app指定されたディレクトリを作成し、そこへ移動します。混乱を避けるため、既存のコマンドを上書きしないように注意してください。

2.コマンド履歴を即座に検索

ターミナルの履歴をスクロールするのは面倒です。幸いなことに、Bash にはクイック検索ツールが用意されており、以前のコマンドを簡単に再確認できます。

コマンド履歴の検索

Ctrl+を押すだけでRプロンプトが切り替わり、必要なコマンドの一部を入力できるようになります。入力すると、Bash は履歴から最新の一致するコマンドを表示します。

次のスニペットを「~/.inputrc」ファイルに追加することで、この機能を強化することもできます (存在しない場合は作成してください)。

"\e[A": history-search-backward"\e[B": history-search-forwardset show-all-if-ambiguous onset completion-ignore-case on

ターミナルをリロードした後、コマンドの先頭を入力し、続けてUp/Down矢印キーを使用することで、コマンド履歴を検索できるようになります。

3.パイプラインとリダイレクトによるコマンドの連鎖

Bashでは、複数のコマンドを連結して、あるコマンドの出力を別のコマンドの入力として利用できます。|このためにはパイプライン演算子( )を使用します。例えば、実行中のタスクの中でPythonのプロセスだけを確認したい場合は、次のようにコマンドを組み合わせることができます。

ps aux | grep python

フィルタープロセスへのコマンドの連鎖

ここでは、ps auxアクティブなプロセスをすべてリストし、grepPythonに関連するプロセスのみをフィルターして表示します。また、追加のコマンドを連結して効率的なスクリプトを作成することもできます。例えば、

cat logfile.txt | grep "error" | wc -l

このコマンドは、ログ ファイル内でエラーとしてマークされた行の数をカウントします。3 つのコマンドが連携して動作します。

リダイレクトも重要な機能の一つです。コマンド出力をターミナルに表示する代わりに、ファイルに保存することができます。例えば、ディレクトリ一覧を保存するには、次のようにします。

ls -l > files.txt

上書きではなく追加出力を行う場合に使用します>>。この機能は、ログ記録やデータのバックアップに特に便利です。

4.バックグラウンドでコマンドを実行する

ターミナルを占有するほど長いコマンドを実行した場合、新しいセッションを開始する必要はありません。代わりに、コマンドをバックグラウンドにプッシュして、ターミナルを使い続けてください。

Ctrl+を押すZと実行中のコマンドが一時停止され、シェルプロンプトに戻ります。その後、以下を実行します。

bg

これにより、コマンドがバックグラウンドで再開されます。ジョブのステータスを確認するには、次のように入力します。

jobs

バックグラウンド ジョブをフォアグラウンドに戻すには、次のコマンドを使用します。

fg %1

ジョブ番号を指定できます。指定しない場合は、fg最新のタスクがデフォルトになります。コマンドをバックグラウンドで実行したい場合は、&コマンドに以下を追加してください。

some_long_task &

これにより、ターミナルを停止させることなくコマンドを開始できます。ターミナルが閉じられた際にジョブが終了しないようにするには、以下を使用します。

disown -h %job

このコマンドは、シェル終了時にそのジョブに「ハングアップしない」シグナルを送信します。このコマンドをnohupシェルの起動時に使用すると、同様の結果が得られますが、バックグラウンドジョブが引き続きターミナルに出力する可能性があることに注意してください。

5.`sudo` (sudo!!) を使用して最後のコマンドを再実行します。

このトリックは、スーパーユーザーアクセスを必要とするコマンドを実行するという、よくあるシナリオに対応しています。この!!コマンドは最後のコマンドをプルし、昇格された権限ですぐに再実行できるようにします。

たとえば、次のようなインストール スクリプトを実行しよ./SCRIPT-NAME.shうとして権限エラーが発生した場合は、次のように入力します。

sudo! !

パスワードを入力すると、操作を再開できます。この小さなコマンドにより、かなりの時間を節約でき、使用に慣れると自然にできるようになります。

Bashのヒントとコツ 再実行コマンド

6.複数のコマンドを一度に実行する

タスクを効率化するために、Bash では複数のコマンドを連続して実行できます。結果に関係なくコマンドを連続して実行するには、セミコロン ( ;) を使用します。

mkdir newdir; cd newdir; touch file.txt

最初のコマンドが成功した場合にのみ 2 番目のコマンドを実行する場合は、二重のアンパサンド ( &&) を使用します。

sudo apt update && sudo apt upgrade

逆に、前のコマンドが失敗した場合にのみコマンドを実行したい場合は、二重の縦棒 ( ||) を使用します。

backup_database || echo "Backup failed!"

Bash ではバックグラウンド処理も可能です。アンパサンドを追加するだけで、ターミナルを解放しながらバックグラウンドでコマンドを実行できます。

python script.py & firefox &

これにより、Firefox を同時に起動しながら Python スクリプトが実行されます。コマンドの連鎖とバックグラウンドタスクの管理を練習することで、ターミナルとのやり取りがより統一感のあるものになるでしょう。

7. Aproposでコマンドを見つける

このaproposコマンドは、マニュアルエントリの説明に基づいてコマンドを見つけるための優れたツールです。manページを使用したことがある方なら、上部にあるメタデータをご存知でしょう。aproposキーワードを続けて実行すると、関連するすべてのコマンドラインツールが表示されます。

Bashのヒントとコツ

例えば、 と入力すると、apropos icmpそのトピックに関連するコマンドのリストが表示されます。この機能は、 などのこれまで馴染みのないユーティリティを見つけるのに特に便利です。 をselinux実行するだけで、apropos selinuxSELinuxポリシーの管理に使用できるコマンドが表示されます。

8.最後のコマンドで要素を置換する

前のコマンドの間違いを修正する便利な方法として、置換を使うことが挙げられます。誤ってコマンドを入力してしまった場合は、キャレット(^)記号を使って素早く修正できます。

たとえば、ping を実行するつもりmaketecheasier.comが と誤って入力した場合はmaktecheaser.com、次のように実行します。

^maktecheaser.com^maketecheasier.com

>このコマンドは、正しいアドレスでpingリクエストを効率的に再実行します。この方法は、長いコマンドや複雑な引数がある場合に特に便利です。出力リダイレクトの誤り(を に置き換えるなど)を修正する際にも、このコマンドの使用を検討してください>>

9.前のコマンドからの引数を渡す

この!$構文では、以前のコマンドの最後の引数を再利用できます。さらに、バリエーションを使用することで、特定の引数を簡単に組み込むことができます。

たとえば、 を使用してファイルを編集しnano samplescript.sh、実行権限を付与したい場合は、次のコマンドを実行します。

chmod 755! $

前のコマンドの2番目の引数を参照するためにも使用できます./!:2。置換オプションの概要は次のとおりです。

!^ - first argument!* - all arguments!:2-$ - second through last arguments!:2-4 - second through fourth arguments

Bash は約 100 個の引数の履歴を保持しているため、この機能によりターミナルの使用時の効率が大幅に向上します。

これらのBashのヒントとコツがお役に立ち、ターミナルでより効率的にコマンドを実行するのに役立つことを願っています。Bashスクリプトを楽しんでください!

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です