四日目学習ビッグデータ
pstreeは現在のプロセス構造を表示
現在のbashでのロード・ソース・ファイル
現在の実行bashスクリプトで
ブラウザのbashのと同等に、cmdを追加します
ファイルにchomd + Xの実行可能ファイル
指定された/インタプリタを実行するためにコンパイルされたファイルの最初の行にデフォルトのbash#!/パスが書き込みしていない場合
#!コメント行は、最初の読み取りで直接実行されます
ヤムヤムSERCH照会ケース
ファイルの出力タイプ
0標準入力
1つの標準出力
2エラー出力
異なる結果は、通常の出力結果1> /経路の様々な使用することができます
エラー結果2> /パス
サービス設定ファイルサービス
/etc/init.d/の
chkconfigをNNランモード1-6 NN NNオフの実行優先度レベル
最後の行に設定tsがインデントviのモードを配置されました
ではスクリプト「コマンドライン」変数名=「猫のファイル名」の割り当て変数の割り当ては、ファイルの内容を取得
bashの-xデバッグ実行
PSは、すべてのプロセスを表示-aux
すべてのサービスのchkconfigの構成
ケースを有効にするために構成されているすべてのサービスを見ることが--list
$(変数名)の文字列変数文字列の連結
息子は、命令が実行される父親のはbash bashの即時環境(ランタイム環境変数を...)継承しました
親子のbash bashの実行可能ファイルの値を継承することはありません
&背景
| bashは、すべての子プロセスを作成するために、パイプの親の値を継承します
「逐語」強い参照
「」弱参照
例えば、バックはテストコマンドを続ける必要がありながら
デュ-hビューファイルサイズフォルダ
$ IFS出力のデフォルトの改行
IFS = $ '\ n' は必須言葉遣い
ロールバックは、値の値を変更する必要がされた後
IFS = oldIFS(カスタム変数)
bashの変数タイプ:
環境変数:輸出
ローカル変数:説明するために、実行時に子のbashを起動するシェルスクリプト。
ローカル変数
位置変数
特別な変数:bashの組み込み変数いくつかの特殊なデータを保持します。(また、システム変数としても知られます)
ローカル変数:変数は、シェルスクリプトのいずれかに属しています。
VAR_NAME =値
範囲:全体のプロセスはbash
ローカル変数:
ローカルVAR_NAME =値、
範囲:現在のコードセグメント。
環境変数:
エクスポート名=値
範囲:現在のシェルとそのサブシェル。
注意:このスクリプトは、サブシェルの実装でプロセスを開始します。
起動するスクリプトコマンドラインは、現在のシェルの環境変数を継承します。
自己定義の環境変数の必要性:システムが自動的にスクリプト(起動する非コマンドライン)を開始します。
場所変数:スクリプトの実行のためのパラメータ、最初のパラメータのための$ 1、というように
$ 0、$ 1、$ 2 ...。
$ 0:スクリプト自体のファイル名を指定します
特別な変数:
コマンドの戻り値の$ :?実行状態。
スクリプトに渡される引数の$の#数
$の*パラメータは、スクリプトに渡され、位置変数は、このオプションでは、9つの以上のパラメータすることができ
$$スクリプトは、現在のプロセス、しばしばhaisonとして、一時変数接尾辞として使用のID番号を実行します。$$
$!最後に、バックグラウンドで実行中のプロセス(&)のID番号
$ @ $#引用符の使用、同じ、および引用符で引数の数を返します
$ - コマンドの最後の引数
$?最後のコマンドの終了ステータス、0はエラーがないことを意味し、それ以外の値はエラーを示し
手続きの2種類があります値を返します。
図1に示すように、結果:標準誤差:標準出力、エラー出力
2、実行状態、$ :? 0:正しい、1から255:エラー
出力のリダイレクト:
> カバレッジのリダイレクト
> >追加のリダイレクト
2>エラー・カバレッジをリダイレクトします
2 >>リダイレクトエラーを追加
&>すべてリダイレクトするには
&>>すべての情報を付加リダイレクト
変数の失効:
未設定の変数名
シェル変数を表示します。
setコマンド
シェル環境変数を見ます
printenvの
ENV
輸出する
参照変数:変数名$ {}、{}一般的に省略することができます
単一引用符:強参照ではなく、変数置換のために
二重引用符:弱参照、変数置換
バッククォート: ``コマンド置換
スクリプト:コマンドの山。
演習:次のタスクを完了し、スクリプトを書きます。
1、5人のユーザ、USER1 ,,,,ユーザ5の追加
2、ユーザー名、要求を持つ各ユーザーのパスワード:パスワードが完了したpasswdの結果が表示されません追加します。
図3は、表示情報が正常に追加します
演習2:次の作業を完了し、スクリプトを書きます。
1、ユーザ名を保持する変数を使用します
2、この変数でユーザーを削除し、また、自分のホームディレクトリを削除します
図3は、メッセージを「ユーザーは正常に削除しました」。
条件:
条件式:
1、[式]
2、テスト式
図3に示すように、いずれかのコマンドは、条件式として使用することができます
整数の比較:
-eq:例:[$ -eqする$ B]
-do、-gt、-lt、-ge、-the
ロジックコマンド:
Linuxでのコマンドの実行状況:0が真である、他の偽
論理AND:&&
最初の条件が偽である、第二の決意条件は、もはや、最終的な結果はありません。
第1の条件は第2の条件が利用可能であると判断され、真です。
論理OR:||
論理否定:!
コマンドの実行の論理状態
ユーザーが存在しない場合は1、ユーザuser6 6を追加
!ID user6 && useraddのuser6
Idがuser6 || useraddのuser6
2、ユーザーが既存のことを示しているそれ以外の場合は、正常に追加され、ユーザーとディスプレイを追加し、存在しない場合
ライン/ etc / inittabファイルの数が50より大きい場合3、良好な大きなファイルを示す図です。
演習:
1、3人のユーザーuser1.user3を追加し、ユーザーは既存の,:存在する場合は、同じユーザー名とパスワードを設定
2、システムは、複数のユーザの合計が完了すると計算します。
演習:ユーザーを考えると、
1、そのUID = 0の場合、管理者として表示、または通常のユーザとしてそれを表示する場合
備考:
デフォルトでは、結合--stdinは、任意の標準入力ファイルによって行わ表し、標準入力端子とのpasswdを使用することで本明細書に標準入力ダクトよう
条件、制御構造の分析:
条件であれば、その後、
声明
elif条件;その後、
声明
他
声明
されます
-a:論理、および:もし[$#-gt 1 -a $#-lt 3 -O $#-eq 2];その後
-o:または例:
演習:500の以上の総エントリのコマンドhistoryコマンドの履歴を決定し、そうであれば、その後、表示、それ以外の番組「いくつかのコマンドが実行されます。」:「OR」。
運動:三つの整数、最大値と最小数がその中に決定されるが与えられます。そして、表示されました
bashの-nシェルファイル:構文エラーのためにファイルをチェックしてください。
bashの-xシェルファイル:デバッグ実行ファイル
どのようにシェルの算術
図1に示すように、演算式を聞かせ
C = $ A + $ Bを聞かせて
2、$ [演算式]
C = $ [$ A + $ B]
3、$((演算式))
C = $(($のA +の$ B))
3、exprの演算式注:式は、各操作とオペレータの数との間の空間を有しています。しかし、また、コマンドリファレンスを使用するには
C =expr $A + $B
演習:自分のパスワードの警告期間を取得するユーザーを考えると、それは「WARN」未満である場合には、ユーザーのパスワードの有効期間は、警告期間を下回っているかどうかを判断するには、それ以外の場合は、パスワードの有効期限が切れる何日表示されます。
ヒント:日付+%sの:秒数今日
猫の/ etc / shadowのパスワード時間。
終了:スクリプトを終了
終了0:終了スクリプトは、ステータススクリプトの実行を与えることができます。
レビュー:
試験方法:
[式]
[式]]
テスト式
INT1 = 33
INT2 = 32
[$ INT1 -eq $ INT2]
[[$ INT1 -eq $ INT2]]
テスト$ INT1 -eq $ INT2
ファイルテスト:[]かっこ必要
-e FILE:ファイルが存在するかどうかをテストします
-f FILE:テストファイルが通常のファイルであります
-d FILE:テストファイルがディレクトリであります
-r権利
-w
-バツ
特別な変数:
$#$ @
文字列のテスト:
==空間は等号の両端に必要とされます
!=
-n文字列:文字列が空であるかどうかを判断します
-s文字列:文字列が空でないかどうかを判断します
演習:このユーザー名とグループ名の基本セットが同じであるかどうか、ユーザー名を指定します。
#!/ binに/ bashの
もし!ID $ 1と>を/ dev / null; それから
「いいえ、そのようなユーザー。」エコー
12番出口
されます
[$ 1 ==場合id –n –g $1
];その後、
「xiangtong」エコー
他
"BU xiangtong" エコー
されます
運動:(情報の/ proc / cupinfoファイルに格納されている)現在のホストCPUメーカーを決定します。
はいの場合:ディスプレイ上でAuthemticAMD、AMD
インテルコーポレーションとして表示GenuineIntel、
それ以外の場合は、その非主流の会社を表示します。
演習:ユーザーがログアウトし、与えられた/tmp/test.txtファイルと行番号に出て、ユーザーのアカウント情報を抽出することができますクエリ。行の先頭。
サイクル:エントリー条件、終了条件
リスト内の変数のために、やります
声明
完了
比如:1 2 3 4 5におけるIため、行います
声明
行われ、
リストを生成する方法:
1、{} 1..100
2、配列番号開始終了番号を
3、LSの/ etcファイルリスト
演習:挨拶するために/ etc / passwdファイルの各ユーザーに向ける:こんにちは、ユーザー名、およびユーザのシェルを表示します。
こんにちは、根、シェル:/ binに/ bashの。
唯一のユーザーのデフォルトのシェルをbashに挨拶する2、。
Whileループ
フォーマット
条件しばらく;やります
声明
[ブレーク]
完了
二つは、ループ形式に死亡しました
真しばらく
行う
声明
完了
フォーマット3人が死亡サイクル
しばらく:
行う
声明
完了
第四に、無限ループのためのスキーム
一方、[1]
行う
声明
完了
五人が死亡・サイクル・フォーマット
一方、[0]
行う
声明
完了
演習:3で割り切れるすべての整数の100未満の計算と
演習:10は、乱数、および新しい行をエコーします。ヒント:$ RANDOM
演習:スクリプトのパラメータ:ディレクトリディレクトリの最大ファイル、ファイル名とファイルサイズを見つけるために:
たとえば、次のように1.TXT 100キロバイト
ls -lで| awkは '{、$ 9 $ 5印刷}' | ソート-nr
2、そこに削除された場合、ファイルのディレクトリサイズ0を見ることがあるかどうか。一方、情報を削除します。
演習:IPは、ファイルへのIP出力を使用していることを、現在の192.168.10.xのネットワークセグメントを照会します。
演習:システムプロセスこのキーワードを殺すのプロセスに含まれるキーワードに基づいて作成します。
-n $ RANDOMエコー
機能:
関数名()
case文
ケース内の変数
VALUE1)
声明
;;
値2)
声明
;;
*)
声明
;;