Arti direktori pada sistem mirip Unix dan Unix

112

Saya telah menggunakan Linux selama beberapa tahun sekarang, tetapi saya masih belum tahu apa asal-usul atau arti beberapa nama direktori pada sistem seperti Unix dan Unix. Misalnya apa artinya etcberdiri atau var? Dari mana optasalnya?

Dan sementara kita membahas topik itu. Dapatkah seseorang memberikan penjelasan yang jelas tentang direktori apa yang paling baik digunakan untuk apa. Saya kadang-kadang bingung di mana perangkat lunak tertentu diinstal atau direktori mana yang paling tepat untuk menginstal perangkat lunak.

Luke
sumber
Lucunya menjadi parodi multics dan menjadi orang yang bertahan ... Saya kira multics jauh di depan waktunya.
SparK

Jawaban:

134

Untuk lebih banyak data tentang tata letak sistem file Linux, lihat Filesystem Hierarchy Standard (sekarang pada versi 2.3, dengan versi beta 3.0 yang digunakan pada distro terbaru). Itu menjelaskan beberapa dari mana nama-nama itu berasal:

  • / bin - Bin aries.
  • / boot - File yang diperlukan untuk booting .
  • / dev - Dev ice file.
  • / etc - Et c etera . Nama ini diwarisi dari Unix yang paling awal, yang menjadi tempat untuk meletakkan file-file config.
  • / home - Di manadirektori home disimpan.
  • / lib - Di mana kode lib raries disimpan.
  • / media - Direktori yang lebih modern, tetapi tempat media yang dapat dilepasdipasang.
  • / mnt - Di mana file sistem sementara yang m ou nt ed.
  • / opt - Dimana opt ional add-on software diinstal. Ini berbeda dari/usr/local/alasan saya akan sampai nanti.
  • / run - Di manadata run time variabel disimpan.
  • / sbin - Dimana s uper- bin aries disimpan. Ini biasanya hanya bekerja dengan root.
  • / srv - Singkatan dari " s e rv e". Direktori ini ditujukan untuk file statis yang dilayani. /srv/httpakan untuk situs web statis,/srv/ftpuntuk server FTP.
  • / tmp - Dimana t e mp orary file dapat disimpan.
  • / usr - Direktori lain yang diwarisi dari Unix lama, singkatan dari " U NIX S ystem R esources". Itu tidak berarti "pengguna" (lihat Wiki Debian ). Direktori ini harus dapat dibagi antara host, dan dapat dipasang NFS ke beberapa host dengan aman. Itu dapat dipasang hanya-baca dengan aman.
  • / var - Direktori lain yang diwarisi dari Unix lama, singkatan dari " var iable". Di sinilah data sistem yang bervariasi dapat disimpan. Hal-hal seperti direktori spool dan cache dapat ditemukan di sini. Jika suatu program perlu menulis ke sistem file lokal dan tidak menayangkan data itu kepada seseorang secara langsung, itu akan pergi di sini.

/ opt vs / usr / local

Aturan praktis yang pernah saya lihat digambarkan sebagai:

Gunakan /usr/localuntuk hal-hal yang biasanya masuk /usr, atau menimpa hal-hal yang sudah ada /usr. Gunakan /optuntuk hal-hal yang menginstal semua dalam satu direktori, atau khusus.

sysadmin1138
sumber
2
Dokumen itu menjawab bagian pertama dari pertanyaan saya dengan sangat baik. Namun, dari mana nama-nama tersebut berasal masih merupakan misteri. Alasan saya ingin tahu adalah karena saya pikir itu akan memberi saya lebih banyak konteks.
Luke
Penamaannya hampir semuanya jelas. Terutama jika Anda membaca deskripsi di tautan itu.
Dan Carley
3
Bukan itu. Ini menjelaskan untuk apa 'dll' digunakan tetapi tidak menjelaskan dari mana nama itu berasal atau apa kepanjangannya.
Luke
@ sysadmin1138, jadi /runpada dasarnya referensi RAM?
Pacerier
@Pacerier Ini adalah sistem file, tetapi dapat dipasang dengan aman sebagai RAM-disk. Yang mengatakan, banyak program mengasumsikan struktur yang ditetapkan di sana, jadi sebenarnya membutuhkan ketekunan.
sysadmin1138
22

