Linux x64 di mana folder aplikasi x86. Peranti fizikal standard. Menyalin, mengalih dan memadam fail

Salah satu pilihan paling sukar yang anda akan hadapi semasa memasang Linux dan membahagikan cakera keras anda ialah sama ada anda akan meletakkan direktori /rumah pada bahagian yang berasingan? Di dalamnya fail pengguna hidup - iaitu, dokumen peribadi dan tetapan akaun pengguna, dan bukan fail OS, yang terletak di direktori berasingan. Sesetengah pengedaran Linux mengesyorkan membuat partition berasingan, dan beberapa lalai untuk meletakkan semuanya pada partition yang sama. Apakah yang patut awak buat? Jawapannya bergantung pada cara anda menggunakan komputer anda. Jika anda bercadang untuk mencuba banyak pengedaran yang berbeza dan sering memasang yang baharu di atas yang lama, maka wajar untuk membuat partition yang berasingan /rumah.

Terima kasih kepada ini, anda boleh melakukan apa sahaja yang anda mahu dengan OS - naik taraf, turun taraf kepada versi terdahulu, atau padam dan pasang pengedaran baharu eksotik yang dipilih secara rawak dari Kepulauan Faroe. Tidak kira apa pengedaran Linux yang anda gunakan, fail peribadi anda akan sentiasa ada, selamat dan kukuh, pada bahagian cakera yang berasingan. Dengan sedikit berhati-hati, anda juga boleh mempunyai beberapa Pengedaran Linux pada komputer yang sama dan mereka semua akan mengakses partition yang sama /rumah selepas memuat turun. Tetapi mengapa kita bercakap tentang berhati-hati? Fikirkan tentang tetapan dan fail konfigurasi. Dengan memerintah, misalnya, ls -a dalam direktori rumah anda, anda akan melihat sejumlah besar fail dan direktori tersembunyi, yang namanya bermula dengan titik - ia mengandungi tetapan program. Jika anda cuba menggunakan tetapan yang sama V versi berbeza program, program mungkin menjadi keliru. Katakan anda mempunyai Pengedaran A dan Pengedaran B pada komputer anda. Anda memuat turun Pengedaran A dan jalankan FooProgram 2.0 kali pertama, dan ia mencipta folder tetapan.fooprogram/ dalam direktori rumah anda. Kemudian anda memuat turun Distribution B di bawah direktori rumah yang sama dan menjalankan FooProgram - tetapi kali ini ia akan menjadi versi 1.0. Ia akan menjadi keliru kerana perbezaan dalam fail konfigurasi, yang boleh membawa kepada kehilangan data lengkap atau rasuah.

Kemungkinan masalah dengan /home di Linux

Satu lagi masalah yang berpotensi dengan direktori /home yang berasingan ialah had saiz. Jika anda meletakkan semuanya pada satu partition, maka kedua-dua OS dan direktori rumah akan mempunyai akses kepada ruang kosong. Jika anda meletakkan /home pada partition berasingan dan ruang tidak mencukupi, anda tidak akan dapat mengambil ruang dari partition OS (tetapi jika anda menggunakan LVM, Pengurus Kelantangan Logik, seperti yang ditawarkan semasa fasa pemasangan banyak pengedaran, akan mengatasi masalah ini kerana ia menyokong saiz semula partition).

Walau bagaimanapun, pendekatan yang menyokong bahagian yang berasingan juga mempunyai kelebihannya, terutamanya sekarang pemacu SSD(pemacu keadaan pepejal). Memandangkan ia sangat pantas berbanding pemacu keras berputar, anda boleh meletakkan fail OS pada SSD untuk memastikan prestasi sistem yang pantas dan masa permulaan aplikasi, dan /rumah– ke cakera keras tradisional (lagipun, anda tidak terlalu mengambil berat tentang tempoh masa yang diperlukan untuk dokumen dimuatkan LibreOffice atau gambar). Tetapi untuk sistem pada pemacu keras biasa, jika anda tidak bercadang untuk mempelajari pengedaran baharu pada bila-bila masa, kami mengesyorkan pendekatan "Letakkan semuanya pada satu partition".

Sistem fail Linux mempunyai struktur direktori dan fail yang jelas. Dalam artikel ini kita akan melihat temu janji ringkas setiap direktori.

Sistem fail Linux mengandungi banyak direktori, kebanyakannya ditakrifkan oleh FHS (Filesystem Hierarchy Standard).

Tajuk artikel terdiri daripada istilah "direktori", "direktori" dan "folder". Mari lihat mereka.

Direktori atau direktori ialah objek dalam sistem fail yang memudahkan penyusunan fail.

Folder ialah istilah yang digunakan untuk mewakili direktori dalam antara muka pengguna grafik.

Oleh itu, semua istilah ini bermaksud perkara yang sama. Untuk kemudahan, kami akan menggunakan istilah katalog dalam artikel ini, kerana Saya rasa ia adalah yang paling sesuai (pendapat peribadi saya).

Struktur umum sistem fail OS Linux

Bergantung pada pengedaran Linux yang anda gunakan, beberapa direktori yang dibentangkan mungkin tidak wujud, atau, sebaliknya, direktori lain yang tidak dibentangkan di sini mungkin ada. Saya cuba mengumpul dan menerangkan hanya direktori yang paling biasa dalam OS Linux.

/ - direktori akar

Direktori utama, di sinilah segala-galanya pada OS Linux anda disimpan. Semua partition Linux disimpan sebagai subdirektori lain di bawah direktori akar /.

/bin - fail binari utama (program)

Mengandungi program sistem binari utama (modul), utiliti (ls, cp, dsb.) dan shell perintah (bash, dsb.), yang sepatutnya memberikan tahap minimum prestasi sistem dalam mod pengguna tunggal. Meletakkan fail ini dalam direktori /bin memastikan bahawa sistem akan mempunyai utiliti penting ini walaupun sistem fail lain tidak dipasang.

/boot - fail untuk memuatkan OS

Imej kernel Linux dan fail pengurus but (grub, lilo, dll.) disimpan.

/cdrom – titik lekap untuk CD

Direktori ini bukan sebahagian daripada piawaian FHS; ia terkandung dalam Ubuntu dan pengedarannya. Digunakan sebagai tempat untuk memasang pemacu CD-ROM.

/dev - fail peranti

Di Linux, semua peranti disediakan sebagai fail khusus yang terdapat dalam direktori ini. Sebagai contoh, fail /dev/sda mewakili pemacu SATA. Juga, fail pseudo-device (maya) disimpan dalam direktori ini; tiada yang sepadan peranti sebenar. Contohnya, fail /dev/random menjana nombor rawak, dan fail /dev/null ialah peranti khas untuk mengalih keluar semua data input.

/etc - fail konfigurasi

Mengandungi fail konfigurasi utama sistem pengendalian dan pelbagai program.

/home - direktori rumah pengguna

Mengandungi direktori rumah pengguna. Menurut ideologi UNIX, untuk memastikan keselamatan OS, adalah disyorkan untuk menyimpan data pengguna dalam direktori ini. Contohnya, jika nama pengguna anda ialah mara, maka anda mempunyai direktori rumah yang terletak di /home/mara dan mengandungi fail konfigurasi pengguna dan maklumat peribadi. Setiap pengguna mempunyai akses tulis hanya kepada direktori rumah mereka.

/lib - perpustakaan utama

Direktori ini bertujuan untuk menyimpan perpustakaan sistem dan komponen pengkompil C yang diperlukan untuk pengendalian program daripada direktori /bin dan /sbin dan sistem pengendalian secara keseluruhan.

/lib64 - perpustakaan utama 64-bit

Direktori ini terdapat terutamanya pada sistem 64-bit dan mengandungi satu set perpustakaan dan komponen pengkompil C untuk program 64-bit.

/lost+found - fail pulih

Hadir pada semua sistem pengendalian Linux. Jika sistem fail gagal dan sistem fail diperiksa lebih lanjut (semasa memuatkan OS), semua fail rosak yang ditemui akan diletakkan dalam direktori yang hilang+ditemui, dan anda boleh cuba memulihkannya.

/media - titik untuk pemasangan automatik

Digunakan untuk pemasangan automatik pelbagai peranti CD-ROM, pemacu USB, dsb.

/mnt - titik untuk pemasangan manual

Digunakan untuk melekap secara manual (menggunakan arahan pelekap) pelbagai peranti seperti CD-ROM, pemacu USB, dsb.

/opt - pakej perisian tambahan

Terdapat subdirektori untuk pakej perisian tambahan. Direktori digunakan secara meluas oleh perisian proprietari yang tidak mengikut hierarki sistem fail standard.

/proc – kernel dan fail proses

Sistem fail maya procfs dipasang dalam direktori ini. Ia mengandungi fail khas yang memberikan maklumat tentang sistem dan proses yang sedang berjalan. Sebagai contoh, fail /proc/cpuinfo menyimpan maklumat tentang pemproses.

/root - Direktori rumah pengguna root

Direktori rumah pengguna akar. Daripada berada di /home/root, ia diletakkan di /root untuk kebolehpercayaan sistem yang lebih besar.

/run – fail keadaan aplikasi

Merupakan direktori yang agak baharu yang membolehkan aplikasi menyimpan fail sokongan yang mereka perlukan, seperti soket dan ID proses, dengan cara yang standard. Fail ini tidak boleh disimpan dalam direktori /tmp kerana fail ini mungkin dipadamkan di sana.

/sbin - fail binari (program) untuk pentadbiran sistem

Direktori /sbin adalah serupa dengan direktori /bin. Ia mengandungi fail binari penting yang biasanya bertujuan untuk dijalankan oleh pengguna semasa mentadbir sistem.

/selinux – Sistem fail maya SELinux

Sesetengah pengedaran (Red Hat, Fedora, dll.) menggunakan pakej SELinux (Security-Enhanced Linux) untuk menyediakan keselamatan, mencipta direktori dengan fail /selinux.

/srv – data perkhidmatan

Direktori ini tidak terdapat dalam semua pengedaran; ia mengandungi "data untuk perkhidmatan yang disediakan oleh sistem" (contohnya, pelayan Apache boleh menyimpan fail tapak anda dalam direktori ini). Dalam kebanyakan kes direktori kosong.

/sys - sistem fail maya sysfs

Direktori ini muncul dengan keluaran kernel versi 2.6 dan sistem fail maya sysfs dengan maklumat tentang peranti, pemacu, kernel OS, dll. dipasang di dalamnya.

Penerangan subdirektori:

/sys/block - mengandungi direktori semua peranti blok yang terdapat pada masa ini dalam sistem.

/sys/bus - Mengandungi senarai bas yang ditakrifkan dalam kernel Linux (eisa, pci, dsb.).

/sys/class - mengandungi senarai peranti yang dikumpulkan mengikut kelas (pencetak, scsi-devices, dll.).

/tmp - fail sementara

Fail sementara biasanya dipadamkan apabila sistem dibut semula. Ia serupa dengan C:/Windows/Temp dalam OS Windows. Semua pengguna telah membaca dan menulis kebenaran pada direktori ini.

/usr - binari baca sahaja pengguna

Direktori ini mengandungi aplikasi dan fail yang digunakan hanya oleh pengguna, bukan oleh sistem itu sendiri.

Penerangan subdirektori:

/usr/bin - fail boleh laku untuk semua akaun.

/usr/games - direktori untuk permainan komputer dalam sistem.

/usr/include - fail pengepala bertujuan untuk menyusun atur cara C.

/usr/lib - perpustakaan sistem dan fail tambahan yang terdapat dalam direktori /usr.

/usr/local - Aplikasi yang disusun secara setempat dipasang dalam direktori ini, yang membolehkan mereka tidak bercampur dengan seluruh sistem.

/usr/local/bin - fail boleh laku tempatan.

/usr/local/etc - perintah sistem tempatan dan fail konfigurasi.

/usr/local/lib - fail tambahan tempatan.

/usr/local/sbin - perintah sistem perkhidmatan tempatan.

