Bagaimana cara memahami tata letak sistem file Ubuntu?

220

Di Windows mungkin hanya ada beberapa folder penting (yang penting saya maksudkan penting dalam gambaran logis saya tentang sistem file Windows) di drive instalasi (dalam kasus saya C:\). Yaitu Program Filesdan Windows. Saya cukup menjauh dari Windowsfolder dan "add remove program files" cukup baik untuk menangani program filesfolder Windows. Tentu saja ada folder bernama di Usersmana pengguna (yang bukan admin) hanya dapat mengakses folder mereka.

Jadi ada gambaran yang jelas pada tingkat tertentu dalam pikiran saya tentang sistem file Windows. Di Ubuntu, ketika saya mencapai lokasi /, ada daftar folder yang besar, yang sebagian besar tidak saya ketahui tentang apa yang dikandungnya. The /binfolder tampaknya menjadi setara dengan Windowsfolder di windows. The /usrfolder tampaknya seperti itu setara dengan Usersfolder di Windows. Tetapi bahkan /homefolder tersebut sepertinya dapat memenuhi tagihan.

Tolong mengerti bahwa saya mengerti, bahwa Ubuntu (Linux) memiliki karakter yang berbeda dari Windows, yaitu, tidak perlu sama persis dengan fungsi Windows, di Ubuntu. Yang saya cari hanyalah gambaran yang lebih jelas tentang sistem file Ubuntu.

Pertanyaan ini adalah bagian dari pertanyaan yang lebih besar yang saya bagi untuk membuatnya lebih dapat dijawab. Pertanyaan aslinya dapat ditemukan di sini:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/

Shashank Sawant
sumber
3
Lihat juga tag struktur-direktori di Unix & Linux . Semua distribusi Linux mengikuti model yang sama.
Gilles
Terima kasih atas semua jawaban Anda. Saya agak bingung tentang beberapa hal: Di Windows pengaturan biasanya menyediakan melalui prompt pilihan untuk menginstal perangkat lunak untuk semua pengguna. Bagaimana cara membuat perbedaan di Ubuntu? Juga, ini adalah masalah biasa dalam mengonfigurasi perangkat lunak pengembangan ke IDE mereka. Di windows, misalnya, di "file program \ miktex \ bin" ada file "pdflatex.exe". Jadi saya bisa mengarahkan IDE ke file ini dan mengkonfigurasinya. Bagaimana cara menjalankan proses ini di Ubuntu? Di mana file biner umum yang terkait dengan perangkat lunak (khususnya dari sudut pandang konfigurasi)?
Shashank Sawant
2
Di Ubuntu, Anda biasanya memasang perangkat lunak untuk semua pengguna. Semua yang Anda lakukan melalui manajer paket adalah untuk semua pengguna. Saya tidak mengerti sisa komentar Anda; seseorang tidak "mengkonfigurasi" "file biner yang terkait dengan perangkat lunak". Anda harus mengajukan ini sebagai pertanyaan terpisah, dan memberikan penjelasan yang lebih baik tentang apa yang Anda coba lakukan.
Gilles
Mengerti. Saya akan membingkai pertanyaan baru. Bahkan kemudian inilah penjelasan singkat tentang apa yang saya maksud: Di windows, file .exe dapat dengan mudah ditemukan. Misalnya: "C: \ Python27 \ python.exe". Jadi saya tahu dari mana program Python dimulai. Sekarang jika saya harus menggunakan Eclipse IDE, saya bisa mengarahkannya ke python.exe, dan inilah yang saya maksud dengan "configure". Saya mengkonfigurasi IDE untuk Python. Di Ubuntu di mana lokasi di mana program diinstal? Itulah yang masih menghindariku.
Shashank Sawant
2
@Gilles Berhati-hatilah saat mengatakan all. Proyek GoboLinux sebenarnya menggunakan struktur direktori yang lebih mirip Windows.
new123456

Jawaban:

251

Anda dapat membaca ini di wikipedia misalnya. Kutipan:

The Filesystem Hierarchy Standard (FHS) mendefinisikan direktori utama dan isinya dalam sistem operasi Linux. Sebagian besar, itu adalah formalisasi dan ekstensi hirarki sistem file BSD tradisional.

