こんにちは。これは、一連のLinuxチュートリアルの最初の部分です。このチュートリアルを作成するにあたり、あなたはLinuxスクリプトの作成に完全に慣れており、非常に進んで学ぶことができると思います。シリーズ期間中はレベルが上がるので、上級者でも何か新しいものがあると思います。それでは始めましょう。
Linuxを含むほとんどのオペレーティングシステムは、さまざまなユーザーインターフェイス(UI)をサポートできます。グラフィカルユーザーインターフェイス(GUI)は、ユーザーがアイコンをクリックしてアプリケーションを実行できるようにするユーザーフレンドリーなデスクトップインターフェイスです。もう1つのタイプのインターフェースは、純粋にテキストであり、ユーザーからのコマンドを受け入れるコマンドラインインターフェース(CLI)です。シェルであるコマンドインタープリターは、CLIを介してコマンドを読み取り、プログラムを呼び出します。最近のほとんどのオペレーティングシステムは、Linuxディストリビューションを含む両方のインターフェイスを提供しています。
シェルを使用する場合、ユーザーは端末で一連のコマンドを入力する必要があります。ユーザーがタスクを1回だけ実行する必要がある場合は、問題ありません。ただし、タスクが複雑で複数回繰り返す必要がある場合は、ユーザーにとって少し面倒になる可能性があります。幸いなことに、シェルのタスクを自動化する方法があります。これは、シェルスクリプトを記述して実行することで実行できます。シェルスクリプトは、Linuxシェルでサポートされている一連のコマンドと一連のコマンドで構成されるファイルの一種です。
シェルスクリプトを作成する理由
シェルスクリプトは、LinuxOSのタスクを自動化するのに非常に便利なツールです。ユーティリティを組み合わせたり、新しいコマンドを作成したりするためにも使用できます。長くて反復的なコマンドのシーケンスを1つの単純なコマンドに組み合わせることができます。すべてのスクリプトはコンパイルせずに実行できるため、ユーザーはコマンドをシームレスにプロトタイピングすることができます。
Linux環境は初めてですが、作成方法を学ぶことはできますか?シェルスクリプト?
もちろん!シェルスクリプトの作成には、Linuxに関する複雑な知識は必要ありません。 LinuxCLIとテキストエディタの一般的なコマンドの基本的な知識があれば十分です。まったくの初心者で、Linuxコマンドラインの背景知識がない場合は、このチュートリアルが役立つかもしれません。
bash(Bourne-Again Shell)は、ほとんどのLinuxディストリビューションおよびOS Xのデフォルトシェルです。これは、元のUnixシェルであるsh(Bourne Shell)を置き換えることを目的としたオープンソースのGNUプロジェクトです。ブライアンフォックスによって開発され、1989年にリリースされました。
bashを使用する各Linuxスクリプトは、次の行で始まることを常に覚えておく必要があります。
#!/bin/bash
すべてのLinuxスクリプトは、シバン(#!)行で始まります。 bang行は、スクリプトの実行に使用されるコマンドインタープリターのフルパス/ bin/bashを指定します。
Hello World!
すべてのプログラミング言語はHelloWorldで始まります!画面。この伝統を終わらせず、Linuxスクリプトでこのダミー出力の独自のバージョンを作成します。
スクリプトの作成を開始するには、以下の手順に従ってください。
ステップ1: テキストエディタを開きます。この例ではgeditを使用します。ターミナルを使用してgeditを開くには、キーボードのCTRL + ALT + Tを押して、geditと入力します。これで、スクリプトの作成を開始できます。
ステップ2: テキストエディタで次のコマンドを入力します:
#!/bin/bash
echo "Hello World"
ステップ3: ここで、ファイル名hello.shでドキュメントを保存します。各スクリプトには.shファイル拡張子が付いていることに注意してください。
ステップ4: Linuxディストリビューションによって強制されるセキュリティ上の理由から、ファイルとスクリプトはデフォルトでは実行可能ではありません。ただし、Linux CLIのchmodコマンドを使用して、スクリプトのこれを変更できます。 geditアプリケーションを閉じて、ターミナルを開きます。次に、次のコマンドを入力します。
chmod +x hello.sh
上記の行は、実行可能権限をhello.shファイルに設定します。この手順は、スクリプトを初めて実行する前に1回だけ実行する必要があります。
ステップ5: スクリプトを実行するには、ターミナルで次のコマンドを入力します。
./hello.sh
別の例を見てみましょう。今回は、helloスクリプトにwhoamiコマンドとdateコマンドを使用して、いくつかのシステム情報を表示するようにします。
テキストエディタでhello.shを開き、次のように入力してスクリプトを編集します。
#!/bin/bash
echo "Hello $(whoami) !"
echo "The date today is $(date)"
スクリプトに加えた変更を保存し、次のように入力してスクリプトを実行します(前の例のステップ5)。
./hello.sh
スクリプトの出力は次のようになります:
前の例では、コマンドwhoamiとdateがechoコマンド内で使用されていました。これは、コマンドラインで使用できるすべてのユーティリティとコマンドがシェルスクリプトでも使用できることを意味するだけです。
printfを使用して出力を生成する
これまで、echoを使用して、前の例のコマンドから文字列とデータを出力してきました。エコーは、テキストの行を表示するために使用されます。データの表示に使用できるもう1つのコマンドは、printfコマンドです。 printfは、Cのprintf関数のようにデータを制御および印刷します。
以下は、一般的なprinfコントロールの概要です。
コントロール | 使用法 |
\ " | 二重引用符 |
\\ | バックスラッシュ |
\ b | バックスペース |
\ c | これ以上出力を生成しない |
\ e | エスケープ |
\ n | 改行 |
\ r | キャリッジリターン |
\ t | 水平タブ |
\ v | 垂直タブ |
例3:前のhello.shを開き、すべてのエコーをprintfに変更して、スクリプトを再実行します。出力でどのような変更が発生するかに注意してください。
#!/bin/bash
printf "Hello $(whoami) !"
printf "The date today is $(date)"
printfコマンドでコントロールを使用しなかったため、すべての行が相互に接続されています。したがって、Linuxのprintfコマンドには、C関数printfと同じプロパティがあります。
スクリプトの出力をフォーマットするために、上記の表の要約にある2つのコントロールを使用します。動作させるには、コントロールをprintfコマンドの引用符内の\で示す必要があります。たとえば、hello.shの以前のコンテンツを次のように編集します。
#!/bin/bash
printf "Hello \t $(whoami) !\n"
printf "The date today is $(date)\n"
スクリプトは次を出力します:
このチュートリアルでは、シェルスクリプトの基本を学び、シェルスクリプトを作成して実行することができました。チュートリアルの第2部では、変数を宣言し、入力を受け入れ、シェルコマンドを使用して算術演算を実行する方法を紹介します。