/usr/local/src - kod sumber untuk atur cara dalam direktori /usr/local/*

/usr/man - halaman dokumentasi interaktif.

/usr/sbin - arahan pentadbiran sistem yang kurang penting.

/usr/share - data umum program yang dipasang (baca sahaja).

/usr/share/man - halaman dokumentasi interaktif.

/usr/share/icons - ikon sistem.

/usr/share/doc - dokumentasi rujukan.

/usr/src - kod sumber pakej perisian bukan tempatan (contohnya, kod sumber kernel terdapat di sini).

/var - direktori untuk menukar data yang kerap

Direktori ini mengandungi log sistem pengendalian, fail log sistem, fail cache, dsb.

/var/adm - fail log, rekod pemasangan sistem, komponen pentadbiran.

/var/cache - semua cache untuk pelbagai program.

/var/games - fail dengan pencapaian permainan.

/var/log - fail log sistem (fail log).

/var/lock - terdapat fail kunci yang menunjukkan bahawa sesetengah sumber sedang sibuk.

/var/lib - diubah suai oleh atur cara semasa operasi (contohnya, pangkalan data, metadata, dsb.).

/var/spool - direktori spool (contohnya, mencetak baris gilir, e-mel yang belum dibaca atau tidak dihantar, tugas cron, dsb.).

/var/tmp - direktori untuk penyimpanan sementara fail.

/var/www - Halaman web untuk pelayan Apache dihoskan.

Anda boleh melihat struktur sistem fail menggunakan arahan ls -la. Di bawah ialah contoh output arahan untuk pengedaran OpenSUSE.

# ls -la jumlah 260 drwxr-xr-x 24 punca punca 4096 Ogos 30 2013 . drwxr-xr-x 24 root root 4096 Ogos 30 2013 .. drwxr-xr-x 2 root root 4096 Ogos 8 2012 .config -rw-r--r-- 1 root root 149519 Ogos 30 2013 .rreadahead drw-x x 2 akar akar 4096 Ogos 8 2012 bin drwxr-xr-x 3 akar akar 4096 Ogos 8 2012 but drwxr-xr-x 18 akar akar 3340 Mei 16 16:29 dev drwxr-xr-x 122 akar 127 Jun 28282 drwxr-xr-x 4 akar akar 4096 Sep 21 2012 rumah drwxr-xr-x 16 akar akar 4096 Ogos 23 2012 lib drwxr-xr-x 10 akar akar 12288 Ogos 23 2012 lib64- drwx-2-4 akar 8 Ogos 2012 hilang+ditemui drwxr-xr-x 2 root root 40 Dis 11 2013 media drwxr-xr-x 2 root root 4096 Oct 25 2011 mnt drwxr-xr-x 3 root root 4096 Aug 23 2012 optx dr-xr- -x 194 root root 0 Dis 11 2013 proc drwx------ 31 root root 4096 Jun 10 14:38 root drwxr-xr-x 23 root root 780 Jul 9 17:39 run drwxr-xr-x 3 root root 12288 Ogos 8 2012 sbin drwxr-xr-x 2 akar akar 4096 Okt 25 2011 selinux drwxr-xr-x 6 1004 pengguna 4096 Sep 21 2012 srv drwxr-xr-x 13 Dis 13 akar akar 2 drwxr-xr-x 12 Dis. 4096 Jul 9 17:39 tmp drwxr-xr-x 13 root root 4096 Nov 10 2011 usr drwxr-xr-x 16 root root 4096 Ogos 9 2012 var

Itu sahaja. Pertimbangan tujuan direktori utama yang terdapat dalam sistem fail Linux selesai.

Belajar Linux, 101

Pengurusan fail dan direktori

Ketahui asas bekerja dengan fail dan Direktori Linux

Siri Kandungan:

Ulasan ringkas

Dalam artikel ini, anda akan mempelajari tentang arahan asas Linux untuk mengurus fail dan direktori. Awak akan belajar:

  • Lihat kandungan direktori.
  • Salin, alih dan padam fail dan direktori.
  • Urus berbilang fail dan direktori secara rekursif.
  • Gunakan aksara meta untuk memanipulasi fail.
  • Gunakan arahan find untuk mencari dan melaksanakan tindakan pada fail berdasarkan jenis, saiz atau cap masanya.
  • Mampatkan dan nyahmampat fail menggunakan arahan gzip dan bzip2.
  • Arkibkan fail menggunakan perintah tar, cpio dan dd.
Mengenai siri ini

Siri artikel ini akan membantu anda menguasai tugas-tugas mentadbir sistem pengendalian Linux. Anda juga boleh menggunakan bahan dalam artikel ini untuk membuat persediaan.

Untuk melihat huraian artikel dalam siri ini dan mendapatkan pautan ke artikel tersebut, sila rujuk artikel kami. Senarai ini sentiasa dikemas kini dengan artikel baharu apabila ia tersedia dan mengandungi objektif peperiksaan pensijilan LPIC-1 yang terkini (sehingga April 2009). Jika artikel tiada dalam senarai, anda boleh mencari versi terdahulu yang memenuhi matlamat LPIC-1 sebelumnya (sebelum April 2009) dengan merujuk kepada .

Artikel ini akan membantu anda bersedia untuk mengambil peperiksaan LPI 101 Entry Level Administrator (LPIC-1) dan mengandungi bahan daripada Objektif 103.3 Topik 103. Objektif mempunyai berat 4.

Syarat yang perlu

Untuk mendapatkan manfaat yang paling banyak daripada artikel kami, anda mesti mempunyai pengetahuan asas tentang Linux dan mempunyai komputer Linux yang berfungsi di mana anda boleh menjalankan semua arahan yang anda temui. Kadangkala versi program yang berbeza menghasilkan hasil secara berbeza, jadi kandungan penyenaraian dan angka mungkin berbeza daripada apa yang anda lihat pada komputer anda.

Semak imbas direktori

Bagaimana untuk menghubungi Ian

Ian ialah salah seorang pengarang kami yang paling popular dan prolifik. Semak keluar (EN) diterbitkan pada developerWorks. Anda boleh mendapatkan maklumat hubungan di dan berhubung dengannya dan penyumbang dan penyumbang My developerWorks yang lain.

Dalam Linux dan UNIX®, semua fail disimpan sebagai pepohon sistem fail dengan direktori akar /. Cawangan tambahan boleh ditambah atau dikeluarkan dari pokok ini, melekap atau merungkai mereka sewajarnya. Operasi ini dibincangkan dalam artikel lain dalam siri ini - " Memasang dan menyahlekap sistem fail"(cm. ).

Lihat kandungan direktori

Apabila mempelajari arahan dalam artikel ini, kami akan menggunakan fail yang telah dibuat dalam artikel sebelumnya dalam siri ini, " ". Jika anda menyelesaikan semua latihan dalam artikel ini, maka direktori lpi103-2 harus ada dalam direktori rumah anda. Jika anda tidak mempunyai direktori sedemikian, maka anda boleh menggunakan mana-mana direktori lain.

Nama fail dan direktori boleh sama ada mutlak(ini bermakna mereka bermula dengan /), atau relatif(tidak bermula dengan /) berhubung dengan direktori kerja semasa. Laluan mutlak ke fail atau direktori terdiri daripada / aksara, secara pilihan diikuti oleh satu atau lebih nama direktori, dipisahkan dengan tambahan / aksara, dan akhirnya nama direktori destinasi.

Jika anda mengetahui nama fail atau direktori berbanding dengan direktori kerja semasa, maka anda hanya boleh menggabungkan nama mutlak direktori kerja, watak / dan nama relatif. Sebagai contoh, direktori lpi103-2 dari artikel sebelumnya telah dicipta dalam direktori rumah saya, /home/ian, jadi laluan penuh atau mutlaknya ialah /home/ian/lpi103-2.

Nama direktori kerja semasa boleh didapati menggunakan arahan pwd. Nama ini juga biasanya terkandung dalam pembolehubah persekitaran JKR. Penyenaraian 1 menunjukkan contoh penggunaan perintah pwd, dan juga menunjukkan tiga cara berbeza untuk menggunakan arahan ls untuk menyenaraikan fail dalam direktori.

Penyenaraian 1. Melihat kandungan direktori
$ pwd /home/ian/lpi103-2 $ echo "$PWD" /home/ian/lpi103-2 $ ls sedtab text1 text2 text3 text4 text5 text6 xaa xab yaa yab $ ls "$PWD" sedtab text1 text2 text3 text4 text5 text6 xaa xab yaa yab $ ls /home/ian/lpi103-2 sedtab text1 text2 text3 text4 text5 text6 xaa xab yaa yab

Seperti yang anda lihat, untuk melihat kandungan direktori, anda boleh menghantar sama ada nama relatif atau mutlaknya kepada arahan ls.

Memaparkan maklumat terperinci

Fail dan direktori terletak pada peranti storan sebagai satu set blok. Maklumat tentang fail (seperti pemilik fail, masa fail terakhir diakses, saiz fail, kebenaran membaca atau menulis, sama ada item itu fail atau direktori) disimpan dalam inode inode. nombor inod, juga dikenali sebagai nombor siri fail, adalah unik dalam sistem fail tertentu. Anda boleh menggunakan pilihan -l (atau --format=long) untuk memaparkan beberapa maklumat yang disimpan dalam inod.

Secara lalai, arahan ls tidak menyenaraikan fail khas yang namanya bermula dengan titik (.). Setiap direktori, kecuali direktori akar, mempunyai sekurang-kurangnya dua entri khas: direktori itu sendiri (.) dan direktori induk (..). Direktori akar tidak mempunyai direktori induk.

Penyenaraian 2 menunjukkan contoh menggunakan pilihan -l dan -a untuk menyenaraikan kandungan direktori secara terperinci (termasuk elemen . dan ..).

Penyenaraian 2. Pandangan terperinci kandungan direktori
$ ls -al jumlah 52 drwxrwxr-x. 2 ian ian 4096 2009-08-11 21:21 . drwx------. 35 ian ian 4096 12-08-2009 10:55 .. -rw-rw-r--. 1 ian ian 8 2009-08-11 21:17 sedtab -rw-rw-r--. 1 ian ian 24 2009-08-11 14:02 text1 -rw-rw-r--. 1 ian ian 25 2009-08-11 14:27 text2 -rw-rw-r--. 1 ian ian 63 2009-08-11 15:41 text3 -rw-rw-r--. 1 ian ian 26 2009-08-11 15:42 text4 -rw-rw-r--. 1 ian ian 24 2009-08-11 18:47 text5 -rw-rw-r--. 1 ian ian 98 2009-08-11 21:21 text6 -rw-rw-r--. 1 ian ian 15 2009-08-11 14:41 xaa -rw-rw-r--. 1 ian ian 9 2009-08-11 14:41 xab -rw-rw-r--. 1 ian ian 17 2009-08-11 14:41 yaa -rw-rw-r--. 1 ian ian 8 2009-08-11 14:41 yab

Dalam baris pertama Penyenaraian 2, kita melihat jumlah bilangan blok cakera (52) yang diduduki oleh fail yang dipaparkan. Baris yang tinggal mengandungi maklumat tentang kandungan direktori.

  • Medan pertama (dalam kes kami, drwxrwxr-x atau -rw-rw-r--) memberitahu kami sama ada entri tersebut ialah direktori (d) atau fail biasa (-). Anda juga boleh melihat pautan simbolik (|) atau tatatanda lain untuk beberapa fail khas (contohnya, fail dalam sistem fail /dev). Pautan simbolik dibincangkan dengan lebih terperinci dalam artikel lain dalam siri ini " " (lihat ). Medan jenis diikuti oleh tiga set kebenaran (seperti rwx atau r--): untuk pemilik fail, untuk ahli kumpulan pemilik dan untuk semua pengguna lain. Tiga nilai tentukan sama ada pemilik, kumpulan atau semua pengguna mempunyai, masing-masing, membaca (r), menulis (w) atau melaksanakan (x). Atribut lain, seperti setuid, akan diliputi dalam artikel lain dalam siri ini" Urus kebenaran fail dan pemilikan"(cm. ).
  • Medan seterusnya mengandungi nombor yang memberitahu kami kuantiti pautan keras setiap fail. Seperti yang telah disebutkan, inode mengandungi maklumat mengenai fail. Entri untuk fail yang disimpan dalam direktori mengandungi pautan keras (atau penunjuk) ke inod fail ini, oleh itu, setiap entri mesti mempunyai, sekurang-kurangnya, satu pautan keras. Entri direktori mempunyai satu pautan tambahan untuk entri, dan satu pautan untuk setiap subdirektori. Jadi anda boleh lihat daripada Penyenaraian 2 bahawa direktori rumah saya, yang dilambangkan sebagai..., mempunyai beberapa subdirektori kerana ia mengandungi 35 pautan keras.
  • Dua medan seterusnya mengandungi nama pemilik fail dan nama kumpulan utama yang dimilikinya. Pada sesetengah pengedaran Linux (seperti Red Hat atau Fedora), secara lalai, a kumpulan berasingan. Dalam sistem lain, semua pengguna boleh tergolong dalam satu atau lebih kumpulan.
  • Medan seterusnya mengandungi saiz fail dalam bait.
  • Medan kedua terakhir mengandungi masa pengubahsuaian fail.
  • Dan akhirnya, medan terakhir mengandungi nama fail atau direktori.

Pilihan -i kepada ls akan memaparkan nombor inod. Kami akan kembali melihat inod kemudian dalam artikel ini, dan juga dalam artikel " Bekerja dengan pautan keras dan simbolik"(cm. ).

Maklumat tentang berbilang fail

Anda boleh menghantar beberapa parameter kepada arahan ls, setiap satu daripadanya akan menjadi sama ada nama fail atau nama direktori. Jika parameter ialah nama direktori, maka bukannya maklumat tentang direktori ini, arahan ls akan menunjukkan kandungannya. Dalam kes kita, mari kita anggap bahawa kita ingin mendapatkan maklumat tentang direktori lpi103-2 itu sendiri. Perintah ls -l ../lpi103-2 akan memberi kita maklumat yang sama seperti dalam contoh sebelumnya. Penyenaraian 3 menunjukkan cara menggunakan pilihan -d untuk memaparkan maklumat tentang entri direktori dan bukannya kandungannya; Ia juga menunjukkan cara untuk memaparkan entri untuk berbilang fail atau direktori.

Penyenaraian 3. Menggunakan ls –d
$ ls -ld ../lpi103-2 sedtab xaa drwxrwxr-x. 2 ian ian 4096 2009-08-12 15:31 ../lpi103-2 -rw-rw-r--. 1 ian ian 8 2009-08-11 21:17 sedtab -rw-rw-r--. 1 ian ian 15 2009-08-11 14:41 xaa

Ambil perhatian bahawa masa pengubahsuaian untuk direktori lpi103-2 adalah berbeza daripada masa yang kita lihat dalam penyenaraian sebelumnya. Selain itu, sama seperti dalam penyenaraian sebelumnya, kali ini berbeza daripada masa pengubahsuaian mana-mana fail dalam direktori ini. Hakikatnya ialah semasa mengerjakan artikel ini, saya mencipta beberapa contoh tambahan dan kemudian memadamkannya; Inilah yang dikatakan cap masa direktori. Kita akan bercakap lebih lanjut tentang cap masa fail sedikit kemudian dalam bahagian tersebut.

Isih output

Secara lalai, arahan ls memaparkan nama fail dalam susunan abjad. Terdapat beberapa pilihan untuk menyusun output. Sebagai contoh, perintah ls -t akan mengisih fail mengikut masa pengubahsuaian (terbaru kepada tertua), dan arahan ls -lS akan menjana senarai terperinci fail yang diisih mengikut saiz (besar hingga terkecil). Jika anda menambah pilihan -r, pengisihan akan dilakukan dalam susunan terbalik. Sebagai contoh, gunakan arahan ls -lrt untuk mengeluarkan senarai terperinci fail diisih mengikut tarikh pengubahsuaian dalam susunan terbalik. Anda boleh belajar tentang pilihan lain untuk mengisih fail dan direktori daripada halaman lelaki.

Menyalin, mengalih dan memadam fail

Jadi, kita sudah tahu cara membuat fail, tetapi bagaimana jika kita mahu menyalin atau menamakan semula fail, mengalihkannya ke lokasi lain dalam sistem fail, atau memadamnya. Terdapat tiga arahan pendek untuk ini:

cp digunakan untuk menyalin satu atau lebih fail atau direktori. awak mesti menunjukkan satu atau lebih nama sumber dan satu muktamad Nama. Nama sumber atau nama destinasi mungkin termasuk laluan. Jika nama akhir ialah nama direktori sedia ada, maka semua sumber akan disalin V dia. Jika direktori dengan nama destinasi tidak wujud, maka asal (tunggal) juga mestilah direktori; sumber dan kandungannya akan disalin ke direktori yang baru dibuat dengan nama yang ditentukan. Jika nama destinasi ialah nama fail, maka sumber (tunggal) juga mestilah fail; salinan sumber akan dibuat sebagai fail dengan nama akhir yang ditentukan, dan jika fail dengan nama yang sama sudah wujud pada sistem, ia akan digantikan dengan fail baharu. Ambil perhatian bahawa, tidak seperti sistem pengendalian DOS dan Windows, dalam Linux direktori semasa bukanlah direktori sasaran secara lalai. mv digunakan untuk pergerakan atau menamakan semula satu atau lebih fail atau direktori. Secara umum, peraturan untuk menggunakan nama adalah sama seperti untuk arahan cp; anda boleh menamakan semula satu fail atau memindahkan berbilang fail ke direktori baharu. Memandangkan nama hanyalah entri direktori yang menunjuk ke inode, ia tidak sepatutnya mengejutkan anda bahawa nombor inode tidak berubah. sehingga sehingga fail itu dialihkan ke sistem fail lain (dalam hal ini operasi alih lebih seperti operasi salin dan kemudian memadamkan fail asal). rm digunakan untuk penyingkiran satu atau lebih fail. Saya akan memberitahu anda bagaimana untuk memadam direktori sedikit kemudian.
Ke mana perginya pasukan itu?

Jika anda telah menggunakan sistem pengendalian DOS atau Windows®, anda mungkin merasa aneh bahawa anda menggunakan perintah mv untuk menamakan semula fail. Linux mempunyai arahan nama semula, tetapi sintaksnya berbeza daripada arahan dengan nama yang sama dalam DOS atau Windows. Untuk maklumat lanjut tentang arahan ini, rujuk halaman lelaki.

Penyenaraian 4 menunjukkan contoh menggunakan arahan cp dan mv untuk mencipta berbilang sandaran fail teks kami. Kami juga menggunakan arahan ls -i untuk menunjukkan nombor inod beberapa fail.

  1. Mula-mula kami mencipta salinan fail text1 kami dan memanggilnya text1.bkp.
  2. Kami kemudian memutuskan untuk menggunakan arahan mkdir untuk mencipta subdirektori sandaran untuk menyimpan sandaran.
  3. Kami mencipta sandaran kedua bagi text1 (kali ini dalam subdirektori sandaran) dan menunjukkan bahawa ketiga-tiga fail mempunyai deskriptor inod yang berbeza.
  4. Kami mengalihkan fail text1.bkp kami ke subdirektori sandaran dan menamakannya mengikut nama kedua salinan sandaran. Walaupun ini boleh dilakukan dengan satu arahan, demi kejelasan kami menggunakan dua.
  5. Kami menyemak deskriptor inode sekali lagi dan pastikan bahawa fail text1.bkp dengan inode 934193 tidak lagi dalam direktori lpi103-2 kami dan nombor inode ini kini tergolong dalam fail text1.bkp.1 dalam direktori sandaran.
Penyenaraian 4. Menyalin dan memindahkan fail
$ cp text1 text1.bkp $ mkdir backup $ cp text1 backup/text1.bkp.2 $ ls -i text1 text1.bkp backup 933892 text1 934193 text1.bkp backup: 934195 text1.bkp.2 $ mv text1.bkp backup $ mv backup/text1.bkp backup/text1.bkp.1 $ ls -i text1 text1.bkp backup ls: tidak boleh mengakses text1.bkp: Tiada fail atau direktori sedemikian 933892 text1 backup: 934193 text1.bkp.1 934195 text1.bkp.2

Biasanya arahan cp akan menulis ganti fail sasaran jika wujud dan boleh ditimpa. Sebaliknya, arahan mv tidak memindahkan atau menamakan semula fail jika fail lain dengan nama yang sama wujud. Terdapat beberapa pilihan yang berguna untuk mengawal tingkah laku arahan cp dan mv.

-f atau --force memberitahu arahan cp untuk cuba memadam fail sasaran sedia ada walaupun ia tidak boleh ditulis ganti. -i atau --interaktif meminta pengesahan apabila cuba menggantikan fail sedia ada. -b atau --sandaran mencipta salinan sandaran semua fail yang diganti.

Seperti biasa, maklumat penuh tentang ini dan pilihan salinan dan alih yang lain boleh didapati dalam halaman manual yang sepadan.

Penyenaraian 6 menunjukkan contoh membuat sandaran dan kemudian memadamkan fail asal.

Penyenaraian 5. Membuat sandaran dan memadam fail
$ cp text2 backup $ cp --backup=t text2 backup $ ls backup text1.bkp.1 text1.bkp.2 text2 text2.~1~ $ rm backup/text2 backup/text2.~1~ $ ls backup text1.bkp .1 teks1.bkp.2

Ambil perhatian bahawa arahan rm membolehkan anda menggunakan pilihan -i (interaktif) dan -f (force). Jika fail dipadamkan menggunakan rm , sistem fail tidak lagi mempunyai akses kepadanya. Pada sesetengah sistem, alias lalai untuk pengguna root ialah alias rm="rm -i" untuk mengelakkan fail daripada dipadamkan secara tidak sengaja. Peluang ini juga boleh digunakan pengguna biasa yang takut terpadam sesuatu secara tidak sengaja.

Sebelum meninggalkan topik ini, perlu diperhatikan bahawa untuk fail baharu, arahan cp mencipta cap masa baharu secara lalai. Pemilik (dan kumpulan) fail baharu menjadi pengguna (dan kumpulannya) yang membuat salinan. Anda boleh menggunakan pilihan -p untuk menyimpan atribut yang dipilih. Ambil perhatian bahawa pengguna akar mungkin satu-satunya pengguna yang boleh mengekalkan pemilikan. Anda boleh mendapatkan maklumat lanjut di halaman lelaki.

Mencipta dan memadam direktori

Anda sudah tahu cara membuat direktori menggunakan arahan mkdir. Sekarang mari kita pergi lebih jauh dan lihat analog mkdir untuk memadam direktori - program rmdir.

arahan mkdir

Mari kita anggap bahawa kita berada dalam direktori lpi103-2 kami dan ingin mencipta subdirektori dir1 dan dir2. Sama seperti arahan yang telah dibincangkan, arahan mkdir boleh mengendalikan permintaan untuk mencipta berbilang direktori sekaligus, seperti yang ditunjukkan dalam Penyenaraian 6.

Penyenaraian 6. Mencipta berbilang direktori
$ mkdir dir1 dir2

Perhatikan bahawa tiada output jika arahan itu berjaya. Untuk mengesahkan bahawa kod keluar memang 0, anda boleh menggunakan arahan echo $? .

Jika anda ingin mencipta subdirektori bersarang, contohnya d1/d2/d3, arahan akan gagal kerana direktori d1 dan d2 tidak wujud. Nasib baik, arahan mkdir mempunyai pilihan -p yang membolehkan anda mencipta sebarang bilangan direktori induk, seperti yang ditunjukkan dalam Penyenaraian 7.

Penyenaraian 7. Mencipta direktori induk
$ mkdir d1/d2/d3 mkdir: tidak boleh mencipta direktori `d1/d2/d3": Tiada fail atau direktori sedemikian $ echo $? 1 $ mkdir -p d1/d2/d3 $ echo $? 0

arahan rmdir

Perintah rmdir direka untuk mengalih keluar direktori. Jika pilihan -p ditentukan, semua direktori induk juga dipadamkan. Sejak pilihan untuk pemadaman paksa tidak wujud, maka menggunakan rmdir anda hanya boleh memadam direktori kosong. Kami akan melihat cara lain untuk memadam direktori dalam bahagian tersebut. Sebaik sahaja anda membiasakan diri dengan kaedah ini, anda mungkin tidak menggunakan arahan rmdir pada baris arahan dengan kerap, tetapi tidak rugi untuk mengetahui tentangnya.

Untuk menunjukkan pemadaman direktori, kami menyalin fail text1 kami ke direktori d1/d2, yang kini tidak kosong. Kami kemudian menjalankan arahan rmdir untuk mengalih keluar semua direktori yang baru dibuat menggunakan mkdir. Seperti yang anda lihat, direktori d1 dan d2 tidak dipadamkan kerana direktori d2 mengandungi fail. Semua direktori lain telah dipadamkan. Sebaik sahaja kami mengalih keluar salinan text1 daripada direktori d2, kami boleh mengalih keluar direktori d1 dan d2 dengan satu arahan, rmdir -p .

Penyenaraian 8. Mengalih keluar direktori
$ cp text1 d1/d2 $ rmdir -p d1/d2/d3 dir1 dir2 rmdir: gagal mengalih keluar direktori `d1/d2": Direktori tidak kosong $ ls . d1/d2 .: sandaran sedtab text2 text4 text6 xab yab d1 text1 text3 text5 xaa yaa d1/d2: text1 $ rm d1/d2/text1 $ rmdir -p d1/d2

Memproses berbilang fail dan direktori

Setakat ini, semua arahan yang kami gunakan telah melakukan tindakan pada fail individu, atau mungkin pada berbilang fail yang disenaraikan secara manual. Dalam artikel yang lain ini kita akan melihat melakukan pelbagai operasi atas berbilang fail, tindakan rekursif dengan sebahagian daripada pepohon direktori, serta menyimpan dan memulihkan berbilang fail dan direktori.

Tindakan Rekursif

Output rekursif kandungan direktori

Perintah ls mempunyai pilihan -R (perhatikan huruf besar"R") untuk memaparkan kandungan direktori dan semua subdirektorinya. Pilihan rekursif hanya digunakan pada nama direktori; ia tidak akan menemui, sebagai contoh, semua fail bernama "text1" dalam pepohon direktori. Anda boleh menggunakan pilihan lain yang anda ketahui bersama dengan pilihan -R. Penyenaraian 9 menunjukkan output rekursif kandungan direktori lpi103-2 kami, termasuk nombor inod.

Penyenaraian 9. Menyenaraikan kandungan direktori secara rekursif
$ ls -iR .: 934194 sandaran 933892 teks1 933898 teks3 933900 teks5 933894 xaa 933896 yaa 933901 sedtab 933893 teks2 933899 teks4 933899 teks4 933899 ya. 934193 teks1.bkp.1 934195 teks1.bkp.2

Penyalinan rekursif

Anda boleh menggunakan pilihan -r (atau -R atau --recursive) bagi arahan cp untuk melihat direktori sumber dan menyalin kandungannya secara rekursif. Untuk mengelakkan rekursi tak terhingga itu sendiri direktori sumber tidak boleh ditiru. Penyenaraian 10 menunjukkan cara menyalin keseluruhan kandungan direktori lpi103-2 kami ke dalam subdirektori copy1. Untuk melihat pepohon direktori yang terhasil, kami menggunakan arahan ls -R.

Penyenaraian 10. Penyalinan rekursif
$cp -pR . copy1 cp: tidak boleh menyalin direktori, `.", ke dalam dirinya sendiri, `copy1" $ ls -R .: backup copy1 sedtab text1 text2 text3 text4 text5 text6 xaa xab yaa yab ./backup: text1.bkp.1 text1.bkp. 2 ./copy1: text2 text3 text5 xaa yaa yab

Pemadaman berulang

Kami menyebut sebelum ini arahan rmdir memadam hanya direktori kosong. Kita boleh menggunakan pilihan -r (atau -R atau --rekursif) bagi arahan rm untuk mengalih keluar fail Dan direktori, seperti yang ditunjukkan dalam Penyenaraian 11. Dalam Penyenaraian 11, kami memadamkan direktori copy1 yang baru dibuat bersama kandungannya, termasuk subdirektori sandaran dan semua fail di dalamnya.

Penyenaraian 11. Pemadaman berulang
$ rm -r copy1 $ ls -R .: sandaran sedtab text1 text2 text3 text4 text5 text6 xaa xab yaa yab ./backup: text1.bkp.1 text1.bkp.2

Jika terdapat fail yang anda tidak boleh tulis, anda mungkin memerlukan pilihan -f untuk memaksa pemadaman. Ini sering digunakan oleh pengguna root semasa mengelap sistem, namun sedar bahawa jika anda menggunakan pilihan ini secara cuai, anda mungkin kehilangan data penting.

Metakarakter dan penggantian nama fail

Selalunya ada keperluan untuk melaksanakan operasi mudah ke atas berbilang objek sistem fail tanpa perlu beroperasi pada keseluruhan pepohon direktori, seperti yang kami lakukan semasa melakukan tindakan rekursif. Sebagai contoh, anda mungkin ingin mengetahui masa pengubahsuaian semua fail teks yang dibuat dalam direktori lpi103-2 tanpa menyenaraikan fail individu. Walaupun ini agak mudah dilakukan untuk direktori kecil kami, ia jauh lebih rumit untuk sistem fail yang lebih besar.

Untuk mengatasi masalah ini, gunakan sokongan metacharacter yang dibina ke dalam penterjemah bash. Sokongan ini juga dipanggil globbing ("globbing" berasal daripada nama program /etc/glob) dan membolehkan anda mentakrifkan berbilang fail menggunakan corak globbing.

? sepadan dengan mana-mana watak tunggal. * sepadan dengan mana-mana rentetan, termasuk rentetan kosong. [ ialah kelas watak. Kelas aksara ialah rentetan bukan kosong yang berakhir dengan "]". Padanan bermaksud perlawanan terhadap mana-mana aksara tunggal yang disertakan dalam kurungan segi empat sama. Terdapat beberapa perjanjian khas:
  • Watak "*" dan "?" bermaksud diri mereka sendiri. Jika anda menggunakannya dalam nama fail, anda perlu memberi perhatian kepada penggunaan petikan dan urutan pelarian yang betul.
  • Memandangkan baris tidak boleh kosong dan berakhir dengan "]", anda mesti meletakkan aksara "]". pertama dalam rentetan jika anda mahu memadankannya.
  • "-" diletakkan di antara dua aksara lain menandakan julat yang merangkumi kedua-dua aksara tersebut serta semua aksara di antara mereka mengikut skema pengumpulan. Sebagai contoh, binaan sepadan dengan mana-mana digit heksadesimal huruf kecil atau huruf besar. Jika anda ingin memadankan aksara "-", letakkannya sama ada pertama atau terakhir dalam julat.
  • Aksara "!" diletakkan di kedudukan pertama julat bermakna julat itu akan sepadan dengan mana-mana aksara kecuali yang dinyatakan di dalamnya. Sebagai contoh, [!0-9] sepadan dengan mana-mana aksara kecuali nombor 0 hingga 9. Aksara "!" diletakkan di mana-mana kedudukan lain dalam julat sepadan dengan dirinya sendiri. Ingat bahawa "!" juga digunakan dalam sejarah cangkang, jadi berhati-hati dan gunakannya dengan berhati-hati.

Catatan. Corak kad bebas dan ungkapan biasa mempunyai persamaan tertentu, tetapi ia Tidak sama. Beri perhatian khusus kepada ini!

Penggantian digunakan secara berasingan pada setiap komponen nama laluan. Anda tidak boleh memadankan aksara "/" atau memasukkannya dalam julat. Anda boleh menggunakannya di mana-mana sahaja untuk menentukan berbilang fail atau nama direktori, seperti dalam perintah ls , cp , mv atau rm. Dalam Penyenaraian 12, kami mula-mula mencipta beberapa fail dengan nama pelik dan kemudian menggunakan arahan ls dan rm bersama-sama dengan kad bebas.

Penyenaraian 12. Contoh corak kad bebas
$ echo odd1>"text[*?!1]" $ echo odd2>"text" $ ls sandaran teks1 text2 text3 text5 xaa yaa sedtab text[*?!1] text text4 text6 xab yab $ ls text text2 text3 text4 $ ls text[!2-4] text1 text5 text6 $ ls text** text2 text text3 text4 $ ls text*[!2-4]* # Kejutan! text1 text[*?!1] text text5 text6 $ ls text*[!2-4] # Satu lagi kejutan! text1 text[*?!1] text text5 text6 $ echo text*>text10 $ ls *\!* text[*?!1] text $ ls ** text1 text[*?!1] text10 text2 text text3 text4 text5 text6 xaa xab $ ls ** text[*?!1] text yaa yab $ ls tex?[* text[*?!1] text $ rm tex?[* $ ls *b* sedtab xab yab backup: text1.bkp. 1 teks1.bkp.2 $ ls sandaran/*2 sandaran/teks1.bkp.2 $ ls -d .* . ..

Nota:

  1. Membentuk pelengkap bersama-sama dengan simbol "*" boleh membawa kepada beberapa kejutan. Corak "*[!2-4]" sepadan dengan bahagian terpanjang nama yang tidak diikuti oleh nombor 2, 3 atau 4, yang sepadan dengan teks nama[*?!1], jadi dan teks nama.
  2. Seperti contoh arahan ls sebelumnya, jika nama yang sepadan dengan corak ialah nama direktori dan pilihan -d tidak ditentukan, maka kandungan direktori itu akan disenaraikan (seperti yang berlaku dengan corak "*b*" dalam contoh kita).
  3. Jika nama fail bermula dengan titik (.), maka aksara ini mesti dinyatakan secara eksplisit. Ambil perhatian bahawa hanya arahan ls terakhir memaparkan dua entri khas (. dan ..).

Harap maklum bahawa sebarang kad bebas dihuraikan oleh penterjemah arahan, yang boleh membawa kepada hasil yang tidak dijangka. Selain itu, jika anda menentukan corak kad bebas yang tidak sepadan dengan mana-mana objek sistem fail, standard POSIX memerlukan rentetan corak asal dihantar kepada arahan. Sesetengah versi terdahulu menghantar senarai kosong kepada arahan, jadi anda mungkin menghadapi skrip lama yang berkelakuan luar biasa. Mari kita gambarkan ini dalam Penyenaraian 13.

Penyenaraian 13. Kejutan apabila menggunakan kad bebas
$ echo text* text1 text10 text2 text3 text4 text5 text6 $ echo "text*" text* $ echo text[[\!?]z?? teks[[!?]z??

Untuk maklumat lanjut tentang penggantian nama sila rujuk man page man 7 gumpalan. Nombor bahagian diperlukan kerana maklumat tentang kad bebas juga terkandung dalam Bahagian 3. Cara terbaik untuk mempelajari kad bebas adalah melalui latihan, jadi cuba gunakan aksara meta setiap kali anda mendapat peluang. Untuk mengelakkan tindakan yang tidak boleh diperbaiki, jangan lupa untuk menyemak corak penggantian anda menggunakan ls, dan kemudian gunakan arahan seperti cp, mv atau, terutamanya, rm kepada mereka.

Menggunakan sentuhan

Dalam bahagian ini, kita akan melihat arahan sentuh, yang boleh mengemas kini masa akses fail atau masa pengubahsuaian, serta mencipta fail kosong. Anda akan melihat cara menggunakan maklumat ini untuk mencari fail dan direktori. Dalam contoh kami, kami akan terus menggunakan direktori lpi103-2. Kami juga akan melihat cara yang berbeza untuk menetapkan cap masa.

arahan sentuh

Arahan sentuh, dijalankan tanpa sebarang pilihan, mengambil satu atau lebih nama fail sebagai parameter dan mengemas kini masanya pengubahsuaian– nilai yang biasanya dipaparkan apabila menyenaraikan kandungan direktori secara terperinci. Dalam Penyenaraian 14, kami menggunakan perintah gema biasa untuk mencipta fail kecil yang dipanggil f1, dan kemudian mencetak kandungan direktori dalam bentuk verbose untuk menunjukkan masa pengubahsuaian (atau masa). Dalam kes ini, masa pengubahsuaian ialah masa fail dibuat. Kami kemudian menggunakan arahan tidur untuk menunggu 60 saat dan menjalankan arahan ls sekali lagi. Perhatikan bahawa cap masa fail telah berubah sebanyak satu minit.

Penyenaraian 14. Mengemas kini masa peluang terakhir menggunakan sentuhan
$ echo xxx>f1; ls -l f1; tidur 60; sentuh f1; ls -l f1 -rw-rw-r--. 1 ian ian 4 2009-08-14 18:24 f1 -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1

Jika anda menentukan nama fail yang tidak wujud, arahan sentuh akan mencipta fail kosong dengan nama itu (melainkan pilihan -c atau --no-create digunakan). Penyenaraian 15 menunjukkan contoh kedua-dua arahan. Sila ambil perhatian bahawa hanya fail f2 telah dibuat.

Penyenaraian 15. Mencipta fail kosong menggunakan sentuhan
$touch f2; sentuh -c f3; ls -l f* -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1 -rw-rw-r--. 1 ian ian 0 2009-08-14 18:27 f2

Anda juga boleh menetapkan tarikh dan masa pengubahsuaian fail (juga dikenali sebagai masa) masing-masing. Pilihan -d memahami banyak format tarikh dan masa yang berbeza, manakala pilihan -t memerlukan masa dinyatakan dalam format MMDDhhmm (tahun dan saat adalah parameter pilihan). Penyenaraian 16 menunjukkan beberapa contoh.

Penyenaraian 16. Menetapkan masa menggunakan sentuhan
$ sentuh -t 200908121510.59 f3 $ sentuh -d 11 pagi f4 $ sentuh -d "dua minggu lepas" f5 $ sentuh -d "semalam 6 pagi" f6 $ sentuh -d "2 hari lalu 12:00" f7 $ sentuh -d "esok 02 :00" f8 $ sentuh -d "5 Nov" f9 $ ls -lrt f* -rw-rw-r--. 1 ian ian 0 2009-07-31 18:31 f5 -rw-rw-r--. 1 ian ian 0 2009-08-12 12:00 f7 -rw-rw-r--. 1 ian ian 0 2009-08-12 15:10 f3 -rw-rw-r--. 1 ian ian 0 2009-08-13 06:00 f6 -rw-rw-r--. 1 ian ian 0 2009-08-14 11:00 f4 -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1 -rw-rw-r--. 1 ian ian 0 2009-08-14 18:27 f2 -rw-rw-r--. 1 ian ian 0 2009-08-15 02:00 f8 -rw-rw-r--. 1 ian ian 0 2009-11-05 00:00 f9

Jika anda merasa sukar untuk mencipta ungkapan untuk tarikh yang dikehendaki, maka anda boleh mengetahui menggunakan arahan tarikh. Perintah ini juga mempunyai pilihan -d dan boleh memahami format tarikh yang sama seperti arahan sentuh.

Anda boleh menggunakan pilihan -r (atau --reference) bersama-sama dengan nama fail rujukan untuk memberitahu program sentuh (atau tarikh) untuk menetapkan tarikh agar sepadan dengan cap masa fail sedia ada. Penyenaraian 17 menunjukkan beberapa contoh.

Penyenaraian 17. Cap masa fail yang dirujuk
$ tarikh Jumaat Ogos 14 18:33:48 EDT 2009 $ tarikh -r f1 Jumaat Ogos 14 18:25:50 EDT 2009 $ sentuh -r f1 f1a $ ls -l f1* -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1 -rw-rw-r--. 1 ian ian 0 14-08-2009 18:25 f1a

Sistem Linux merekodkan masa pengubahsuaian fail dan masa akses untuk memfailkan ( masa Dan masa masing-masing). Kedua-dua cap masa mempunyai nilai yang sama apabila fail dibuat dan ditetapkan semula bersama apabila ia diubah suai. Jika fail telah diakses, masa capaian dikemas kini, walaupun fail itu belum diubah suai. Dalam contoh terakhir kami bekerja dengan arahan sentuh, kami akan melihat masa akses. Pilihan -a (atau --time=atime , --time=access atau --time=use ) menentukan bahawa masa akses harus dikemas kini. Dalam Penyenaraian 18, kami menggunakan perintah kucing untuk mengakses fail f1 dan mencetak kandungannya. Kami kemudian menggunakan perintah ls -l dan ls -lu untuk mengeluarkan masa pengubahsuaian dan masa capaian, masing-masing, untuk fail f1 dan f1a, yang kami cipta menggunakan fail f1 sebagai fail rujukan. Kesimpulannya, dengan menggunakan sentuhan-a kami menukar masa capaian fail f1 kepada masa capaian fail f1a dan semak hasilnya.

Penyenaraian 18. Masa capaian dan masa pengubahsuaian
$ ls -lu f1* -rw-rw-r--. 1 ian ian 4 2009-08-14 18:39 f1 -rw-rw-r--. 1 ian ian 0 2009-08-14 18:25 f1a $ ls -l f1* -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1 -rw-rw-r--. 1 ian ian 0 2009-08-14 18:25 f1a $ sentuh -a -r f1a f1 $ ls -lu f1* -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 f1 -rw-rw-r--. 1 ian ian 0 14-08-2009 18:25 f1a

Untuk mendapatkan maklumat lanjut tentang pelbagai spesifikasi masa dan tarikh, lihat halaman lelaki atau maklumat untuk arahan sentuhan dan tarikh.

Cari fail

Sekarang setelah topik fail dan direktori kami telah habis oleh tukul rekursi dan penggantian, mari kita lihat perintah cari, yang lebih seperti pisau bedah. Perintah find digunakan untuk mencari fail dalam pepohon direktori berdasarkan nama, tarikh atau saiznya. Kali ini kami akan menggunakan direktori lpi103-2 kami sekali lagi.

cari arahan

Perintah find mencari fail atau direktori menggunakan nama penuh atau sebahagian daripadanya; carian boleh dilakukan berdasarkan kriteria lain, seperti saiz, jenis, pemilik, tarikh dicipta atau terakhir diakses. Yang paling biasa ialah mencari mengikut nama atau sebahagian daripadanya. Penyenaraian 19 menunjukkan beberapa contoh carian fail: Kami mula-mula mencari direktori lpi103-2 untuk semua fail yang mempunyai "1" atau "k" dalam namanya, dan kemudian melakukan carian laluan, yang diterangkan secara terperinci dalam nota.

Penyenaraian 19. Mencari fail mengikut nama
$cari. -nama "**" ./f1a ./f1 ./text10 ./backup ./backup/text1.bkp.1 ./backup/text1.bkp.2 ./text1 $ cari . -ipath "*ACK*1" ./backup/text1.bkp.1 $ cari . -ipath "*ACK*/*1" [