Secara historis, /etcsingkatan dari "etcetera" dan /varmerupakan kependekan dari "variable." Saya kira yang pertama adalah karena banyak koleksi file konfigurasi sistem yang tidak terkait masuk ke /etc. Yang terakhir ini karena file-file di /vardiharapkan akan berubah. Anda sering dapat me /usr- mount dan /sebagai read-only (kecuali ketika melakukan pembaruan), tetapi Anda tidak pernah bisa me /var- mount read-only. Itu memegang sistem file log, mengunci file, file spool, dan hal-hal lain yang berubah secara dinamis.

Orang lain memberi Anda petunjuk untuk membantu Anda mencari tahu apa yang terbaik di mana.

Eddie
sumber
22

Maaf untuk menghidupkan kembali utas lama, tetapi saya merasa detail ini adalah klarifikasi penting untuk semua pencari informasi ini di masa mendatang:

  • / opt singkatan dari opsional (seperti dalam paket tambahan opsional).
  • / bin adalah singkatan dari binary (berisi executable yang digunakan oleh OS).
  • / lib adalah kependekan (berisi pustaka bersama yang digunakan oleh filesystem dan untuk boot, mungkin digunakan oleh executable di bin)
  • / proc adalah singkatan dari proses.
  • / root berarti pengguna root.
  • / home memegang sub-direktori home untuk setiap pengguna non-root.
  • / dev adalah singkatan perangkat (memegang file khusus dan perangkat).
  • / tmp singkatan sementara.
  • / srv adalah singkatan dari serve.
  • / mnt adalah singkatan dari mount point (pasang sistem file sementara di sini).
  • / include berisi file #include, mis. file header (mis. stdio.h).
  • / var adalah singkatan dari variabel
  • / etc adalah singkatan dari etcetera

  • / usr adalah singkatan dari Unix System Resources ( Source )

Mike
sumber
Jawaban yang bagus: ringkas, terarah pada tingkat pertanyaan, dan tidak perlu mencari tautan lain. +1
Scott Biggs
Saya belum pernah melihat srv sebelumnya. Saya lebih suka konvensi daripada konfigurasi, asalkan masuk akal dan ditegakkan. Jelas, Apache tidak selalu melayani file dari direktori / srv.
user148298
19

Coba ini:

$ man hier
Anonim, tanpa nama
sumber
1
Bagus Namun, sama seperti dokumen yang disebutkan dalam jawaban lain, halaman manual ini hanya berbicara tentang apa direktori digunakan. Saya juga tertarik pada mengapa nama-nama tertentu mana yang dipilih, seperti / dll misalnya
Luke
2
Jawaban untuk pertanyaan Anda tentang / etc ada di sini: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Anonymous
1

Jika Anda mengamati beberapa rasa sistem operasi unix daripada Anda akan menemukan beberapa perbedaan apa dalam nama direktori, tetapi sebagian besar yang umum dijelaskan di bawah ini ...

/ bin adalah singkatan dari binary (berisi file-file biner dan juga berisi perintah yang sebagian besar digunakan oleh pengguna. Ini juga merupakan jalur default untuk eksekusi perintah).

/ sbin (ini berisi perintah khusus yang biasanya dipecat oleh pengguna super)

/ lib adalah singkatan dari library (berisi shared library yang digunakan oleh filesystem dan untuk boot, mungkin digunakan oleh executable di bin) / proc adalah singkatan dari proses (jika Anda ingin memverifikasi cukup periksa direktur ini akan berisi beberapa direktori bernama dalam angka acak, yaitu tidak lain adalah nomor proses yang dapat Anda periksa silang dengan ps - ef)

/ root berarti pengguna root. (direktori default untuk pengguna root) / home (semua pengguna non-root memiliki direktori home di bawah direktori ini) / dev adalah singkatan dari perangkat (memegang file khusus dan perangkat, jika Anda melihat di direktori ini melalui ls - Perintah nomor besar dan kecil perintah juga ditampilkan dalam direktori ini juga jenis perangkat yang ditunjukkan pada awal setiap baris dalam hasil ls - l. B berarti memblokir perangkat khusus, c berarti perangkat karakter khusus). / tmp adalah singkatan sementara. (sumber daya sementara yang diperlukan untuk beberapa proses disimpan di sini sementara) / mnt singkatan dari mount point (me-mount sistem file sementara di sini). / var adalah singkatan dari variabel (ini menampung data variabel, direktori yang dikandungnya berubah ukuran setiap kali) / opt singkatan opsional (biasanya perangkat lunak pihak ketiga dipasang di direktori ini). / usr adalah singkatan dari Unix System Resources.

Anwar khan
sumber