1. 概要

Linuxユーザーが同じコマンドを時間をかけて繰り返し使用することはかなり一般的です。 端末履歴を介してコマンドをコピーして貼り付けることは、面倒で時間のかかる作業であり、その後ユーザーの生産性が低下します。 Linuxユーザーにとって、ワークフローを最適化し、作業効率を最大化することは常に良い考えです。

たとえば、複雑なコマンドのショートカットをすばやく作成して、入力したり覚えたりする代わりに、何度も再利用できます。

エイリアスは、この問題を簡単に解決するのに役立ち、Windowsのショートカットに似ています。

さて、それの核心に取り掛かりましょう。

2. エイリアスを作成する

一般に、エイリアスは、一連の複雑なコマンドを実行するためにユーザーが定義するカスタムコマンドです。

エイリアスショートカット名=実行するコマンド

tools@sandbox1:~/baeldung$ du -hs /var/log/* | sort -hr | head -3 
4.1G    /var/log/journal 
239M    /var/log/btmp.1 
48M     /var/log/logstash 
tools@sandbox1:~/baeldung$ alias top3logs='du -hs /var/log/* | sort -hr | head -10' 
tools@sandbox1:~/baeldung$ top3logs 
4.1G    /var/log/journal 
239M    /var/log/btmp.1 
48M     /var/log/logstash 

また、エイリアスの作成は比較的簡単で効果的なプロセスです。 エイリアスには、永続的と一時的の2種類があります。

2.1. 一時的なエイリアス

セッションがアクティブである限り、エイリアスがアクティブである場合、それを一時的なものとして分類します。 これらのエイリアスは、新しいセッションを開いたり、現在のセッションを終了したりしても効果がありません。

簡単な図を見てみましょう:

tools@sandbox1:~$ date 
Tue Aug  3 05:24:14 IST 2021 

tools@sandbox1:~$ who -u 
tools    pts/0        2021-08-03 05:24   .         20728 (122.164.227.87) 

tools@sandbox1: $ pwd 
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-dead_letter_queue-1.1.5/vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.4 
tools@sandbox1:~$ alias goto_elk_jar_path='cd /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-dead_letter_queue-1.1.5/vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.4/' 
tools@sandbox1:~/baeldung$ pwd 
/home/tools/baeldung 

tools@sandbox1:~/baeldung$ goto_elk_jar_path 

tools@sandbox1:~$ pwd 
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-input-dead_letter_queue-1.1.5/vendor/jar-dependencies/co/elastic/logstash/input/logstash-input-dead_letter_queue/1.1.4 

who -u コマンドは、現在のセッションの詳細を取得するのに役立ちます。

次に示すように、現在のセッション(PID: 20728 )を終了し、新しいセッション(PID: 25267 )を開きます。

tools@sandbox1:~$ date 
Tue Aug  3 05:37:04 IST 2021 

tools@sandbox1:~$ who -u 
tools    pts/0        2021-08-03 05:36   .         25267 (122.164.227.87) 
tools@sandbox1:~$ goto_elk_jar_path 
goto_elk_jar_path: command not found 

「コマンドが見つかりません」エラーは、「goto_elk_jar_path」という名前のカスタムaliasコマンドがないことを示しています。

2.2. パーマネントエイリアス

通常、CLIはプログラマーにとって非常に一般的なタッチポイントであり、コマンドをすばやく実行するには、エイリアスを永続的に保持する必要があります。 Linuxでエイリアスを永続的に追加する2つの顕著な方法があります。

1つのオプションは、エイリアスを.bashrcファイルに直接追加することです。 次に、 source コマンドを使用して、ファイルを実行し、現在のセッション自体にaliasを実装できます。

vi ~/.bashrc 
alias apt-update='sudo apt update && apt upgrade -y' ## Add this line in the file and save the file using :wq!.
source ~/.bashrc 

または、すべてのエイリアス.bash_aliasesという単一のファイルに管理することもできます。

vi ~/.bash_aliases 
alias apt-update='sudo apt update && upgrade -y' ## Add this line in the file and save the file using :wq!
source ~/.bashrc 

以下に示すように、必ず.bashrcファイルから.bash_aliasesを呼び出してください。

if [ -f ~/.bash_aliases ]; then 
. ~/.bash_aliases 
fi 

それでは、apt-getリポジトリの更新とアップグレード用に作成されたエイリアスを実行してみましょう。

tools@sandbox1:~$ apt-update 
Hit:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease 
.. 
.. 
.. 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
All packages are up to date. 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
Calculating upgrade... Done 
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

3. エイリアスを一覧表示

ここで、 alias コマンドは、一時エイリアスと永続エイリアスの両方を含む、現在ユーザースペースにあるすべてのアクティブなエイリアスを一覧表示します。

tools@sandbox1:~$ alias | grep -E "temp|apt" 
alias apt-update='sudo apt update -y && sudo apt upgrade -y' 
alias temp_disk='du -h .' 

同様に、 && コマンドは、最初のコマンドの正常な実行のみが2番目のコマンドの実行を呼び出すことができることを保証します。

4. エイリアスを削除する

同様に、 unaliasコマンドは、現在のユーザーセッションに接続されている一時エイリアスと永続エイリアスの両方を削除するのに役立ちます

tools@sandbox1:~$ alias temp_alias_disk='du -h .' 

tools@sandbox1:~$ alias | grep -E "apt|temp" 
alias apt-update='sudo apt update -y && sudo apt upgrade -y' 
alias temp_alias_disk='du -h .' 
tools@sandbox1:~$ unalias apt-update temp_alias_disk 

tools@sandbox1:~$ alias | grep -E "apt|temp" 
tools@sandbox1:~$ 

ただし、新しいセッションを開くと、 .bashrc ファイルにハードコードされているため、前のセッションで削除した永続的なエイリアスは引き続きアクティブです

対応するalias行を.bashrcファイルから削除して、完全に削除する必要があります。

5. 引数付きのエイリアス

多くの場合、エイリアスは、引数を渡すことができるときに便利になります。 単純なbash関数は、この操作を実行するのに役立ちます。

一般的な構文: function fn_name {[commands]}

〜/ .bashrc ファイルで、ネストされたディレクトリを作成してそこに移動する関数を定義しましょう。

通常、〜/ .bashrc ファイルにコードを追加した後、sourceコマンドを使用してファイルを実行します。

function make-dir-cd() 
{ 
    mkdir -p -- "$1/$2/$3" && cd -P -- "$1/$2/$3" 
} 

ここで、 $ 1、$ 2、および$ 3は、関数名の後の対応する位置でCLIに渡される引数です。

tools@sandbox1:~$ vi ~/.bashrc 
tools@sandbox1:~$ source ~/.bashrc 
tools@sandbox1:~$ pwd 
/home/tools 
tools@sandbox1:~$ make-dir-cd bael dung alias 

tools@sandbox1:~/bael/dung/alias$ pwd 
/home/tools/bael/dung/alias 

6. 結論

要約すると、エイリアスはWindowsのショートカットに似ています。 alias コマンドを使用して、他のコマンド(複雑な性質またはスクリプト)を呼び出すカスタムコマンドを作成できます。 エイリアスを使用すると、生産性が向上し、日常のワークフローが簡単になります。