Nota:

Dalam contoh pertama Penyenaraian 19, kami menemui kedua-dua fail dan direktori (./backup). Untuk mengehadkan carian, gunakan parameter -type bersama-sama dengan spesifikasi jenis (nilai aksara tunggal): "f" - fail biasa, "d" - direktori, "l" - pautan simbolik. Anda boleh belajar tentang jenis lain dalam halaman manual arahan find. Penyenaraian 20 menunjukkan hasil carian direktori (pilihan -type d) diikuti dengan nama (*, yang dalam kes ini bermaksud semua direktori).

Penyenaraian 20. Mencari fail mengikut jenis
$cari. -jenis d . ./backup $ find . -taip d -nama "*" . ./sandaran

Sila ambil perhatian bahawa parameter -type d tanpa menyatakan nama memaparkan direktori yang namanya bermula dengan titik (dalam kes kami, hanya direktori semasa); keputusan yang sama dicapai dengan menggunakan kad bebas "*".

Anda juga boleh mencari fail mengikut saiznya; Anda boleh mencari fail dengan saiz tertentu (n), serta fail yang saiznya lebih besar (+n) atau lebih kecil (-n) daripada nilai yang ditentukan. Dengan menentukan nilai mula dan tamat, anda boleh mencari fail yang saiznya berada dalam julat yang ditentukan. Secara lalai, pilihan -size untuk mencari menggunakan unit ukuran "b" - blok 512 bait. Unit ukuran lain mungkin "c" (bait) atau "k" (kilobait). Dalam Penyenaraian 21, kami mula-mula mencari semua fail dengan saiz sifar, dan kemudian semua fail dengan saiz 24 atau 25 bait. Sila ambil perhatian bahawa jika anda menentukan pilihan -kosong dan bukannya pilihan -size 0, semua fail dengan saiz sifar juga akan ditemui.

