Bash エイリアスを作成する
Nilesh Katuwal
2023年1月30日
エイリアスは、単語を別の文字列に置き換えることができるシェルのコマンドです。これは主に、システムコマンドを短縮したり、頻繁に使用されるコマンドのデフォルトパラメータを提供したりするために使用されます。
これはショートカットコマンドに似ていますが、コマンド全体を作成するのと同じ機能を備えています。
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
はエイリアスリストから削除されます。