Unix / Linux - Dosya Yönetimi

Bu bölümde, Unix'te dosya yönetimi hakkında ayrıntılı olarak tartışacağız. Unix'teki tüm veriler dosyalar halinde düzenlenmiştir. Tüm dosyalar dizinler halinde düzenlenmiştir. Bu dizinler, dosya sistemi adı verilen ağaç benzeri bir yapı halinde düzenlenmiştir.

Unix ile çalışırken, öyle ya da böyle, zamanınızın çoğunu dosyalarla çalışarak geçirirsiniz. Bu eğitim, dosyaları nasıl oluşturacağınızı ve kaldıracağınızı, kopyalayıp yeniden adlandıracağınızı, bunlara bağlantılar oluşturmayı vb. Anlamanıza yardımcı olacaktır.

Unix'te üç temel dosya türü vardır -

  • Ordinary Files- Sıradan bir dosya, sistemde veri, metin veya program talimatlarını içeren bir dosyadır. Bu eğitimde, sıradan dosyalarla çalışmaya bakacaksınız.

  • Directories- Dizinler hem özel hem de sıradan dosyaları depolar. Windows veya Mac OS'ye aşina kullanıcılar için, Unix dizinleri klasörlerle eşdeğerdir.

  • Special Files- Bazı özel dosyalar, sabit sürücüler, CD-ROM sürücüleri, modemler ve Ethernet adaptörleri gibi donanımlara erişim sağlar. Diğer özel dosyalar, takma adlara veya kısayollara benzer ve farklı adlar kullanarak tek bir dosyaya erişmenizi sağlar.

Dosyaları Listeleme

Mevcut dizinde depolanan dosyaları ve dizinleri listelemek için aşağıdaki komutu kullanın -

$ls

İşte yukarıdaki komutun örnek çıktısı -

$ls

bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work

Komuta ls destekler -l listelenen dosyalar hakkında daha fazla bilgi almanıza yardımcı olacak seçenek -

$ls -l
total 1962188

drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3
$

İşte listelenen tüm sütunlarla ilgili bilgiler -

  • First Column- Dosya türünü ve dosyada verilen izni temsil eder. Aşağıda tüm dosya türlerinin açıklaması yer almaktadır.

  • Second Column - Dosya veya dizin tarafından alınan bellek bloklarının sayısını temsil eder.

  • Third Column- Dosyanın sahibini temsil eder. Bu, bu dosyayı oluşturan Unix kullanıcısıdır.

  • Fourth Column- Sahibinin grubunu temsil eder. Her Unix kullanıcısının ilişkili bir grubu olacaktır.

  • Fifth Column - Dosya boyutunu bayt cinsinden temsil eder.

  • Sixth Column - Bu dosyanın en son oluşturulduğu veya değiştirildiği tarihi ve saati temsil eder.

  • Seventh Column - Dosyayı veya dizin adını temsil eder.

İçinde ls -l listeleme örneği, her dosya satırı bir d, -veya l. Bu karakterler, listelenen dosyanın türünü gösterir.

Sr.No. Önek ve Açıklama
1

-

ASCII metin dosyası, çalıştırılabilir ikili dosya veya sabit bağlantı gibi normal dosya.

2

b

Özel dosyayı engelleyin. Fiziksel bir sabit sürücü gibi giriş / çıkış aygıt dosyasını engelleyin.

3

c

Karakter özel dosyası. Fiziksel bir sabit sürücü gibi ham girdi / çıktı aygıtı dosyası.

4

d

Diğer dosyaların ve dizinlerin bir listesini içeren dizin dosyası.

5

l

Sembolik bağlantı dosyası. Herhangi bir normal dosyadaki bağlantılar.

6

p

Adlandırılmış boru. İşlemler arası iletişim için bir mekanizma.

7

s

İşlemler arası iletişim için kullanılan soket.

Metakarakterler

Metakarakterlerin Unix'te özel bir anlamı vardır. Örneğin,* ve ?meta karakterlerdir. Kullanırız* 0 veya daha fazla karakteri eşleştirmek için bir soru işareti (?) tek bir karakterle eşleşir.

Örneğin -

$ls ch*.doc

İsimleri ile başlayan tüm dosyaları görüntüler. ch ve ile biter .doc -

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc c

Buraya, *herhangi bir karakterle eşleşen meta karakter olarak çalışır. Sadece ile biten tüm dosyaları görüntülemek istiyorsanız.doc, ardından aşağıdaki komutu kullanabilirsiniz -

$ls *.doc

Gizlenmiş dosyalar

Görünmez bir dosya, ilk karakteri nokta veya nokta karakteri (.) Olan bir dosyadır. Unix programları (kabuk dahil), yapılandırma bilgilerini depolamak için bu dosyaların çoğunu kullanır.

Gizli dosyaların bazı yaygın örnekleri arasında dosyalar bulunur -

  • .profile - Bourne kabuğu (sh) başlatma betiği

  • .kshrc - Korn kabuğu (ksh) başlatma betiği

  • .cshrc - C kabuğu (csh) başlatma betiği

  • .rhosts - Uzak kabuk yapılandırma dosyası

Görünmez dosyaları listelemek için şunu belirtin: -a seçeneği ls -

$ ls -a

.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03
$
  • Single dot (.) - Bu, mevcut dizini temsil eder.

  • Double dot (..) - Bu, ana dizini temsil eder.

Dosya Oluşturma

Kullanabilirsiniz viherhangi bir Unix sisteminde sıradan dosyalar oluşturmak için düzenleyici. Sadece aşağıdaki komutu vermeniz gerekiyor -

$ vi filename