FHS dikelola oleh Linux Foundation, organisasi nirlaba yang terdiri dari vendor perangkat lunak dan perangkat keras utama, seperti HP, Red Hat, IBM dan Dell. Versi saat ini adalah 3.0, dirilis pada 3 Juni 2015.

Representasi visual dengan deskripsi singkat:

masukkan deskripsi gambar di sini

Pada dasarnya Linux telah membagi struktur direktori berdasarkan fungsi dari apa yang diperlukan untuk membuat sistem seaman mungkin dengan jumlah minimum izin yang diperlukan. Kalau tidak, seseorang pasti harus melakukan banyak pekerjaan yang bisa dihindari.

Ingatlah bahwa Unix dan Linux di mana dibuat sebagai sistem multi-pengguna dan Windows dibuat untuk satu pengguna. Segala sesuatu yang lain dapat dijelaskan dari gagasan itu. Anda dapat menjelaskan setiap direktori saat memikirkannya sebagai multi-pengguna dan keamanan.

3 contoh:

  • Anda akan melihat bahwa file dan direktori yang merupakan admin hanya dikumpulkan di direktori yang sama: s in /sbinand /usr/sbindan /usr/local/sbinsingkatan dari sistem. Seorang pengguna normal bahkan tidak dapat memulai program yang ada di sana. File yang dapat dimulai oleh pengguna normal ada di / bin, / usr / bin, / usr / local / bin berdasarkan tempat file tersebut berada secara logis. Tetapi jika mereka adalah admin saja mereka harus pergi ke sversi direktori itu. Ada sebuah utilitas terkenal yang disebut fuser. Anda dapat membunuh proses dengan itu. Jika pengguna normal dapat menggunakan ini, ia akan dapat membunuh sesi Anda.

  • Hal yang sama berlaku untuk /home: / home / user1 adalah properti dari user1. / home / user2 adalah properti dari user2. user2 tidak memiliki bisnis melakukan hal-hal di rumah user1 (dan sebaliknya juga benar: user1 tidak memiliki bisnis melakukan hal-hal di rumah user2). Jika semua file berada di / rumah tanpa nama pengguna di bawahnya, Anda harus memberikan izin untuk setiap file dan menilai jika seseorang diizinkan untuk menulis / menghapus file-file itu. Mimpi buruk jika Anda memiliki puluhan pengguna.

  • Tambahan tentang perpustakaan.

    /lib/,, /usr/lib/dan /usr/local/lib/merupakan lokasi asli, dari sebelum sistem multilib ada dan ada untuk mencegah kerusakan. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/Yang 32/64-bit penemuan multilib.

Ini bukan konsep statis. Citarasa Linux lainnya membuat perubahan pada lay-out ini. Misalnya; saat ini Anda akan melihat debian dan Ubuntu banyak berubah di lay-out FHS karena SSD lebih baik dengan file read only. Ada gerakan menuju tata letak baru di mana file dipecah menjadi direktori / grup 'hanya baca' dan 'dapat ditulis' sehingga kita dapat memiliki partisi root yang dapat di-mount hanya baca (partisi untuk ssd) dan dapat ditulis (sata hdd). Direktori baru yang digunakan untuk ini (bukan dalam gambar) adalah /run/.

Rinzwind
sumber
18
+1 Rinzwind. Saya suka gambar, sebenarnya mencari satu.
Luis Alvarado
5
ha pikir itu akan mendapat perhatian: + @LuisAlvarado
Rinzwind
4
Tidak mungkin ada jawaban yang lebih baik!
Shashank Sawant
1
Tidak /mntapa /mediasekarang, beberapa tahun yang lalu?
RobinJ
9
@RobinJ: Perbedaannya adalah bahwa /mntsecara historis dikelola secara manual. Dengan munculnya banyak perangkat sementara (flash drive, dll.) Dan pemasangan otomatis menjadi standar, ada kebutuhan untuk secara otomatis menangani titik pemasangan. Direktori baru diperlukan untuk menghindari konflik dengan konfigurasi manual yang ada. Dengan demikian, hari-hari /mntini telah diturunkan ke peran menyediakan titik pemasangan sementara yang nyaman.
Scott Severance
104

Cobalah perintah ini ...

man 7 hier