Penyenaraian 21. Mencari fail mengikut saiz
$cari. -saiz 0 ./f1a ./f6 ./f8 ./f2 ./f3 ./f7 ./f4 ./f9 ./f5 $ cari . -saiz -26c -saiz +23c -cetak ./text2 ./text5 ./backup/text1.bkp.1 ./backup/text1.bkp.2 ./text1

Dalam contoh kedua Penyenaraian 21, kami menggunakan pilihan -print, yang merupakan contoh tindakan, yang boleh dilaksanakan pada hasil carian. Dalam penterjemah bash, tindakan ini dilakukan secara lalai melainkan tindakan lain ditentukan. Pada sesetengah sistem dan cengkerang, tindakan mesti ditentukan, jika tidak, anda tidak akan melihat sebarang hasil pada skrin.

Tindakan lain ialah -ls (maklumat fail output, serupa dengan output ls -lids) dan -exec (laksanakan arahan untuk setiap fail). Tindakan -exec mesti berakhir dengan koma bertitik untuk menghalang jurubahasa daripada menganggapnya sebagai set perintah biasa. Letakkan juga () di mana-mana dalam arahan di mana fail yang dikembalikan akan digunakan. Jangan lupa bahawa penterjemah arahan memproses pendakap gigi, jadi ia mesti dinyatakan sebagai urutan pelarian (atau dipetik). Penyenaraian 22 menunjukkan contoh menggunakan pilihan -ls dan -exec untuk memaparkan maklumat tentang fail. Ambil perhatian bahawa contoh kedua tidak mencetak maklumat tentang inod.

Penyenaraian 22. Mencari dan melakukan tindakan pada fail
$cari. -saiz -26c -saiz +23c -ls 933893 4 -rw-rw-r-- 1 ian ian 25 Ogos 11 14:27 ./text2 933900 4 -rw-rw-r-- 1 ian ian 24 Ogos 11 18: 47 ./text5 934193 4 -rw-rw-r-- 1 ian ian 24 Ogos 12 15:36 ./backup/text1.bkp.1 934195 4 -rw-rw-r-- 1 ian ian 24 Ogos 12 15: 36 ./backup/text1.bkp.2 933892 4 -rw-rw-r-- 1 ian ian 24 Ogos 11 14:02 ./text1 $ cari . -saiz -26c -saiz +23c -exec ls -l "()" \; -rw-rw-r--. 1 ian ian 25 2009-08-11 14:27 ./text2 -rw-rw-r--. 1 ian ian 24 2009-08-11 18:47 ./text5 -rw-rw-r--. 1 ian ian 24 2009-08-12 15:36 ./backup/text1.bkp.1 -rw-rw-r--. 1 ian ian 24 2009-08-12 15:36 ./backup/text1.bkp.2 -rw-rw-r--. 1 ian ian 24 2009-08-11 14:02 ./text1

Pilihan -exec boleh digunakan untuk pelbagai tugas, dan kemungkinannya hanya terhad oleh imaginasi anda. Sebagai contoh, arahan

Cari. -kosong -exec rm "()" \;

Mengalih keluar semua fail kosong dari pepohon direktori, dan arahan

Cari. -nama "*.htm" -exec mv "()" "()l" \;

Menamakan semula semua fail dengan sambungan .htm kepada fail dengan sambungan .html.

Dalam contoh terakhir arahan cari, kami mencari fail berdasarkan cap waktu tertentu (yang berfungsi dengan arahan sentuh). Penyenaraian 23 mengandungi tiga contoh.

  1. Apabila menggunakan pilihan -mtime -2, arahan find mencari semua fail yang telah diubah suai dalam dua hari terakhir. Dalam kes ini, sehari adalah 24 jam bermula dari detik semasa. Ambil perhatian bahawa jika anda ingin mencari fail berdasarkan masa akses dan bukannya masa pengubahsuaian, anda boleh menggunakan pilihan -atime untuk melakukan ini.
  2. Menambah pilihan -daystart bermakna kita mahu mengira detik dalam hari kalendar bermula pada tengah malam. Jadi contoh ini tiada f3.
  3. Dalam contoh terakhir, kami menunjukkan penggunaan julat masa yang ditentukan dalam minit dan bukannya hari untuk mencari fail yang diubah suai antara satu jam (60 minit) dan sepuluh jam (600 minit) yang lalu.
Penyenaraian 23. Mencari fail mengikut cap masa
$ tarikh Sab Ogos 15 00:27:36 EDT 2009 $ cari . -mtime -2 -type f -exec ls -l "()" \; -rw-rw-r--. 1 ian ian 0 2009-08-14 18:25 ./f1a -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 ./f1 -rw-rw-r--. 1 ian ian 0 2009-08-13 06:00 ./f6 -rw-rw-r--. 1 ian ian 0 2009-08-15 02:00 ./f8 -rw-rw-r--. 1 ian ian 0 14-08-2009 18:27 ./f2 -rw-rw-r--. 1 ian ian 58 2009-08-14 17:30 ./text10 -rw-rw-r--. 1 ian ian 0 2009-08-14 11:00 ./f4 -rw-rw-r--. 1 ian ian 0 2009-11-05 00:00 ./f9 $ cari . -daystart -mtime -2 -type f -exec ls -l "()" \; -rw-rw-r--. 1 ian ian 0 2009-08-14 18:25 ./f1a -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 ./f1 -rw-rw-r--. 1 ian ian 0 2009-08-15 02:00 ./f8 -rw-rw-r--. 1 ian ian 0 14-08-2009 18:27 ./f2 -rw-rw-r--. 1 ian ian 58 2009-08-14 17:30 ./text10 -rw-rw-r--. 1 ian ian 0 2009-08-14 11:00 ./f4 -rw-rw-r--. 1 ian ian 0 2009-11-05 00:00 ./f9 $ cari . -mmin -600 -mmin +60 -jenis f -exec ls -l "()" \; -rw-rw-r--. 1 ian ian 0 2009-08-14 18:25 ./f1a -rw-rw-r--. 1 ian ian 4 2009-08-14 18:25 ./f1 -rw-rw-r--. 1 ian ian 0 14-08-2009 18:27 ./f2 -rw-rw-r--. 1 ian ian 58 14-08-2009 17:30 ./text10

Kami tidak dapat membimbing anda melalui semua pilihan arahan cari dalam tutorial pantas ini. Jika anda ingin mengetahui lebih lanjut tentang arahan ini, sila rujuk halaman manual yang sepadan.

Penentuan Jenis Fail

Fail selalunya mempunyai sambungan (seperti gif, jpeg atau html) yang memberikan petunjuk kepada perkara yang mungkin ada di dalam fail. Di Linux, sambungan sedemikian adalah pilihan dan biasanya tidak digunakan untuk menentukan jenis fail. Jika anda tahu jenis fail, anda boleh memilih program yang sesuai untuk bekerja dengannya. Arahan fail membolehkan anda mendapatkan beberapa maklumat tentang jenis data yang disimpan dalam satu atau lebih fail. Penyenaraian 24 menunjukkan beberapa contoh penggunaan arahan fail.

Penyenaraian 24. Menentukan kandungan fail
$ teks sandaran fail1 f2 ../p-ishields.jpg /bin/echo backup: teks direktori1: teks ASCII f2: kosong ../p-ishields.jpg: data imej JPEG, standard JFIF 1.02 /bin/echo: ELF 32 -bit LSB boleh laku, Intel 80386, versi 1 (SYSV), dipautkan secara dinamik (menggunakan lib kongsi), untuk GNU/Linux 2.6.18, dilucutkan

Perintah fail cuba menghuraikan setiap fail menggunakan tiga pelbagai cek. Semakan sistem fail menggunakan hasil perintah stat untuk menentukan apa itu fail, contohnya ia mungkin fail kosong atau direktori. Jadi dipanggil sihir menyemak fail carian untuk kandungan tertentu yang membolehkannya dikenal pasti. Tandatangan pengenalan ini juga dikenali sebagai nombor ajaib. Akhir sekali, semakan bahasa memeriksa kandungan fail teks dan cuba tentukan jenisnya (fail XML, kod sumber C atau C++, fail troff atau mana-mana fail kod sumber pemproses bahasa lain). Jika pilihan -k atau --keep-going tidak dinyatakan, maklumat tentang jenis fail pertama yang ditemui akan dicetak dan pemeriksaan lanjut dihentikan.

Perintah fail mempunyai banyak pilihan, yang boleh anda pelajari dari halaman manual. Penyenaraian 25 menunjukkan cara menggunakan pilihan -i (atau --mime) untuk mencetak jenis fail sebagai rentetan MIME.

Penyenaraian 25. Menentukan kandungan fail sebagai MIME
$ file -i backup text1 f2 ../p-ishields.jpg /bin/echo backup: application/x-directory; charset=teks binari1: teks/plain; charset=us-ascii f2: aplikasi/x-kosong; charset=binary ../p-ishields.jpg: image/jpeg; charset=binary /bin/echo: application/x-executable; charset=perduaan

Perintah fail juga berfungsi dengan fail yang mengandungi tandatangan nombor ajaib. Anda boleh mendapatkan maklumat lanjut dalam halaman manual.

Catatan. Perintah mengenal pasti daripada pakej ImageMagick ialah alat tambahan, yang membolehkan anda mendapatkan maklumat yang lebih terperinci tentang fail grafik.

Pemampatan fail

Pemampatan biasanya digunakan semasa membuat sandaran fail, serta semasa mengarkib atau memindahkannya. dua program popular untuk pemampatan fail dalam Linux ini adalah gzip dan bzip2. Perintah gzip menggunakan algoritma Lempel-Ziv dan perintah bzip2 menggunakan algoritma pengisihan blok Burrows-Wheeler.

program gzip dan gunzip

Biasanya, nisbah mampatan tertinggi dicapai apabila memproses fail teks. Banyak format grafik sudah dimampatkan, jadi bagi mereka (dan mungkin untuk yang lain juga) fail binari) pemampatan mungkin tidak berkesan. Untuk menunjukkan hasil memampatkan fail teks yang agak besar, mari salin fail /etc/services ke direktori kami dan mampatkannya dengan gzip, seperti yang ditunjukkan dalam Penyenaraian 26. Kami menggunakan pilihan -p bagi perintah cp untuk mengekalkan cap waktu bagi fail /etc/services. Ambil perhatian bahawa fail yang dimampatkan mempunyai sambungan .gz dan cap masa yang sama.

Penyenaraian 26. Memampatkan dengan gzip
$ cp -p /etc/services . $ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan $ perkhidmatan gzip $ ls -l serv* -rw-r--r--. 1 ian ian 124460 2009-04-10 04:42 services.gz

Fail yang dimampatkan dengan gzip dinyahmampatkan oleh program yang sama, dijalankan dengan pilihan -d, atau dengan arahan gunzip (kaedah kedua adalah lebih biasa). Penyenaraian 27 menunjukkan kaedah pertama. Ambil perhatian bahawa nama dan cap masa fail yang diekstrak adalah sama dengan fail asal.

Penyenaraian 27. Membongkar dengan gzip
$ gzip -d services.gz $ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan

arahan bzip2 dan bunzip2

Seperti yang anda lihat dalam Penyenaraian 28, arahan bzip2 berfungsi sama dengan arahan gzip.

Penyenaraian 28. Memampatkan dengan bzip2
$ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan $ bzip2 perkhidmatan $ ls -l serv* -rw-r--r--. 1 ian ian 113444 2009-04-10 04:42 services.bz2 $ bunzip2 services.bz2 $ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan

Perbezaan antara gzip dan bzip2

Walaupun program bzip2 dan gzip mempunyai banyak pilihan yang sama, ia tidak sama. Anda mungkin perasan bahawa dalam kedua-dua contoh fail yang tidak dibungkus mempunyai nama dan cap masa yang sama seperti fail asal. Walau bagaimanapun, menamakan semula fail atau menjalankan arahan sentuh padanya mungkin mengubah tingkah laku ini. Perintah gzip mempunyai pilihan -N atau --name yang membolehkan anda menyimpan nama dan cap waktu, tetapi arahan bzip2 tidak mempunyai pilihan sedemikian. Perintah gzip juga mempunyai pilihan -l untuk memaparkan maklumat tentang fail yang dimampatkan, termasuk nama yang akan diterima selepas penyahmampatan. Penyenaraian 29 menunjukkan beberapa perbezaan antara arahan ini.

Penyenaraian 29. Beberapa perbezaan antara gzip dan bzip2
$ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan $ gzip -N services $ touch services.gz $ mv services.gz services-x.gz $ ls -l serv* -rw-r--r--. 1 ian ian 124460 2009-09-23 14:08 services-x.gz $ gzip -l services-x.gz nisbah tidak termampat mampat uncompressed_name 124460 630983 80.3% services-x $ gzip -lN services-x.gz nisbah mampat uncompressed_name 124460 630983 80.3% perkhidmatan $ gunzip -N services-x.gz $ ls -l serv* -rw-r--r--. 1 ian ian 630983 2009-04-10 04:42 perkhidmatan $ $ perkhidmatan bzip2 $ perkhidmatan mv.bz2 perkhidmatan-x.bz2 $ perkhidmatan sentuh-x.bz2 $ ls -l serv* -rw-r--r--. 1 ian ian 113444 2009-09-23 14:10 services-x.bz2 $ bunzip2 services-x.bz2 $ ls -l serv* -rw-rw-r--. 1 ian ian 630983 2009-09-23 14:10 perkhidmatan-x $ rm perkhidmatan-x # Tidak memerlukan ini lagi

Kedua-dua gzip dan bzip2 menerima input daripada peranti stdin. Kedua-dua arahan mempunyai pilihan -c untuk mengarahkan output ke peranti stdout.

Terdapat dua arahan lain yang dikaitkan dengan arahan bzip2.

  1. Perintah bzcat membongkar fail ke peranti stdout dan bersamaan dengan perintah bzip2 -dc.
  2. Perintah bzip2recover cuba memulihkan data daripada fail rosak bzip2.

Anda boleh mendapatkan lebih banyak maklumat tentang arahan gzip dan bzip2 dalam halaman manual masing-masing.

Alat pemampatan lain

Dua atur cara lama yang masih biasa ditemui pada sistem Linux dan UNIX ialah mampat dan nyahmampat.

Di samping itu, utiliti zip dan unzip telah dibangunkan untuk sistem pengendalian Linux dalam rangka kerja projek Info-ZIP. Program ini menggunakan fungsi mampatan merentas platform yang dijalankan pada perkakasan berbeza yang menjalankan sistem pengendalian yang berbeza. Perlu diingat bahawa sistem pengendalian yang berbeza mungkin menggunakan atribut fail dan keupayaan sistem fail yang berbeza. Jika anda memuat turun fail zip pemasangan termampat, ekstrak pada Windows, dan kemudian bakarnya ke CD atau DVD untuk pemasangan kemudian pada Linux, anda mungkin mengalami masalah memasang daripada cakera itu; sebagai contoh, tiada sokongan dalam Windows OS pautan simbolik, yang mungkin merupakan sebahagian daripada set sumber fail yang tidak dimampatkan.

Untuk mendapatkan maklumat lanjut tentang ini dan program pemampatan dan penyahmampatan lain, lihat halaman manual masing-masing.

Mengarkibkan fail

Arahan tar, cpio, dan dd digunakan secara meluas untuk mencipta salinan sandaran kumpulan fail atau malah keseluruhan partition, serta untuk mengarkib dan memindahkan fail ke komputer lain atau kepada pengguna lain. Topik sandaran diliputi secara terperinci dalam Peperiksaan Pentadbir Pertengahan LPI 201 (LPIC-2).

Terdapat tiga pendekatan utama untuk membuat sandaran.

  1. Berbeza atau kumulatif pengarkiban – menyandarkan semua data yang telah berubah sejak arkib penuh terakhir dicipta. Untuk memulihkan data, anda mesti mempunyai sandaran penuh terkini dan sandaran pembezaan terkini.
  2. Bertambah pengarkiban – menyandarkan hanya perubahan yang telah berlaku sejak penciptaan arkib tambahan yang terakhir. Untuk memulihkan data, anda mesti mempunyai arkib penuh terakhir dan semua arkib tambahan (mengikut urutan) dibuat selepas penciptaan arkib penuh.
  3. lengkap pengarkiban – sandaran semua data secara keseluruhannya (biasanya sistem fail, direktori atau kumpulan fail). Memandangkan dalam kes ini, masa penciptaan arkib adalah maksimum, pendekatan ini digunakan bersama dengan dua yang lain.

Perintah ini, serta arahan lain yang telah anda ketahui dalam artikel ini, membolehkan anda membuat sandaran dalam mana-mana tiga cara di atas.

arahan tar

Perintah tar (nama asal Arkib Pita) mencipta fail arkib (nama lain ialah tarfile atau tarball) daripada berbilang fail atau direktori, dan juga mengekstrak fail daripada arkib yang dicipta. Jika anda menghantar nama direktori sebagai input kepada arahan tar, maka semua fail dan subdirektori di dalamnya secara automatik akan dimasukkan ke dalam arkib; Ini menjadikan tar sangat mudah untuk mengarkibkan seluruh cawangan pokok direktori.

Output boleh dihantar ke fail, ke peranti pengarkiban (contohnya, pemacu pita atau yang lain storan boleh tanggal) atau ke stdout peranti output standard. Lokasi akhir ditentukan menggunakan pilihan -f. Pilihan lain yang biasa digunakan ialah -c (buat arkib), -x (bongkar arkib), -v (cetak senarai kata kerja yang mengandungi nama fail yang sedang diproses), -z (gunakan pemampatan gzip) dan -j (gunakan mampatan bzip2). Kebanyakan pilihan arahan tar boleh ditentukan secara ringkas dengan menggunakan sempang tunggal, atau secara terperinci dengan menggunakan sempang berganda. Bentuk pendek ditunjukkan dalam contoh kami. Maklumat tentang pilihan tambahan dan anda boleh mencari bentuk terperinci rakaman mereka pada halaman lelaki.

