シェル、バッシュ、スクリプト:シェルスクリプティングのすべて。

この新しい機会に(エントリー#8) オン 「シェルスクリプティングを学ぶ」 実践よりも理論に焦点を当てます。 つまり、コードをインストールまたは調査したり、特定のソフトウェア(パッケージ)をインストールしたりするのではなく、世界とは何かを掘り下げます。 シェルスクリプト 適切に言えば、以下に示す小さいが直接的な質問への回答を通じて、これまでに教えられたことの多くを明確にします。これは、プログラムされた内部コードを直接参照していません。

シェルスクリプト

GNU / Linuxオペレーティングシステムのシェルとは何ですか?

スペイン語でCONCHA(シェル、カバー、保護)を意味するシェル。 オペレーティングシステムでこの用語を適用すると、オペレーティングシステムのコマンドインタープリターを指します。 一般に、これは高性能のテキストインターフェイスであり、ターミナル(コンソール)の形式で表され、基本的に3つの重要な作業領域に対応します。

1.- OSを管理し、
2.-アプリケーションを実行してそれらと対話し、
3.-基本的なプログラミング環境として機能します。

多くのSO、 GNU / Linuxの ターミナルを介して構成ファイルを編集することにより、さらに効率的に管理されます。 原則として、これらは宛先パス上にあります。 «/等"、および各アプリケーションの特定のディレクトリ内。 たとえば、プログラム リロ (Linux Loaderの略)は、次のように配置されて呼び出されるテキストファイルを編集することによって構成されます。 「/Etc/lilo/lilo.conf」。 プログラム(アプリケーション)の場合、通常どおり、すべての実行可能ファイルのパス(デフォルトパス)に実行可能ファイルの名前が見つかった場合、それらは実行可能ファイルの名前を書き込むことによって起動(実行/アクティブ化)されます。 "/ Usr / bin" 、または前に実行可能な実行可能ファイルの名前を入力します。 ./、それらが配置されているディレクトリから。

これらはすべて、シェルユーザーにはよく知られています。 ただし、プログラミング環境としての機能はあまり知られておらず、高く評価されていません。 シェルで作成されたスクリプト(プログラム)をコンパイルする必要はありません。 シェルはそれらをXNUMX行ずつ解釈します。 したがって、これらはシェルスクリプトと呼ばれるか、名前が付けられており、単純なコマンドからOS自体を起動するための複雑な一連の命令までさまざまです。 かなりクリーンな(明白な)構文(構築、順序付け)を持っている、プログラミングの世界で始めるための良い出発点になります。

シェルスクリプティングとは何ですか?

これは、オペレーティングシステムのシェル(できれば)またはテキストエディタ(グラフィックまたはターミナル)を使用してスクリプト(タスク自動化ファイル)を設計および作成する手法(スキル/器用さ)です。 これは、一般的に解釈されるプログラミング言語の一種です。 つまり、ほとんどのプログラムはコンパイル(コード化)されますが、実行(コンパイルプロセス)する前に特定の(特別な)コードに永続的に変換されるため、シェルスクリプトは元の形式(コード)のままになります。テキストソース)、実行されるたびにコマンドごとに解釈されます。 通常ではありませんが、スクリプトをコンパイルすることも可能です。

シェルスクリプティングの下で​​のプログラミングに基づくプログラムの特徴は何ですか?

1.-書き込み(プログラム)は簡単ですが、実行時の処理コストが高くなります。

2.-コンパイラの代わりにインタプリタを使用して実行します

3.-他のプログラミング言語で書かれたコンポーネントと通信関係があります。

4.-それらを含むファイルはプレーンテキストとして保存されます。

5.-最終的な設計(コード)は通常、コンパイルされたプログラミング言語で同等のものよりも小さくなります。

シェルスクリプティングで最も人気のある言語の種類は何ですか?

1.-タスクおよびシェル制御言語:

a)cmd.exe(Windows NT、Windows CE、OS / 2)、
b)COMMAND.COM(DOS、Windows 9x)、
c)csh、Bash、AppleScript、sh、
d)Windowsスクリプトホストを介したJScript、
e)Windowsスクリプトホストを介したVBScript、
f)REXX、とりわけ。

2.- GUIスクリプティング(マクロ言語):

a)AutoHotkey、
b)AutoIt、
c)期待して、
d)とりわけAutomator。

3.-特定のアプリケーションのスクリプト言語:

a)FlashのActionScript、
b)MATLAB、
c)mIRCスクリプト、
d)QuakeCなど。

4.- Webプログラミング(動的ページ用):

a)サーバー側:

-PHP、
-ASP(アクティブサーバーページ)、
-JavaServerページ、
-ColdFusion、
-IPTSCRAE、
-なげなわ、
-MIVAスクリプト、
-SMX、
--XSLTなど。

b)クライアント側:

