Linuxでエイリアスとシェル関数を作成するにはどうすればよいですか?
GNU / Linuxシステムを最大限に活用したい場合は、コマンドプロンプトとシェルスクリプトを知っておく必要があります。コマンドラインで動作するコマンドが多いほど、使用されているコマンドの大部分が非常に多いことがわかります。使用可能なコマンドの小さなサブセット。ほとんどのタスクは習慣的であり、ユーザーはこれらを毎日同じ方法で実行できます。
最も一般的なコマンドユーティリティの多くのメーカーは、短縮名を使用して無関係な入力を排除しようとしています。リストの代わりに「ls」と入力します 」&change-directoryの代わりに「 cd」と入力します 」。さらに、多くのLinuxユーザーは、1つのコマンドを何度も使用する必要があります。同じコマンドを何度も入力/コピーすると、生産性が低下し、ユーザーの注意が散漫になります。
これらの長いコマンドの入力に費やす時間を減らしていただければ幸いです。コマンドラインでの時間を最小限に抑えるための2つの強力な方法は、シェルエイリアスです。 および機能、 これら2つを使用することで、ユーザーは反復的なタスクを制御し、時間のかかるプロセスを短縮し、ユーザーが常に使用し、覚えるのに苦労するオプションを使用してカスタマイズされたコマンドを構成できます。
特定のニーズに合わせてコマンドを定義し、反復的なタスクの負担を軽減できます。
エイリアスとシェルスクリプト、つまり関数は同じ種類の仕事をします。これらを使用すると、指定した名前で呼び出すことができる一連のBashシェル機能を定義して名前を付けることができます。名前を入力する方が、使用するたびにすべての手順やコマンドを入力するよりも簡単で便利です。
エイリアスと関数の違いは、複雑さと規模の1つです。スクリプトは、より長く、より複雑なコードのチャンクを保持するのに優れています。エイリアスは、より短く、より簡潔なコマンドのセットを保持するのに最適です。
シェルエイリアス
シェルエイリアスは、カスタムオプションの有無にかかわらず実行されるコマンドまたはコマンドのセットを参照するためのカスタムショートカットです。これらのエイリアスは、頻繁に実行する必要のある長いコマンドの代替の覚えやすい名前です。コマンドラインで入力すると、シェルは最初にエイリアスのリストに書き込んだ内容を探します。一致するものが見つかった場合、それは対応するテキストを持つエイリアスに置き換えられます。それが完了すると、結果のコマンドライン全体が再度確認されて実行されます。
すでにエイリアスを使用している可能性があります Linuxシステムでは、ほとんどのLinuxディストリビューションでは、「.bashrc」にデフォルトで人気のあるエイリアスの少なくとも一部が追加されています。 ユーザーアカウントのファイル。
エイリアスを超えて:シェル関数
類似しているが同一ではないコードのブロックは、エイリアスで置き換えることはできません。エラーを処理したり、カスタム終了コードを返したり、フロー制御を行ったり、変数を使用したりすることはできません。これらのいずれかを実行する必要がある場合は、シェル関数を使用するときが来ました。
シェル関数は、完全なサブスクリプトとして構造化されたコードブロックであり、一度記述され、それを必要とするスクリプトから呼び出されます。
エイリアスの構文:
bashでエイリアスを作成するのは非常に簡単です。構文は次のとおりです。
エイリアスalias_name=” command_to_run”
現在のセッションで新しいbashエイリアスを作成するには
- 「エイリアス」と入力します 」
- 次にエイリアス名を宣言します
- 等号が続きます
- そして、エイリアスが呼び出されたときに実行されるコマンド。
コマンドは引用符で囲み、等号の前後にスペースを入れないでください。ここにスペースを入れると、コマンドが壊れます。各エイリアスは新しい行で宣言する必要があります。
例でそれを明確にしましょう。 Linuxコマンドラインで最もよく使用されるコマンドの1つは、「 ls」です。 」。ほとんどの場合、「ls」コマンドは「 la」とともに使用されます 」スイッチ。隠しファイルを含むすべてのファイルとディレクトリが長いリストの形式で一覧表示されます。次に、単純なbashエイリアス「 ll 」を作成します 」は、 ls -laへのショートカットになります コマンド。
- ターミナルウィンドウを開きます
- タイプ:
alias ll="ls -la"
&Enterを押します
- コンソールに「ll」と入力します 」と入力してEnterを押します
- 出力は、ls-laと入力した場合と同じになります。
上記で定義されたエイリアス「ll」は、現在のシェルセッションでのみ使用できます。セッションを閉じるか、別の端末から開始された新しいセッションウィンドウを閉じると、上記で定義されたエイリアス「ll」は使用できなくなります。
エイリアスを永続化する方法については、後で説明します。ここでの例はbashシェル用ですが、すべての概念とほとんどのコードは他のシェルでも有効です。
事前定義されたエイリアス
一部のエイリアスは事前定義されています。システムで定義されているすべてのエイリアスのリストを知るために、パラメータなしで「alias」コマンドを使用します。
alias
これらは、この記事が調査されたUbuntuテストマシンのエイリアスです。また、カスタム定義のエイリアスもこのリストに表示されます。
lsコマンドにはさまざまなエイリアスがあり、grepファミリーのコマンドにカラー出力を提供するエイリアスのグループがあります。次のように入力するたびに、上記のように定義されたエイリアスを使用します:
grep
次のように解釈されます:
grep --color=auto
これは、エイリアスに関する重要なポイントを示しています。既存のコマンドと同じ名前にすることができます。元のコマンドを含めることもできます。
grepエイリアスの定義は次のとおりです。
alias grep='grep --color=auto'
- aliasコマンドはエイリアスを定義するために使用されます。
- 次にエイリアスの名前を示します。この例では、「grep」です。
- 等号は、エイリアスの名前を bodyに接続します エイリアスの。非常に単純なエイリアスを除くすべてのエイリアスでは、エイリアスの本文は一重引用符「」で囲まれています。
- エイリアスの本体は、コマンドラインでエイリアスが使用されたときに実行されるセクションです。
- このエイリアスの本体は、–color=autoオプションを指定してgrepコマンドを呼び出すだけです。
アラートエイリアス
リストの上部には、アラートと呼ばれる複雑に見えるエイリアスがあります 。簡単に言うと、コマンドの機能を理解できるように、アラートエイリアスを使用して、コマンドが終了したことを通知します。また、コマンドが正常に完了したかどうかも示します。画面の上部にグラフィカルなシステムアラートを提供します。
これが簡単な例です。 sleepコマンドは5秒間スリープします。その後、アラートエイリアスが呼び出されます。エイリアスは、前のコマンドからの応答をチェックします。履歴ファイルから最後のコマンドを抽出します。コマンドが正常に完了したかどうかを判別します。次に、結果をシステムアラートに表示します。
コマンドが期待どおりに完了した場合、システムアラートのアイコンは小さなターミナルウィンドウです。コマンドがエラーコードを返した場合、システムアラートのアイコンは赤いエラーアイコンです。
sleep 5; alert
5秒後、次のシステムアラートが表示されます:
アイコンは小さなターミナルウィンドウで、すべてがうまくいったことを意味します。失敗することがわかっているコマンドを使用して、もう一度試してみましょう。
DoomedToFail; alert
システムアラートにエラーアイコンが表示されるようになりました。
些細なエイリアスの定義
これまで見てきたように、エイリアスを定義するには、aliasコマンドを使用します。
clearコマンドの仮名を作成します。エイリアスはclsと呼ばれ、clearコマンドを呼び出します。
エイリアスの定義は非常に簡単なので、一重引用符で囲む必要はありません。エイリアスの本体がこれよりも複雑な場合、またはスペースが含まれている場合は、一重引用符で囲みます。エイリアスを定義し、lsを使用してターミナルウィンドウに出力を表示してから、新しいエイリアスclsを使用して画面をクリアします。
alias cls=clear ls -l cls
画面がクリアされます。短命ではあるが、成功。エイリアスは、このターミナルウィンドウが開いている間だけ存続します。ウィンドウを閉じると、エイリアスは消えます。
「。bashrc」ファイルを使用してエイリアスを永続化するには
事前にパッケージ化されたエイリアスがどこで定義されているのか疑問に思われるかもしれません。ホームフォルダの「.bashrc」ファイルにあります。このファイルが読み取られ、対話型シェルを起動するたびにその中のコマンドが実行されます。ターミナルウィンドウを開いたときです。
ホームフォルダに次のコマンドを入力して、構文が強調表示された「.bashrc」ファイルの内容を確認します。
gedit .bashrc
これにより、 geditが起動します 「.bashrc」ファイルがロードされたエディタ。
強調表示された領域は、エイリアスが定義されている2つの領域を示しています。
ドキュメントをスクロールすると、エイリアスに関連する他の2つのセクションが表示されます。
これらの最初のものは、アラートエイリアスの定義です。 2つ目は、ifステートメントです。これは、「ファイルが「 .bash_aliasesの場合」に変換されます。 」が存在します。読み込んでください。」
定義したいエイリアスが数個しかない場合は、それらを「.bashrc」ファイルに入れることができます。 lsエイリアスを含むセクションの下にそれらを押し込みます。
多数のエイリアスを作成する場合、またはエイリアスを独自のファイル内にカプセル化するというアイデアが好きな場合は、「。bash_aliases」ファイルでエイリアスを定義できます。 「.bash_aliases」ファイルに作成する利点の1つは、「。bashrc」ファイルの設定を誤って変更できないことです。もう1つの利点は、エイリアスが「.bashrc」ファイルから分離されているため、新しいシステムに簡単にコピーできることです。
エイリアスには、覚えやすい名前を付ける必要があります。後で参照できるようにコメントを追加することもお勧めします。
.bash_aliasesファイルへのエイリアスの保存
「.bash_aliases」ファイルはデフォルトでは存在しないため、作成する必要があります。次のコマンドでファイルを作成できます:
touch .bash_aliases
ファイルを編集して、いくつかのエイリアスを追加しましょう。このコマンドは、geditエディターで「.bash_aliases」ファイルを開きます。
gedit .bash_aliases
3つのエイリアスを追加しました。 1つ目は、 cls 以前に使用したエイリアス。次はh。と呼ばれます 履歴コマンドを呼び出す簡単な方法です。
3番目のエイリアスはftcと呼ばれます 。これは「ファイルタイプカウント」の略です。
このエイリアスはより複雑であるため、一重引用符で囲まれています。パイプでリンクされた一連のコマンドを使用します。さまざまなファイル拡張子とディレクトリ名のソートされたリストが、各リストエントリのカウントとともに生成されます。
「.bash_aliases」ファイルを保存すると、エイリアスがライブでアクセス可能であることが期待される場合があります。そうではありません。エイリアス定義を公開する前に、ファイルをBashシェルで読み込む必要があります。これは、インタラクティブシェルが開かれるたびに実行されます。
組み込みのBashシェルを使用することもできます。ファイル内のコマンドを読み取って実行します。 「.bashrc」の処理時に「.bash_alias」ファイルが読み込まれるため、「。bashrc」を呼び出してテストを実行する必要があります。これにより、「。bash_alias」ファイルが「.bashrc」から呼び出され、エイリアスが正常に機能していることを確認できます。
使用したコマンドは次のとおりです。
gedit .bash_aliases
「.bash_aliases」ファイルを編集するには。
. .bashrc
これにより、「。bashrc」内のコマンドが読み込まれて実行され、「。bash_aliases」が呼び出されます。
ftc
これにより、ftcエイリアスが呼び出されます。
エイリアスが応答します。これは、Bashが「.bashrc」と「.bash_aliases」の両方を読み込んだことを意味し、新しいエイリアスが有効になりました。
これで、「。bash_aliases」ファイルに新しいエイリアスが発生したときに追加できます。 1回か2回以上のことをしていることに気付いた場合は、そのエイリアスを作成することを検討してください。
エイリアスの削除
エイリアスを削除して、Bashがエイリアスを認識したり応答したりしないようにするコマンドがあります。さわやかに率直に言って、このコマンドは unaliasと呼ばれます 。
これを使用するには、Bashに忘れさせたいエイリアスの名前を付けます。 Bashにftcエイリアスを忘れさせるには、unaliasを使用します。例:以前に使用された「ll ”コマンド:
unalias ll
unaliasを使用して、定義したエイリアスと事前定義されたエイリアスを削除できます。
システムからすべてのエイリアスを削除するには、-a(すべて)オプションを使用します:
unalias -a
ただし、Bashの記憶喪失は永続的なものではありません。次にターミナルウィンドウを開くと、「忘れられた」エイリアスが元に戻ります。それらを完全に消去するには、「。bashrc」ファイルと「.bash_alias」ファイルからそれらを削除する必要があります。
それらを元に戻したいと思われる場合は、「。bashrc」ファイルから削除しないでください。代わりに、各エイリアス行の先頭にハッシュ#を追加してコメントアウトしてください。 「.bash_alias」ファイルを無効にするには、名前を変更します。 「.bashrc」ファイルがそれを認識できない場合、ファイルは読み込まれません。これらの手順を逆にしてエイリアスを復元するのは簡単なことです。
エイリアスを一時的にバイパスするには(たとえば、lsをls -aにエイリアスした場合)、次のように入力します。
\ls
その結果、エイリアスバージョンではなく、通常のコマンドが呼び出されます。
エイリアスコマンドのヘルプ:
- –ヘルプオプション :ヘルプ情報が表示されます。
構文:
alias --help
シェル関数
1つ以上の引数を受け入れることができるエイリアスが必要な場合があります。つまり、bash関数を使用する場合です。
構文
bash関数の作成はそれほど難しくありません。これらは、次の2つの異なる形式のいずれかで宣言できます。
function_name () { [commands] }
または
function function_name { [commands] }
この2番目の形式を1行に圧縮し、コマンドをセミコロンで区切ることができます。セミコロン必須 最後のコマンドの後にも来る:
function_name () { command1; command2; }
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」ファイルを作成および編集し、その中に関数定義を配置します。
touch .bash_functions gedit .bash_functions
これにより、geditで空の「.bash_functions」ファイルが開きます。
upという単純な関数を追加します。 upは、数字である単一のコマンドラインパラメータを取ります。その後、upはcd..をその回数呼び出します。したがって、コマンドを使用した場合
up 2
upはcd..を2回呼び出し、ディレクトリツリーの2レベル上に移動します。
関数を定義するにはさまざまな方法があります。これが1つです:
function up() {
関数という言葉はオプションです。伝統主義者の場合はそれを使用し、入力するのが面倒な場合は省略してください。
geditの機能全体は次のとおりです。
function up() {
これは関数定義の開始を示し、関数に名前を付けます。
levels=$1
これにより、レベルという変数が作成されます そしてそれを最初のパラメータの値に設定します。このパラメーターは、ユーザーが関数を呼び出すときにユーザーが提供する数字になります。 $ 1は、「最初のコマンドラインパラメータ」を意味します。
while [ "$levels" -gt "0" ]; do
次にループに入り、「値のとき」と解釈されます。 」の「レベル 」が正またはゼロより大きい場合は、ループの本体に含まれていることを実行してください。」
ループの本体の中には、2つのコマンドがあります。それらは:
cd ..
ディレクトリツリーのレベルを上に移動します。
levels=$(($levels - 1))
レベルを現在の値より1つ小さい新しい値に設定します。
次に、ループの先頭に戻り、レベルの値とゼロの比較がもう一度行われます。 「レベル」がゼロより大きい場合、ループの本体が再度実行されます。正でないかゼロより大きくない場合、ループは終了し、doneステートメントにドロップスルーして、関数は終了します。
保存 これらの変更を行い、 geditを閉じます 。
「.bashrc」のコマンドを読み込んで実行します。これにより、「。bash_functions」ファイルのコマンドを読み込んで実行する必要があります。
. .bashrc
ディレクトリツリーのある場所に移動し、upを使用してディレクトリツリーの「上位」のポイントに戻ることで、関数をテストできます。
cd ./work/backup/ up 2
関数は動作します。ツリーの2つ上のディレクトリレベルに移動しました。
タイプを追跡する
エイリアスのスイートと関数のライブラリを構築すると、特定のコマンドがエイリアスなのか関数なのかを思い出すのが難しくなる可能性があります。 「タイプ」を使用できます 思い出させるコマンド。ここでのすばらしい点は、定義も表示できることです。
ftcでtypeを使用してみましょう エイリアスとアップ機能。
type ftc type up
それぞれのコマンドの種類とその定義について、非常に役立つリマインダーを受け取ります。
収集を開始
エイリアスと関数を使用すると、コマンドラインの使用を大幅に高速化できます。コマンドシーケンスを短縮でき、標準コマンドで常に使用するオプションを組み込むことができます。気の利いたワンライナーや便利な関数を目にするたびに、それを適応させてパーソナライズし、「。bash_aliases」または「.bash_functions」ファイルに追加することができます。これらを多用することで、シェルでの時間をより楽しく、より簡単にすることができます。
潜在的に破壊的な動作で既存のコマンドを再定義することに注意することを忘れないでください。反対のことをして、コマンドをより安全なバリアントにエイリアスする(たとえば、再帰的に削除する前に常に確認を求める)場合でも、システムに依存するようになると、システムを初めて使用するときに、戻ってきて噛み付く可能性があります。 。エイリアスを作成するのに適している可能性のある候補を見つけるには、履歴を検索して最も一般的に使用されるコマンドを探すことをお勧めします。
-
Linuxで簡単なシェルスクリプトを作成する方法
シェルスクリプトの作成は、Linuxユーザーが指先で習得する必要のある最も重要なスキルの1つです。シェルスクリプトは、行ごとに実行するのが面倒な反復タスクを自動化する上で大きな役割を果たします。 このチュートリアルでは、すべてのLinuxユーザーが持つべき基本的なシェルスクリプト操作のいくつかに焦点を当てます。 1。簡単なシェルスクリプトを作成する シェルスクリプトは、 ASCIIで構成されるファイルです。 文章。まず、簡単なシェルスクリプトを作成します。これを行うには、テキストエディタを使用します。コマンドラインとGUIベースの両方で、かなりの数のテキストエディタがあります。このガイドで
-
カスタムシェル関数とライブラリを作成して使用する方法
Linuxでは、シェルスクリプトは、特定のシステム管理タスクの実行や自動化、簡単なコマンドラインツールの作成など、さまざまな方法で役立ちます。 このガイドでは、新しいLinuxユーザーに、カスタムシェルスクリプトを確実に保存する場所、カスタムシェル関数とライブラリの記述方法、他のスクリプトでライブラリの関数を使用する方法を示します。 シェルスクリプトを保存する場所 フルパス/絶対パスを入力せずにスクリプトを実行するには、スクリプトを $ PATHのディレクトリの1つに保存する必要があります。 環境変数。 $ PATHを確認するには 、以下のコマンドを発行します: $ echo $PAT