Penyenaraian 30 menunjukkan cara menyandarkan direktori lpi103-2 kami menggunakan tar .

Penyenaraian 30. Menyandarkan direktori lpi103-2 menggunakan tar
$ tar -cvf ../lpitar1.tar . ./ ./text3 ./yab ... ./f5

Biasanya, fail arkib dimampatkan untuk menjimatkan ruang cakera atau masa pemindahan arkib. Versi GNU tar membolehkan anda melakukan kedua-dua operasi secara serentak dengan menggunakan pilihan -z (gzip-compressed) atau -b (bzip2-compressed). Penyenaraian 31 menunjukkan contoh menggunakan pilihan -z dan menunjukkan perbezaan dalam saiz dua fail arkib.

Penyenaraian 31. Memampatkan arkib tar menggunakan gzip
$ tar -zcvf ../lpitar2.tar ~/lpi103-2/ tar: Mengalih keluar pendahuluan `/" daripada nama ahli /home/ian/lpi103-2/ /home/ian/lpi103-2/text3 /home/ian/ lpi103-2/yab ... /home/ian/lpi103-2/f5 $ ls -l ../lpitar* -rw-rw-r--. 1 ian ian 30720 2009-09-24 15:38 .. /lpitar1.tar -rw-rw-r--. 1 ian ian 881 2009-09-24 15:39 ../lpitar2.tar

Penyenaraian 31 menggunakan satu lagi fungsi penting tar. Kami telah menentukan laluan mutlak untuk direktori kami, dan kami melihat bahawa baris pertama output daripada tar memberitahu kami bahawa ia sedang mengalih keluar aksara slash (/) terkemuka daripada nama fail. Ini membolehkan anda memulihkan fail ke mana-mana lokasi lain untuk menyemaknya dan memainkan peranan yang sangat penting apabila memulihkan fail sistem. Jika anda masih perlu menyimpan laluan mutlak, gunakan pilihan -p untuk ini. Elakkan daripada menggunakan laluan mutlak dan relatif bersama semasa membuat arkib, kerana apabila memulihkan daripada arkib, semua laluan akan menjadi relatif.

Perintah tar boleh menambah fail pada arkib sedia ada; Pilihan -r atau --append digunakan untuk ini. Akibatnya, berbilang salinan fail yang sama boleh ditambahkan pada arkib. Dalam kes ini, apabila mengekstrak daripada arkib, fail yang telah ditambahkan akan dipulihkan terakhir. Untuk memulihkan salinan tertentu fail, gunakan pilihan --occurrence. Jika arkib tidak disimpan pada pita, tetapi pada sistem fail biasa, maka anda boleh menggunakan pilihan -u atau --update untuk mengemas kininya. Dalam kes ini, operasi kemas kini adalah serupa dengan operasi tambah fail, kecuali cap masa fail dalam arkib dibandingkan dengan cap masa fail yang ditambahkan, dan hanya fail yang telah berubah sejak arkib dibuat ditambah. . Seperti yang dinyatakan, ini tidak berfungsi apabila menggunakan arkib pita.

Perintah tar boleh membandingkan arkib dengan sistem fail semasa dan mengekstrak fail daripada arkib. Sebagai perbandingan, gunakan pilihan -d , --compare atau --diff. Perbandingan akan menunjukkan semua fail dengan kandungan yang berbeza, serta semua fail dengan cap masa yang berbeza. Secara lalai, hanya fail yang berbeza (jika ada) dipaparkan. Untuk output verbose, gunakan pilihan -v yang dibincangkan sebelum ini. Pilihan -C atau --directory memberitahu arahan tar untuk melaksanakan operasi bermula dari direktori yang ditentukan dan bukannya yang semasa.

Penyenaraian 32 menunjukkan beberapa contoh. Kami menggunakan arahan sentuh untuk menukar cap masa fail f1 dan kemudian melakukan perbandingan sebelum mengekstrak fail f1 daripada salah satu arkib kami. Untuk menunjukkan keupayaan tar kami telah menggunakan pelbagai pilihan.

Penyenaraian 32. Bandingkan dan pulihkan menggunakan tar
$ sentuh f1 $ tar --diff --file ../lpitar1.tar . ./f1: Masa mod berbeza $ tar -df ../lpitar2.tar -C / home/ian/lpi103-2/f1: Masa mod berbeza $ tar -xvf ../lpitar1.tar ./f1 # Lihat di bawah . /f1 $ tar --compare -f ../lpitar2.tar --directory /

Nama fail atau direktori yang diekstrak daripada arkib mesti sepadan dengan nama mereka dalam arkib. Dalam contoh kami, cuba memulihkan fail f1 dan bukannya ./f1 akan gagal. Anda boleh menggunakan penggantian nama, tetapi berhati-hati, jika tidak, hasilnya mungkin tidak seperti yang anda inginkan. Jika anda ingin melihat apa yang disimpan dalam arkib, gunakan pilihan --list atau -t untuk menyenaraikan kandungannya. Penyenaraian 33 menunjukkan contoh penggunaan kad bebas untuk mengekstrak lebih daripada sekadar fail ./f1 daripada arkib.

Penyenaraian 33. Melihat kandungan arkib menggunakan tar
$ tar -tf ../lpitar1.tar "*f1*" ./f1a ./f1

Anda boleh memilih fail untuk diarkibkan menggunakan arahan find, dan kemudian paip hasil carian sebagai input kepada arahan tar. Kami akan melihat kaedah ini apabila mempelajari tentang arahan cpio, tetapi ia juga berfungsi dengan arahan tar.

Seperti arahan lain yang muncul dalam tutorial kami, kami tidak boleh meliputi semua pilihan untuk arahan tar. Untuk maklumat lanjut, lihat lelaki atau halaman maklumat.

arahan cpio

Perintah cpio beroperasi dalam tiga mod: salinan keluar untuk membuat arkib, salin masuk untuk mengekstrak daripada arkib dan salinan-pas untuk menyalin set fail dari satu lokasi ke lokasi lain. Untuk mod salin keluar gunakan pilihan -o atau --create, untuk mod salin masuk gunakan pilihan -i atau --extract, dan akhirnya untuk mod salin-laluan gunakan pilihan -p atau --pass-through. Perintah menerima senarai fail input daripada stdin peranti input standard. Output dihantar sama ada ke peranti output standard stdout atau ke peranti atau fail yang ditentukan dengan pilihan -f atau --file.

Penyenaraian 34 menunjukkan cara menjana senarai fail menggunakan arahan cari dan hantarkannya kepada arahan cpio. Perhatikan penggunaan pilihan -print0 find untuk menjana nama fail sebagai rentetan yang ditamatkan nol, dan pilihan --null cpio yang sepadan untuk membaca data dalam format ini. Menggunakan pilihan ini membolehkan anda mengendalikan nama fail yang mengandungi ruang atau aksara baris baharu. Pilihan -depth memberitahu arahan find untuk memaparkan entri direktori sebelum nama direktori. Dalam contoh kami, kami mencipta dua arkib direktori lpi103-2 kami: satu arkib dengan laluan relatif, yang kedua dengan laluan mutlak. Kami tidak menggunakan pelbagai ciri perintah cari untuk mengehadkan senarai fail (contohnya, mencari hanya untuk fail yang telah berubah minggu ini).

Penyenaraian 34. Membuat sandaran direktori menggunakan cpio
$cari. -depth -print0 | cpio --null -o > ../lpicpio.1 3 blok $ find ~/lpi103-2/ -depth -print0 | cpio --null -o > ../lpicpio.2 4 blok

Jika anda mahu nama fail yang diarkibkan dipaparkan pada skrin, gunakan pilihan -v bagi arahan cpio.

Perintah cpio dalam mod salin masuk (pilihan -i atau --ekstrak) boleh mengeluarkan kandungan arkib atau mengekstrak fail yang dipilih. Apabila mencetak kandungan arkib, beberapa versi lama cpio mengalih keluar tajuk / daripada setiap nama (jika mengandungi satu) dan mencetak mesej yang sepadan. Untuk menyingkirkan mesej luar ini apabila melihat kandungan arkib, anda boleh menentukan pilihan --absolute-filenames. Pilihan ini diabaikan secara senyap-senyap dalam banyak pelaksanaan semasa. Penyenaraian 35 menunjukkan output terpilih bagi kandungan dua arkib kami yang terdahulu.

Penyenaraian 35. Melihat dan mendapatkan semula fail yang dipilih menggunakan cpio
$ cpio -i --senarai "*sandaran*"< ../lpicpio.1 backup backup/text1.bkp.1 backup/text1.bkp.2 3 blocks $ cpio -i --list absolute-filenames "*text1*" < ../lpicpio.2 /home/ian/lpi103-2/text10 /home/ian/lpi103-2/backup/text1.bkp.1 /home/ian/lpi103-2/backup/text1.bkp.2 /home/ian/lpi103-2/text1 4 blocks

Penyenaraian 36 menunjukkan cara mengekstrak semua fail yang mengandungi "teks1" dalam nama mereka, bersama-sama dengan laluannya, ke dalam direktori sementara. Beberapa fail ini terletak dalam subdirektori. Tidak seperti tar , anda perlu menyatakan pilihan -d atau --make-directories secara eksplisit jika pepohon direktori tidak wujud. Selain itu, arahan cpio tidak menggantikan fail sedia ada dengan tarikh kemudian melainkan pilihan -u atau --tanpa syarat ditentukan.

Penyenaraian 36. Mendapatkan semula fail terpilih menggunakan cpio
$ mkdir temp $ cd temp $ cpio -idv "*f1*" "*.bkp.1"< ../../lpicpio.1 f1a f1 backup/text1.bkp.1 3 blocks $ cpio -idv "*.bkp.1" < ../../lpicpio.1 cpio: backup/text1.bkp.1 not created: newer or same age version exists backup/text1.bkp.1 3 blocks $ cpio -id --no-absolute-filenames "*text1*" < ../../lpicpio.2 cpio: Removing leading `/" from member names 4 blocks ./home/ian/lpi103-2/backup/text1.bkp.1 ./home/ian/lpi103-2/backup/text1.bkp.2 ./home/ian/lpi103-2/text1 ./backup/text1.bkp.1 $ cd .. $ rm -rf temp # You may remove these after you have finished

Untuk maklumat lanjut tentang pelbagai pilihan, lihat halaman lelaki.

arahan dd

Dalam bentuk yang paling mudah, arahan dd menyalin fail sumber ke fail baharu. Memandangkan anda sudah biasa dengan arahan cp, anda mungkin tertanya-tanya untuk apa perintah lain yang menyalin fail? Intinya ialah arahan dd boleh melakukan beberapa perkara yang tidak boleh dilakukan oleh arahan cp biasa. Khususnya, ia boleh melakukan transformasi pada fail, seperti menukar daripada huruf kecil kepada huruf besar atau menukar daripada ASCII kepada EBCDIC. Ia juga boleh berfungsi dengan blok fail, yang boleh berguna apabila memindahkan fail ke peranti pita. Perintah ini boleh melangkau atau menggunakan blok fail terpilih sahaja. Akhir sekali, ia boleh membaca dan menulis ke peranti mentah seperti /dev/sda, membolehkan anda mencipta atau memulihkan fail yang merupakan imej bagi keseluruhan partition. Biasanya, anda mesti mempunyai keistimewaan root untuk menulis ke peranti.

Kita akan mulakan dengan contoh mudah, yang menukar fail teks kepada huruf besar menggunakan pilihan penukaran, seperti yang ditunjukkan dalam Penyenaraian 37. Menggunakan pilihan jika, kami menentukan bahawa input harus diambil daripada fail dan bukannya daripada peranti input standard. Terdapat pilihan serupa , yang mengatasi peranti output standard lalai. Untuk menunjukkan keupayaan program, kami menentukan saiz blok input dan output yang berbeza menggunakan pilihan ibs dan obs. Apabila bekerja dengan fail besar, anda mungkin merasa senang menggunakan saiz blok yang lebih besar untuk mempercepatkan pemindahan cakera ke cakera. Dalam kes lain, saiz blok digunakan terutamanya untuk bekerja dengan pita magnetik. Perhatikan tiga baris status pada penghujung penyenaraian, yang menunjukkan bilangan blok keseluruhan dan separa yang dibaca dan ditulis, serta saiz akhir data yang dipindahkan.

Penyenaraian 37. Menukar teks kepada huruf besar menggunakan dd
$ cat text6 1 epal 2 pear 3 pisang 9 plum 3 pisang 10 epal 1 epal 2 pear 3 pisang 9 plum 3 pisang 10 epal $ dd if=text6 conv=ucase ibs=20 obs=30 1 Epal 2 PEAR 3 PISANG 9 PLUM 3 PISANG 10 EPAL 1 EPAL 2 PEAR 3 PISANG 9 PLUM 3 PISANG 10 EPAL 4+1 rekod dalam 3+1 rekod keluar 98 bait (98 B) disalin, 0.00210768 s, 46.5 kB/s

Mana-mana fail boleh menjadi peranti mentah. Ini biasanya berlaku dengan pita, tetapi salinan sandaran keseluruhan partition cakera, seperti /dev/hda1 atau /dev/sda2, boleh diletakkan pada fail atau pita. Sebaik-baiknya, sistem fail peranti hendaklah dinyahlekapkan atau sekurang-kurangnya dipasang dalam mod baca sahaja untuk memastikan data tidak berubah semasa ia disandarkan. Dalam contoh Penyenaraian 38, fail input ialah dev/sda2 peranti mentah, dan fail output ialah fail sandaran-1 biasa yang terletak dalam direktori rumah pengguna root. Untuk membuang fail ke pita atau media boleh tanggal lain, anda mesti menggunakan pilihan seperti of=/dev/fd0 atau of=/dev/st0 .

Penyenaraian 38. Membuat sandaran partition menggunakan dd
# dd if=/dev/sda2 of=backup-1 1558305+0 rekod dalam 1558305+0 rekod keluar 797852160 bait (798 MB) disalin, 24.471 s, 32.6 MB/s

Ambil perhatian bahawa 797,852,160 bait data telah disalin, dan fail yang terhasil sememangnya saiz itu, walaupun ruang cakera Bahagian ini hanya 3% digunakan. Jika anda tidak menggunakan pemampatan perkakasan semasa menyalin ke pita, anda mungkin perlu memampatkan data. Penyenaraian 39 menunjukkan cara melakukan ini; Arahan ls dan df membolehkan anda menganggarkan saiz fail dan peratusan penggunaan sistem fail pada peranti /dev/sda2.

Penyenaraian 39. Mencipta sandaran menggunakan pemampatan dd
# dd if=/dev/sda2 |gzip >backup-2 1558305+0 rekod dalam 1558305+0 rekod keluar 797852160 bait (798 MB) disalin, 23.4617 s, 34.0 MB/s # ls-l backup- -rw -r--. 1 punca akar 797852160 2009-09-25 17:13 sandaran-1 -rw-r--r--. 1 root root 995223 2009-09-25 17:14 backup-2 # df -h /dev/sda2 Saiz Sistem Fail Digunakan Avail Use% Dilekapkan pada /dev/sda2 755M 18M 700M 3% /grubfile

Pemampatan dengan gzip mengurangkan saiz fail sebanyak kira-kira 20%. Walau bagaimanapun, blok yang tidak digunakan mungkin mengandungi data sewenang-wenangnya, jadi walaupun arkib termampat mungkin lebih besar daripada jumlah saiz data dalam partition.

Jika anda membahagikan jumlah bilangan bait yang disalin dengan bilangan rekod yang diproses, anda akan melihat bahawa dd menulis data dalam blok 512-bait. Jika penyalinan dilakukan pada peranti mentah seperti pita, kelajuan penyalinan mungkin dikurangkan dengan ketara. Seperti yang dinyatakan sebelum ini, anda boleh menggunakan pilihan obs untuk menukar saiz blok output, dan pilihan ibs untuk menukar saiz blok input. Pilihan bs boleh digunakan untuk menetapkan saiz keseluruhan untuk kedua-dua blok input dan input. Jika anda menggunakan pemacu pita, pastikan anda menggunakan saiz blok yang sama semasa membaca daripada pita seperti semasa menulis ke pita.

Jika anda perlu menggunakan berbilang kaset pita atau media boleh tanggal lain untuk menyimpan arkib, anda mungkin perlu membahagikan arkib kepada beberapa bahagian yang lebih kecil menggunakan utiliti seperti split. Jika anda perlu melangkau blok seperti cakera atau label pita, anda boleh melakukannya dengan dd . Anda boleh mencari contoh pada halaman manual.

Perintah dd tidak berorientasikan sistem fail, jadi jika anda ingin mengetahui data apa yang terkandung dalam partition, anda perlu memulihkan pembuangannya. Penyenaraian 40 menunjukkan cara memulihkan partition daripada dump yang dibuat dalam Listing 39 ke partition /dev/sdc7, yang dicipta khas untuk contoh kami pada pemacu USB boleh tanggal.

Penyenaraian 40. Memulihkan partition menggunakan dd
# gunzip backup-2 -c | dd of=/dev/sdc7 1558305+0 rekod dalam 1558305+0 merekodkan 797852160 bait (798 MB) disalin, 30.624 s, 26.1 MB/s

Anda mungkin berminat untuk mengetahui bahawa sesetengah program pembakaran CD dan DVD secara rahsia menggunakan arahan dd untuk terus menulis data ke peranti. Jika program anda merekodkan setiap tindakan yang dilakukannya dalam log, maka sekarang setelah anda mengetahui sedikit tentang dd, anda mungkin mendapati ia berguna untuk melihatnya. Jika anda membakar imej ISO ke CD atau DVD, satu cara untuk memastikan tiada ralat semasa proses pembakaran adalah dengan membaca data dari cakera menggunakan dd dan menghantar hasilnya sebagai input kepada arahan cmp. Penyenaraian 41 menunjukkan pendekatan umum yang menggunakan fail arkib kami yang kami buat sebelum ini dan bukannya imej ISO. Ambil perhatian bahawa kami mengira bilangan blok yang perlu dibaca berdasarkan saiz imej.

Penyenaraian 41. Membandingkan imej dengan sistem fail
# ls -l backup-1 -rw-r--r--. 1 punca punca 797852160 25-09-2009 17:13 sandaran-1 # echo $((797852160 / 512)) # hitung bilangan blok 512 bait 1558305 # dd if=/dev/sdc7 bs=51230=51230=51230=51230=51230=51230=51230=51230=51230=51230=51230=51230=51230=518 counts | cmp - backup-1 1558305+0 rekod dalam 1558305+0 rekod keluar 797852160 bait (798 MB) disalin, 26.7942 s, 29.8 MB/s

