Papatyam Forum - Tekil Mesaj gösterimi - Unix---Shell Scripting
Konu Başlıkları: Unix---Shell Scripting
Tekil Mesaj gösterimi
Alt 20 January 2009, 15:54   Mesaj No:1

CoNQueRoR_61

Papatyam Usta Üyesi
Avatar Otomotik
Durumu:CoNQueRoR_61 isimli Üye şimdilik offline konumundadır
Papatyam No : 1397
Üyelik T.: 20 January 2009
Arkadaşları:0
Cinsiyet:
Memleket:istanbul
Yaş:35
Mesaj: 131
Konular:
Beğenildi:
Beğendi:
Takdirleri:10
Takdir Et:
Konu Bu  Üyemize Aittir!
Standart Unix---Shell Scripting

Unix---Shell Scripting

Merhaba arkadaşlar,
Unix altında shell programlamaya geçmeden önce Unix ve Uinix komutları hakkında biraz bilgi edinelim. Şimdiden herkese kolay gelsin


UNIX:

UNIX işletim sistemi bir ağ işletim sistemidir. Birden çok bilgisayar aynı anda bu işletim sistemini kaynaklarını paylaşmak için kullanabilir. UNIX işletim sistemi kullanan herkesin özel bir kullanıcı adı Username yada Login vardır. Kullanıcı adı account olarak da anılır.

UNIX işletim sistemi genellikle güçlü bilgisayarlarda kullanılmaktadır. UNIX felsefesinin temelinde, bir bilgisayarın birden fazla kullanıcı arasında paylaşılması; ya da bir kullanıcının aynı anda birden fazla iş yapmasına olanak sağlamak yatmaktadır. Bu nedenle, UNIX altında kullanılacak bilgisayarın, kaynaklarının birden fazla iş arasında paylaşılması durumunda performansını kabul edilebilir düzeyde tutabilecek güçte olması gerekmektedir. Bilgisayar teknolojisindeki gelişmeler, donanımları hızla güçlendirmekte ve ucuzlatmaktadır; bunun doğal sonucu olarak da, UNIX işletim sistemi denetiminde kullanılan bilgisayarların sayısı hızla artmaktadır.

UNIX İşletim Sistemi, bilgisayar bilimcilerinin ‘çok kullanıcılı’ (multi-user) ve ‘çok işli’ (multi-tasking) adını verdikleri çalışma koşullarını sağlar. Bir başka deyişle; UNIX altında çalışan bir bilgisayarı, birden fazla kullanıcı birbirlerinden bağımsız olarak ve aynı anda kullanabilirler. Bu birlikte kullanım sırasında, bilgisayarın kaynaklarını (merkezi işlem birimini, ana belleğini (RAM), disk-teyp gibi yan bellek birimlerini, yazıcılarını) paylaşırlar. UNIX, kaynakların kullanımını, paylaşımdan kaynaklanan performans düşmelerini en aza indirgeyecek şekilde düzenlemeye çalışır. Bu tür paylaşımlar, donanıma yapılan yatırımı bir miktar azaltacağı için bir kazanç unsurudur. Yan bellek paylaşımıysa kayıtlı veri ve programları da paylaşmak demektir ki; bu da değeri oldukça yüksek başka bir kazançtır. Bir kullanıcının aynı anda birden fazla iş yapabilmesi de bir başka kolaylıktır. Bilgisayarınızda uzun bir iş başlattığınızı varsayalım; ancak bu iş, her bir kaç dakikada bir sizin klavyeden müdahale etmenizi gerektirsin. Bu durumda, bu uzun işi başlatıp yemeğe gidemezsiniz. Tek iş düzeninde kullanım için tasarlanmış bir işletim sistemi kullanıyorsanız (MS-DOS gibi), söz konusu programın yaptığı iş tamamlanıncaya kadar bilgisayarın karşısında oturmak zorundasınız. Eğer bu işi UNIX altında çalışan bir bilgisayarda yapıyorsanız, uzun programınız bir yandan işinizi yaparken, siz öte yandan (gene aynı ekran ve klavyeyi kullanarak) bir başka iş yapabilirsiniz.


UNIX'le TANIŞMA
UNIX işletim sistemi ile çalışan bir bilgisayarı kullanabilmek için sahip olmanız gereken üç şey vardır :
a) UNIX altında çalışan bir bilgisayara bağlı bir TERMİNAL’e (ekran+klavye) erişim yetkisi,
b) UNIX altında çalışan bu bilgisayara erişim hakkınızın anahtarı olan ‘kullanıcı hesabınız’ (user account),
c) Eğer yeni başlıyorsanız; bol miktarda sabır.
Bu üç özelliğe sahip olduğunuzu varsayarak devam edelim.
Terminalinizi açınız.
Bir kaç saniye içinde ekranda
login :
mesajını görmeniz gerekir. (Bazı terminallerde bu mesajı görebilmek için bir kaç kez ENTER (ya da RETURN) tuşuna basmanız gerekebilir). Bu mesaj, bilgisayarın, daha doğrusu UNIX’in, kendinizi tanıtmanızı istediğini
belirtmektedir. Her UNIX kullanıcısının bir adı olmalıdır. Bu ad, kullanıcılara sistem yöneticisi görevini üstlenmiş olan bilgisayar uzmanları tarafından verilir. Bu mesaja yanıt olarak klavyeden kullanıcı adınızı girmeniz ve ENTER tuşuna basmanız gerekir. Kendi adınızı veya rastgele bir ad girmenizin bir yararı olmayacaktır. UNIX, sadece daha önceden kendisine tanıtılmış olan kullanıcı isimlerini kabul edecektir. Eğer bir kullanıcı adınız yoksa sistem yönetici account ı tarafından size bir user tanımı yapılması gerekmektedir.
(Bunu unix komutlarında göreceğiz)

