Laman » bagaimana untuk » Apakah Semuanya File Maksud dalam Linux?

    Apakah Semuanya File Maksud dalam Linux?

    Salah satu ciri yang mendefinisikan Linux dan sistem operasi seperti UNIX ialah "semuanya adalah fail." Ini adalah oversimplification, tetapi memahami apa yang dimaksudkan akan membantu anda memahami bagaimana kerja Linux.

    Banyak perkara di Linux muncul dalam sistem fail anda, tetapi ia sebenarnya bukan fail. Mereka adalah fail khas yang mewakili peranti perkakasan, maklumat sistem, dan lain-lain - termasuk penjana nombor rawak.

    Fail-fail khas ini mungkin terletak pada sistem fail palsu atau virtual seperti / dev, yang mengandungi fail khas yang mewakili peranti, dan / proc, yang mengandungi fail khas yang mewakili sistem dan maklumat proses.

    / proc

    Sebagai contoh, katakan anda ingin mencari maklumat mengenai CPU anda. Direktori / proc mengandungi fail khas - / proc / cpuinfo - yang mengandungi maklumat ini.

    Anda tidak memerlukan perintah khas yang memberitahu anda maklumat CPU anda - anda hanya boleh membaca kandungan fail ini dengan menggunakan sebarang arahan standard yang berfungsi dengan fail teks biasa. Sebagai contoh, anda boleh menggunakan arahan itu kucing / proc / cpuinfo untuk mencetak kandungan fail ini ke terminal - mencetak maklumat CPU anda ke terminal. Anda juga boleh membuka / proc / cpuinfo dalam editor teks untuk melihat kandungannya.

    Ingat, / proc / cpuinfo bukanlah sebenarnya fail teks yang mengandungi maklumat ini - kernel Linux dan sistem fail proc yang mendedahkan maklumat ini kepada kami sebagai fail. Ini membolehkan kami menggunakan alat biasa untuk melihat dan bekerja dengan maklumat tersebut.

    Direktori / proc juga mengandungi fail serupa lain, contohnya:

    • / proc / uptime - Memperpanjang masa kernel Linux anda - dengan kata lain, berapa lama sistem anda telah berjalan tanpa mematikan.
    • / proc / version - Mengekalkan versi kernel Linux anda.

    / dev

    Dalam direktori / dev, anda akan menemui fail yang mewakili peranti - serta fail yang mewakili perkara istimewa lain. Sebagai contoh, / dev / cdrom adalah pemacu CD-ROM anda. / dev / sda mewakili pemacu keras pertama anda, sementara / dev / sda1 mewakili partisi pertama pada pemacu keras pertama anda.

    Mahu memasang CD-ROM anda? Jalankan arahan gunung dan tentukan / dev / cdrom sebagai peranti yang hendak dipasang. Mahu memisahkan pemacu keras pertama anda? Jalankan utiliti cakera-cakera dan tentukan / dev / sda sebagai cakera keras yang ingin anda edit. Mahu formatkan partition pertama pada cakera keras pertama anda? Jalankan arahan pemformatan dan beritahu ia untuk format / dev / sda1.

    Seperti yang dapat anda lihat, mendedahkan peranti ini sebagai sebahagian daripada sistem fail mempunyai kelebihannya. Sistem fail menyediakan "ruang nama" yang konsisten yang semua aplikasi boleh digunakan untuk alamat dan akses peranti.

    / dev / null, / dev / rawak, dan / dev / sifar

    Sistem fail / dev tidak hanya mengandungi fail yang mewakili peranti fizikal. Berikut adalah tiga alat khas yang paling penting yang terdapat di dalamnya:

    • / dev / null - Buang semua data yang ditulis kepadanya - fikirkannya sebagai tong sampah atau lubang hitam. Jika anda pernah melihat komen yang memberitahu anda untuk menghantar aduan ke / dev / null - itu cara yang mudah untuk mengatakan "membuangnya ke dalam tong sampah."
    • / dev / rawak - Menghasilkan rawak menggunakan bunyi alam sekitar. Ia adalah penjana nombor rawak yang boleh anda pasang.
    • / dev / zero - Menghasilkan sifar - aliran berterusan nol.

    Sekiranya anda memikirkan ketiga-tiga fail ini, anda tidak akan melihat penggunaannya. Sebaliknya, fikirkan mereka sebagai alat.

    Contohnya, secara lalai, arahan Linux menghasilkan mesej ralat dan output lain yang mereka cetak ke output standard, biasanya terminal. Jika anda ingin menjalankan arahan dan tidak peduli dengan outputnya, anda boleh mengarahkan output ke / dev / null. Mengarahkan output arahan ke / dev / null dengan segera membuangnya. Daripada mempunyai setiap arahan melaksanakan "mod senyap" sendiri, anda boleh menggunakan kaedah ini dengan arahan mana pun.

    perintah> / dev / null

    Sekiranya anda mahukan sumber rawak - katakan, untuk menghasilkan kunci penyulitan, anda tidak perlu menulis penjana nombor rawak anda sendiri - anda boleh menggunakan / dev / rawak.

    Untuk memadamkan kandungan cakera keras dengan menulis 0 ke dalamnya, anda tidak memerlukan utiliti khas yang didedikasikan untuk memulihkan pemacu - anda boleh menggunakan utiliti standard dan / dev / sifar. Sebagai contoh, dd arahan dibaca dari lokasi dan menulis ke lokasi lain. Perintah berikut akan membaca nol dari / dev / sif dan menuliskannya terus ke partition cakera keras pertama pada sistem anda, memadamkan sepenuhnya kandungannya.

    (Amaran: Perintah ini akan memadamkan semua data pada partition pertama anda jika anda menjalankannya. Hanya jalankan arahan ini jika anda mahu memusnahkan data.)

    dd if = / dev / zero of = / dev / sda1

    Di sini kita menggunakan dd dengan fail khas (/ dev / zero dan / dev / sda1), tetapi kita juga boleh menggunakan dd untuk membaca dan menulis ke fail sebenar. Perintah yang sama berfungsi baik untuk memanipulasi peranti secara langsung dan bekerja dengan fail.

    Penjelasan

    Dalam praktiknya, lebih tepat untuk mengatakan bahawa "segala-galanya adalah aliran bait" daripada "segala-galanya adalah fail." / Dev / rawak bukan fail, tetapi tentunya adalah aliran bait. Dan, walaupun perkara-perkara ini secara teknis bukanlah fail, ia boleh diakses dalam sistem fail - sistem fail adalah "ruang nama universal" di mana semuanya boleh diakses. Mahu mengakses penjana nombor rawak atau baca terus dari peranti? Anda akan mendapati kedua-duanya dalam sistem fail; tiada bentuk pengalamatan lain yang diperlukan.

    Sudah tentu, sesetengah perkara tidak sebenarnya fail - proses berjalan pada sistem anda bukan sebahagian daripada sistem fail. "Semuanya adalah fail" tidak tepat, tetapi banyak perkara yang berlaku sebagai fail.