helo, Pelawat yang dihormati, pembaca, kawan dan lawan, pelanggan tetap dan personaliti tapak lain.

Kami meneruskan siri artikel yang dikhaskan untuk sistem Linux. Hari ini kita akan bercakap tentang konsep penting (mungkin tidak begitu mudah) seperti:

  • Sistem fail Linux;
  • Direktori utama sistem fail akar;
  • Perintah konsol untuk bekerja dengan fail dan direktori.

Jadi, mari kita mulakan.

Sistem fail akar Linux

Sukar untuk membayangkan sistem pengendalian (walaupun seperti Linux) tanpa sistem fail. Perintah seluruh sistem terletak padanya. Sistem fail memantau dengan ketat organisasi, penyimpanan dan penamaan data. Sebagai contoh, apabila program mengakses fail, ia tidak mengetahui apa-apa tentang lokasi maklumat mengenainya. fail ini, pada medium fizikal apa ia direkodkan. Satu-satunya perkara yang program tahu ialah nama fail yang sedang diakses, saiznya dan parameter lain yang membezakan fail yang dicari daripada banyak fail lain (tarikh dan masa fail itu dicipta, nama pemilik fail, hak dan kaedah mengakses fail, dsb.). Ia menerima semua data ini daripada sistem fail. Sistem faillah yang menentukan tempat dan cara fail akan ditulis pada media fizikal (contohnya, cakera keras atau peranti boleh tanggal). Semua direktori (juga dikenali sebagai folder), subdirektori dan fail yang dikumpul di satu tempat adalah data sistem fail. Selain itu, salah satu daripada direktori ini dalam Linux-sistem adalah yang paling penting, iaitu "atas" (dengan kata lain, "root") sistem fail - ia mengandungi semua direktori dan fail lain.

Untuk anda memahami apa yang kami bincangkan, saya membuka direktori sistem fail Linux melalui pengurus fail Panglima Tengah Malam (MC). Bahagian atas sistem fail (direktori akar) ditunjukkan dengan anak panah merah - dan pada itu semua sistem fail lain dipasang. Seterusnya, kami akan cuba menerangkan dengan lebih jelas semua yang anda lihat dalam gambar pada masa ini (dalam teks kami akan membincangkan konsep tertentu supaya jelas apa yang kami bicarakan, dan anda boleh mendapatkan kesan anda dengan melihat gambar) .

Jika cakera keras dibahagikan kepada sekatan, maka setiap daripada mereka mempunyai sistem fail berasingan dengan akarnya sendiri dan struktur direktorinya sendiri. Mana-mana sistem pengendalian menyokong berbilang sistem fail, contohnya, Windows LEMAK, FAT32, NTFS dan lain-lain. Linux tidak terkecuali. Walau bagaimanapun, adalah penting untuk membezakan antara sistem fail yang boleh digunakan sebagai sistem fail akar dan sistem fail yang hanya menyokong sistem pengendalian tetapi tidak digunakan untuk pemasangan. Linux atau Windows(Ini termasuk, sebagai contoh, ISO9660(model ini memastikan keserasian media di bawah sistem pengendalian yang berbeza), UDF(dan ini adalah format sistem fail khas yang direka untuk menyimpan fail pada media optik) dan lain-lain). Kami tidak akan mempertimbangkan sistem fail Windows, kami tidak akan memikirkan sistem fail yang tidak digunakan untuk memasang sistem pengendalian, tetapi hanya akan membuat gambaran ringkas dan berkenalan dengan beberapa yang paling terkenal sistem fail akar Linux.

  • samb - Sistem Fail Lanjutan(sistem fail lanjutan) sistem fail pertama yang direka khusus untuk sistem pengendalian kernel Linux.
  • ext2 -Sistem Fail Lanjutan Kedua (secara literal: "sistem fail lanjutan kedua")- sistem fail standard, tetapi sudah lapuk Linux. Dari segi kelajuan dan prestasi, ia boleh berfungsi sebagai penanda aras dalam ujian prestasi sistem fail. Satu-satunya kelemahannya ialah ia bukan sistem fail jurnal (sistem fail jurnal ialah sistem yang merekodkan jurnal dan menyimpan senarai perubahan, yang seterusnya membantu mengekalkan integriti sistem fail semasa kegagalan). Kesilapan ini telah diperbetulkan dalam sistem fail ext3 seterusnya.
  • ext3 -Sistem Fail Lanjutan Ketiga (versi ketiga sistem fail lanjutan) versi sistem fail yang lebih baik ext2 dengan sokongan pembalakan, yang sudah pasti meningkatkan kebolehpercayaannya.
  • samb4 - Sistem Fail Lanjutan Keempat (versi keempat sistem fail lanjutan)- sistem fail terkini Linux. Bermula dari inti Linux 2.6.28(dikeluarkan pada 25 Disember 2008) sistem fail sudah dianggap stabil dan digunakan secara lalai dalam banyak pengedaran Linux.
  • Sistem fail ext4 dilihat sebagai langkah peralihan ke arah sistem fail generasi seterusnya Btrfs, yang sudah mendakwa sebagai sistem fail utama Linux pada masa akan datang.

Perhatian! Terdapat beberapa sistem fail lain, contohnya, ReiserFS, JFS, XFS dan lain-lain, tetapi tidak digalakkan untuk menggunakannya di rumah, kerana ReiserFS sensitif terhadap kegagalan dan perlu didefragmentasi secara berkala, JFS Tidak berfungsi dengan baik dengan fail besar (contohnya, dengan video), adalah lebih baik untuk menggunakan sistem fail ini untuk pelayan pangkalan data, dan XFS bagus untuk digunakan pada stesen grafik untuk pemprosesan video.

Mari kita ulangi lagi (pengulangan adalah ibu pembelajaran) :). Apabila memasang Linux sistem fail akar dicipta pada partition cakera keras yang anda pilih, dan untuk Linux dialah yang paling penting. Untuk ini semua sistem fail lain pada peranti lain akan dipasang. Sistem fail akar juga dipasang, tetapi bukan pada sistem fail lain, tetapi untuk “ Linux itu sendiri", dengan direktori akar berfungsi sebagai titik pelekap. Oleh itu, apabila sistem boot, sistem fail akar dipasang terlebih dahulu, dan apabila ia selesai, ia dinyahlekap terakhir (kita akan bercakap tentang konsep pemasangan dan nyahlekap dalam artikel berikut - ini adalah topik yang berasingan dan juga penting ). Sistem fail akar mengandungi satu set direktori dan utiliti standard, tanpa kerja yang mustahil Linux. DALAM Linux Direktori akar ditetapkan sebagai " / ” (slash). Nama penuh (dengan kata lain - laluan) semua direktori lain diperoleh daripada " / ”, yang mana nama direktori bersarang berturut-turut dilampirkan di sebelah kanan. Nama direktori dalam laluan juga dipisahkan oleh aksara "/". Sebagai contoh, tulis / rumah bermaksud direktori " rumah” dalam direktori akar (“/”) , A / rumah/Sonikelf- katalog “ Sonikelf"dalam katalog" rumah”, yang seterusnya terletak dalam direktori akar. Direktori yang disenaraikan dengan cara ini, berakhir dengan nama fail, membentuk laluan penuh ke fail.

DALAM Linux, sebagai tambahan kepada laluan penuh, terdapat juga laluan relatif, yang dibina dengan cara yang sama seperti yang lengkap - dengan penghitungan yang dipisahkan dengan garis miring (“/”) semua nama direktori yang ditemui semasa berpindah ke direktori atau fail yang dikehendaki. Terdapat hanya satu perbezaan penting antara laluan penuh dan laluan relatif: laluan relatif bermula dari direktori semasa, dan laluan penuh sentiasa bermula dari direktori akar. Linux membezakan antara laluan penuh dan relatif hanya: jika nama objek bermula dengan “ / ” ialah laluan penuh, dalam mana-mana kes lain ia adalah laluan relatif.

Direktori utama sistem fail akar
Dalam pengedaran yang berbeza Linux Direktori juga mungkin berbeza: sesetengahnya akan mempunyai fail/direktori konfigurasi tambahan, dan beberapa fail konfigurasi mungkin dinamakan sesuatu yang lain. Saya akan memberikan nama direktori yang disertakan dalam pengedaran Fedora. Jadi, di sini kita pergi:

/ - direktori akar

  • /bin- mengandungi utiliti standard Linux. Atau katakan begini - direktori ini mengandungi fail boleh laku utama (dalam Windows, fail tersebut mempunyai sambungan .exe), boleh diakses oleh semua pengguna, dan juga mengandungi pautan simbolik ke fail boleh laku. Pautan simbolik ialah fail khas dalam sistem fail, di dalamnya hanya terdapat satu atau dua baris yang menunjukkan laluan penuh yang mesti dibuka apabila cuba mengakses pautan ini (fail).
  • /boot- mengandungi fail konfigurasi pemuat but GRUB, imej kernel (tiga yang terakhir disimpan secara lalai), fail Initrd. Untuk menjelaskan dengan jelas apakah fail mitos ini Initrd, mari jelaskan sedikit. Bilakah ia bermula bootstrap sistem, pertama kali dipasang maya sementara cakera yang mengandungi Sementara sistem fail akar, yang seterusnya digunakan untuk melancarkan kernel Linux. Fail Initrd- imej sistem akar sementara ini yang disimpan pada peranti but.
  • /dev- mengandungi fail peranti. DALAM peranti Linux merujuk kepada peralatan yang disambungkan kepada sistem semasa proses but kernel atau semasa sistem sedang berjalan. Peranti ini mewakili kaedah untuk memasukkan atau mengeluarkan maklumat. Sebagai contoh, cakera keras ialah peranti input (rakaman) dan keluaran (membaca), tetikus ialah peranti input. Setiap pergerakan atau klik pada butang tetikus menghantar watak ke peranti / dev/tetikus, papan kekunci juga merupakan peranti input. Kebanyakan peranti masuk Linux adalah fail dalam sistem fail khas (pengecualian adalah kad rangkaian). Dan fail ini disimpan dalam direktori / dev, di mana sistem mengaksesnya untuk melaksanakan tugas berkaitan I/O.
  • /dan lain-lain- mengandungi fail konfigurasi sistem pengendalian dan semua perkhidmatan rangkaian. Direktori ini boleh dibandingkan dengan pendaftaran Windows, tetapi dalam Windows tetapan seluruh sistem disimpan dalam satu fail binari yang besar, dan dalam Linux- dalam fail konfigurasi berbeza yang boleh diedit dengan editor teks biasa.
  • /rumah- nama katalog bercakap untuk dirinya sendiri. Ini mengandungi direktori rumah semua pengguna yang berdaftar dalam sistem. Simpan direktori rumah pengguna fail pengguna, dan tetapan tersuai pelbagai program. Seperti yang telah kami nyatakan dalam artikel sebelumnya, dan oleh itu setiap pengguna mempunyai direktori tersendiri yang unik dan tidak dapat ditiru untuk fail peribadi peribadinya. Direktori ini dipanggil direktori Home pengguna dan ditetapkan, seperti yang kami katakan sedikit lebih awal, /home/UserName. Bahagian ini direktori tersuai dan fail sistem pengendalian menjadikannya lebih mudah untuk menyimpan data dan meningkatkan kebolehpercayaan sistem pengendalian itu sendiri.
  • /lib- Pelbagai perpustakaan dan modul kernel terdapat di sini. Semasa pemasangan pelbagai program dalam Linux (termasuk pemacu), (kita sudah bercakap tentang mereka) agar program dapat berfungsi dengan baik. Dalam kebanyakan kes, kebergantungan ini adalah perpustakaan - satu set fail yang dipasang dengan cara khas yang disambungkan kepada program yang dipasang semasa pemasangan.
  • /hilang+ditemui- direktori ini diperlukan untuk menyimpan fail yang rosak sekiranya berlaku masalah dengan sistem fail, yang telah dipulihkan selepas, sebagai contoh, penyahlekapan sistem fail yang salah. Ini adalah direktori yang sangat berharga; anda tidak boleh memadamkannya (ia masih akan muncul semula).
  • /lain-lain- boleh mengandungi apa sahaja.
  • /mnt Dan /media- biasanya direktori ini mengandungi titik pelekap. Dalam pengedaran Linux moden, proses ini biasanya berlaku secara automatik. Dalam kes ini, subdirektori dicipta dalam direktori /mnt atau /media, yang namanya sepadan dengan nama volum yang dipasang.
  • /opt- program yang dipasang dengan ruang cakera yang besar atau pakej tambahan biasanya terletak di sini, sebagai contoh, saya hanya mempunyai dua program dalam direktori ini - ini adalah Adobe Reader Dan Google Chrome
  • /proc- ini bukan direktori biasa, ia adalah direktori sistem fail pseudo procfs, yang digunakan untuk menyediakan maklumat tentang proses (dengan kata lain, ia adalah sistem fail maya yang menyediakan komunikasi dengan kernel dan dipasang dalam / direktori proc). Ya, ya, dalam sistem Linux Terdapat objek fail maya yang dipanggil direktori /proc. Ia wujud hanya semasa sistem berjalan dalam RAM komputer. Direktori juga menarik dari sudut pandangan keselamatan. Banyak utiliti yang memaparkan maklumat tentang sistem (contohnya, arahan ps), ambil data sumber mereka daripada direktori ini.
  • /root- direktori pengguna (kami menyebut siapa ini dalam salah satu artikel sebelumnya).
  • /lari- ini benar-benar katalog baru, yang muncul baru-baru ini. Dan ia dicipta (seperti yang difikirkan oleh pembangun) untuk menyimpan data yang dilancarkan oleh aplikasi yang diperlukan semasa operasi (ini boleh menjadi perkhidmatan yang dilancarkan oleh sistem itu sendiri, dan program yang anda lancarkan sendiri).
    Ini termasuk:
    • ID Proses PID(setiap proses yang berjalan dalam persekitaran Linux mempunyai pengecam uniknya sendiri - dengan kata lain, ini ialah alamat (dalam bentuk berangka) proses yang mana proses berjalan lain akan berinteraksi semasa operasi);
    • Maklumat komunikasi antara pemproses (dalam istilah mudah, ini adalah pertukaran data antara proses yang sedang berjalan);
    • Fail terkunci (jika semasa operasi aplikasi sama ada tidak dimulakan atau tidak stabil? ini mungkin bermakna sesetengah fail aplikasi ini dikunci oleh proses lain dan ini berlaku apabila beberapa aplikasi cuba menggunakan satu sumber dikongsi sekaligus); - baik, dan data lain yang diperlukan semasa bekerja.
  • /sbin- satu set utiliti untuk pentadbiran sistem, mengandungi fail boleh laku yang diperlukan untuk boot sistem dan memulihkannya dalam pelbagai situasi yang rumit. Hanya root mempunyai hak untuk menjalankan utiliti ini.
  • /tmp- direktori tempat fail sementara disimpan. Linux, Tidak seperti Windows, memantau kebersihan dan kerap membersihkan direktori ini.
  • /usr- mengandungi program pengguna, dokumentasi, kod sumber program dan kernel. Dari segi saiz, ia adalah salah satu direktori terbesar dalam sistem fail. Hampir semua program dipasang dalam direktori ini. Dan ia (katalog ini), dengan regangan yang besar, boleh dibandingkan dengan katalog Fail program V Windows.
  • /var- mengandungi fail yang tertakluk kepada perubahan yang paling kerap. Sebagai contoh, cache pelbagai program; kunci fail untuk tidak boleh diterima penggunaan serentak satu program oleh beberapa pengguna; fail log sistem; fail sementara (apabila komputer dimatikan, kandungannya dikosongkan); maklumat tentang pelbagai program; maklumat umum tentang keadaan sistem sejak but terakhir, log masuk, dsb.; baris gilir cetakan, baris gilir faks, serta peti masuk pengguna, dsb.

Kesimpulan. Sistem fail dalam Linux ini adalah keseluruhan yang tidak boleh dibahagikan, bermula dari direktori akar (yang dipanggil "atas"), dan di dalam direktori boleh terdapat keseluruhan cakera atau sekatannya (dengan sistem fail lain), yang boleh dipasang dengan mudah (dilampirkan) dan hanya sebagai mudah ditanggalkan (tertanggal) daripada unik, bersatu, tidak dapat dipisahkan, utuh pokok. Saya menyerlahkan khas perkataan ini untuk membuat perbezaan dari sistem fail jelas. Windows. Jika ada yang tidak tahu, Windows Setiap pemacu logik ialah direktori akar. Sebagai contoh, jika terdapat tiga pemacu logik - C, D, F, yang bermaksud akan ada tiga direktori akar.

Perintah yang diperlukan yang perlu anda ketahui untuk berfungsi dengan fail dan direktori

Sekarang dalam Linux ada yang bagus GUI, konsol digunakan semakin kurang (yang secara peribadi membuat saya sedih). Walau apa pun, pengetahuan tentang asas yang mudah, iaitu, arahan yang mudah dan berguna, diperlukan untuk mana-mana pengguna (contohnya, anda mengalami ranap sistem X- pelayan (secara kasarnya, ini adalah antara muka grafik yang dipanggil dalam Linux- ini bukan takrifan yang tepat sepenuhnya, tetapi pada masa ini, kami tidak akan menyelidiki rimba terminologi) atau anda perlu memasang program daripada kod sumber, atau sesuatu yang lain). Anda tidak boleh melakukannya tanpa konsol (atau terminal). Dan untuk berfungsi dengan berkesan dalam konsol, anda perlu mengetahui arahan Linux. Secara umum, terdapat banyak arahan, jadi tidak realistik untuk merangkumi semuanya (sekurang-kurangnya dalam rangka artikel ini), jadi buat masa ini kami akan mengehadkan diri kami kepada arahan untuk bekerja dengan fail dan direktori.

Catatan:
Sila ambil perhatian bahawa semua nama fail dan nama arahan mesti dimasukkan dalam kes yang betul, i.e. nama dalam Linux"sensitif huruf besar-besaran". Sebagai contoh, arahan cd tidak sama sekali dengan arahan Cd atau CD. Perkara yang sama berlaku untuk nama fail dan direktori.

