初心者目線のLPIC講座 > bashシェル > エイリアスと関数
bashシェルエイリアスと関数
シェルには、コマンドを別名に置き換える機能があります。これを使うと、例えば、引数やオプションがいくつか付いたコマンドを別名で定義すると、次回からはその別名を入力することによってコマンドを実行できる、という仕組みになっています。
その仕組みを「エイリアス」や「関数」といった機能で定義することができるのですが、それをこのページでは紹介します。
ちなみに、このページでは「エイリアス」に関しては「alias」、関数に関しては「function」「declare」といったコマンドが出てきますので、よく覚えておきましょう。
ではまず「エイリアス」に関する説明から。
エイリアスを定義するには「alias」コマンドを使います。以下に例文を示します。
alias ll='ls -l'
これで、llというエイリアスが定義され、次回からは単に「ll」と入力すれば、「ls -l」の実行結果が表示される、ということです。
逆に、定義されたエイリアスを解除するには「unalias」コマンドを使います。
unalias ll
これでエイリアスを解除できたので、この時点で
ll
と入力しても、
command not found
と、エラー表示されて終わりです(苦笑)。
解除ではなく、エイリアスを一時的に無効にすることもできます。
LinuxOSではバックスラッシュ「\」という、スラッシュ「/」を逆さにした記号が入力できるのですが、これを使うとエイリアスを一時的に無効にすることができます。
例えば「alias ls = ‘ls -l'」なんていう定義をしたとしても、
\ls
と入力して実行すると、"一時的に"エイリアスが無効になっているので、オプション無しの単なる「ls」コマンドが実行されます。
ちなみに、Linuxを立ち上げる前から、いくつかエイリアスの定義がされているものもあり、「alias」コマンドを単体で入力すると、現在定義されているエイリアスの一覧が表示されます。
続いて「関数」の説明です。
関数を使うと、エイリアスよりもっと複雑な定義をすることができます。関数を定義するには「function」コマンドを使います。
例えば、今いるディレクトリの内容を「counttxt」というファイルに保存する、という関数を「filelst」という名前で定義すると、下記のようになります。
function filelst() { ls -l | cat > counttxt; }
中カッコ{}内に「|」という縦棒がありますが、これは「パイプ」といって、前のコマンドの処理結果を、次のコマンドに受け渡すという特別な記号です。
その他にも色々見慣れない記号やコマンドがあり、ここでは詳しい説明は省きますが、
「ls」コマンドで得たディレクトリの内容を「cat」コマンドが受け取ってcounttxtというファイルに書き出す、
という仕組みになっています。
定義した関数を表示させるには「declare」コマンドを使います。
このコマンドに、オプション「-f」を付けて実行すると、定義されている関数を表示することができます。スポンサードリンク