Bash エイリアスを作成する

Nilesh Katuwal 2023年1月30日
  1. Bash でエイリアスを作成する
  2. パラメータを取る Bash エイリアスを作成する
  3. Bash でエイリアスを削除する
Bash エイリアスを作成する

エイリアスは、単語を別の文字列に置き換えることができるシェルのコマンドです。これは主に、システムコマンドを短縮したり、頻繁に使用されるコマンドのデフォルトパラメータを提供したりするために使用されます。

これはショートカットコマンドに似ていますが、コマンド全体を作成するのと同じ機能を備えています。

Bash でエイリアスを作成する

例を見てみましょう。

$ alias update="sudo apt-get update"

エイリアス update を作成しました。これは、sudo apt-get update のショートカットです。これで、update を実行すると、sudo apt-get update と同じように機能します。

$ update

出力:

[sudo] password for username: 
Get:1 https://typora.io/linux ./ InRelease [793 B]            
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]                                                                            
Hit:3 http://np.archive.ubuntu.com/ubuntu focal InRelease                                                                                            
Hit:4 http://ppa.launchpad.net/micahflee/ppa/ubuntu focal InRelease                                  
Ign:5 http://linux.dropbox.com/ubuntu disco InRelease                                                
Get:6 http://np.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]                                                                           
Hit:7 http://linux.dropbox.com/ubuntu disco Release                                                                                                  
Ign:8 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 InRelease                                                                            
Hit:10 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 Release                                                                             
Get:12 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [35.7 kB]                                                         
Get:13 http://np.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]                                                                        
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 DEP-11 Metadata [66.3 kB]                                                     
Get:15 http://np.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [278 kB]                                                         
Get:16 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 DEP-11 Metadata [2,468 B]                                                   
Get:17 http://np.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [363 kB]                                                     
Get:18 http://np.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [940 B]                                                    
Get:19 http://np.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,996 B]                                                      
Get:20 http://np.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [11.3 kB]                                                  
Fetched 1,102 kB in 9s (120 kB/s)                                                                                                                    
Reading package lists... Done

すべてのエイリアスを一覧表示するには、以下のコマンドを実行します。

$ alias

出力:

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias echo='show'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias show='echo'
alias update='sudo apt-get update'

新しく作成されたエイリアス update も、他のすべてのエイリアスとともにリストに含まれています。

パラメータを取る Bash エイリアスを作成する

Bash エイリアスはパラメータを直接受け入れません。関数メカニズムはより適応性があり、以前と同じ機能を提供するため、関数を作成する必要があります。

エイリアスはパラメータを取りませんが、エイリアスと同じ方法で関数を呼び出すことができます。例を見てみましょう。

$ alias wargs='f(){ echo first "$@" last;  unset -f f; }; f'
$ wargs a b c

上記の例では、一時関数 f が作成されています。引数は、最後に f が呼び出されたときに送信されます。

未設定の -f オプションは、エイリアスの実行中に関数定義を削除し、後でそれが長引くことがないようにします。

出力:

first a b c last

Bash でエイリアスを削除する

unalias コマンドを使用して、以前に作成したエイリアス update を削除できます。

$ unalias update

すべてのエイリアスのリストをもう一度確認してみましょう。

$ alias

出力:

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias echo='show'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias show='echo'
alias wargs='f(){ echo first "$@" last;  unset -f f; }; f'

出力に見られるように、エイリアス update はエイリアスリストから削除されます。