Personal Site



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



alan adı