目次
bash
sh
ash
csh
ksh
コンパイル言語
インタープリター言語
シェル スクリプトの使用は次のことに基づいています。
ホームページ Java &#&チュートリアル シェルプログラミングの簡単な紹介

シェルプログラミングの簡単な紹介

Jun 26, 2017 am 11:20 AM
shell 導入 プログラミング

シェル自体は C 言語で書かれたプログラムであり、ユーザーの作業のほとんどはシェルを通じて行われます。シェルはコマンド言語であると同時にプログラミング言語でもあります。コマンド言語として、ユーザーが入力したコマンドを対話的に解釈して実行し、プログラミング言語として、さまざまな変数やパラメーターを定義し、ループや分岐などの高級言語でのみ見られる多くの制御構造を提供します。

これは Unix/Linux システム カーネルの一部ではありませんが、システム コアのほとんどの機能を呼び出して、プログラムを実行し、ファイルを作成し、さまざまなプログラムの実行を並行して調整します。したがって、ユーザーにとって、シェルは最も重要なユーティリティ プログラムであり、シェルの特性と使用法を深く理解し、習熟することが、Unix/Linux システムを使いこなすための鍵となります。

シェルの使用の習熟度は、ユーザーの Unix/Linux の使用習熟度を反映していると言えます。

シェルにはコマンドを実行する 2 つの方法があります:

  • インタラクティブ (対話型): ユーザーのコマンドを解釈して実行します。ユーザーがコマンドを入力すると、シェルがそれを解釈して実行します。

  • バッチ: ユーザーは、多くのコマンドを含むシェル スクリプト (スクリプト) を事前に作成します。これにより、シェルは、コマンドを 1 つずつ入力することなく、これらのコマンドを一度に実行できます。


シェル スクリプトは、変数やフロー制御ステートメントも備えていますが、シェル プログラムはこれらのコマンドを 1 行ずつ読み取って実行するため、コンパイルする必要はありません。スクリプト (ユーザーに相当) スクリプトのコマンドをシェル プロンプトに 1 行ずつ入力して実行します。

シェルの初心者は、日常のアプリケーションでは、シェルを実行するために root アカウントを使用しないことをお勧めします。通常のユーザーは、意図的か非意図的かにかかわらず、システムに損害を与えることはできませんが、root の場合は、数文字を入力するだけで壊滅的な結果を招く可能性があります。

Unix/Linux 上の一般的なシェル スクリプト インタプリタには、bash、sh、csh、ksh などが含まれます。これらを一種のシェルと呼ぶのが通例です。シェルには何種類があるかについてよく話されますが、実際に話しているのはシェル スクリプト インタプリタのことです。

bash

bash は Linux の標準のデフォルト シェルです。このチュートリアルも bash に基づいています。 bash は Brian Fox と Chet Ramey によって完成されました。これは BourneAgain Shell の略称で、合計 40 の内部コマンドがあります。

Linux は、次のような機能があるため、これをデフォルトのシェルとして使用します:

  • DOS の doskey に似た機能を使用して、矢印キーを使用してコマンドをすばやく入力および変更できます。

  • 一致するものを検索して、特定の文字列で始まるコマンドを自動的に与えます。

  • には独自のヘルプ機能が含まれており、プロンプトの下に「help」と入力するだけで、関連するヘルプが表示されます。

sh

shはSteve Bourneによって開発され、Bourne Shellの略称であり、Unixの標準のデフォルトシェルです。

ash

ash シェルは Kenneth Almquist によって作成されました。Linux で最も少ないシステム リソースを使用する小さなシェルです。内部コマンドは 24 個しか含まれていないため、使用するのは非常に不便です。

csh

csh は、William Joy を代表とする合計 47 人の作者によってコンパイルされた Linux の比較的大きなカーネルであり、合計 52 の内部コマンドがあります。このシェルは実際には /bin/tcsh などのシェルを指します。つまり、csh は実際には tcsh です。

ksh

ksh は、Eric Gisin によって書かれた Korn シェルの略称で、合計 42 個の内部コマンドがあります。このシェルの最大の利点は、ksh の製品版とほぼ完全な互換性があるため、製品版を購入するためにお金を費やすことなく製品版のパフォーマンスを試すことができることです。

注: bash は Bourne Again Shell の略称で、Linux の標準のデフォルト シェルです。これは Bourne シェルをベースにしており、C シェルと Korn シェルのいくつかの機能を吸収しています。 bash は sh と完全な互換性があります。つまり、sh で書かれたスクリプトは変更せずに bash で実行できます。

コンパイル言語

Fortran、Ada、Pascal、C、C++、Java などの従来のプログラミング言語の多くはコンパイル言語です。この種の言語では、作成したソースコードをあらかじめオブジェクトコード(オブジェクトコード)に変換する必要があります。この作業を「コンパイル」といいます。

プログラムを実行するときは、オブジェクトコードを直接読み込んでください。コンパイルされたオブジェクトコードはコンピュータの最下層に近いため、実行効率が非常に高く、これがコンパイル言語の利点です。

ただし、コンパイル言語はほとんどが最下位レベルで動作し、バイト、整数、浮動小数点数、その他のマシンレベルのオブジェクトを処理するため、単純な関数の実装には多くの複雑なコードが必要になります。たとえば、C++ では、「あるディレクトリ内のすべてのファイルを別のディレクトリにコピーする」といった単純な操作を実行するのは困難です。

インタープリター言語

