運用・保守作業中のLinuxシェルスクリプトの位置
シェルだけでなく、プレーンテキストデータ型に適したスクリプト言語、およびほとんどすべてのLinuxシステム構成ファイル、ログファイル、およびあなたを愛しする時間を開始していないの大半は、プレーンテキストファイルタイプなので、シェルスクリプト言語を学びますあなたは、Linuxシステムに大きな役割を果たしているためにそれを使用することができます
シェルスクリプト弱い型付けされた言語の四(変数の型を定義することなく使用することができます)、大規模なクラスがあるのUnix / Linuxの中でシェル
[DD @ foundation0〜] $これSH
/ usr / binに/ shを
[DD @ foundation0〜] $ LLは/ usr / binに/ shを
lrwxrwxrwx。1つのルート根元部4 2018年11月28日の/ usr / binに/ shの - > bashの
[DD @ foundation0〜] $猫の/ etc /シェル
/ binに/ shを
/ binに/ bashの
/ sbinに/ nologinに
/ usr / binに/ shを
/ usr / binに/ bashの
/ usr / sbinに/ nologinに
/ binに/ tcshの
/ binに/ CSH
主流のシェル## Linuxシステムのshを使用している場合、追加することはできませんbashの、進化のshによってbashのですが、また、bashのとkshのcshの機能が含まれていますが、スクリプトのほとんどはSH上で実行するように変更されています調査結果と期待が異なっている、あなたはSHの代わりにbashのを使用しようとすることができます
利点は、言語をシェル
1000の以上のLinuxコマンドシステムはそれをサポートしていないがあるので、Linuxシステム内の多くのアプリケーション(一部のアプリケーションの一部)シェルスクリプト言語を使用している:利点は、以下のような基礎となるオペレーティング・システム・サービスの部分的な治療法があることスクリプト言語シェル特にLinuxの正規表現とテキストコマンドではgrep awkは三銃士をsedのように
いくつかの一般的なシステムスクリプトの場合は、シェルの開発を使用すると、簡単かつ迅速になります
#Linuxは簡単に三つの基本原理の使用や効率的な運用に委員会に合わせてより多くのシェルを使用して
次の方法で、デフォルトのシェルを表示することができます
[ルート@ foundation0〜]#エコー$ SHELL
/ binに/ bashの
[ルート@ foundation0〜]#grepのルート/ etc / passwdファイル
ルート:X:0:0:ルート:/ルート:/ binに/ bashの
オペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN
[ルート@ foundation0〜]#猫の/ etc /赤
redhatのアクセス-洞察/ Redisの/
RedHatのリリース
[ルート@ foundation0〜]#猫の/ etc / redhatのリリース
Red Hat Enterprise Linux Serverリリース7.3(マイポ)
[ルート@ foundation0〜]#bashの--version
GNUのbashのバージョン4.2.46(1)-release(x86_64の-のRedHat-LinuxベースのGNU)
著作権(C)2011 Free Software Foundationが、株式会社#bashバージョン
ライセンスGPLv3の+:GNU GPLバージョン3以降<http://gnu.org/licenses/gpl.html>
これはフリーソフトウェアです。あなたはそれを変更して再配布は自由です。
NOの保証は、法律で認められている範囲内に、あります。
シェルスクリプトは、道を走ります
#使用ソースまたは「」自体は、現在使用されている親シェルスクリプトの戻り値に渡された変数の値のようなスクリプトや関数であってもよいです
[ルート@サーバー1 MNT]#shの3.sh
[ルート@サーバー1 MNT]#エコー$ USERDIR
[ルート@サーバー1 MNT]#ソース3.sh
[ルート@サーバー1 MNT]#エコー$ USERDIR
/ mnt
[ルート@サーバー1 MNT]#猫の3.sh
ユーザーディレクトリ= `pwd`は
私たちは、次のような結論を引き出すことができます。
息子のシェルスクリプトは、直接彼の父親のシェルスクリプトの変数、関数を継承した(父親の姓の息子のように、遺伝子は父親を継承します)というように、逆にありません
あなたは(その遺伝子はまた、彼の父の息子を継承したので、彼の息子の姓を持つ父親かのように)、我々はソースを使用しなければならないか、「」父シェルスクリプトシェルスクリプトで息子を事前にロードし、継承をオンにする場合
シェル変数の特性
デフォルトでは、bashシェルは、変数の型を区別されていません#このおよびその他の強く型付けされた言語を(のJava / C)差があります
変数タイプ:
そして、の2種類の変数:環境変数(グローバル変数)と共通の変数(ローカル変数)
任意の子プロセスのシェル環境変数はまた、あなたがシェル内に作成することができ、グローバル変数と呼ばれ、独自の環境変数に分けることができ、環境変数の使用から派生し、環境変数はbashを構築することができます
「」」
システム仕様は、すべての環境変数の名前は大文字にされ、プログラムのプロセスで使用されるユーザー環境変数の前に、輸出にexportコマンドを使用して定義する必要があります
[ルート@サーバー1 MNT]#輸出DDPP = 99
[ルート@サーバー1 MNT]#エコー$ DDPP
99
[ルート@サーバー1 MNT]#出口
ログアウト
172.25.0.1への接続が閉じました。
[ルート@ foundation0〜]#sshの[email protected]
[email protected]'sパスワード:
最終ログイン:水曜日12月11日午前11時47分52秒2019年からfoundation0.ilt.example.com
[ルート@サーバー1〜]#エコー$ DDPP
#環境変数の設定
[ルート@サーバー1〜]#DDPP = 99;輸出DDPP
[ルート@サーバー1〜]#エコー$ DDPP
99
[ルート@サーバー1〜]#は、-x NAME = DDPPを宣言します
[ルート@サーバー1〜]#エコー$ DDPP
99
[ルート@サーバー1〜]#は、-x NAME = DDPPを宣言します
[ルート@サーバー1〜]#エコー$ NAME
NPP
[ルート@サーバー1〜]#は、 "輸出DDPP = 99"> / etc / profileをエコー
[ルート@サーバー1〜]#猫は/ etc / profile | grepのDDPP
輸出DDPP = 99
[ルート@サーバー1〜]#ソースは/ etc / profile
[ルート@サーバー1〜]#エコー$ DDPP
99
[ルート@サーバー1〜]#のenv | grepをDDPP
NPP = 99
NAME = DDPP
環境変数の知識の概要:
1.変数名は通常、資産計上され
2.変数は、それ自身のシェルとサブシェルで使用することができます
環境変数を定義する3.一般的な輸出
4. ENVデフォルトの実行環境は、すべての変数名とその対応する値を表示することができます
「未設定の変数名」5.出力をキャンセルする「$変数名」を使用した場合
あなたは、環境変数が永続的である場合6.は、ユーザー環境変数またはグローバル変数ファイルのファイルに配置することができます
「」」
通常の変数は、ローカル変数と呼ぶことができる、唯一の共通の変数を使用してシェル関数またはシェルスクリプトを作成することができ、通常はスクリプトの開発に開発者によって作成されました
#着陸後の表示やロードコンテンツを初期化するには、/etc/profile.d/の下に配置することができますスクリプトファイル(実行許可を追加する必要はありません)を置きます