Anda juga dapat melihat halaman manual ini di sini: http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

Semoga ini bisa membantu

Pritesh Wadhia
sumber
1
panggilan yang bagus! Saya selalu lupa bahwa meskipun selalu ada (bahkan ketika net turun;))
Rinzwind
1
manusia harus diganti namanya menjadi "itu". :)))
Shiki
man hiersekarang di antara perintah favorit saya! Penjelasannya lebih jelas bagi saya daripada dokumen FHS, terutama membedakan antara 'lokal ke mesin' dan 'situs-lebar', untuk pengguna Ubuntu yang tidak berpengalaman, menyeberang dari pengalaman DOS / Windows moderat.
WillC
BTW nomor 7 berdiri bagian Miscellanea dari halaman man hier.
Pablo A
hmm Betapapun, hal ini mengingatkan saya pada jawaban tautan saja, meskipun kemungkinan setiap versi ubuntu akan memilikinya. Bisakah Anda memasukkan beberapa konten dari halaman manual ke dalam jawaban Anda?
jrh
45

Jawaban Terlambat - Saya telah membuat peta jalan untuk diikuti oleh pemula. Jika mereka mencari file tetapi tidak tahu ke mana harus mencari, mereka dapat menggunakan peta untuk navigasi sekitar. Anda dapat mengunduh PNG hi-res di sini . Anda dapat menemukan pos terkait di sini . Saya akan terus memperbarui file dan posting ketika waktu mengizinkan, memasukkan komentar yang bermanfaat.

d4nyll
sumber
Ide yang menarik dan bermanfaat untuk menghasilkan diagram alur, tetapi sayangnya tampaknya ada jalan buntu. Pertanyaan saya adalah apakah saya melakukan di mysqldumpmana saya harus output file?
BadHorsie
@BadHorsie tentu saja akan selalu tergantung pada kasus penggunaan khusus Anda, tetapi membuangnya di /home/badhorsie/mysqldumpdirektori sudah cukup. Jika Anda menjalankan banyak aplikasi, Anda dapat membuat pengguna baru untuk menjalankan setiap aplikasi dan membuangnya di homedirektori aplikasi / pengguna itu .
d4nyll
@ paranoid-panda, dapatkah Anda memperluas sedikit tentang mengapa Anda memilih untuk tidak membiarkan gambar diklik melalui resolusi penuh? Versi yang disematkan dalam posting ini cukup banyak yang tidak dapat dibaca.
waldyrious
@waldyrious: Jika Anda melihat riwayat revisi, Anda akan melihat bahwa saya hanya memperbaiki kesalahan pengejaan, itu adalah pengguna lain yang menambahkan gambar dengan cara khusus ini. Tidak ada hubungannya dengan saya. Merasa bebas untuk mengeditnya berpikir, saya tidak dapat mengingat sintaks yang benar untuk membuatnya dapat diklik.
@ParanoidPanda itulah yang saya lakukan. Hasil edit saya membuat kesalahan ketik dan membuat gambar dapat diklik, dan ulasan Anda adalah untuk menolak dan mengedit , maka pertanyaan saya: apa yang Anda lihat salah dengan membuat gambar dapat diklik?
waldyrious
36

Teks berikut ini menunjukkan struktur direktori.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Komponen utama di sini adalah:

  1. /boot : Berisi boot loader

  2. /home : Berisi direktori home dari pengguna.

  3. /bin : Semua binari yang dapat dieksekusi dan perintah yang digunakan oleh semua pengguna pada sistem berada di sini.

  4. /sbin : Ini berisi binari yang dapat dieksekusi sistem yang biasanya digunakan oleh administrator sistem.

  5. /lib : Berisi pustaka sistem yang mendukung binari di / bin dan / sbin.

  6. /etc : Berisi file konfigurasi untuk jaringan, waktu boot, dll.

  7. /dev : Ini memiliki file perangkat yaitu usb, perangkat terminal atau perangkat lain yang terpasang pada sistem ditunjukkan di sini.

  8. /proc : Berisi informasi tentang proses yang sedang berjalan.

  9. /tmp: Ini adalah direktori sementara tempat banyak proses membuat file sementara yang diperlukan. Ini dibersihkan setiap kali mesin di-boot.

