技術ノート Linux Linux でエイリアスとシェル関数を作成する方法

Linux でエイリアスとシェル関数を作成する方法

エイリアスと Bash シェル関数を使用して独自の Linux コマンドを作成します。反復的なタスクを抑制し、時間のかかるプロセスを短縮し、いつも使用していて覚えにくいオプションを使用して標準コマンドを構成します。

エイリアス とシェル スクリプトは、Linux や Unix のようなオペレーティング システムにおける強力なテクニックであり、コマンド ライン エクスペリエンスを望みどおりに磨き上げることができます。特定のニーズに合わせて独自のコマンドを定義し、反復的なタスクの負担を軽減できます。

エイリアスと シェル スクリプトは 同じ種類の仕事を行います。これらを使用すると、一連の Bash シェル機能を定義し、名前を付けることができ、指定した名前で呼び出すことができます。名前を入力するほうが、すべてのステップやコマンドを使用するたびに入力するよりも簡単で便利です。

エイリアスとスクリプトの違いは、複雑さと規模の違いです。スクリプトは、より長く複雑なコードの塊を保持するのに適しています。エイリアスは、より短く簡潔な一連のコマンドを保持するのに最適です。

事前定義されたエイリアス

一部のエイリアスは事前に定義されています。システムで定義されているエイリアスのリストを表示するには、パラメーターを指定せずに alias コマンドを使用します。

エイリアス

これらは、この記事の調査対象となった Ubuntu テスト マシンで定義されているエイリアスです。カスタム エイリアスを定義している場合、それらもこのリストに表示されます。

リストの一番上には、 alert という複雑に見えるエイリアスがあります。それについてはすぐに説明します。 ls コマンドにはさまざまなエイリアスがあり、 コマンドの grep ファミリにカラー出力を提供するエイリアスのグループもあります。たとえば、これらのエイリアスが定義されている場合、次のように入力すると、次のようになります。

 grep

システムはそれを次のように解釈します。

 grep --color=auto

これはエイリアスに関する重要な点を示しています。既存のコマンドと同じ名前を付けることができます。元のコマンドをその中に含めることもできます。

grep エイリアスの定義は次のとおりです。

エイリアス grep='grep --color=auto'

  • alias コマンドは、エイリアスを定義するために使用されます。
  • 次にエイリアスの名前を示します。この例では grep です。
  • 等号は、エイリアスの名前とエイリアスの本体を接続します。非常に単純なエイリアスを除くすべてのエイリアスの場合、エイリアスの本体は一重引用符 ' で囲まれます。
  • エイリアスの本体は、コマンド ラインでエイリアスが使用されるときに実行されるセクションです。

このエイリアスの本体は、 --color=auto オプションを指定して grep コマンドを呼び出すだけです。

Linux でエイリアスとシェル関数を作成する方法

アラートのエイリアス

簡単な余談ですが、アラートの動作を理解するために、コマンドの終了を通知するために alert エイリアスが使用されます。また、コマンドが正常に完了したかどうかも示されます。画面上部にグラフィカルなシステム アラートが表示されます。

以下に簡単な例を示します。 sleep コマンドは 5 秒間スリープします。その後、 alert エイリアスが呼び出されます。エイリアスは、前のコマンドからの応答をチェックします。履歴ファイルから最後のコマンドを抽出します。コマンドが正常に完了したかどうかを判断します。その後、結果がシステム アラートに表示されます。

コマンドが期待どおりに完了した場合、システム アラートのアイコンは小さなターミナル ウィンドウになります。コマンドがエラー コードを返した場合、システム アラートのアイコンは赤いエラー アイコンになります。

 5 寝ます。警告

5 秒後、次のシステム アラートが表示されます。

アイコンは小さなターミナル ウィンドウであり、すべてがうまくいったことを意味します。失敗することがわかっているコマンドを使用して、もう一度試してみましょう。

失敗する運命にあります。警告

システム アラートにエラー アイコンが表示されるようになりました。

Linux でエイリアスとシェル関数を作成する方法

簡単なエイリアスの定義

これまで見てきたように、エイリアスを定義するには、 alias コマンドを使用します。

clear コマンドの仮名を作成します。エイリアスは cls と呼ばれ、 clear コマンド を呼び出します。

私たちのエイリアス定義は非常に簡単なので、一重引用符で囲む必要はありません。エイリアスの本体がこれより複雑な場合、またはスペースが含まれている場合は、一重引用符で囲みます。エイリアスを定義し、 ls を使用して出力をターミナル ウィンドウに表示し、新しいエイリアス cls を使用して画面をクリアします。

エイリアス cls=clear

 ls -l

 CLS

画面がクリアされます。短命ではあったものの、成功。エイリアスは、このターミナル ウィンドウが開いている限り存続します。ウィンドウを閉じると、エイリアスは消えます。

では、エイリアスを永続的にするにはどうすればよいでしょうか?

