Linux シェルと基本的なシェル スクリプトを理解する - パート 1
Linux シェル、つまりコマンド ライン インターフェイスは、ユーザーがテキスト ベースのコマンドを介してオペレーティング システムと対話できるようにする強力なプログラムです。
Linux シェルとシェル スクリプトの基本を理解すると、システムの効率と制御が大幅に向上します。
このガイドでは、主要な概念を検討し、初心者と基本的なシェル スクリプトを詳しく知りたい人の両方にヒントを提供します。
Linux シェルを理解する
シェルは、ユーザー コマンドを解釈し、オペレーティング システムが実行できるアクションに変換するコマンド ライン プログラムです。ユーザーと Linux カーネルの間の仲介者として機能し、ユーザーがコマンドを通じてシステムを制御および操作できるようにします。
- シェル – ユーザーをオペレーティング システムに接続し、コマンドの実行やテキスト スクリプトの作成を可能にするコマンド ライン インタープリター。
- プロセス – ユーザーがシステム内で実行するタスクはすべてプロセスと呼ばれます。プロセスは単なるタスクよりも少し複雑です。
- ファイル – ファイルはハードディスク (HDD) 上に存在し、ユーザーが所有するデータが含まれています。
- X-Windows (X11) – 画面 (モニター) をウィンドウと呼ばれる小さな「部分」に分割できる Linux のモード。ユーザーは、複数のタスクを同時に実行したり、あるタスクから別のタスクに簡単に切り替えたり、視覚的に魅力的な方法でグラフィックを表示したりできます。
- ターミナル – テキストを表示する機能のみを備え、グラフィックスを持たない、または非常に基本的なグラフィックスを備えたモニター。
- セッション – システムにログオンしてからログアウトするまでの時間。
Linux シェルの種類
Linux はいくつかの種類のシェルをサポートしていますが、 最も普及しているのはBash (Bourne Again シェル) です。その他の注目すべきシェルには、Zsh (Z シェル)、フィッシュ、ダッシュなどがあります。
各シェルには独自の機能と構文があり、さまざまなユーザーの好みやニーズに対応します。
- Bash – ほとんどの Linux ディストリビューションのデフォルト シェルであり、その多用途性と強力なスクリプト機能により広く使用されています。
- Zsh – 強化された機能と改善されたユーザー インターフェイスで知られています。これにはBash やKorn などの他のシェルの機能が組み込まれています。
- フィッシュ – コマンドの構文の強調表示と自動提案を提供することで、シンプルさと見つけやすさに重点を置いてユーザーフレンドリーになるように設計されています。
- ダッシュ – これは効率性を重視して設計された軽量シェルで、最小限の Linux ディストリビューションでデフォルトのシステム シェルとしてよく使用されます。
- Ksh – これは、Bourne シェル (sh) と C シェル (csh<) の機能を組み込んだ、対話型の使用とスクリプト作成の両方に重点を置いた強力なシェルです。)。
- Csh – インタラクティブな機能とスクリプト機能で知られる C プログラミング言語に似た構文で設計されています。
基本コマンド
コマンドライン ユーザー向けのコマンドが何千もあります。全部覚えてみてはいかがでしょうか?ふーむ!単純に、それはできません。コンピューターの真の力は、作業を簡素化することです。作業を簡素化するにはプロセスを自動化する必要があるため、スクリプトが必要になります。
スクリプトは、ファイルに保存されたコマンドの集合です。シェルはこのファイルを読み取り、キーボードで入力されたかのようにコマンドを実行できます。シェルは、スクリプトを真に強力にするためのさまざまな便利なプログラミング機能も提供します。
シェルプログラミングの基礎
シェル プログラミングには、Bash などのシェルの機能を利用してタスクを自動化し、コマンドを実行するスクリプトの作成が含まれます。コマンドライン インターフェイスを効率的にカスタマイズして使用するには、シェル プログラミングの基本を理解することが不可欠です。
シバン (#!) ライン
すべてのシェル スクリプトは、スクリプトを実行するインタープリタを指定するシバン行で始まります。
Bash スクリプトの場合、通常は #!/bin/bash
です。
#!/bin/bash
コメント
#
を使用してスクリプトにコメントを追加します。コメントは人間が読みやすいようにするためのものであり、シェルによって無視されます。
# This is a comment
変数
変数はスクリプト内のデータを保存します。値を変数に代入するには、スペースを含まない代入演算子 (=)
を使用します。
greeting="Hello, Shell!"
ユーザー入力
read コマンドを使用して、スクリプトの実行中にユーザー入力を取得します。
read -p "Enter your name: " username
エコー
echo コマンドは、出力を端末に出力するために使用されます。これは、メッセージや変数値を表示するためによく使用されます。
echo "Welcome, $username!"
条件文
スクリプトでの意思決定には、if、elif、および else を使用します。
if [ condition ]; then
# code to execute if the condition is true
else
# code to execute if the condition is false
fi
ループ
コマンドを繰り返し実行するには、for ループと while ループを使用します。
for i in {1..5}; do
# code to repeat five times
done
機能
モジュール性と再利用性を実現するために、コードを関数にカプセル化します。
function greet {
echo "Hello, $1!"
}
greet "John"
終了ステータス
コマンドは終了ステータスを返します。 $?
を使用して、最後のコマンドが成功したか (終了ステータス 0) か、エラーが発生したかを確認します。
if [ $? -eq 0 ]; then
echo "Command executed successfully."
else
echo "Error during command execution."
fi
ファイルのアクセス許可
スクリプトで機密性の高い操作を扱う場合は、chmod コマンドを使用してファイルに適切なアクセス許可を設定します。
chmod +x myscript.sh
シェルスクリプトについて
シェル スクリプトは、実行権限を持つ拡張子 ".sh"
が付いた単純なテキスト ファイルです。
スクリプトの作成と実行のプロセスをガイドするヒントをいくつか紹介します。
- スクリプトはシバン行 (#!/bin/bash) で始まり、インタープリタを指定します。
- 特に複雑または長いコードセグメントの場合は、スクリプトの目的を説明するコメントを追加します。
- echo コマンドを使用して、「Hello, World!」メッセージを端末に出力します。
- 実行前に、chmod コマンド (chmod +x script.sh など) を使用して、スクリプトに必要な権限があることを確認してください。
「これが最初のシェル スクリプトの外観です。」
#!/bin/bash
My first script
echo "Hello World!"
上で説明したように、上記の行をテキスト ファイルに保存し、実行可能にして実行します。
2 番目のスクリプトの作成
さて、次のスクリプトに進みます。これにより、「ユーザー名」が表示され、現在実行中のプロセスが一覧表示されます。
#! /bin/bash
echo "Hello $USER"
echo "Hey i am" $USER "and will be telling you about the current processes"
echo "Running processes List"
ps
これはかっこよかったですか?スクリプトの作成は、アイデアを思いついて一連のコマンドを作成するのと同じくらい簡単です。ただし、いくつかの制限があります。シェル スクリプトは、簡潔なファイル システム操作と、パイプを介したフィルターやコマンド ライン ツールによる既存の機能の統合のスクリプト作成に優れています。
機能、堅牢性、パフォーマンス、効率などの要件を超えて要件が拡張される場合は、よりフル機能の言語に移行することをお勧めします。
C/Perl/Python またはその他のプログラミング言語にすでに慣れている場合は、スクリプト言語の習熟度を習得するのはそれほど難しいことではありません。
3 番目のスクリプトの作成
次に、この記事の 3 番目で最後のスクリプトを作成しましょう。このスクリプトは対話型スクリプトとして機能します。このシンプルかつインタラクティブなスクリプトをご自身で実行してみて、その経験を私たちと共有してみてはいかがでしょうか?
#! /bin/bash
echo "Hey what's Your First Name?";
read a;
echo "welcome Mr./Mrs. $a, would you like to tell us, Your Last Name";
read b;
echo "Thanks Mr./Mrs. $a $b for telling us your name";
echo "*******************"
echo "Mr./Mrs. $b, it's time to say you good bye"
まあ、これで終わりではありません。スクリプトの基本を紹介してみました。今後の記事では、より包括的な理解を提供するために、広大で進化し続ける分野であるスクリプト言語のトピックをさらに深く掘り下げていきます。
コメントでの貴重なご意見をお待ちしております。より多くの視聴者にリーチできるよう、「いいね!」と共有をお願いします。それまでは、リラックスしてつながりを保ち、注目してください。