Yukarıdaki komut, verilen dosya adına sahip bir dosya açacaktır. Şimdi tuşuna basınidüzenleme moduna geçmek için. Düzenleme modundayken, aşağıdaki programda olduğu gibi içeriğinizi dosyaya yazmaya başlayabilirsiniz -

This is unix file....I created it for the first time.....
I'm going to save this content in this file.

Programı tamamladığınızda şu adımları izleyin -

  • Tuşuna basın esc düzenleme modundan çıkmak için.

  • İki tuşa basın Shift + ZZ birlikte dosyadan tamamen çıkması için.

Şimdi ile oluşturulmuş bir dosyanız olacak filename mevcut dizinde.

$ vi filename
$

Dosyaları Düzenleme

Şunu kullanarak mevcut bir dosyayı düzenleyebilirsiniz: vieditör. Kısaca mevcut bir dosyanın nasıl açılacağını tartışacağız -

$ vi filename

Dosya açıldıktan sonra, tuşuna basarak düzenleme moduna geçebilirsiniz. ive sonra dosyayı düzenleyerek devam edebilirsiniz. Bir dosyanın içinde oraya buraya gitmek istiyorsanız, önce tuşuna basarak düzenleme modundan çıkmanız gerekir.Esc. Bundan sonra, bir dosyanın içinde hareket etmek için aşağıdaki tuşları kullanabilirsiniz -

  • l sağ tarafa geçmek için anahtar.

  • h sol tarafa geçmek için tuş.

  • k dosyada yukarı hareket etmek için anahtar.

  • j dosyada aşağı doğru hareket etmek için anahtar.

Dolayısıyla, yukarıdaki tuşları kullanarak imlecinizi düzenlemek istediğiniz yere konumlandırabilirsiniz. Konumunuzu belirledikten sonra,idüzenleme moduna geçmek için anahtar. Dosyanızdaki düzenlemeyi tamamladığınızdaEsc ve son olarak iki anahtar Shift + ZZ birlikte dosyadan tamamen çıkması için.

Bir Dosyanın İçeriğini Görüntüle

Kullanabilirsiniz catbir dosyanın içeriğini görmek için komut. Aşağıda, yukarıda oluşturulan dosyanın içeriğini görmek için basit bir örnek verilmiştir -

$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$

Kullanarak satır numaralarını görüntüleyebilirsiniz. -b ile birlikte seçenek cat aşağıdaki gibi komut -

$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$

Bir Dosyadaki Kelimeleri Sayma

Kullanabilirsiniz wcbir dosyada bulunan toplam satır, kelime ve karakter sayısının sayısını almak için komut. Aşağıda, yukarıda oluşturulan dosyayla ilgili bilgileri görmek için basit bir örnek verilmiştir -

$ wc filename
2  19 103 filename
$

İşte dört sütunun tamamının detayı -

  • First Column - Dosyadaki toplam satır sayısını temsil eder.

  • Second Column - Dosyadaki toplam kelime sayısını temsil eder.

  • Third Column- Dosyadaki toplam bayt sayısını temsil eder. Bu, dosyanın gerçek boyutudur.

  • Fourth Column - Dosya adını temsil eder.

Aynı anda birden fazla dosya verebilir ve bu dosyalar hakkında bilgi alabilirsiniz. Aşağıdaki basit sözdizimidir -

$ wc filename1 filename2 filename3

Dosyalar kopyalanıyor

Bir dosyanın kopyasını oluşturmak için şunu kullanın: cpkomut. Komutun temel sözdizimi -

$ cp source_file destination_file

Aşağıda, mevcut dosyanın bir kopyasını oluşturma örneği verilmiştir. filename.

$ cp filename copyfile
$

Şimdi bir dosya daha bulacaksınız copyfilemevcut dizininizde. Bu dosya, orijinal dosyayla tamamen aynı olacaktırfilename.

Dosyaları Yeniden Adlandırma

Bir dosyanın adını değiştirmek için, mvkomut. Temel sözdizimi aşağıdadır -

$ mv old_file new_file

Aşağıdaki program mevcut dosyayı yeniden adlandıracak filename -e newfile.

$ mv filename newfile
$

mvkomutu mevcut dosyayı tamamen yeni dosyaya taşıyacaktır. Bu durumda sadece bulacaksınnewfile mevcut dizininizde.

Dosyaları Silme

Mevcut bir dosyayı silmek için, rmkomut. Temel sözdizimi aşağıdadır -

$ rm filename

Caution- Bir dosya yararlı bilgiler içerebilir. Bunu kullanırken her zaman dikkatli olmanız önerilir.Deletekomut. Kullanmak daha iyidir-i ile birlikte seçenek rm komut.

Mevcut dosyanın tamamen nasıl kaldırılacağını gösteren örnek aşağıdadır. filename.

$ rm filename
$

Aşağıda verilen komutla aynı anda birden fazla dosyayı kaldırabilirsiniz -

$ rm filename1 filename2 filename3
$

Standart Unix Akışları

Normal koşullar altında, her Unix programı başladığında kendisi için açılan üç akışa (dosya) sahiptir -

  • stdin- Bu, standart girdi olarak adlandırılır ve ilişkili dosya tanımlayıcısı 0'dır. Bu aynı zamanda STDIN olarak da temsil edilir. Unix programı, STDIN'den varsayılan girişi okuyacaktır.

  • stdout- Bu, standart çıktı olarak adlandırılır ve ilişkili dosya tanımlayıcısı 1'dir. Bu, STDOUT olarak da temsil edilir. Unix programı varsayılan çıktıyı STDOUT'ta yazacaktır.

  • stderr- Bu, standart hata olarak adlandırılır ve ilişkili dosya tanımlayıcısı 2'dir. Bu aynı zamanda STDERR olarak da temsil edilir. Unix programı tüm hata mesajlarını STDERR'a yazacaktır.