aliasは別名を意味し、aliasコマンドはBashの組み込みコマンドの一つです。
コマンドに別の文字列を登録しそのコマンドを使用したときに、その登録した文字列をコマンドとして実行することができます。
例えば、コマンドによく使うオプション等を登録することで、短いキータイプで作業をすることができます。
目次
aliasコマンドの利用例
別名の登録
aliasコマンドは変数の代入のように行うことができます。別名が設定された文字列がコマンドとして呼び出されたとき、設定された文字列が展開されます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 |
$ls file.txt file2.txt file3.txt $ $alias ls='ls -l' $ls 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 1月 17 12:38 file.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 17 12:38 file2.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 17 12:38 file3.txt |
例えば、lsという文字列が'ls -l'に別名が設定されている場合、'ls -l'が展開された後で、'ls -l -l'、'ls -l -l -l'、...のように展開されることはありません。
登録されている別名の表示
aliasコマンドを引数なしで呼び出すか-pオプションを付けて呼び出すことで、登録されている別名を表示できます。
コマンド例
1 |
alias |
または
1 |
alias -p |
実行結果
1 2 3 4 5 6 7 8 |
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 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 -l' |
別名の解除
(unaliasコマンド)
aliasコマンドで登録した別名は、unaliasコマンドで登録を削除することができます。
コマンド例
1 |
unalias ls |
コマンド例実行前
1 2 3 |
$alias -p alias la='ls -A' alias ls='ls -l' |
実行結果
1 2 |
$alias -p alias la='ls -A' |
すべての別名を解除
(-aオプション)
unaliasコマンドの-aオプションで、全ての別名を削除することができます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$alias -p 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 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' $ $unalias -a $ $alias -p $ |
別名の展開を機能をオフに
別名の文字列展開は組み込みコマンドのshoptコマンドでexpand_aliasesという名前を指定することで、オンオフすることができます。別名の文字列展開をオンにする場合は-sオプションを、オフにする場合は-uオプションを使用します。
コマンド例(別名の文字列展開をオン)
1 |
shopt -s expand_aliases |
コマンド例(別名の文字列展開をオフ)
1 |
shopt -u expand_aliases |
別名の文字列展開は、対話的シェルの場合は、デフォルトでオンに、非対話的シェルの場合はデフォルトでオフになります。
別名をあらかじめ登録
~/.bashrcというファイルにコマンドを登録すると、シェルが起動したときに、そのコマンドが読み込まれ、実行されます。~/.bashrcにあらかじめaliasコマンドで別名を登録しておくと、普段使うときにその別名を利用することができます。
対話的シェルを起動する場合は、初めに/etc/profileが読み込まれた後に、~/.bash_profile、~/.bash_login、~/.profileの順で最初に見つかったものが読み込まれます。
非対話的シェルを起動する場合は、~/.bashrcを読み込みます。しかし、一般的に~/.bash_profileや~/.profileに~/.bashrcも読み込むように設定されています。
そのため、~/.bashrcは対話的シェルでも非対話的シェルでも読み込まれます。