Linux でエイリアスとシェル関数を作成する方法

.bashrc ファイルとエイリアス

事前にパッケージ化されたエイリアスがどこで定義されているか疑問に思うかもしれません。ホームフォルダーの「.bashrc」ファイルにあります。対話型シェルを開始するたびに、このファイルが読み取られ、その中のコマンドが実行されます。つまり、ターミナル ウィンドウを開いたときです。

ホーム フォルダーに次のコマンドを入力すると、構文が強調表示された “.bashrc” ファイルの内容が表示されます。

 gedit .bashrc

これにより、 gedit エディターが起動し、「.bashrc」ファイルが読み込まれます。

強調表示された領域は、エイリアスが定義されている 2 つの領域を示しています。

ドキュメントをスクロールすると、エイリアスに関連する他の 2 つのセクションが表示されます。

1 つ目は、 alert エイリアスの定義です。 2 番目は if ステートメント です。これは、「ファイル “.bash_aliases” が存在する場合は、それを読み込む」と解釈します。

定義したいエイリアスが少数しかない場合は、それらを「.bashrc」ファイルに含めることができます。 ls エイリアスを含むセクションの下にそれらを押し込みます。

多数のエイリアスを作成する場合、またはエイリアスを独自のファイル内にカプセル化したい場合は、「.bash_aliases」ファイルでエイリアスを定義できます。これらを「.bash_aliases」ファイルに作成する利点の 1 つは、「.bashrc」ファイル内の設定を誤って変更できないことです。もう 1 つの利点は、エイリアスが「.bashrc」ファイルから完全に分離されているため、新しいシステムに簡単にコピーできることです。

Linux でエイリアスとシェル関数を作成する方法

.bash_aliases ファイルへのエイリアスの保存

「.bash_aliases」ファイルは、作成するまで存在しません。次のコマンドを使用してファイルを作成できます。

 .bash_aliases にタッチ

ファイルを編集して、いくつかのエイリアスを追加しましょう。このコマンドは、 gedit エディターで「.bash_aliases」ファイルを開きます。

 gedit .bash_aliases

3 つのエイリアスを追加しました。 1 つ目は、以前に使用した cls エイリアスです。次は h. これは、 history コマンドを呼び出す短縮的な方法です。

3 番目のエイリアスは、 ftc と呼ばれます。これは「ファイルタイプ数」を表します。

このエイリアスはより複雑であるため、一重引用符で囲みます。パイプでリンクされた一連のコマンドを使用します。さまざまなファイル拡張子とディレクトリ名のソートされたリストが生成され、各リスト エントリの数が表示されます。

「.bash_aliases」ファイルを保存すると、エイリアスが有効になり、アクセスできるようになります。そうではありません。エイリアス定義が有効になる前に、Bash シェルによってファイルを読み込む必要があります。これは、対話型シェルが開かれるたびに行われます。

組み込みの Bash シェルを使用することもできます . ファイル内の コマンドを読み取って実行します 。 「.bash_alias」ファイルは「.bashrc」の処理時に読み込まれるため、「.bashrc」を呼び出してテストを実行する必要があります。こうすることで、「.bash_alias」ファイルが「.bashrc」から呼び出され、エイリアスが正常に動作していることを確認できます。

使用したコマンドは次のとおりです。

 gedit .bash_alias

「.bash_alias」ファイルを編集します。

 。 .bashrc

これにより、「.bashrc」内のコマンドが読み取られて実行され、「.bash_alias」が呼び出されます。

 ftc

これにより、 ftc エイリアスが呼び出されます。

エイリアスが応答しました。これは、Bash が「.bashrc」と「.bash_aliases」の両方を読み取ったことを意味し、新しいエイリアスが有効になっています。

ここで、思いついたときに新しいエイリアスを「.bash_aliases」ファイルに追加できます。何かを 1 回または 2 回以上行っていることに気付いた場合は、そのエイリアスを作成することを検討してください。

Linux でエイリアスとシェル関数を作成する方法

エイリアスの削除

BAsh がエイリアスを認識したり応答したりしないように、 エイリアスを削除する コマンドがあります。実に率直な言葉ですが、このコマンドは unalias と呼ばれます。

これを使用するには、Bash に忘れさせたいエイリアスの名前を指定します。 Bash に ftc エイリアスを忘れさせるには、次のように unalias 使用します。

ウナリアスFTC

unalias 使用すると、定義したエイリアスおよび事前定義されたエイリアスのいずれかを削除できます。

システムからすべてのエイリアスを削除するには、 -a (all) オプションを使用します。

ウナリアス -a

ただし、Bash の記憶喪失は永久的なものではありません。次回ターミナル ウィンドウを開くと、「忘れられた」エイリアスが戻ってきます。それらを完全に消去するには、「.bashrc」ファイルと「.bash_alias」ファイルからそれらを削除する必要があります。

