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.