-JavaScript、
-JScript、
-VBScript、
-とりわけ、Tcl。

5.-単語処理言語:

-AWK、
-Perl、
-渇き、
-XSLT、
-とりわけ、バッシュ。

6.-汎用動的言語:

-APL、
-ブー、
-ディラン、
-フェライト、
-Groovy、
-IO、
- 舌足らずの発音、
-ルア、
-おたふく風邪(M)、
-NewLISP、
-ヌバ、
-Perl、
-PHP、
-Python、
-ルビー、
-スキーム、
-スモールトーク、
-スーパーカード、
-Tcl、
-とりわけ革命。

GNU / LinuxのBashとは何ですか?

注文を解釈する機能を持つコンピュータプログラムです。 それはに基づいています Unixシェル そしてそれはサポートしています POSIX。 これはGNUプロジェクト用に作成されており、ほとんどのLinuxディストリビューションのデフォルトシェルです。

GNU / Linuxのシェルスクリプトとは何ですか?

シェルスクリプト それらは非常に便利です。 私たちが持っているそれらのニーズを書いて、それから私たちのためにこの仕事をするスクリプトを編集するのは良い考えです。 ここまでで、スクリプトが正確に何であるかを自問する時が来ました。 これは、システムが上から下に順番に実行する一連のシェルコマンドを含むテキストファイルです。 それらを編集するには、多くの既存のものの中で、Emacs、Vi、Nanoなどのテキストエディタのみが必要です。 これらは「.sh」拡張子付きで(または場合によってはなしで)保存され、コマンドsh scriptname.shを使用してシェルから実行されます。 スクリプトはシェルコマンドと同じように動作します。

私が個人的に使用している教授法 「シェルスクリプティングを学ぶ」 非常に実用的で直接的です。つまり、各要素が個別にどのように機能し、コードにどのように関与するかを理解するまで、完全に機能するスクリプトを調べ、分解し、文ごと、行ごと、コマンドごと、変数ごとに調査します。一般。 それは一種です リバースエンジニアリングまたはソフトウェアリエンジニアリング。 これはすべて、知識を流用し、改善し(最適化し)、共有することを目的としており、無料のオペレーティングシステムの集合的な利益とより良い管理および最適化を実現します。

GNU / Linuxシェルでどのように実行および動作しますか?

シェルを操作する最初のステップは、シェルを実行することです。 真実のように見えるものには、その理由があります。 一部の非常にエンドユーザー指向のGNU / Linuxディストリビューションでは、シェルはかなり隠されています。 通常、これは、Konsole、Terminal、X Terminal、または同様のものと呼ばれます。 別のオプションは、仮想コンソールを使用することです。 使用方法:使用するGNU / Linuxディストリビューションに応じて、Ctrl + Alt + f1、またはf2、またはf3からf7またはf8。 GNU / Linuxで最も使用されているシェルはBashですが、kshやCシェルなどの他のシェルもあります。 私の場合、特に私の出版物では、BashShellを使用しています。

BashShellで作成されたスクリプトが与えられた hello_world.sh 以下を説明することができます:

内容:

#!/ bin / bashに
エコーハローワールド

壊す:

スクリプトの最初の行
#!/ bin / bashに

スクリプトを実行するプログラムを示します。 プログラムが見つからない場合、エラーが発生します。

スクリプトのXNUMX行目
エコーハローワールド

Hello World引数を指定してechoコマンドを実行すると、それらが画面に表示されます。

実行: スクリプトはXNUMXつの方法で実行できます

スクリプトを実行するためにインタプリタを呼び出す:
#bash hello_world.sh

次のように実行することもできます。
#sh hello_world.sh

ただし、正しいシェルが呼び出されないため、半分は機能する可能性があります。 理想的には、最初の行で呼び出されるシェルは、それを実行するために使用されるシェルです。

次のように、スクリプトを直接実行することもできます。
#。/ hello_world.sh

注意: ./は、現在のディレクトリから実行することを示します。

まだ分​​析されていないのは、そこに挿入するコードです。 私はいつものようにあなたが好きであることを願っています(学習と知識のニーズに応じて、他のものよりもいくつか)このシリーズの シェルスクリプト.

ウェブ上にはこのトピックに関する多くの良いリンクがありますが、私はあなたにこの小さなガイドをここに置いておきます DesdeLinux.NET そしてこの他 外部ガイド.

