Sayfamızda unix hakkında bilgiler çeşitli kaynaklardan toplanarak sizlere sunulmuştur
unix nedir?
- UNIX işletim sistemi time-sharing bir sistem olarak tasarlandı. Standart kullanıcı arayüzü ( shell) basit ve istenildiğinde bir başkası ile değiştirilebilir. Dosyalama sistemi kullanıcılara kendi alt dizinlerini oluşturmaya izin veren multilevel tree yapısıdır. Her kullanıcı dosyası basit byte sıralarıdır.
- UNIX multiple process i destekler. Bir process kolaylıkla yeni processler oluşturabilir. CPU scheduling i basit priority algoritmasıdır. 4.3BSD memory ve CPU yönetimini desteklemek için demand paging kullanır. Eğer sistem aşırı paging den dolayı sorun yaşarsa swapping kullanılır.
- UNIX başlangıçta iki programcı tarafından geliştirildiği için anlaşılmak için yeterince küçüktür. Algoritmaların çoğu hız veya komplekslik yerine basitliği için seçilmiştir. UNIX programcılar tarafından yine programcılar için tasarlandı. Bü yüzden her zaman interaktif ve program geliştirme özellikleri öncelikli oldu.
- UNIX çoğunlukla kendini desteklemek için yazılan C dilinde yazıldı. Çünkü kimse assembly dilinde programlama yapmayı sevmiyordu. Assembly dilinden C diline geçiş UNIX in bir sistemden başka bir sisteme geçişini kolaylaştırdı
UNIX de Username yanında kullanıcıların şifresi, Password , vardır. UNIX başladığında sizden kullanıcı adı ve şifre isteyecektir. Örneğin Linux Server'a girmek için alpha3 login: btturk Password: Unix Sistem Promptu (Komut istemi işareti, DOS daki > Unix sistem promtu $ işaretidir. Bu işaret sistemin kullanıcıdan komut beklediğini gösterir. Unix promtu sadece $ değil bazen de %, # ... olabilir. Komut Parametreleri Unix'de bir komutun genel ifadesi komut [seçim][ifade][dosya_adı] şeklindedir. Hepside seçimliktir. seçim : Komuta ait parametrelerden biridir. Seçim - işareti ile yapılır. ($ls -a gibi) ifade : komuta girdi olarak kullanılacak bir karakter dizisini ifade eder. dosya_adı : En fazla 14 karakter olabilir. İlgili komutun üzerinde işlem yapacağı dosya. Komutlar Listeleme ls Mevcut dosyaları ve dizinleri listelemek için kullanılır. $ls C++/ dead.letter ftp/ mail/ welcome.txt xit ddddddddd fortran/ gubim/ nsmail/ www/ $ Burada yanında / ile görünen yazılar dizindir. Dosyaları ve dizinleri daha ayrıntılı görmek için ls ile -l parametresi de kullanılmalıdır. $ ls -l total 44 drwxr-xr-x 2 btturk users 4096 Dec 30 1999 C++/ -rw-r--r-- 1 btturk users 1981 Apr 4 20:46 ddddddddd -rw------- 1 btturk users 316 Dec 30 1999 dead.letter drwxr-xr-x 2 btturk users 4096 May 24 03:06 fortran/ drwxr-xr-x 2 btturk users 4096 May 20 21:53 ftp/ drwxr-xr-x 2 btturk users 4096 Oct 8 1999 gubim/ drwx------ 2 btturk users 4096 Jun 2 18:50 mail/ drwx------ 2 btturk users 4096 Jul 12 1999 nsmail/ -rw-r----- 1 btturk users 729 Jul 12 1999 welcome.txt drwxr-xr-x 2 btturk users 4096 May 24 20:42 www/ -rw-r--r-- 1 btturk users 1981 Apr 4 20:46 xit $ Parametreler -d yalnız dizinler -g grup adları -l uzun liste (tüm özellikleriyle) -r dosya adına göre |more sayfa sayfa listeleme Dosya ve Dizin İzinleri Unix bir Ağ İşletim Sistemidir. Eğer bir kullanıcı izin verirse bilgisayarında bulunan herhangi bir dosyayı herkes paylaşabilir. Unix işletim sisteminde tüm dosyalar ve dizinler üç tür erişim hakkına sahiptir. Bunlar; read (okuma), write (yazma), execute (çalıştırma) izinleri. Genel olarak bir dosyanın erişim haklarının yapısı rwx|rwx|rwx Sahip Grup Topluluk kullanıcı (user) (group) (other) şeklindedir. Örneğin r--r--r-- Bu özellikleri taşıyan bir dosya salt okunurdur. Çünkü birinci üçlü grup için sadece r (read) okuma izni verilmiştir. İkinci üçlü grupta kullanıcının dahil olduğu çalışma gurubu için izin yine okuma izni, son üçlü grupta topluluk için de okuma izni vardır. rwxr---- Bu dosya için sahip kullanıcı : okuma, yazma, çalıştırma iznine sahiptir. Grup : sadece okuma iznine sahiptir. Topluluk : hiçbir hakka sahip değildir. Bu izinler kullanıcı tarafından belirlenir. Kullanıcı kendi bilgisayarında bulunan istediği dosyanın erişim hakkını istediği gibi belirleyebilir. Erişim İzinin Değiştirilmesi chmod (change mode) komutu dosya veya dizinlerin izin biçimini belirlemek için kullanılır. Bu komut iki şekilde kullanılır. a) 2lik sisteme göre Bir dosya için r,w,x harflerinin olduğu konuma 1 veya 0 yazılarak yapılan hesaba göre erişim hakkı belirlenebilir. Örneğin xyz.txt dosyası salt okunur bir dosya olsun. r-- r-- r-- Dosyanın eski hali (salt okunur) rw- r-- r-- Yeni hali (Kullanıcıya yazma izni verilmek isteniyor) 110 100 100 Yeni dosyanın erişim hakları Kullanıcı : okuma, yazma Grup : sadece okuma Topluluk : sadece okuma iznine verilmek isteniyor. İzinleri değiştirmek için 1. r,w,x gördüğümüz yere 1, - gördüğümüz yere 0 yazılır. 2. Elde edilen 1 ve 0 lar bir araya getirilir. 3. 110100100 sayısının 10 luk tabandaki karşılığı bulunur. (110100100)2 = 644 4. $chmod 644 xyz.txt işlemi yapılır. Bu adımlardan sonra dosya istenen özelliği kazanmış olur. rw------- dosyası için gruba okuma ve çalıştırma ve topluluğa sadece çalıştırma izni vermek için ? rw------- rw-r-xr-- } $chmod 654 xyz.txt b) Simgesel Yöntem Bu yöntemde simgesel biçim belirtilir. Bunun aşağıdaki kısaltmalar kullanılır. u sahip kullanıcı izni(user) g grup izni (group) o topluluk izni(other) a kullanıcı, Grup ve Topluluk izni = izni tümüyle yerleştirir + izni ekler - izni kaldırır Örneğin abc.gif dosyasını özellikleri şöyle olsun r------- Bu dosyaya rw-r--r- özelliği kazandırmak için $chmod a=r,u+w abc.gif işlemini yapmak yeterlidir. a=r : tüm kullanıcılara okuma izni u+w : sahip kullanıcıya özel yazma izni Dizin İşlemleri cd DOS da olduğu gibi bir dizin yukarı/aşağı geçmek için kullanılır. $ ls -l total 44 drwxr-xr-x 2 btturk users 4096 Dec 30 1999 C++/ -rw-r--r-- 1 btturk users 1981 Apr 4 20:46 ddddddddd -rw------- 1 btturk users 316 Dec 30 1999 dead.letter drwxr-xr-x 2 btturk users 4096 May 24 03:06 fortran/ drwxr-xr-x 2 btturk users 4096 May 20 21:53 ftp/ drwxr-xr-x 2 btturk users 4096 Oct 8 1999 gubim/ drwx------ 2 btturk users 4096 Jun 2 18:50 mail/ drwx------ 2 btturk users 4096 Jul 12 1999 nsmail/ -rw-r----- 1 btturk users 729 Jul 12 1999 welcome.txt drwxr-xr-x 2 btturk users 4096 May 24 20:42 www/ -rw-r--r-- 1 btturk users 1981 Apr 4 20:46 xit.gif $ $cd fortran $ işleminin sonucunda fortran dizinine geçilir. Bir dizin yukarı çıkmak için cd .. kullanılır. pwd O an için hangi dizinde olduğumuzu gösterir. $cd gubim $pwd /home/btturk/gubim $ mkdir dizin_adı Yeni bir dizin oluşturmak için kullanılır. $mkdir loft loft adlı bir dizin oluşturma $mkdir per ogr std per,ogr ve std adlı üç dizin birden oluşturma rmdir dizin_adı İçi boş bir dizini silmek için kullanılır. $rmdir loft Bir dizini içindeki dosyalarla birlikte silmek için $rm -r gubim Dosya İşlemleri cp [hedef][kaynak] Kaynaktaki bir dosyayı hedefe kopyalar. $cp dead.letter fortran/ rm dosya_adı mevcut bir dosyayı silmek için kullanılır. $rm dead.letter mv [kaynak][hedef] Kaynaktaki bir dosyayı hedefe taşır. welcome.txt dosyasını C++ dizinine taşımak için $mv welcome.txt C++/ xit.gif dosyasının ismini gen.gif olarak değiştirmek için $mv xit.gif gen.gif gen.gif dosyasını gubim dizinine taz.gif olarak taşımak için $mv gen.gif gubim/taz.gif Giriş ve Çıkışı Yönlendirme (> ve >> Bir UNIX komutu çalıştırıldığında, komutun oluşturduğu sonuçlar ekranda görüntülenir. Yani standart giriş-çıkış birimi olarak ekran kabul edilir. Kullanıcı isterse giriş veya çıkışın yönünü değiştirebilir. Eğer bir komutun oluşturduğu sonuçları ekran yerine dosya içine yazdırılmak istenirse, komut &g t; dosya_adı (dosyanın içeriğini silerek) komut >> dosya_adı (dosyanın sonuna ekleyerek) $ls > sakla.txt sakla dosyasının içeriği silindi ve ls nin etkisi dosyanın içine yazıldı. $ls >> sakla.txt sakla dosyasının içerine dokunmadan dosyanın sonuna ls nin etkisini eklendi. Dosya Oluşturma ve Görüntüleme $ls fortran/ mail/ project/ www/ welcome.txt $ edit dosya_adı Yeni bir dosya oluşturmak veya eğer dosya mevcutsa dosyada düzenle yapmak için kullanılır. new.txt adlı bir dosya açmak için $edit new.txt [ UW PICO(tm) 3.6 File:new.txt Modified ] Merhaba! Bu ilk denemedir. ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell cat Dosyanın içeriğini görüntüler. DOS daki type komutu gibi abc.f dosyasının içeriğini görüntülemek için $cat abc.f abc.f dosyasının içeriğini sayfa sayfa görüntülemek için $pg abc.f yeni.txt dosyasını oluşturmak için $cat > yeni.txt Ekrana Mesaj Yazma echo mesaj $echo Merhaba Dünya... Eğer mesaj ekranın bir satırına sığmıyorsa > işareti kullanılarak alt satırdan devam edilebilir. $echo UNIX İşletim Sistemi'nin en belirgin özelliklerinden birisi, C >programlama dili ile yazılmış olmasıdır. * ve ? DOS da olduğu gibi * tüm dosyalar ? tek bir karakter için kullanılır. $ls dosya1 per1 perpg01 perdosya dosya2 per2 per3 $ Durumuna göre aşağıdaki işlemleri inceleyiniz. $ls per? per1 per2 per3 $ls per* per1 per2 per3 perpg01 perdosya Geri Planda Komut Çalıştırma Bir komutu geri planda çalıştırmak olasıdır. Bu sayede komut yorumlayıcısı komutun tamamlanmasını beklemez. İstenen bir komutu geri planda çalıştırmak için komutun sonuna & işareti eklenmelidir. Komut derleyicisi işlemin gerçekleştiğine dair bir rakamı ekrana getirecektir. $ls C++/bin & 221 $ ong>Tarih date Sistemin tarihini öğrenmek için kullanılır. $date Grupta Bulunan Kullanıcıları Görüntüleme $who Arka arkaya birden fazla komut aynı satırdan çalıştırmak için ; işareti kullanılır. $ls;date Komut Yorumlayıcısının Bekletilmesi sleep saniye_olarak_zaman Komut derleyicisini verilen süre kadar işlem dışı bırakır. Komut derleyicisinin 20 saniye bekletilmesi için $sleep 20 5 saniye sonra tarihin görüntülenmesi için $sleep 5;date Bellirli Bir Zamanda Komut Çalıştırma at zaman Klavyeden girilen bir UNIX komutunun hemen değilde belli bir süre sonra çalışması için kullanılır. Bu gün saat 10:00 da rm fert.doc işleminin gerçekleştirilmesi için (işlem bitinde ^x yada ^d yapın) $at 10:00 rm fert.doc job 2564.a at Fri May 12 10:00:00 2000 ^x yada ^d $ Yapılacak olan tüm işleri listelemek için $at -l job 1254.a Sat Feb 15 11:30:00 2002 job 5465.a Wed Dec 4 22:00:00 2001 job 6548.a Mon Dec 5 21:00:00 2001 $ 1. işlemi iptal etmek için $at -r 1254.a Saat 13:40 da randevu olduğuna dair bir mesaj $at 13:40 echo saat 13:40 Toplantıya geç kalma ! ^x yada ^d Bir Dosyayı Birkaç Parçaya Bölme split UNIX işletim sistemi altında çalışan bir dosya birkaç kısma parçaya ayırmak için kullanılır. $cat abc.txt 1111 2222 3333 4444 5555 $ Bu dosyayı üçe bölmek için $split -3 abc.txt Üçe bölünen bu dosyanın bölünmüş haldeki dosyaları xaa.txt içeriği 1111,2222 abc.txt xab.txt içeriği 3333,4444 xac.txt içeriği 5555 Dosyaların karakter/Kelime/Satır Sayısının Belirleme wc dosya_adı Bir dosyanın içeriğinde bulunan karakter,kelime,satır sayısını verir. $wc acb.f 22 79 209 abc.f Parametreler -l dosyadaki satır sayısını verir -w dosyadaki kelime sayısını verir