arahan cd- digunakan untuk menavigasi pepohon direktori. Jika anda memasukkan arahan ini tanpa hujah (iaitu tulis sahaja CD- lihat baris pertama dalam rajah), kemudian anda akan sampai ke direktori rumah anda, dan untuk pergi ke mana-mana direktori lain, anda perlu menentukan laluan ke sana. Secara lalai, anda pada mulanya sentiasa berada dalam direktori rumah anda (/home). Baris pertama mengandungi laluan relatif, yang kedua - laluan penuh. Jika anda perlu beralih ke mana-mana direktori lain, kemudian masukkan CD, pastikan anda mempunyai ruang dan direktori di mana anda perlu pergi, contohnya cd /usr. Baris keempat angka menunjukkan dalam kurungan persegi bahawa kami telah berpindah ke direktori usr. Anda boleh menentukan keseluruhan laluan sekaligus, contohnya, cd /usr/games. Anda akan dibawa ke direktori permainan, yang terletak dalam direktori usr, yang seterusnya terletak dalam direktori root sistem. Untuk kembali kepada anda direktori rumah, hanya nyatakan laluan relatif cd ~.

Sekarang, dengan sedikit latihan, anda sudah tahu bagaimana untuk berpindah dari direktori ke direktori, sudah tiba masanya untuk mempelajari cara melihat kandungan direktori. Dan ia akan membantu kami dengan ini perintah ls. Dengan bantuannya anda boleh memaparkan senarai fail dan direktori dalam direktori semasa. Pasukan ls banyak pilihan. Pasukan itu sendiri ls(tanpa kunci) tidak akan menunjukkan semua fail dalam direktori. Sesetengah fail disembunyikan dan hanya boleh dilihat dengan menentukan kunci tambahan (pilihan) kepada arahan ls. Jika anda menaip ls -a, maka kita akan melihat senarai semua orang fail direktori (walaupun yang tersembunyi akan dibuka).

Ia tidak perlu berada dalam direktori yang kandungannya anda ingin ketahui menggunakan arahan ls . Sebagai contoh, untuk melihat apa yang ada dalam direktori / dan lain-lain, semasa masih dalam direktori utama anda, masukkan:

ls -al / etc

Di sini kami telah menentukan dua kekunci - tunjukkan fail tersembunyi (a) dan paparan maklumat (l). Sila ambil perhatian bahawa kami boleh menentukan beberapa kunci sekaligus untuk mendapatkan semua maklumat tentang direktori atau fail.

Berikut ialah pilihan arahan ls yang paling biasa digunakan:

-a (semua)- memaparkan senarai semua fail dalam direktori, termasuk fail tersembunyi;

-l (panjang)- akan memaparkan maklumat tentang kandungan direktori, termasuk hak akses (lajur pertama), pemilik (lajur kedua), kumpulan (lajur ketiga), saiz (lajur keempat), masa penciptaan (lajur kelima), sama ada fail itu pautan simbolik ke fail lain dan yang mana satu (lajur keenam);

-r (terbalik)- akan menyenaraikan kandungan direktori dalam susunan terbalik;

-S (saiz)- menyusun fail mengikut saiz.

Perkara berikut berguna dan perlu pasukan - pwd. Bergerak melalui direktori yang berbeza, anda boleh mendapati diri anda berada dalam situasi yang agak melekit apabila anda tidak tahu atau tidak ingat nama direktori semasa - dengan kata lain, anda tersesat dalam sistem fail :). Lagipun, secara lalai dalam Linux jemputan baris arahan hanya memaparkan nama direktori semasa, bukan laluan penuh kepadanya. Di sinilah pasukan pwd akan memberikan anda perkhidmatan yang tidak ternilai

Tengok baris pertama. Tanda kurung segi empat sama menunjukkan bahawa saya berada dalam direktori perkhidmatan. Tetapi di mana ia terletak, di mana atau direktori mana yang tidak jelas sepenuhnya. Dengan memasukkan arahan di atas, saya diberi laluan penuh ke direktori ini (baris kedua). Dengan arahan ini anda pasti tidak akan tersesat dalam sistem fail Linux.

arahan mkdir- penciptaan direktori baharu. Dalam direktori rumah pengguna - / rumah, seperti mana-mana yang lain, anda boleh mencipta bilangan subdirektori yang tidak terhad, di dalamnya - subdirektori anda sendiri, dsb. Dalam erti kata lain, anda memiliki "subtree" sistem fail yang akarnya ialah direktori rumah pengguna.
Untuk mengatur subpokok sedemikian, anda perlu membuat direktori di dalam direktori utama. Inilah kegunaan utiliti itu mkdir. Ia digunakan dengan satu parameter yang diperlukan: nama direktori yang akan dibuat. Secara lalai direktori akan dibuat dalam direktori semasa.

Mari buat direktori glob(baris pertama dalam rajah). Mari kita masukkan arahan mkdirglobus. Untuk memastikan bahawa direktori telah dibuat, masukkan arahan ls dengan kunci - F(untuk setiap nama direktori, tambahkan akhiran "/"). Direktori telah dibuat.

Seterusnya. Anda boleh menggunakan arahan ini untuk memindahkan fail dan direktori. U mv dua parameter yang diperlukan: yang pertama - fail atau direktori yang hendak dialihkan mesti ditentukan, yang kedua - fail atau direktori destinasi (destinasi) mesti ditentukan. Nama fail dan direktori boleh dinyatakan dalam sebarang bentuk yang sah: menggunakan penuh atau laluan relatif. selain itu, mv membolehkan anda memindahkan bukan sahaja satu fail atau direktori, tetapi beberapa sekali gus (fail/direktori disenaraikan dipisahkan oleh ruang).

Mari berlatih sedikit: buat dua direktori dalam direktori rumah anda - Globus Dan Dos dan buat fail - dokumen. Sekarang mari kita mula berlatih:

1) Mari kita menamakan semula satu fail kepada yang lain. Untuk menamakan semula, sebagai contoh, fail dokumen V dokumen.lama, masukkan:

mv document dokument.old

2) Sekarang mari kita alihkan satu direktori ke direktori lain. Untuk mengalihkan direktori Globus Dos, masukkan:

mv Globus Dos

Jika direktori Dos sudah wujud (seperti dalam kes kami), mv akan meletakkan Globus dalam Dos. Dan jika katalog Dos Anda tidak menciptanya ketika itu mv RENAME (tulis ganti) Globus V Dos

3) Untuk mengalihkan fail atau direktori yang tiada dalam direktori semasa, nyatakan nama penuh dan laluannya sebagai pilihan.

Contohnya, untuk memindahkan fail /usr/tmp/document ke direktori kerja semasa, masukkan:

mv /usr/tmp/dokument txt.txt

Fail dokumen pada asalnya masuk /usr/tmp/, kami mengalihkannya ke direktori utama dan menamakannya kepada txt.txt

4) Sekarang untuk memindahkan fail txt.txt daripada direktori kerja semasa ke direktori /usr/tmp, dail:

mv txt.txt /usr/tmp

Fail dalam direktori tmp mungkin ada banyak, jadi untuk kemudahan saya bahagikan dan kurangkan gambar. Baris kedua bermaksud bahawa untuk memastikan fail kami dialihkan, kami mesti pergi ke direktori ini, yang kami lakukan menggunakan arahan CD. Dan dengan bantuan pasukan ls kami telah membuka katalog untuk tontonan tmp dan memastikan pemindahan itu berjaya.

Perintah berguna dan perlu seterusnya ialah cp.
Ia mencipta salinan fail. Utiliti cp juga memerlukan kehadiran dua parameter wajib: yang pertama ialah apa yang ingin kita salin (fail atau direktori), yang kedua ialah tempat kita ingin menyalinnya (destinasi). Sebagai contoh, anda perlu menyalin fail dokumen kepada katalog Globus- masukkan arahan

dokumen cp Globe

dan dalam katalog Globus fail akan muncul dokumen(ini akan menjadi salinan fail dokumen, yang terdapat dalam direktori rumah kami)

Menggunakan arahan cp anda boleh menyalin bukan sahaja satu fail atau direktori pada satu masa - anda boleh, dengan menyenaraikan semua yang anda ingin salin, menunjukkan ini kepada arahan cp. Sebagai contoh, kita perlu menyalin dua fail dokumen Dan dokumen.lama kepada katalog Dos, tiada apa yang lebih mudah - senaraikan semua fail atau direktori yang dipisahkan oleh ruang:

cp dokument dokument.old Dos

Anda bukan sahaja boleh menyalin, tetapi juga memadam fail dan direktori, dan mereka akan membantu kami dengan ini arahan rm(memadam fail)..

.. DAN rmdir(mengalih keluar direktori). rmdir akan bersetuju untuk memadam direktori hanya jika ia kosong, i.e. tiada fail atau subdirektori di dalamnya.

Anda boleh memadamkan direktori bersama-sama dengan semua kandungannya dengan arahan rm dengan kunci" -r" Pasukan rm -r nama direktori ialah cara yang sangat mudah untuk kehilangan semua fail dalam sekelip mata: ia secara rekursif (istilah ini bermaksud lebih kurang sama dengan Windows lari penyahpasang) melalui keseluruhan direktori, memadam semua yang ditemui - fail, subdirektori, dll., dan kunci " -f" (paksa) menjadikan kerjanya lebih tidak dapat dielakkan, kerana ia menyekat permintaan seperti "memadam fail yang dilindungi tulis," jadi rm berfungsi dengan senyap dan tanpa henti. Berhati-hati apabila menggunakan arahan ini.

perintah kucing- membolehkan anda memaparkan kandungan mana-mana fail, tetapi dalam bentuk ini arahan ini praktikalnya tidak digunakan. Jika fail terlalu besar, kandungannya akan menatal melalui skrin, dan anda hanya akan melihat baris terakhir fail. Menggunakan arahan ini, anda boleh menggabungkan dan menggabungkan salinan fail, serta mencipta fail baharu. Jika anda hanya menaip pada baris arahan kucing dan tekan Masuk, maka anda boleh memasukkan (dan oleh itu melihat) teks pada skrin. Tekan kekunci berulang kali Masuk akan menggandakan garisan dan membenarkan yang seterusnya bermula. Apabila teks ditaip, tekan kekunci serentak Ctrl Dan d.

Ini berlaku kerana anda memasuki baris pertama sendiri, dan baris kedua disalin oleh arahan kucing ke skrin. Jika anda mengubah hala (iaitu menulis) output ke fail txt, maka tiada penggandaan akan berlaku, tetapi fail baharu dengan teks yang ditaip akan muncul dalam direktori kerja, yang boleh dilihat dengan mudah menggunakan arahan ini:

kucing > txt

Perintah ini akan dapat membaca dan membuka mana-mana fail, bukan hanya teks, tetapi tidak akan ada faedah daripada membuka, contohnya, fail grafik. Satu set aksara yang mengelirukan akan dipaparkan pada skrin.

Beberapa pilihan yang boleh digunakan dengan arahan ini:

  • -A menunjukkan semua watak yang tidak kelihatan;
  • -E menunjukkan aksara akhir baris;
  • -e menunjukkan aksara bukan pencetakan ditambah aksara akhir baris;
  • -b nombor baris bukan kosong;
  • -n nombor semua baris.

Mari cuba gabungkan dua fail menjadi satu menggunakan arahan kucing:
Kami mempunyai dua fail - dokumen Dan txt, kami akan menggabungkannya menjadi satu galina dengan memasukkan arahan

txt dokumen kucing >galina

Itu sahaja - dua fail kami digabungkan menjadi satu, menyimpan kedua-dua fail pertama dan kedua dalam satu fail biasa :)

Jika fail terlalu besar, maka untuk melihatnya pada skrin anda perlu gunakan dengan semakin banyak arahan.

  • lebih memaparkan kandungan fail pada skrin halaman demi halaman, hanya saiz keseluruhan skrin. Untuk melihat halaman seterusnya, anda perlu menekan bar ruang. Anda boleh keluar dari mod tontonan menggunakan kekunci Q.
  • kurang mengandungi semua fungsi dan perintah kawalan output yang terdapat dalam lebih banyak dan tambahan, contohnya, untuk bergerak melalui teks, anda boleh menggunakan kekunci Anak panah atas, Anak panah ke bawah, PgUp, PgDown.
  • cari arahan- mencari fail. Dengan arahan ini anda boleh melihat semua fail atau direktori yang namanya mengandungi corak yang anda cari. Contohnya, untuk mencari fail yang mengandungi perkataan dokument.old dalam nama, masukkan

cari dokumen.lama

Pasukan cari menemui semua fail dokumen.lama. Terdapat tiga daripada mereka dalam sistem. Anda juga boleh menetapkan carian yang lebih lanjut, sebagai contoh, jika sebaliknya dokumen.lama Anda akan menunjukkan "sekeping" nama, contohnya " doku". SEMUA fail yang mengandungi gabungan huruf ini akan ditemui.

Terdapat satu lagi arahan yang serupa untuk mencari fail - ini cari. Perintah ini mempunyai banyak pilihan, tetapi pilihan yang paling biasa digunakan ialah -nama- ia mencari semua fail dan direktori yang mengandungi gabungan huruf yang anda tentukan dalam nama mereka.

Satu lagi arahan yang berguna - yang mana. Dia menunjukkan kedudukan boleh dilaksanakan fail. Perintah ini berguna apabila mencipta butang untuk melancarkan aplikasi.

Untuk membuat butang pelancaran, anda mesti mengetahui arahan pelancaran untuk aplikasi yang anda ingin buat butang pelancaran pada desktop. Angka ini menunjukkan bahawa ls menjalankan arahan- Ini /usr/bin/ls

arahan yang jelas(dan juga pintasan papan kekunci Ctrl+L) - mengosongkan tetingkap terminal. Ini boleh berguna apabila anda bergerak melalui direktori atau fail, kerana tetingkap terminal dipenuhi dengan sekumpulan arahan atau hanya beberapa maklumat. Dalam kes ini, gesaan baris arahan akan dialihkan ke bawah - yang tidak selalunya mudah. Untuk tidak meninggalkan baris arahan dan masukkannya semula, anda perlu menggunakan arahan itu jelas.

Dan akhirnya, saya ingin menyebut dua lagi arahan yang berguna dan sangat diperlukan.

Yang pertama ialah sejarah. Nama pasukan bercakap untuk dirinya sendiri. Ini ialah sejarah arahan yang anda masukkan dalam tetingkap terminal. Untuk pemula atau pengguna lanjutan, agak membosankan untuk mengingati cara menulis arahan ini atau itu (saya tidak bercakap tentang arahan satu perkataan, tetapi mengenai arahan yang mengandungi 2-3-4 perkataan, sebagai contoh, system-config- pengesahan). Perintah ini akan memaparkan senarai arahan yang dimasukkan sebelum ini (senarai arahan ini juga boleh dilihat dalam fail. bash_history. Ia terletak dalam folder rumah pengguna anda). Dail sahaja: !"nombor arahan masuk sejarah", Sebagai contoh !847 .

Dan kami akan menamatkan perkenalan kami dengan mungkin pasukan yang paling penting Linux. Ini adalah pasukan lelaki- ringkasan untuk " manual" (manual). Anda boleh menggunakannya untuk memanggil halaman dokumentasi tentang tujuan dan penggunaan arahan dalam sistem. Dengan memasukkan lelaki, ruang dan nama mana-mana arahan, anda akan melihat halaman dokumentasi untuk arahan yang dipilih, contohnya, masukkan man clear

Keluar bantuan -q

Seperti yang lain sistem rujukan, sistem lelaki mempunyai sendiri lelaki-halaman. Masuk lelaki lelaki dan dapatkan dokumentasi terperinci tentang arahan itu sendiri lelaki.

Akhir kata.

Sesuatu seperti ini. Seperti biasa, kami menantikan komen anda, penambahan dan semua perkara lain.

Ini mengakhiri kuliah kami yang seterusnya :). Akan ada yang akan datang, saya harap ia akan menarik dan menarik. Jika anda mempunyai apa-apa untuk ditambah (tambah), sila tambahkannya dalam ulasan anda.

P.S. Terima kasih kepada ahli pasukan Pantera atas kewujudan artikel ini.

Mana-mana sistem pengendalian menyokong berbilang sistem fail, contohnya, Windows menyokong sistem fail yang terkenal seperti LEMAK, FAT32, NTFS dan lain-lain. Linux tidak terkecuali.

Struktur fail Linux sangat berbeza daripada Windows, jadi jika anda memutuskan untuk mengkaji secara serius sistem seperti UNIX, maka, pada pendapat saya, adalah lebih baik untuk memulakan dengan struktur direktori.

Sejarah mengetahui berpuluh-puluh kes apabila juruterbang yang tidak terlatih berjaya mendaratkan pesawat. Atau, sebagai contoh, seorang doktor baru berjaya melakukan pembedahan di keadaan padang. Walau bagaimanapun, saya fikir tidak mungkin sesiapa akan secara sukarela bersetuju untuk mengambil tempat mereka...

Apa yang saya dapat? Dan selain itu, pengguna Windows yang melihat Linux buat kali pertama, sudah tentu, dapat mengatasinya (pergi dalam talian atau menonton video), namun, sebaik sahaja sebarang situasi kecemasan timbul, dia tidak akan tahu apa yang perlu dilakukan. buat!

Oleh itu, untuk tidak menjadi pengguna yang tidak tahu apa-apa, anda perlu mempelajari sekurang-kurangnya asas dan prinsip operasi sistem pengendalian yang anda merancang untuk bekerja. Dan dalam artikel hari ini kita akan melihat struktur direktori Linux, serta ciri susun atur cakera keras dan pemasangan partition.

Bak kata pepatah, penampilan boleh menipu. Pengedaran Linux moden boleh, dari segi penampilan dan dalam prinsip operasi asas, sebahagian besarnya menyalin persekitaran Windows yang biasa digunakan oleh ramai orang. Walau bagaimanapun, cukup untuk "menggali" lebih dalam dan kita akan segera melihat bahawa di hadapan kita adalah sesuatu yang sama sekali berbeza dan tidak dapat difahami :)

Mudah untuk mengesahkan ini dengan Contoh Linux Pudina. Mari buka folder "Komputer" pada Desktop dan lihat kandungannya:

Seperti yang anda lihat, di sini, selain daripada pemacu kilat yang disambungkan, tidak ada satu partition cakera keras yang biasa kami gunakan, kecuali peranti "Sistem Fail". Ia ada di sini (lebih tepat lagi, dalam direktori akar dipanggil "/", yang kadangkala tersilap dipanggil "/root/", walaupun ia adalah folder berasingan dalam "/") secara lalai, semua data disimpan, termasuk sistem dan pengguna fail! Sangat pelik dan tidak dapat difahami pada pandangan pertama. Jom ketahui...

Hakikatnya ialah Linux menggunakan pendekatan yang sangat berbeza daripada Windows untuk mengatur dan bekerja dengan sistem fail. Jika di Windows asasnya adalah partition cakera keras di mana kita boleh membuat folder sewenang-wenangnya dengan fail, maka di Linux semuanya berdasarkan hierarki direktori yang jelas yang tidak bergantung pada susun atur cakera keras dan dikawal oleh standard FHS (disingkatkan sebagai "Standard Hierarki Sistem Fail" - " piawaian hierarki sistem fail").

