UNIXシステム


Unixシステムは、多くの他のオペレーティングシステムに影響を及ぼした大きなブレークスルーです.LinuxとMacOSで特に見える.
「Unixライクなシステム」という用語を読むことさえできます.
Unixコアの哲学は、以下のような重要な原則を強調しました.
  • マルチタスク
  • マルチユーザ
  • モジュール性
  • 単独責任
  • 組成
  • 移植性
  • 伸展性
  • 60年代/70年代に戻って、UNIXは「各プログラムが一つのことをうまくやるように」という概念を導入しました.
    NB :そこにmany other principles 探検したい

    コアコンポーネント


    カーネル


    Unixの中心はカーネルです.ハードウェアやメモリ、ファイルシステムなどの重要な要素と対話します.
    これは、許可の最高レベルで動作します.

    シェル


    シェルは、プログラムを呼び出して、タスクを実行するために、さまざまなコマンドとユーティリティをintrepretsします.

    ファイルシステム


    ファイルシステムはデータを含むディレクトリとファイルで構成されます.それは階層的な木です.

    Unixファイルシステムの簡単な概要


    どんなdevもたぶんUnixファイルシステムに精通しています.少なくとも、次のようなものが見られるかもしれません.
    /
    ├── bin/
    ├── dev/
    ├── etc/
    │    └── passwd
    ├── home/
    ├── lib/
    ├── mnt/
    ├── root/
    ├── proc/
    ├── mnt/
    ├── sbin/
    ├── tmp/
    └── usr/
         └── bin/
    
    これらのディレクトリには、サーバーやオペレーティングシステムの必須のディレクトリやファイルが含まれます.
    Linuxディストリビューションや他のオペレーティングシステムはその特殊性(例えば特別なファイルやディレクトリ)を持っているかもしれませんが、グローバルな構造はそのようになります.
    これはディレクトリツリーと呼ばれ、典型的なマルチレベルUNIX階層です.

    ホーム/スイートホーム


    それは、特別な構成など、各ユーザーのホームフォルダとしてはかなり簡単です.

    / VS / root /


    トップ/ はシステムルートディレクトリです.すべてのフォルダとファイルは/home/ . どうもC:\ Windowsで./root/ はrootユーザのホームディレクトリです.

    / usr / bin vs / bin / vs / sbin /


    The /usr/bin , 例えば、通常、システムをブートまたは修理するのに必要ではなく、ユーザが使用する実行可能ファイルを含みます./usr/ は、お気に入りのブラウザのようなアプリケーションを含む読み取り専用ディレクトリです.
    The /bin/ フォルダには必須のバイナリが含まれますcat or ls , また、端末で使用する基本的なコマンドラインです./sbin/ 「システムバイナリ」はメンテナンスユーティリティのような必要なアクセス許可なしでは使えません.

    特権/ etc /

    /etc/ システムのためのEssentiaの設定ファイルとデータベースを格納します.例えば、/etc/passwd ファイルは最も重要なものの一つです.これは、システム上のユーザーについて非常に敏感な情報が含まれます(例えば、ユーザー名、パスワード、グループID、ユーザーID、ログインシェル、ホームディレクトリなど).
    rootユーザだけがそのようなファイルを編集することになっています.

    / dev / vs / proc /

    /dev/ デバイスと仮想デバイス(擬似デバイスとしても知られている)のための非標準ファイルを含みます/proc/ カーネルプロセスを含む.
    ディスクは例えばファイルとして表現されます./dev/sda とパーティションは/dev/sda1 , /dev/sda2 , /dev/sda3 , など.

    何が/ dev / nullですか?


    管理者とdevは出力を部分的にまたは完全にリダイレクトします/dev/null それをクリアするには、“許可を拒否”のような不要な行をスキップすることができますgrep .

    マウント/ MNT /

    /mnt/ はマウントポイントです.通常、外部ストレージやUSBドライブのような一時ファイルシステムをマウントするために使用します.
    大まかに言えば、マウントすることは別のファイルシステムを現在のファイルシステムに接続することです.

    / var /

    /var/ ログなどの書き込み可能な内容です.

    / tmp /

    /tmp/ 一時ファイルです.このようなファイルは、システムの再起動時に、いつでも削除できます.
    リブート間のファイルを保存するには、/var/tmp/ ディレクトリ.

    viとは


    viはUnixシステムの標準的なエディタです.あなたはタイプすることができますvi NAME_OF_YOUR_FILE 端末でUNIXシステム内のファイルを作成/編集するESC 続いて:wq あなたの仕事を保存します.

    どのようなプロセスですか?


    プログラムを実行するときにプロセスが作成されます.シンプルでさえls -lah プロセスを作成する.プロセスは、プログラムの「インスタンス」としても知られています.
    Unixシステムには通常のプロセスとバックグラウンドプロセスが含まれます.バックグラウンドプロセスを開始するには、& :
    ./myexecutable &
    
    プロセスをリストするには、ps :
    ps -e | less
    
    あなたは、プロセスIDなど多くの情報を取得します.特定のプロセスを殺すためにkill -9 PROCESS_ID .

    パイプ,stdin,stdoutの概念


    パイプは、プロセス間でデータを渡すか保持することができます.Unixライクなシステムでは、一時ファイルとして表現されます.
    パイプはリダイレクトと見なされることもあります.結果stdout ) コマンドとしては(stdin ) 更なる処理のためのもう一つのコマンドのために.
    いくつかのコマンドのパイプラインに使用する構文は| . これは一方向の流れと左右の方向です.
    cat data.txt | grep "bootleg"
    
    これは、強力な組み込みのコマンドを実行し、複雑な手順を実行するメカニズムです.

    Unixソケットとは


    Unixドメインソケット(またはIPCソケット)は、同じホストオペレーティングシステム(同じマシン、TCPオーバーヘッドなし)のプロセス間の接続です.
    プロセス間でローカルファイルシステムを使用してIPCチャネルを作成します.
    パイプとは異なり、双方向通信です.

    Unixで「すべてがファイルである」と言う理由


    「すべてがファイルである」という主張は、高度な抽象概念を記述するのに便利です.ソケットのような多くの内部の機能は、ファイルシステム(例えば)に現れます.mysql.sock ) たとえどんなデータも含んでいなくても.
    システムがプログラム間で交換されたバイトのストリームを表します.
    しかし、実際には、すべてのファイルは、実際には、例えば、システムプロセスではなく、おそらく“すべてのファイルとして動作する”と言うと、より正確になります.

    使用したいコマンドやオプション


    コマンド
    説明df –kh DIR/与えられたディレクトリのディスク使用量head -7 myfile.txtファイルの最初の7行を表示するdiff -w file1.txt file2.txtファイル間差分を表示するが空白文字を無視するcd -前のディレクトリにすばやく移動free -h読みやすい形式でのメモリ使用法uname -rカーネル情報を表示する!111履歴リスト内の番号111をもう一度コマンドを実行します
    Unixライクなシステムには、同じ目的のために異なるコマンドがあるかもしれません.