あなたの言語を知っている:シェルスクリプトの幽霊

ご参考までに。

この話は5年以上前のものです。

これはコンピュータプログラムに非常によく似ており、ある意味ではそうです。重要な違い、およびスクリプトとプログラムを区別するために通常使用されるのは、コンパイルです。 C ++または別の一般的なプログラミング言語でコードを作成する場合、これは、ソフトウェアの一部がすべてのコードを取得して、それを機械可読命令に変換するステップです。結果は実行可能ファイル、つまりソフトウェアの一部になります。ソフトウェアを実行するために、オペレーティングシステムはすべてをメモリにロードし、実行中のプロセスのキューに織り込みます。これらのプロセスはすべて、コンピューターのプロセッサーを共有します。

ただし、スクリプトにはこのステップはありません。シェルスクリプトを作成するときは、オペレーティングシステムの機能として、または他のスクリプトとしてすでに存在している一連の部分を使用しています。それらはすでにコンパイルされており、ある意味では、すでに実行されていると考えることができます。スクリプターが行っているのは、これらの移動ギアを取り、便利な方法でそれらを一緒にラッシングすることだけです。スクリプト言語は、既存のプログラムを使用してそれらを結合するため、「接着剤」言語と呼ばれることがよくあります。スクリプトは、他のことをそのような時間にそのような順序で実行するように指示するほど「実行」されません。

このスクリプトは、ユニット間でデータを「パイプライン化」する役割も果たします。たとえば、現在のディレクトリ内のファイルのリストを出力するlsコマンドを実行する場合、単一の文字( '|')を使用して、その出力を別のユニットの入力に送信できます。それらのファイルをテキストファイルに変換します。



シェルスクリプトは、理論的には他のプログラムと同じくらい複雑である可能性がありますが、そのようなものは目的を打ち破ります。

スクリプティングとシェルスクリプト

すべてのスクリプトがシェルスクリプトであるとは限りません。 PythonやLuaなど、完全に独立したスクリプト言語があり、それらは同じように機能します。違いは、オペレーティングシステムを実行環境として使用するのではなく、スクリプト言語に独自の言語があることです。 Pythonコードは、完全なプログラム(それほど多くのスクリプトではない)にパッケージ化することも、小さなプログラムが他のプログラムの動作を指示するスクリプト言語として使用することもできます。他の完全なプログラムを取得してそれらをつなぎ合わせるだけなので、Pythonスクリプトをコンパイルする必要はありません。それはただの接着剤です。

シェルスクリプトは超軽量のものを意図していますが、Pythonスクリプトは非常に複雑になる可能性があり、Pythonインタープリターの機能は比較的広大で拡張され続けています。

その他のスクリプト定義

スクリプトは本当に議論の余地のあるものの1つであるため、インターネット全体からいくつかの定義を提供することが役立つかもしれないと思いました。

ソフトウェアエンジニアのNaelShawwa

では、スクリプトとは何ですか?それは、ツールまたはツールの組み合わせを使用して、タスクまたは一連のタスクを自動化するときだと思います。それが書かれている言語に関係なく、私は怠惰になる可能性があります。

フェニックス750

スクリプト言語(Bash、Python、Rubyなど)は、主に特定のタスク(特にBash)を自動化するように設計されています。多くのハッカーはPythonを使用してエクスプロイトを作成します(ただし、Metasploitで作成することを好みます)。 Pythonのようなスクリプト言語には豊富な機能がありますが、スクリプト言語には1つの大きな欠点があります。それは遅いということです。これは、プログラミング言語とは異なり、スクリプトが解釈されるためです。つまり、プログラムは、すべてのコマンドをまとめてマシンコードに変換するのではなく、コマンドごとにコマンドを実行します。

ハーマンベンター 、MSDNブログ:

プログラムは、おそらくランタイムやオペレーティングシステムの協力を得て、コンピュータハードウェアによって直接実行される一連の命令です。一方、スクリプトは、テキストエディタ、コマンドラインプロセッサ、最も有名なWebブラウザなどの他のプログラムによって実行される一連の命令です。十分に高いレベルの抽象化では、「オペレーティングシステムのスクリプト」と「テキストエディタのスクリプト」の間に概念的な違いはありませんが、実際には詳細が重要であり、歴史的なスクリプトの設計に影響を与えるほどの違いがあります。言語。

入門

一般的に、スクリプトはプログラミングを始めるのに最適な方法です。 Pythonのようなものを使用すると、多くのバックグラウンドがなくても、非常にクールでハッカーなことを簡単に行うことができます。たとえば、Twitterをハッキングしたい場合は、あらゆる種類のことを行うための巧妙なスクリプトがたくさんあります。その他の明らかなPythonユーティリティには、Webスクレイピング、データ同期、コマンドライングーグル、HTML検証とメンテナンス、任意の数のパイプライン/ APIのデータ収集、ライブコーディングビートなどがあります。 Pythonのおかげで、ディナータイムまでにTwitterやそれ以外の場所にボットが殺到する可能性があります。 Python3をダウンロードする ここに

にとって シェル スクリプトを使用すると、Windowsのコマンドラインをいじくり回すことができますが、 Cygwin 、同じマシン上でLinuxのような環境を実行し、同じLinuxのような機能を持つことができます。 Macでは、すでにUnixを実行しているため、シェルスクリプトの方が自然です。

続きを読むあなたの言語を知る