Geçerli bir kullanıcı adınız olduğunu varsayarak devam edelim...
login :admin
ENTER tuşuna basmanızla birlikte
Password :
mesajıyla şifrenizi girmeniz istenecektir.

***Unix'te şifrenizi girerken ekranda şifreniz ***** şeklinde dahi olsa görünmez. Böylece şifre konusunda (kaç karakter olduğu vs) max. güvenlik sağlanmış olur.

***UNIX işletim sisteminde büyük harf - küçük harf farkı ÇOK önemlidir.

***UNIX işletim sistemi ile yapmakta olduğunuz işi tamamladığınızda ve terminalin başından ayrılacağınız zaman
% logout komutunu vermeyi unutmamalısınız. Bu komut, UNIX ile bağlantınızı kesecektir; ve terminal bir sonraki kullanıcıyı bekleme konumuna geçecektir. ( login : )
Ben Kimim?
İlk bakışta çok anlamlı değilmiş gibi görünen bu soru UNIX dünyasında zaman zaman sorulması gereken bir sorudur. Eğer kullandığınız UNIX bilgisayarı büyük bir bilgisayar ağının bir parçasıysa ve siz bu ağ üzerinden bir çok bilgisayara ulaşabiliyorsanız ve bu değişik bilgisayarlardaki kullanıcı isimleriniz (user-id) farklıysa; uzun çalışma seansları sırasında, o anda geçerli olan kullanıcı kimliğinizi şaşırabilirsiniz.
Hemen
% whoami ******BSD UNIX’lerde (bu arada % işareti komuttan bağımsızdır. Çalışılan kabuğu gösterir)
% who am i ******SV5R4 UNIX’lerde
komutunu verip, UNIX’in sizi o anda hangi kimlikle tanıdığını öğrenebilirsiniz. Özellikle sistem yöneticileri, zaman zaman başka kullanıcıların kimliğine bürünme gereksinimi duyarlar ( bu işi su - switch user komutuyla yaparlar).
Bir o - bir bu kullanıcı kimliğine büründüklerinde de bazen şaşırmalar olur. Böyle bir durumda hemen whoami komutunu vererek o andaki kimliklerini öğrenebilirler.

Başka Kimler Var?

UNIX işletim sistemi altında çalışan bilgisayarların, bir anda birden fazla kullanıcı tarafından kullanılabileceğini belirtmiştim. İsterseniz, şu anda bilgisayarı sizden başka kullanan kimse var mı, onu öğrenelim. Bunun için
vermeniz gereken komut:
% who

% who
admin tty01 Jan 12 15:12
deneme tty03 Jan 12 10:09
root console Jan 11 23:40
%
Yukarıdaki örneğe göre, şu anda bilgisayarı paylaşan 3 kişi olduğunuz anlaşılıyor. Diğer ortaklarınızın isimleri hakan ve root. Hakan 3 numaralı terminalin, root ise ana terminalin (konsol) başında oturuyor. hakan 12
Ocak günü saat 10:09 da login etmiş; root ise bir gün önce gece yarısına doğru çalışmaya başlamış. Eğer, root gerçekten dün geceden beri çalışıyorsa mesele yok; ama eğer gece eve gitmiş ve giderken logout komutunu vermemişse önemli bir güvenlik hatası yapmış demektir.

***UNIX kullanıcılarının isimleri genellikle kullanıcıların gerçek kimliklerini yansıtacak şekilde seçilir. Sistem yöneticisi; bir kullanıcı tanıtımı yaparken, kullanıcı hesap ismi yanısıra, bu kullanıcının bilgisayardaki kaynaklara erişim yetkilerini de tanımlar. Ancak, UNIX işletim sisteminde adı hiç bir zaman değişmeyen
ÖZEL bir kullanıcı vardır. Bu kullanıcının adı, root sözcüğüdür. Adı root olan kullanıcı HER ŞEYİ YAPMAYA YETKİLİDİR. İstediği dosyayı siler, yaratır, yerini ve içeriğini değiştirir vs. vs. Bu kullanıcıya “süper kullanıcı” (super user) adı da verilir. Eğer bir UNIX bilgisayarına root kullanıcı olarak erişme hakkınız varsa (yani root şifresini biliyorsanız), gerekmedikçe bu isimle login etmeyiniz. Yapacağınız hatalar sisteminizi çalışmaz hale getirebilir. UNIX işletim sistemi, root isimli kullanıcının yaptığı işi çok iyi bildiğini varsayıp, hiç bir uyarıda
bulunmaksızın verilen komutları yerine getirir. (her şeyi sil komutu dahil!)
__________________
Biz Bu Hallere Düşecek Adammıydık ???
Alıntı ile Cevapla