シェルシェルの意味とは「シェル」の意味です。実際、Linuxシステムにおけるシェルの役割を非常に鮮明に示しています。このシェルは、Linuxカーネルの外部にある「シェル」プログラムであり、オペレーティングシステム上でユーザーが実行するすべてのタスクは、シェルとLinuxカーネルの相互作用を通じて実装されます。私たちはDOSシステムのcommand.comプログラムに精通しているべきですシェルの機能は似ていますが、シェルはより強力でより使いやすいです。
すべてのオペレーティングシステムには独自のシェルがあります。 DOSを例にとると、そのシェルはcommand.comプログラムです。 DOSの下には、4DOS、NDOSなど、サードパーティのコマンドインタープリタも多数あります。これらのコマンドインタープリタは、標準のcommand.comプログラムに完全に置き換わることができます。同様に、Linux用のデフォルトのBourne againシェル(bash)に加えて、Cシェル(csh)、Kornシェル(ksh)、Bourneシェル(sh)、およびTenex Cシェル(tcsh)など、他にも多くのシェルがあります。シェル関数の各バージョンは基本的に同じですが、それぞれ独自の利点があります現在、Linuxディストリビューションでは通常、デフォルトのシェルとしてbashが使用されています。
シェル自体は、C言語で書かれたプログラムです。これは、ユーザーとオペレーティングシステムカーネルの間の橋渡しです。シェルは、コマンドインタプリタと強力なインタプリタプログラミング言語の両方です。シェルは、コマンドインタープリタとして、ユーザーが入力したコマンドを解釈し、それらをカーネルに送信して処理させ、最後に結果をユーザーに返します。シェルでは、コマンドの操作を高速化し、シェルプログラムをより効果的にカスタマイズするために、いくつかの組み込みコマンドを定義しています(一般的に、シェル自体が解釈して実行するコマンドは組み込みコマンドと呼ばれます)。エコーと他のコマンドはbashに属する組み込みコマンドです。ユーザーがシステムにログインすると、シェルおよび組み込みコマンドがシステムによってメモリーにロードされ、ユーザーがシステムを終了するまで実行されます。組み込みコマンドに加えて、Linuxシステムには多くの実行可能ファイルがあります。実行可能ファイルは Windows
の下の.exeファイルに似ており、これらの実行可能ファイルはシェルコマンドとして実行することもできます。実際、Linuxの多くのコマンドはシェルの組み込みコマンドではありません、例えば、lsは実行可能ファイルで、/bin /lsに格納されています。これらのコマンドはシェルの組み込みコマンドとは異なり、呼び出されたときにのみシステムによってメモリにロードされます。
ユーザーがシステムにログインした後、ログイン文字インタフェースの場合は、シェルコマンドプロンプトが表示されます。 '#'は、ログインしたユーザーがシステムスーパーユーザーであることを示し、' *'は、システムにログインしたユーザーが通常のユーザーであることを示します。シェル実行コマンドの解釈の具体的なプロセスは次のとおりです。ユーザーがコマンド入力コマンドを入力した後、シェルプログラムはまずそれが組み込みコマンドであるかどうかを検出し、そうであればシェルの内部インタプリタを通じてシステムコールとしてコマンドを解釈し、実行します。シェル組み込みコマンドではない場合、シェルはユーザーが指定したパスまたはシステム環境変数の構成情報に従って、対応するコマンドをハードディスク上で探し、それをメモリに転送して、最後にシステムコールとして解釈してカーネルに送信します。実行
最後のシェルは、さまざまなオプションや変数を定義する強力なインタプリタプログラミング言語でもあり、変数、関数、式、ループなど、高水準プログラミング言語のほぼすべてのプログラム構造をサポートします。シェルは、Windows /DOSのバッチファイルに似たシェルスクリプトを書くために使用することができますが、シェル関数はより完全でより強力です。
4.1.2シェルコマンドの解析Linuxにおけるさまざまなシェルの主な違いは、コマンドラインの構文です。一般的なコマンドでは、各シェルバージョンの構文は基本的に同じで、シェルスクリプトを作成する場合、またはシェルの高度な機能を使用する場合に限り、シェルの各バージョンの違いが表示されます。
シェル解析とは、シェルによるコマンドのスキャン処理、つまりコマンドやユーザー入力をさまざまな部分に分解して処理する操作のことです。 Linuxでは、シェル解析にはリダイレクト、ファイル名拡張子、パイプなどの多くのコンテンツが含まれています。
このセクションでは、bashを例として使用して、次のシェルコマンドの構文解析を紹介します。
1。シェルコマンドの形式ユーザーがシステムにログインすると、シェルコマンドラインが起動します。シェルは特定の構文に従って、ユーザーが入力したコマンドを分析および解釈し、それらをシステムカーネルに渡します。シェルコマンドの一般的な形式は次のとおりです。
command [options] [arguments]
習慣によれば、通常、上記の形式の文字列をコマンドラインとして参照します。コマンドラインは、ユーザーとシェル間の対話の基本単位です。
- コマンド:コマンドの名前を示します。
- options:コマンドのオプションを示します。
- arguments:コマンドのパラメータを示します。
コマンドラインでは、オプションは1つ以上の文字を含むコードです。主にコマンドの実行方法を変更するために使用されます。通常、パラメータを区別するためにオプションの前に - l - - 記号があります。次に例を示します。
[root @ WEBServer〜] #ls -a
lsコマンドに-aオプションを指定すると、隠しファイルを含め、現在のディレクトリ内のすべてのファイルが一覧表示されます。 lsが' -a'オプションを追加しない場合、現在のディレクトリ内のファイル名とディレクトリのみが表示されます(隠しファイルは表示されません)。
一般コマンドにはいくつかのオプションがあり、個別にリストすることも、' - 'の後に必要なオプションをリストすることもできます。たとえば、
ls– a–などです。 l
は次のようにも書くことができます。
ls– al
多くのコマンドがパラメータを受け取ることができます。パラメータは、オプションに続く1つ以上の文字列で、ファイルやディレクトリなど、コマンドのアクションオブジェクトを指定します。たとえば、/etcディレクトリ内のすべてのファイルと情報を表示するには、次のコマンドを使用します。
[root @ WEBServer〜] #ls– al /etc
場合によっては、次のコマンドを実行できます。 lsコマンドなどのパラメーターがない場合は、パラメーターを指定する必要があります。パラメータが十分でない場合、シェルはエラーを出します。たとえば、mvコマンドには少なくとも2つのパラメータが必要です。
[root @ WEBServer〜] #mv mylinux1.txt mylinux.txt
シェルのコマンドラインでは、各コマンドをセミコロンで区切ることもできます。 :
[root @ WEBServer〜]#lp< nd;; cp mylinux1.txt mylinux2.txt
代わりに、' \\'を使用して複数の行にコマンドを入力することもできます。コマンドは次の行に続きます。
[root @ WEBServer〜] #cp– i \\
> mylinux1.txt \\
> mylinux2.txt
bashで一般的に使用されているワイルドカードは' *'、'?'、' []'です。
(1)' *'——任意の1文字以上の文字に一致
例:
[root @ WEBServer〜] #ls * .txt
このコマンドは、現在のディレクトリ内の' .txt'で終わるすべてのファイルを一覧表示します('。'で始まるファイルは除く)。
[root @ WEBServer〜] #cp doc /* /opt
を使用してLinuxのメモリ表示コマンド(free -m)を使用します。コマンドfree -mを使用できます。このコマンドはLinuxでのみ有効で、FreeBSDにはそのようなコマンドはありません。コ
インターネットを許可してLinuxシステムを設定する方法を尋ねる方法をオンラインで多くのオンラインで参照してください。 事前の知識を拡大するため、次の方法を分離するために、いくつかの方法があります..
要件のシナリオ
プロキシサーバーのHAProxyを使用したMysqlのロードバランシングサーバーの障害やデータの複製など、Mysqlに問題がある場合のユーザビリティを向上させるための一般的な方法です。中断した場合は、HAProxyにすぐに通知してからリクエストの転送を停止することをお勧めします。
HAProxy Mysqlに問題があるかどうかを確認するにはどうすればよいですか。
アイデア
Egrep -o up([0-9] +)日
1.ログインせずにroot権限を取得します。 GRUBパスワードが設定されていない場合は、最も簡単な方法でコンピュータを起動し、GRUBを待ちます。メニュー、GRUBメニューが隠れている場合は、Es