インタープリター言語は「スクリプト言語」とも呼ばれます。この種のプログラムを実行する場合、インタプリタは作成したソース コードを読み取り、それをオブジェクト コードに変換し、コンピュータで実行する必要があります。プログラムを実行するたびに余分なコンパイル処理が発生するため、効率が低下します。

スクリプト プログラミング言語を使用する利点は、ほとんどがコンパイル言語よりも高いレベルで実行され、ファイルやディレクトリなどのオブジェクトを簡単に処理できることです。欠点は、通常、コンパイル言語ほど効率的ではないことです。ただし、トレードオフとして、通常はスクリプト プログラミングを使用する価値があります。作成に 1 時間かかる単純なスクリプトでも、C または C++ で同じ関数を実装するには 2 日かかる場合があり、一般にスクリプトの実行速度が速いです。人々がそのパフォーマンスの問題を無視できるほど十分な速度です。スクリプト プログラミング言語の例には、awk、Perl、Python、Ruby、Shell などがあります。

シェル スクリプトの使用は次のことに基づいています。

  • 単純さ: シェルは高級言語であり、それを介して複雑な操作を簡潔に表現できます。

  • 移植性: POSIX で定義された関数を使用すると、スクリプトを変更せずに別のシステムで実行できます。

  • 開発が簡単: 強力で便利なスクリプトが短時間で完成します。

以上がシェルプログラミングの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

正規表現を使用してPHP配列から重複した値を削除します 正規表現を使用してPHP配列から重複した値を削除します Apr 26, 2024 pm 04:33 PM

正規表現を使用して PHP 配列から重複値を削除する方法: 正規表現 /(.*)(.+)/i を使用して、重複値を照合して置換します。配列要素を反復処理し、preg_match を使用して一致をチェックします。一致する場合は値をスキップし、一致しない場合は重複値のない新しい配列に追加します。

PHP関数とシェル関数の違い PHP関数とシェル関数の違い Apr 24, 2024 pm 06:39 PM

PHP 関数とシェル関数の主な違いは、セキュリティ (PHP 関数の方が安全です)、信頼性 (シェル関数はオペレーティング システムによって異なります)、機能性 (シェル関数はより強力ですが、シェルによって制限されます)、およびパフォーマンス (PHP 関数は通常、より高速です)と複雑さ(シェル関数はより複雑です)。これらはどちらもファイル システム、プロセス、コマンドの操作に使用されますが、PHP 関数は組み込みであり、シェル関数は外部シェルを通じて呼び出されます。したがって、サーバー ファイルのダウンロード シナリオでは、file_put_contents() 関数の方が安全であり、wget コマンドの方がより柔軟です。

プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? Apr 28, 2024 pm 01:34 PM

1. プログラミングは、Web サイト、モバイル アプリケーション、ゲーム、データ分析ツールなど、さまざまなソフトウェアやアプリケーションの開発に使用できます。その応用分野は非常に幅広く、科学研究、医療、金融、教育、エンターテイメントなど、ほぼすべての業界をカバーしています。 2. プログラミングを学ぶことは、問題解決スキルと論理的思考スキルを向上させるのに役立ちます。プログラミング中、問題を分析して理解し、解決策を見つけてコードに変換する必要があります。この考え方は、分析能力と抽象能力を養い、実際的な問題を解決する能力を向上させることができます。

Golang を使用してブラウザベースのアプリケーションを構築する Golang を使用してブラウザベースのアプリケーションを構築する Apr 08, 2024 am 09:24 AM

Golang を使用してブラウザベースのアプリケーションを構築する Golang は JavaScript と組み合わせて、動的なフロントエンド エクスペリエンスを構築します。 Golang をインストールする: https://golang.org/doc/install にアクセスします。 Golang プロジェクトをセットアップします。 main.go というファイルを作成します。 GorillaWebToolkit の使用: HTTP リクエストを処理するための GorillaWebToolkit コードを追加します。 HTML テンプレートの作成: template サブディレクトリに、メイン テンプレートであるindex.html を作成します。

C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます Jun 01, 2024 pm 10:26 PM

C++ プログラミング パズルは、フィボナッチ数列、階乗、ハミング距離、配列の最大値と最小値などのアルゴリズムとデータ構造の概念をカバーします。これらのパズルを解くことで、C++ の知識を強化し、アルゴリズムの理解とプログラミング スキルを向上させることができます。

Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Oct 11, 2024 pm 08:58 PM

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

コーディングの鍵: 初心者のための Python の力を解き放つ コーディングの鍵: 初心者のための Python の力を解き放つ Oct 11, 2024 pm 12:17 PM

Python は、学習の容易さと強力な機能により、初心者にとって理想的なプログラミング入門言語です。その基本は次のとおりです。 変数: データ (数値、文字列、リストなど) を保存するために使用されます。データ型: 変数内のデータの型 (整数、浮動小数点など) を定義します。演算子: 数学的な演算と比較に使用されます。制御フロー: コード実行のフロー (条件文、ループ) を制御します。

エラー処理には golang のエラー ラップおよびアンワインド メカニズムを使用する エラー処理には golang のエラー ラップおよびアンワインド メカニズムを使用する Apr 25, 2024 am 08:15 AM

Go のエラー処理には、ラップ エラーとアンラップ エラーが含まれます。エラーをラップすると、あるエラー タイプを別のエラー タイプでラップできるようになり、エラーのより豊富なコンテキストが提供されます。エラーを展開し、ネストされたエラー チェーンをたどって、デバッグを容易にするために最下位レベルのエラーを見つけます。これら 2 つのテクノロジを組み合わせることで、エラー状態を効果的に処理でき、より豊富なエラー コンテキストと優れたデバッグ機能が提供されます。

See all articles