Untuk lebih jelasnya, tautan Thegeekstuff dengan sempurna menjelaskan sistem file linux generik.

mtk
sumber
20

\Userssetara dengan /home. Nama /usradalah artefak sejarah.

Setara gabungan \Windowsdan \Program Filesmerupakan kombinasi /bin, /boot, /etc, /lib, /sbin, /tmp, /usrdan /var. Linux dan Windows membagi perangkat lunak yang diinstal secara berbeda. Windows membedakan antara sistem operasi dan program pendamping. Linux tidak membuat perbedaan ini dengan cara yang sama; kebanyakan jika tidak semua perangkat lunak datang melalui Ubuntu (distributor) dan diinstal dalam hierarki direktori yang sama, dan karena perangkat lunak dilacak oleh manajer paket, tidak perlu menyimpan setiap program di direktori sendiri. Di Linux:

  • /etc adalah untuk file konfigurasi sistem: file konfigurasi yang memengaruhi semua pengguna, apakah mereka berlaku untuk sistem operasi secara keseluruhan atau untuk aplikasi tertentu.
  • /usr untuk kode sistem dan data (program, perpustakaan, dokumentasi, dll.).
  • /varadalah untuk data variabel atau sementara: file sementara, log, basis data manajer paket, gulungan printer, file penyimpanan game, dll. Ada juga /tmpuntuk file sementara yang dapat dihapus di seluruh reboot.
  • /bin, /libdan /sbindalam direktori root memiliki mitra dalam /usr. File-file yang ada di luar /usradalah yang dibutuhkan di awal proses boot. Ini adalah peninggalan dari saat disk kecil dan /usrmungkin berada pada sistem file yang digunakan bersama antara beberapa workstation melalui jaringan, itu sebenarnya bukan perbedaan yang berguna pada kebanyakan sistem.
  • /boot berisi beberapa file yang diperlukan hanya untuk mem-boot sistem operasi, dan bukan untuk operasi sehari-hari.

Ada direktori tambahan yang tidak sesuai dengan apa pun yang dimiliki Windows:

  • /rootadalah direktori home pengguna root. Pengguna root adalah akun administrator yang tidak terikat dengan pengguna tertentu; itu adalah pengguna yang Anda ubah ketika Anda menjalankan sudo. Ubuntu tidak membiarkan pengguna root masuk secara default.
  • /mediadan /mntmerupakan titik pemasangan: mereka adalah tempat Anda dapat melihat sistem file sistem operasi lain dan drive jarak jauh. Setara Windows adalah huruf drive lain.
  • /procdan /systunjukkan informasi sistem. Pada Windows, Anda perlu mengarungi menu atau memanggil perintah sistem atau menginstal program pihak ketiga untuk melihat informasi ini.

Ubuntu, seperti distribusi Linux lainnya, umumnya mengikuti Linux Filesystem Hierarchy Standard .

Gilles
sumber
5

Ubuntu (seperti semua sistem mirip UNIX) mengatur file dalam hierarki hierarki, di mana hubungan dipikirkan dalam tim anak-anak dan orang tua. Direktori dapat berisi direktori lain serta file biasa, yang merupakan "daun" pohon. Elemen pohon apa pun bisa menjadi referensi dengan nama jalur; nama path absolut dimulai dengan karakter / (mengidentifikasi direktori root, yang berisi semua direktori dan file lainnya), kemudian setiap direktori anak yang harus dilalui untuk mencapai elemen terdaftar, masing-masing dipisahkan oleh tanda /.

Nama jalur relatif adalah salah satu yang tidak dimulai dengan /; dalam hal ini, pohon direktori dilintasi mulai dari titik tertentu, yang berubah tergantung pada konteksnya, disebut direktori saat ini. Di setiap direktori, ada dua direktori khusus yang disebut. dan .., yang merujuk masing-masing ke direktori itu sendiri, dan ke direktori induknya.

Fakta bahwa semua file dan direktori memiliki akar yang sama berarti bahwa, bahkan jika beberapa perangkat penyimpanan yang berbeda ada pada sistem, mereka semua dilihat sebagai direktori di suatu tempat di pohon, setelah mereka dipasang ke tempat yang diinginkan

Temukan contoh dan informasi lebih lanjut di sini :

stephenmyall
sumber