Konsep cakera dan partitionnya, sudah tentu, juga wujud di Linux, tetapi di sini struktur utama adalah struktur folder, di mana salah satunya (biasanya "/media/", "/dev/" atau "/mnt/" ) dan dipasang Pelbagai jenis cakera. Pemacu itu sendiri biasanya dinamakan bergantung pada jenis sambungannya: SATA - sda (sdb, dll. bergantung pada nombornya), dan IDE - hda (hdb...). Pembahagian pada cakera hanya diberi nombor (contohnya, sda1, hdb2).

Direktori Linux yang berasingan boleh dialihkan ke partition berbeza bagi cakera yang berbeza dan juga ke jauh storan rangkaian. Satu-satunya syarat ialah semuanya mesti dipasang sebelum sistem but. Ini biasanya dilakukan secara automatik apabila Linux bermula, tetapi kadangkala anda mungkin perlu mengedit parameter secara manual.

Saya rasa kita mempunyai sedikit pemahaman tentang prinsip asas mengatur storan maklumat dalam Linux, jadi saya cadangkan anda membiasakan diri secara khusus dengan struktur direktori.

Folder Teras Linux

Walaupun terdapat ratusan pengedaran Linux, kesemuanya kebanyakannya mempunyai struktur direktori yang serupa. Di satu pihak, ini memberikan sedikit keserasian dengan piawaian, dan di sisi lain, kemudahan penggunaan: pengguna yang biasa mengatur sistem fail pada satu pengedaran Linux akan merasa agak mudah untuk beralih menggunakan yang lain jika perlu.

Pada dasarnya, tidak perlu mengetahui tujuan semua folder dengan hati, bagaimanapun, pengetahuan tersebut dialu-alukan. Oleh itu, saya mencadangkan untuk mempertimbangkan dalam bentuk jadual katalog utama, tujuan mereka dan perbandingan separa dengannya Komponen Windows(Saya menerangkan berdasarkan Linux Mint yang saya miliki, jadi senarai folder pada sistem lain mungkin sedikit berbeza).

Katalog Tujuan Analog Windows (jika ada)
/ Menyimpan keseluruhan struktur direktori sistem Pandu C:
/bin/ Menyimpan fail boleh laku binari bagi utiliti sistem C:\Windows\System32
/boot/ Menyimpan kernel sistem dan fail but lain C:\Windows
/cdrom/ Menyimpan titik pelekap untuk pemacu liut -
/dev/ Menyimpan fail peranti yang disambungkan mengikut jenis (pemacu keras, peranti video, dsb.) atau peranti pseudo (contohnya, /dev/null dan /dev/zero) -
/dan lain-lain/ Menyimpan beberapa fail tetapan sistem dan tetapan program yang dipasang Sebahagiannya C:\Windows\System32, sebahagiannya C:\Program Files
/rumah/ Menyimpan folder rumah pengguna sistem dengan tetapan dan data mereka C:\Documents and Settings atau C:\Users
/lib/ Menyimpan kebanyakan perpustakaan program standard dan beberapa dipasang Sebahagiannya C:\Windows dan C:\Windows\System32
/hilang+ditemui/ Menyimpan fail yang biasanya dibiarkan tidak berdaftar dalam mana-mana direktori akibat daripada beberapa kegagalan, tetapi pada masa yang sama tidak ditandakan untuk ditulis ganti. Pengguna biasanya tidak mempunyai akses kepadanya Sebahagian C:\Recycler (Sampah)
/media/ Menyimpan mata pelekap untuk semua orang media boleh tanggal(pemacu denyar, pemacu liut, pemacu keras boleh tanggal) -
/mnt/ Menyimpan titik lekap sementara peranti dan sistem failnya yang ditambahkan secara manual -
/opt/ Menyimpan pakej tambahan pelbagai program C:\Users\Admin\Application Data
/proc/ Menyimpan data tentang menjalankan proses dan operasi kernel sistem Pengurus Tugas Separa
/root/ Menyimpan data pengguna super sistem (root). Sebahagiannya C:\Users\Admin
/lari/ Menyimpan fail sementara yang dilaksanakan semasa proses but sistem
/sbin/ Menyimpan kebanyakan program sistem untuk pentadbiran dan konfigurasi OS Sebahagiannya C:\Windows\System32
/srv/ Menyimpan fail yang bertanggungjawab untuk operasi bahagian pelayan sistem dan pelbagai protokol pemindahan data melalui rangkaian (HTTP, FTP, dll.) Sebahagiannya C:\Windows\System32
/sys/ Menyimpan sistem fail maya dengan data tentang peranti dan pemacu yang dipasang Pengurus Peranti Separa
/tmp/ Menyimpan fail sementara C:/Windows/Temp
/usr/ Menyimpan data pengguna sistem dan fail program yang dipasang secara manual. Sebahagian C:\Users\
/var/ Menyimpan fail dengan pelbagai perubahan data, log, cache, dsb. -

Sebagai tambahan kepada folder dalam direktori akar itu sendiri, ia juga bernilai memberi perhatian kepada beberapa subdirektori:

Katalog Tujuan Analog Windows (jika ada)
/etc/X11/ Menyimpan fail tetapan Sistem X Window -
/etc/samba/ Menyimpan fail konfigurasi untuk pelayan Samba, yang digunakan untuk komunikasi dengan folder rangkaian Windows -
/home/nama pengguna/ Menyimpan fail dan konfigurasi akaun pengguna tertentu (Folder rumah) C:\Users\Nama pengguna
/usr/bin/ Menyimpan beberapa program yang diperlukan untuk berfungsi dalam mod berbilang pengguna -
/usr/share/ Menyimpan data umum program yang dipasang -
/usr/src/ Menyimpan fail dengan kod sumber kernel sistem -
/var/cache/ Menyimpan cache program dan pakej perisian yang dimuat turun daripada repositori -
/var/games/ Menyimpan simpanan dan pencapaian permainan yang dipasang -
/var/log/ Menyimpan log (log) sistem dan atur cara yang dipasang -
/var/mel/ Tetapan kedai peti mel pengguna -
/var/run/ Menyimpan data tentang menjalankan proses dan daemon Pengurus Tugas Separa
/var/tmp/ Menyimpan fail sementara yang disimpan apabila sistem dibut semula -
/var/www/ Menyimpan halaman web yang diproses oleh alat pelayan tempatan -

Sedikit mengenai sistem fail

Memandangkan kami telah memutuskan untuk lebih kurang memahami struktur direktori Linux, kami tidak boleh gagal untuk menyebut perkara penting seperti sistem fail.

Dalam Windows, kami sudah biasa menggunakan NTFS tradisional dan tidak menipu diri sendiri (baik, juga FAT32 pada pemacu kilat atau UDF pada cakera). Dalam dunia Linux, semuanya lebih pelbagai. Terdapat sokongan untuk semua sistem fail Windows, tetapi disyorkan untuk menggunakan sistem khas yang dioptimumkan untuk sistem pengendalian seperti UNIX.

Semua sistem fail boleh dibahagikan kepada dua kumpulan: jurnal dan bukan jurnal. Sistem fail berjurnal memperuntukkan tempat khusus untuk menyimpan log dengan senarai fail pada PC, atribut dan lokasinya. Mereka lebih berdaya tahan terhadap kegagalan dan menjamin integriti data yang lebih besar. Sistem yang tidak dilog adalah lebih pantas dan tidak memerlukan ruang untuk menyimpan log, namun, mereka tidak menjamin penyimpanan maklumat yang stabil, kerana mereka menjalankan semua tindakan dengan fail secara langsung, tanpa menulis ke log.

Untuk tidak menyenaraikan semua sistem fail yang tersedia hari ini, saya fikir adalah lebih baik untuk menyebut hanya yang terbaik daripada mereka, yang merupakan pilihan optimum untuk Linux.

  1. Ext4- sistem fail jurnal yang standard pada kebanyakan pengedaran Linux moden. Ia dilindungi dengan baik daripada masalah pemecahan dan dioptimumkan untuk bekerja dengan fail besar. Jika anda tidak memformat partition secara manual untuk sistem semasa pemasangan, kemungkinan besar anda telah memasang Ext4.
  2. Ext2- sistem fail tanpa jurnal yang merupakan yang utama untuk pengedaran Linux yang lebih lama (sehingga tahun 2000-an). Ia mempunyai beberapa batasan untuk bekerja dengan fail besar, namun, pada masa yang sama, ia juga merupakan sistem fail terpantas, jadi ia sering digunakan dalam pelbagai ujian perbandingan sebagai rujukan.
  3. Reiser4 ialah sistem fail jurnal yang disyorkan oleh ramai pengguna lanjutan untuk digunakan di Linux. Kelebihannya ialah kestabilan yang baik dan kelajuan tinggi, yang, lebih-lebih lagi, boleh ditingkatkan lagi dengan mengaktifkan pemalam khas untuk pemampatan data.
  4. btrfs(juga B-tree FS) ialah sistem fail jurnal yang dibangunkan oleh syarikat Oracle terkenal baru-baru ini (pada tahun 2007). Ciri-cirinya termasuk menyimpan indeks fail dalam apa yang dipanggil "B-trees" - struktur hierarki, yang menggunakan sumber RAM yang paling optimum disebabkan oleh kedalaman sarang data yang kecil.
  5. SWAP- jenis khas sistem fail bukan jurnal yang melaksanakan struktur penyimpanan data yang serupa dengan struktur selular RAM. Disebabkan ini, ia digunakan untuk melaksanakan fail paging dalam Linux.

Dalam kebanyakan pengedaran moden, secara lalai cakera keras diformatkan dalam Ext4, serta SWAP, yang diperuntukkan saiz yang serupa dengan saiz RAM yang dipasang. Ini, sebagai contoh, rupa susun atur cakera standard di bawah Linux Mint, yang dilakukan jika anda tidak mempunyai pengaruh untuk mencipta partition secara manual:

Walau bagaimanapun, pengguna lanjutan dinasihatkan untuk membuat pra-pembahagian cakera dengan cara yang lebih "canggih" sebelum pemasangan untuk memastikan keselamatan data yang lebih baik sekiranya berlaku pemasangan semula sistem secara paksa dengan memasang direktori berasingan pada partition yang dibuat. Mari lihat beberapa "resipi" yang serupa untuk pembahagian cakera.

Pembahagian cakera

Saya rasa anda sudah faham mengapa semua kekacauan ini dengan bahagian yang berbeza. Jika, sebagai contoh, anda memecahkan sesuatu dalam sistem Linux yang dipasang dengan cara biasa (pada satu partition), anda pasti akan kehilangan semua data pengguna anda apabila memasang semula! Walau bagaimanapun, jika ia disimpan secara berasingan daripada fail sistem, maka untuk pemasangan semula anda hanya perlu menyentuh direktori sistem dan melekapkan pengguna sedia ada kemudian.

Pilihan pembahagian pertama adalah untuk mengalihkan direktori "/home/" ke partition cakera yang berasingan. Iaitu, sebenarnya, kita perlu membahagikan cakera kepada tiga partition:

Jika anda bercadang untuk dual boot dengan pemasangan Windows, maka sebagai ganti sda1 dan sda2 untuk tiga partition yang dibincangkan di atas, lebih baik meletakkan dua partition yang diformat dalam NTFS: satu untuk Drive C, dan yang kedua untuk Drive D, masing-masing.

Pengguna yang lebih maju cenderung untuk melakukan lebih banyak litar kompleks cakera, dengan mengambil kira pembahagiannya kepada berasingan kawasan but dan kawasan pelaksanaan program:

Pada dasarnya, sesetengah pengguna memasang direktori yang disebutkan di atas pada sda4 pada partition berasingan, dan sesetengahnya tidak memperuntukkannya sama sekali. Semuanya bergantung pada tugas yang anda rancang untuk diselesaikan pada PC anda. Jika anda masih belum memutuskan cara anda akan menggunakan direktori individu, maka saya syorkan meninggalkan beberapa puluh gigabait ruang pada cakera keras anda tanpa diperuntukkan "dalam simpanan." Jadi anda boleh memasang semula pada bila-bila masa terus dari bawah sistem anda direktori yang diperlukan kepada bahagian yang baru dibuat.

Nah, dan yang paling penting - bagaimana untuk mencipta bahagian ini! Untuk melakukan ini, saya mengesyorkan memuat turun program yang telah disebutkan dalam borang imej but, bakar imej ini ke pemacu kilat atau cakera dan but daripadanya.

Semasa proses permulaan daripada LiveCD anda akan ditanya beberapa soalan mengenai pilihan but. Kami meninggalkan semuanya sebagai lalai di mana-mana, kecuali untuk skrin pemilihan bahasa. Di sana anda perlu memasukkan nombor yang sepadan dengan antara muka bahasa Rusia (bagi saya ia adalah "22"). Dalam semua soalan lain, hanya tekan Enter dan sebagai hasilnya anda akan dibawa ke desktop maya Debian OS dengan GParted berjalan:

Jika anda telah memilih antara muka Rusia, maka anda tidak akan menghadapi masalah bekerja dalam program walaupun anda memutuskan untuk memisahkan semula cakera dari yang sudah sistem yang dipasang. Algoritma tindakan adalah seperti berikut:

  1. Kami ketengahkan bahagian sedia ada, yang perlu dibahagikan dan klik butang "Ubah saiz atau alih", atau item yang serupa dalam menu konteks.
  2. Dalam tetingkap yang terbuka, menggunakan peluncur atau tetingkap untuk memasukkan nombor, tetapkan saiz baru partition dan lekukannya dari awal atau akhir cakera (ingat bahawa lebih baik meletakkan akar dan swap lebih dekat dengan permulaan).
  3. Pilih kawasan tidak diperuntukkan yang baru dibuat dan klik butang "Baharu" pada bar alat atau dalam menu konteks.
  4. Dalam tetingkap yang terbuka, tetapkan jenis sistem fail, label volum dan parameter lain.
  5. Kami mengulangi langkah di atas beberapa kali yang diperlukan, selepas itu kami menggunakan semua perubahan dan tunggu sehingga ia selesai.

Sekarang tinggal sedikit. Kami memasang sistem dalam direktori akar (jika ia belum dipasang) dan memuatkannya. Kini semua direktori berada pada satu partition dan kami perlu melekapkannya semula ke kawasan cakera lain yang dicipta khas untuk tujuan ini. Ini boleh dilakukan hampir sepenuhnya dalam mod visual atau menggunakan terminal. Untuk menjadikannya lebih jelas, mari lihat proses pemindahan menggunakan direktori /home/ sebagai contoh dalam mod separa visual.

Jika anda memutuskan untuk melakukan segala-galanya secara visual, kemudian buka, sebagai contoh, folder /mnt/ atau /media/ dan buat folder sementara di dalamnya (mari panggilnya /newhome/) untuk memindahkan data. Sekarang kita masih perlu melancarkan terminal untuk melekapkan folder yang baru dibuat ke partition yang ingin kita pindahkan folder /home/. Ini dilakukan dengan arahan seperti:

Sememangnya, bukannya "ext4" anda akan menunjukkan sistem fail anda, dan bukannya "sda5" partition yang anda akan memindahkan folder. Apabila partition dipasang dan folder berada di atasnya, buka dan salin semua kandungan semasa direktori /home/ di sana. Selepas penyalinan selesai, nyahlekap partition dari folder dengan arahan berikut:

$sudo umount /mnt/newhome

Sekarang folder sedia ada/home/ boleh sama ada dipadamkan sepenuhnya (atau lebih baik lagi, dinamakan semula, sebagai contoh, kepada /oldhome/) dan dicipta semula, atau hanya dibersihkan sepenuhnya. Perkara utama ialah kami mempunyai direktori /home/ kosong. Sekarang mari pasang bahagian kami dengan data yang disalin di sini:

$sudo mount /dev/sda5 /home

Jika semuanya berjalan lancar, maka semua fail yang kami salin akan muncul dalam direktori /home/. Maksudnya, pemindahan sebenarnya telah berjaya diselesaikan. Yang tinggal hanyalah untuk menyatukan kejayaan kami dan memastikan bahawa kami tidak perlu memasang direktori kami secara manual setiap kali sistem but. Untuk melakukan ini, kami akan menggunakan pengeditan fail fstab (singkatan daripada "jadual sistem fail"), yang terletak dalam direktori /etc/. Mari buka dengan mana-mana editor teks dan pada akhirnya tambahkan baris berikut:

/dev/sda5 /home ext4 nodev,nosuid 0 2

Dengan ini kami "memberitahu" sistem secara literal perkara berikut: pada partition /dev/sda5 terdapat direktori /home/, diformatkan dalam sistem ext4, di mana mustahil untuk membuat direktori dengan konfigurasi peranti (/dev/) , dan operasi dengan bit suid dan sgid adalah dilarang, dilumpuhkan sandaran dan sistem fail dipasang pada laluan kedua (sistem akar sentiasa dipasang pada laluan pertama).

But semula dan bergembira :) Untuk geeks sejati, saya akan mengatakan bahawa semua operasi (kecuali untuk mengedit fstab) boleh dilakukan secara langsung dalam konsol menggunakan kira-kira urutan arahan berikut:

$sudo mkdir /mnt/newhome

$sudo mount -t ext4 /dev/sda5 /mnt/newhome

$cari. -depth -print0 | sudo cpio --null --sparse -pvd /mnt/newhome/

$sudo umount /mnt/newhome

$sudo mv /home /oldhome

$sudo mkdir /home

$sudo mount /dev/sda5 /home

sudo gedit /etc/fstab

kesimpulan

Memahami struktur direktori dan menggunakan arahan konsol pertama memberikan pengguna pemula pemahaman yang agak baik tentang struktur sistem dan mengajarnya untuk berfikir dalam istilah Linux. Dalam praktiknya, tiada apa-apa yang sukar untuk membahagikan dan memasang partition cakera, tetapi tindakan ini meningkatkan kestabilan OS dengan ketara, jadi ia disyorkan untuk dilakukan terlebih dahulu apabila memasang sistem baharu.

Dengan meluangkan sedikit masa untuk mengoptimumkan struktur direktori anda, anda akan menjadikan Linux anda lebih dipercayai dari segi menyimpan maklumat dan akan menjimatkan banyak saraf dan usaha anda pada masa hadapan!

P.S. Kebenaran diberikan untuk menyalin dan memetik artikel ini secara bebas, dengan syarat kredit terbuka diberikan. pautan aktif kepada sumber dan pemeliharaan kepengarangan Ruslan Tertyshny.