次の投稿まで!


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   d4ny

    Lilo .. Linux Loader ..残りの非常に良い情報..ありがとう..salu2 d4ny.-

  2.   Ing。JoseAlbert

    「シェルスクリプティングを学ぶ」のオンラインコースを間もなくフォローしているすべての人に挨拶します。他の基本的なスクリプトを続けて、知識を流用し続け、すべての人にそれを伝え続けます。

    すぐに、より高度なコードから始めますが、その複雑さにもかかわらず視覚的に理解できる方法で公開されるので、ご期待ください。

    Shell Scriptingを使用すると、非常に小さなファイルを使用して、クロスプラットフォーム(Different Distros)である多くの複雑なことを実行できることを忘れないでください。 コースを見続ける人たちに、私がすぐに教える何かのこの小さなスクリーンキャストをあなたに残します、そしてそれはたった50Kbでたくさん約束します! そして、それはシェルスクリプティングでできることの半分にすぎません。

    LPI-SB8テストScreenCast(LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    スクリーンキャストを参照してください。 https://www.youtube.com/watch?v=cWpVQcbgCyY

    1.    アルベルトカルドナ

      こんにちは、あなたの貢献は信じられないほどです、本当にありがとうございました!!
      少し疑問がありますが、bashを使用してコンパイラをプログラムできますか?
      または少なくとも語彙アナライザー?
      その力はありますか?

  3.   Ing。JoseAlbert

    「シェルスクリプティングを学ぶ」のオンラインコースを間もなくフォローしているすべての人に挨拶します。他の基本的なスクリプトを続けて、知識を流用し続け、すべての人にそれを伝え続けます。 すぐに、より高度なコードから始めますが、その複雑さにもかかわらず視覚的に理解できる方法で公開されるので、ご期待ください。

    Shell Scriptingを使用すると、非常に小さなファイルを使用して、クロスプラットフォーム(Different Distros)である多くの複雑なことを実行できることを忘れないでください。 コースを見続ける人たちに、私がすぐに教える何かのこの小さなスクリーンキャストをあなたに残します、そしてそれはたった50Kbでたくさん約束します! そして、それはシェルスクリプティングでできることの半分にすぎません。

    LPI-SB8テストScreenCast(LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    スクリーンキャストを参照してください。 https://www.youtube.com/watch?v=cWpVQcbgCyY

  4.   アルベルト

    ホラホセ、
    まず、知識を共有していただきありがとうございます。 あなたの記事はとても興味深いです。

    0つのことは、二重引用符「Hello World」を使用することと、exitXNUMXでスクリプトをクリーンに出力することが非常に重要だと思います。

  5.   Ing。JoseAlbert

    貢献してくれてありがとう、次のスクリプトでは、exit 0、breakなどの使用法を見るでしょう!

  6.   ウィラルマンド

    ご挨拶。
    非常に興味深いのは、シンプルに見えるようにすることです。 さて、Linuxでcronまたはatを使用してプログラミングできないことがわかりました。シャットダウン、一時停止、休止状態になり、その結果、rtc wakeコマンドを使用して自動起動します。そのコマンドを使用したスクリプトが役立つかどうか、またはcronに従うかどうかはわかりません。そして、何もしないで、またはそれができない、または別の方法で行われる、または私は非常に野心的ですが、Windowsではそれを行うのは比較的簡単です。 Linuxに移行したいのですが、シャットダウン/サスペンド/休止状態をスケジュールし、PCを自動的に起動させることが重要です。 よろしく。

  7.   Ing。JoseAlbert

    多分これはあなたにいくつかの革新的なアイデアを与えるでしょう: http://cirelramos.blogspot.com/2016/01/reiniciar-apagar-o-ejecutar-otra-tarea.html

  8.   ウィラルマンド

    ありがとう、私はそれらを完全に読みます、何かが私を助けます。 よろしく。

  9.   エドゥアルド・クオモ

    少し前にプロジェクトを始めましたが、これは他に類を見ないものだと思います。 これはFramewokBashのプロトタイプです。 システムに必要なのはBashだけです。
    他の誰かが興味を持っているなら、彼らはそれを試して協力するように招待されています!

    https://github.com/reduardo7/bashx

    ご挨拶!

    1.    ラガルト

      親愛なるエドゥアルドさん、これは素晴らしいプロジェクトだと思います。コミュニティ全体と共有していただけないでしょうか。 desdelinux、私たちの Web サイトでプロジェクトに関する記事を公開できることを覚えておいてください。その方法がわからない場合は、読むことをお勧めします。 https://blog.desdelinux.net/guia-redactores-editores/ 記事を作成するためのベストプラクティスはどこですか desdelinux そして実行すべき手続き。おそらくコミュニティにとって、まずプロジェクトの利点について知り、次にこの種のことを行う方法を学ぶことは非常に良いことです。私たちはあなたを招待し、他の人たちも彼らのプロジェクトを私たちや私たちを取り囲む大規模なコミュニティと共有するよう招待します。

  10.   ミゲル・ウロサ・ルイス

    こんにちは、おはようございます。
    私はLinuxマシン管理の世界に慣れていないので、ksh、bash、perl、php、pythonなどの推奨事項を知りたいと思いました。
    どうもありがとうございましたとよろしく。
    ミゲル。