これらを元に戻したい場合は、「.bashrc」ファイルから削除しないでください。代わりに、各 alias 行の先頭にハッシュ # を追加してコメントアウトします。 「.bash_alias」ファイルを無効にするには、名前を変更します。 「.bashrc」ファイルがそれを認識できない場合、それは読み込まれません。これらの手順を逆に実行してエイリアスを復元するのは簡単な作業です。

Linux でエイリアスとシェル関数を作成する方法

シェル関数

Lika エイリアスや Bash シェル関数は「.bashrc」ファイル内で定義できますが、多くの場合、それらを独自の定義ファイルに置いた方がすっきりします。 「.bash_aliases」ファイルに使用される規則に従って、これを「.bash_functions」と呼びます。

つまり、「.bashrc」ファイルに定義を読み取るように指示する必要があります。 「.bash_aliases」ファイルに読み取られるコードのスニペットをコピーして修正できます。 gedit を起動し、次のコマンドで「.bashrc」ファイルをロードします。

 gedit .bashrc

以下に示す強調表示されたセクションを追加する必要があります。

エイリアス セクションを強調表示して Ctrl+C を押し、新しいセクションを配置する場所に移動し、 Ctrl+V を押してテキストのコピーを貼り付けます。次に、「.bash_aliases」と書かれている 2 つの場所を「.bash_functions」に変更するだけです。

これらの変更を保存して gedit を閉じます。

ここで、「.bash_functions」ファイルを作成および編集し、そのファイルに関数定義を追加します。

 .bash_functions にタッチ

gedit .bash_functions

これにより、 gedit で空の「.bash_functions」ファイルが開きます。

up という単純な関数を追加します。 up 単一のコマンド ライン パラメータ (数字) を受け取ります。 up cd .. その回数だけ呼び出します。したがって、次のコマンドを使用した場合、

アップ2

up cd .. 2 回呼び出し、ディレクトリ ツリー内で 2 レベル上に移動します。

関数を定義するにはさまざまな方法があります。ここにその 1 つがあります:

関数 up() {

word function はオプションです。伝統主義者であればそれを使用し、入力するのが面倒であれば省略してください。

gedit の関数全体は次のとおりです。

関数 up() {

これは関数定義の開始を示し、関数に up 名前が付けられます。

レベル=$1

これにより、 levels という変数が作成され、それが最初のパラメーターの値に設定されます。このパラメータは、関数を呼び出すときにユーザーが指定する数字になります。 $1 は「最初のコマンドラインパラメータ」を意味します。

 while [ "$levels" -gt "0" ];する

次にループに入ります。これは、「 levels の値がゼロより大きい間、ループの本体に含まれていることを実行する」と解釈されます。

ループの本体内には 2 つのコマンドがあります。彼らです:

 CD ..

ディレクトリ ツリー内で 1 つ上のレベルに移動します。

レベル=$(($レベル - 1))

levels を現在の値より 1 つ少ない新しい値に設定します。

次に、ループの先頭に戻り、 levels の値とゼロの比較がもう一度行われます。 levels が 0 より大きい場合、ループの本体が再度実行されます。ゼロより大きくない場合、ループは終了し、 done ステートメントに進み、関数は終了します。

これらの変更を保存し、 gedit を閉じます。

「.bashrc」内のコマンドを読み取って実行します。「.bash_functions」ファイル内のコマンドを読み取って実行する必要があります。

 。 .bashrc

ディレクトリ ツリー内の任意の場所に移動し、 up 使用してディレクトリ ツリー内の「上位」ポイントに戻ることで、関数をテストできます。

 cd ./work/backup/

アップ2

機能は動作します。ツリー内で 2 つ上のディレクトリ レベルに移動しました。

タイプを追跡する

エイリアスのスイートと関数のライブラリを構築すると、特定のコマンドがエイリアスなのか関数なのかを思い出すのが難しくなることがあります。 type コマンドを使用して 思い出させること ができます。ここで素晴らしいのは、定義も確認できることです。

ftc エイリアスと up 関数で type を使用しましょう。

 「ftc」と入力します

タイプアップ

それぞれのコマンドがどのようなタイプであるかを、その定義とともに非常に便利に思い出させることができます。

収集を開始する

エイリアスと関数を使用すると、コマンド ラインの使用を大幅に高速化できます。コマンド シーケンスを短縮でき、標準コマンドで常に使用するオプションを組み込むことができます。

気の利いたワンライナーや便利な関数を見つけるたびに、それを調整してカスタマイズして、「.bash_aliases」または「.bash_functions」ファイルに追加できます。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワード · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

関連: 開発者と愛好家のための最高の Linux ラップトップ

「Linux でエイリアスとシェル関数を作成する方法」に関するベスト動画選定!

【Linuxの基礎#4】検索と正規表現
正規表現/テキストデータ処理(Linux学習)