エイリアスと定義を使ってBashワークフローを効率化する方法
Bashは、主にLinux上でさまざまな管理タスクを自動的に実行したり、さまざまなタイプのプログラミング問題を解決するために使用できる人気のシェルプログラミング言語です。このチュートリアルの第一部では、Bashスクリプトを使用する目的と、Ubuntuでの作成および実行方法が説明されています。「alias」は、長いコマンドを短時間で簡単に実行するためのBashの便利なコマンドです。このチュートリアルの最後の部分では、Bashでの「alias」コマンドの使用方法の異なる方法が説明されています。
目次:
- バッシュスクリプトの定義
- Bashスクリプトの利点
- Bashスクリプトの欠点
- ターミナルからスクリプトを実行する
- Bashファイルからスクリプトを作成して実行する
- Bashエイリアスの使用目的
- Bashエイリアスの利点
- Bashエイリアスを作成する
- Bashエイリアスを永久にする
- Bashエイリアスの一般的な例
- Bashエイリアスのリストを取得する
- Bashエイリアスを削除する
バッシュスクリプトの定義
Bashスクリプトはシェルスクリプト言語の一つであり、Linuxのデフォルトのシェルスクリプト言語です。さまざまなBashコマンドはターミナルから実行できます。Bashコマンドが「.sh」または「.bash」拡張子を持つファイルに書かれている場合、それはBashスクリプトと呼ばれます。Bashは解釈型で弱い型付けの言語です。したがって、Bashファイルのスクリプトは行ごとに実行され、変数のデータ型宣言は必要ありません。「bash」コマンドはBashファイルを実行するために必要です。ターミナルからBashスクリプトを実行する方法とBashファイルの方法は、このチュートリアルの次の部分で示されます。
バッシュスクリプトの利点
LinuxでBashスクリプトを使用することには多くの利点があります。そのいくつかは以下の通りです。
- 他のシェルスクリプト言語よりも学ぶのが容易で使用するのも簡単です。
- Linuxでは、定期的に実行する必要のある多くの管理タスクがあります。これらのタスクは、適切なBashスクリプトを書くことで自動的に実行できます。
- 複数のコマンドはBashスクリプトを使用して単一のコマンドとして実行できます。
- Bashスクリプトを使用することで、さまざまなファイル関連の操作を簡単に行うことができます。
バッシュスクリプトの欠点
Bashスクリプト言語のいくつかの欠点は以下のように述べられています:
- 他の標準プログラミング言語のようなさまざまなタスクのための組み込み関数がありません。
- 他の言語のような優れたデバッグ機能がないため、Bashスクリプトのエラーを修正するのは難しいです。
- 構造化プログラミングにのみ使用できます。
- PythonやPHPなどの他の言語のように、すべての種類のオペレーティングシステムと互換性があるわけではありません。
- 多くの場合、それは他のプログラミング言語よりも遅いです。
ターミナルからスクリプトを実行する
スクリプトのいくつかの行を即座に実行する必要がある場合は、ターミナルからスクリプトを実行できます。以下にいくつかの例を示します:
ターミナルから次のスクリプトを実行して、“echo”コマンドを使用してテキストの行を印刷します:
echo "Bash is a popular scripting language."スクリプトを実行した後に次の出力が表示されます:
複数行を含むターミナルから以下のスクリプトを実行します。ここでは、無限の「while」ループが使用されており、テキストの行を印刷し、breakステートメントを使用してループから抜け出します。Bashスクリプトに多くの行が含まれている場合、スクリプトをBashファイルに書き込み、そのBashファイルをターミナルから実行する方が良いです。
while true; do echo "It is a testing loop"; break; doneスクリプトを実行した後に次の出力が表示されます:
バッシュファイルからスクリプトを作成して実行する
「largest.bash」という名前のBashファイルを作成し、以下のスクリプトを記述して、ユーザーから2つの数字を取得し、その間で最大の数字を見つける。
#!/bin/bash
#Enter two numbers from the user
read -p "Enter the first number: " n1
read -p "Enter the second number: " n2
#Find out the largest number
if [ $n1 -gt $n2 ]
then
echo "The largest number is $n1"
else
echo "The largest number is $n2"
fi今、Bashファイルは「bash」コマンドを使用して実行するか、Bashファイルの実行可能ファイルを作成することによって実行できます。
次のコマンドを実行して、“bash”コマンドを使用してBashファイルを実行してください:
bash largest.bash
入力値56と78のためにスクリプトを実行した後、次の出力が表示されます。ここで、78が最大の数です。
次のコマンドを実行して「largest.bash」ファイルを実行可能にします:
chmod a+x largest.bash実行可能なBashファイルを実行します:
./largest.bash前のコマンドを入力値6と3で実行した後に以下の出力が表示されます。ここで、6は最大の数です。
バッシュエイリアスの使用目的
時々、1つ以上のコマンドを含む長いコマンドを実行する必要があります。このような長いコマンドを何度も実行する必要がある場合は、長いコマンドの短いコマンドを作成する方が良いです。Bashの「alias」コマンドは、長いコマンドの短いコマンドを作成するために使用され、そのコマンドに別名を付けます。短いコマンドは一時的または永続的に作成することができます。Bashの「alias」コマンドを使用する利点とその使用方法については、チュートリアルの次の部分で説明します。
バッシュエイリアスの利点
Bashの「alias」コマンドには、次のような多くの利点があります。
- 短いコマンドは、ユーザーが「alias」コマンドを通じて作成します。ユーザーは設定したい短いコマンドの名前を設定でき、簡単に覚えることができます。したがって、「alias」コマンドによって作成された短いコマンドは、ユーザーにとってより記憶に残り、使いやすくなります。
- 短いコマンドを実行することで、ユーザーの時間を節約します。
- それは、長いコマンドのカスタマイズされたコマンドを作成するための引数またはフラグを含むことができます。
- Bashのワークフローを最適化する整理されたコマンドを作成するのに役立ちます。
エイリアスを作成する
次のコマンドは現在のシステム日付を表示します:
date以下のコマンドは「date」コマンドのショートコマンドを作成し、そのショートコマンドを実行します:
alias dt='date'
dt
以下の出力は、「date」コマンドと「dt」ショートコマンドの出力が同じであることを示しています。このタイプのエイリアスコマンドは一時的に機能します。システムが再起動すると、エイリアスコマンドは機能しなくなります。
bashエイリアスを永続化する
コマンドのショートカットを作成するために「~/.bashrc」ファイルを編集し、「alias」コマンドを追加する必要があります。そして、「source」コマンドを「~/.bashrc」ファイルで実行して、ショートカットコマンドを永続的にします。
以下のコマンドを実行して、nanoエディタで「~/.bashrc」ファイルを編集します:
nano ~/.bashrcファイルの末尾に次の行を追加します。ファイルを保存してエディタを終了するには、「Ctrl+x」を押します:
alias dt='date'次に、“alias”コマンドの行を追加することで、“~/.bashrc”ファイルの変更を確認するために次のコマンドを実行します:
source ~/.bashrcさて、システムを再起動してターミナルから「dt」ショートカットコマンドを実行すれば、それは機能します。
バッシュエイリアスの一般的な例
「alias」コマンドを使用することで、多くの種類のショートカットコマンドを作成できます。このチュートリアルのこの部分では、「alias」コマンドを使用して一般的に使用されるいくつかのBashコマンドのショートカットコマンドを作成する方法を示します。
1. 隠しフォルダーのリストを取得する
Bashの「ls」コマンドは、主に現在の作業ディレクトリ内のファイルおよびフォルダの一覧を取得するために使用されます。このコマンドには、異なる方法で出力を取得するために様々なオプションが使用できます。「ls -d .*」コマンドは、すべての隠しフォルダの一覧を表示するために使用されます。
ls -d .*コマンドを実行した後に次のような類似の出力が表示されます:
以下のコマンドを実行して、“ls -d .* ” コマンドのショートカットをショートカット名 “l ” で作成します。“l ” の出力は “ls -d .* ” コマンドの出力と同じです:
alias l='ls -d .*'
l前のコマンドを実行した後、次の出力が表示されます:
2. 分数値を用いた算術演算の結果を取得する
「bc」コマンドはBashで算術演算を正しく実行するために使用されます。「bc -l」コマンドは、小数点以下2桁を含む可能性のある算術演算の結果を計算するために使用されます。次の「alias」コマンドを実行すると、「cal」というショートカットコマンドが作成されます。その後、「cal」コマンドを「echo」コマンド内で使用して、小数点以下2桁を含む5/2の結果を計算することができます。
alias cal='bc -l'
echo "scale=2; 5/2" | cal前のコマンドを実行した後、次の出力が表示されます:
3. 曜日付きの現在の日付を取得
「date」コマンドは、Linuxで異なる形式の日付と時刻の値を取得するために使用されます。「alias」コマンドは、現在の日付の曜日名と月名、年の値を含む「date +"%A, %B %d, %Y"」コマンドのショートカットを作成します。次に、「dtf」ショートカットコマンドを実行して出力を確認します。
alias dtf='date +"%A, %B %d, %Y"'
dtf前のコマンドを実行した後、次の出力が表示されます:
4. ルートユーザーとしてログイン
「sudo」コマンドは、Linuxでルート権限を提供するために使用されます。「sudo -i」コマンドは、現在のユーザーをルートユーザーに変更するために使用されます。
次のコマンドを実行してください。「alias」コマンドは「sudo –i」コマンドのショートカットを「admin」というショートカット名で作成します。その後、「admin」コマンドが実行され、コマンドの出力を確認します。
alias admin='sudo -i'
admin「admin」コマンドを実行後に次の出力が表示されます:
5. ファイルの行数をカウントする
「find . -type f | wc -l」コマンドは、任意のファイルの総行数をカウントするために使用されます。
次のコマンドを実行してください。「alias」コマンドは、名前「cl」のショートカットコマンドを作成します。その後、「cl」コマンドは「temp.txt」ファイルの合計行数をカウントします。「cat」コマンドは、ここで「temp.txt」ファイルの合計行数を確認するために使用されます。
alias cl='find . -type f | wc -l'
cl temp.txt
cat temp.txt前のコマンドを実行した後、“temp.txt”ファイルの内容に基づいて次の出力が表示されます。“temp.txt”ファイルには3行あり、“cl”コマンドによって返される出力は3です:
6. 最後の5つのコマンドを見つける
「history」コマンドはLinuxで実行されたコマンドのリストを取得するために使用されます。「history 5」コマンドは、最後に実行された5つのコマンドのリストを取得するために使用されます。
次のコマンドをターミナルから実行します。“alias ”コマンドは、“history 5 ”コマンドのショートカットコマンドを名前“h5 ”で作成します。その後、“h5 ”コマンドは“history 5 ”コマンドの出力を表示します。
alias h5='history 5'
h5前のコマンドを実行した後、次の出力が表示されます:
バッシュエイリアスのリストを取得
「alias」コマンドにエイリアス名がない場合、これは「alias」コマンドを使用して作成されたすべてのショートカットコマンドの詳細なリストを取得するために使用されます。次のコマンドは、システムに以前に作成されたすべてのエイリアスコマンドのリストを表示します:
alias以下の出力は、以前に作成されたすべてのエイリアスコマンドのリストを表示しています:
Bashエイリアスを削除する
「alias」コマンドによって作成されたショートカットコマンドは、「unalias」コマンドを使用して削除できます。「dt」コマンドは先に作成されました。「unalias dt」コマンドは「dt」コマンドをシステムから削除します。したがって、以下のコマンドは最初に「dt」コマンドの出力を表示します。「unalias」コマンドを実行した後は、「dt」コマンドは機能しなくなります。
dt
unalias dt
dt前のコマンドを実行した後、次の出力が表示されます:
結論
BashスクリプトとBash「エイリアス」コマンドをさまざまな目的で使用する基本概念がここで説明されています。このチュートリアルを読むことで、新しいBashユーザーはBashスクリプトとBashエイリアスを学ぶ目的を理解できるようになります。













