Giriş | |
|
|
|
9 Nisan 2007; 10:27:55
|
|
|
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 hakan 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!)
|
|
|
|
|
9 Nisan 2007; 10:43:39
|
|
|
PASSWORD BELİRLEME: UNIX altında çalışan bir bilgisayara kullanıcı adınızı kullanarak ulaşabilen herkes hesabınız ile istenmeyen işlemler yapıp sizi zor durumda bırakabilir. Başkalarının siz gibi davranmasını istemiyorsanız, UNIX’in şifre mekanizmasından yararlanmanız gerekecektir. Bilgisayara erişim şifrenizi (password) değiştirmek istediğinizde % passwd komutunu kullanmalısınız. Eğer şifreli bir kullanıcı adı ile çalışıyorsanız, yeni şifre verebilmek için o anda geçerli olan şifreyi bilmeniz gerekecektir. abc:/home/admin % passwd Changing old password for admin Old password : eski şifreyi veriniz New password : yeni şifreyi giriniz Retype new password : yeni şifreyi bir kez daha giriniz. Şifreyi iki kez girmenizin istenmesi oldukça mantıklı değil mi? Klavyeden yazarken ekranda göremeyeceğiniz bir şifreyi hatalı yazarsanız, bir daha bu sisteme login etmeniz olanaksız hale gelecektir. ***root hesabı tüm kullanıcıların şifresini değiştirebilir. root ile sistemem bağlı iken bir userın şifresini değiştirmek için: %passwd admin (admin kullanıcısının şifresi değiştirilir.)
< Bu mesaj bu kişi tarafından değiştirildi Paus3Break -- 10 Haziran 2007; 22:15:12 >
|
|
|
|
|
9 Nisan 2007; 11:38:21
|
|
|
|
TEMEL UNİX KOMUTLARI SHELL PROGRAMLAMA'ya geçmeden önce Unix komutlarına giriş yapacağız. Bu bölümde Unix komutlarını parametre ve örnekleri ile ele alacağız 1) man Bir komutun nasıl kullanılacağını öğrenmek ya da hatırlamak istediğinizde % man komut-adi (man=manual) komutunu vermeniz, komut-adı adlı komutun kullanım kılavuzu sayfalarının ekranınızda görüntülenmesini sağlayacaktır. Örneğin, passwd komutunun nasıl kullanılacağını merak ederseniz % man passwd komutunu çalıştırmanız yeterlidir. Bu komutun tüm parametreleri ile ilgili kullanımını ekrana getirir. 2) cd Dizin değiştirme komutudur. ör: %cd /export/home ---->root (/) dizini altındaki export ve export dizini altındaki home dizinine gidilir. ***root dizini Windowslardaki C dizini gibi düşünülebilir. cd kullanımına örnekler: cd .. ---> Bir üst dizine gidilir. cd ../.. --->2 üst dizine gidilir. cd ../home/admin ---> bir üst dizindeki home dizininin altındaki admin dizinine gidilir. cd ~ ---> root dizinine direkt olarak gidilir. 3) mkdir Dizin yaratma komutudur (make directory) ör: mkdir elma --->bulunulan dizine elma dizinini yaratır. mkdir -p /export/home/elma ---> eğer root dizini altında her üç dizin de yoksa iç içe 3ü de yaratılır. -p şeklinde kullanmamızın amacı; komutu çalıştırdığımız zaman hangi dizinde olursak olalım istediğimiz dizin altında istediğimiz dizini yaratmak içindir. Yani biz /usr/local dizini altında iken mkdir elma dersek, /usr/local dizini altına elma dizinini yaratmıs oluruz. Ama /usr/local/ dizinindeysek mkdir -p /export/home/elma dersek /export/home altına elma dizinini yaratmış oluruz. ***Dizin yaratabilmek için, dizin yaratmak istediğimiz dizine o an login halde olduğumuz user'ın yazma hakkının olması lazım. 4) pwd O an hangi dizinde bulunduğumuzu gösteren komuttur. %pwd yazıp enter'a basınca; % /export/home/elma --->/export/home/elma dizinindeyiz. 5) cp Kopyalama komutudur. Bir dosyayı bir dizine, bir dizini baska bir dizine, bir dosyayı baska bir dosyaya kopyalamaya yarar. ör: cp dosya1.txt dosya2.txt --->Dosya1.txt içindekilerin hepsi dosya2.txt e yazılır. Dosya2.txt daha önce dolu ise ezilir, yoksa yaratılır. ör: cp dosya1.txt /export/ ---> diyelim ki /export/home/elma dizinindeyiz ve bu dizinde dosya1.txt var. Bu dosya bu komutla /export/ dizinine kopyalanır. ***Bu komutların hepsi bulunulan dizindeki bir dosyayı baska bir yere ya da bir dosyaya kopyalamak içindir. Alakasız bir dizindeki dosyayı yine alakasız bir yerdeki dosyaya kopyalamak istersek: ör: Diyelim ki /usr/local dizinindeyiz. /export dizinin de dosya1.txt var. Bunu /usr/local/admin dizinine kopyalayacaksak; cp /export/dosya1.txt /usr/local/admin ---> /usr/local/admin dizini altında da dosya1.txt var artık. 6) mv Adından da anlaşılacağı üzere taşıma komutudur. Kullanılışı: mv dosya1.txt dosya2.txt ---> dosya1.txt; dosya2.txt olarak değişir. dosya1.txt kaybolur, dosya2.txt yoksa oluşur, varsa ezilir. mv /export/home/dosya1.txt /usr/local/ ---> /export/home/ altındaki dosya1.txt /usr/local altına taşınır. /usr/local altında dosya1.txt adına baska bır dosya varsa ezilir.
|
|
|
|
|
9 Nisan 2007; 13:27:12
|
|
|
7) cat Dosyaya bakma, modify etme ya da birleştirme komutudur. ör: cat dosya1.txt dosya2.txt > dosya3.txt --->dosya1 ve dosya2 birleştirlip dosya3.txt e yazılır. parametreler: -n: bakılan dosyanın satırlrını numaralayarak önumuze getirir. ör: cat -n dosya1.txt -b: -n ile aynı görevi görür ama boşlukları satır olarak kabul etmeden numaralandırır. ör: cat -b dosya1.txt 8) clear Ekranı temizler. 9) cmp Karışlaştırma komutudur. ör: cmp file1 file2 --->iki dosyanın farkını ekrana yazar. 10) compress, uncompress, gzip, gunzip a) compress Sıkıştırma komutudur. Windowstaki winzip gibi düşünülebilir. Zipli dosyanın uzantısı .Z olur ör: compress file1 ---> file1 dosyayı sıkıstırılır. file1 silinir, zipli dosya oluşur. (file1.Z) b) gzip Sıkıştırma algoritması compress e göre daha iyidir. Sıkıştırılan dosyanın uzantısı .gz olur. ör: gzip file1 ---> file1.gz oluşur. c) uncompress compress ile sıkıştırılan dosyayı açar. .Z uzantılı dosya silinir. açılan dosya kalır. ör: uncompress file1.Z d) gunzip .gz uzantılı dosyayı açar. ör: gunzip file1.gz ***Birden fazla dosyayı aynı anda sıkıştırmak ya da açmak mümkündür. ör: compress file1 file2 file3 11) date Tarih ve saat bilgisini verir. ör: date 12) echo Ekrana yazı yazdırma komutudur. ör: echo "Merhaba"
|
|
|
|
|
9 Nisan 2007; 14:57:25
|
|
|
buraya kadar sorusu olan ya da aklına bişey takılan kimse var mı?
< Bu mesaj bu kişi tarafından değiştirildi Paus3Break -- 9 Nisan 2007; 15:05:49 >
|
|
|
|
|
9 Nisan 2007; 17:25:38
|
|
|
üst konu yapalım bunu, iyi gidiyorsun.
_____________________________
Beni bir dağda buldular Benim adım dertli dolap Suyum aşağıdan alırım Kolum kanadım kırdılar Suyum akar yalap yalap Alır yukarı dökerim Dolaba layık gördüler Böyle emreylemiş çalap Ben mevlayı zikrederim Onun için inilerim. Onun için inilerim. Onun için inilerim. Hannan Allah, Mennan Allah, Her dertlere derman Allah. Yunus Emre
|
|
|
|
|
9 Nisan 2007; 17:58:46
|
|
|
yönetim uygun görürse olabilir
|
|
|
|
|
10 Nisan 2007; 10:19:14
|
|
|
konunun üst konu olması iyi olmuş. Bugün komutlarla devam edeceğiz
|
|
|
|
|
11 Nisan 2007; 9:18:43
|
|
|
13) ls Bulunulan ya da komutla beraber yazılan dizinde hangi dosya ya da dizinlerin olduğunu gösterir. ör: pwd komutu ile hangi dizinde olduğumuza bakalım. (artık komutları beraber kullanabiliriz) %pwd (enter'a basıldıktan sonra) % /export/home Şimdi bu dizinde ne var ne yok ona bakalım: % ls admin backupop erhan /export/home dizinindeyken /usr dizininde ne var diye merak ediyorsak %ls /usr komutunu çalıştırmamız yeterlidir. ***Tabi bu 3 sonuç dosya mı dizin mi belli olmuyor buradan bakınca. Ancak cd ile içine girmeye çalışırsanız dizin ise girer dosya ise NO A DIRECTORY uyarısını alırısınız. ***Dosya mı dizin mi, yazma hakkı, okuma hakkı, program ise çalıştırma hakkı, en son guncellenme tarihi vs bilgileri ise ls komutunun parametreleri ile belirlenebilir. Parametreler: ls -l: ls komutu -l parametresi ile çalıştırıldığında ayrıntılı bir liste verir. ör: /export/home dizini altındayken % ls -l dersek drwxr-xr-x 2 root other 512 Apr 11 08:09 admin -rw-r--r-- 1 root other 4 Apr 11 08:12 alp drwxr-xr-x 2 backupop staff 512 Aug 9 2005 backupop ***Gördüğünüz gibi /export/home dizini altındaki 3 sonuç hakkında oldukça ayrıntılı bir bilgi önümüze getirildi. Şimdi bunlardan birini ele alarak sırasıyla satırların ne anlam ifade ettiğini görelim. drwxr-xr-x 2 root other 512 Apr 11 08:09 admin soonucu için konuşacak olursak, drwxr-xr-x: d: admin in bir dizin (directory) olduğunu gösterir. rwx: admin dizininde dizin sahibinin OKUMA (r), YAZMA(w) ve ÇALIŞTIRMA (e: execute) haklarının olduğunu gösterir. r-x: admin dizininde grubun haklarını gösterir. Bu örnekte OKUMA (r) ve ÇALIŞTIRMA(x) hakkı var YAZMA(w) hakkı yok. r-x: admin dizininde diğer kullanıcıların haklarını gösterir. Bu örnekte OKUMA (r) ve ÇALIŞTIRMA(x) hakkı var YAZMA(w) hakkı yok. root: admin dizininin ROOT kullanıcısına ait olduğuu belirtir. 512: Dizinin boyutu (byte cinsinden) Apr 11 08:09: oluşturulma/ modifiye tarihi. ls -lt: dosya ve dizinleri modifikasyon zamanlarına göre gösterir. ls -ltr: dosya ve dizinler modifikasyon zamanına göre AZALAN olarak gösterilir. En altta en güncel dosya/dizin bulunur. ls -ltR:dosya ve dizinler modifikasyon tarihine göre ARTAN olarak gösterilir. En altta en eski dosya/dizin bulunur. ls -la: dosya ve dizinler harf sırasına göre sıralanır. Gizli dosya ve dizinler varsa .. şeklinde görünür.
|
|
|
|
|
11 Nisan 2007; 10:24:42
|
|
|
14) rm: Silme komutudur. ör: rm dosya1 Dizin silmek için -R parametresi kullanılmalıdır. rm -R admin. ***Dosya ya da dizin silmeden önce size emin misiniz diye sormasını istiyorsanız -i parametresini kullanmalısınız. ör: rm -i dosya1 yazılıp enter'a basılınca şöyle bir uyarı çıkar: rm: remove dosya1 (yes/no)? ör: rm -iR admin yazılıp entera basılınca; rm: examine files in directory admin (yes/no)? (yes denirse), rm: remove admin: (yes/no)? buna da yes denirse admin dizini silinir. 15) chmod: Dosya ve dizinlere okuma, yazma ve çalıştırma haklarının verilmesi ya da alınmasını sağlar. Hatırlarsanız ls -l ile bir dizin ya da dosyanın ayrıntılı bir şekilde görülmesini sağlıyorduk. u r g + w % chmod o = x dosya_adı a - u : dosyanın sahibi (user) g : dosyanın sahibiyle aynı grupta olanlar (group) o : diğer kullanıcılar (others) a : herkes (all ) + : yetki ekleme = : yetki eşitleme - : yetki çıkarma r : okuma yetkisi (read) w : yazma yetkisi (write) x : Çalıştırma (execute) ör: chmod a+x dosya1 --> dosya1 e herkes için çalıştırma hakkı verildi. chmod o-w dosya1 --->dosya1 den diğerlerinin yazma hakkını kaldır. chmod go=rx adres ---> adres dosyasının grup ve diğerleri için erişim yetkisini r-x kalıbına eşitler. ***chmod'un baska bir kullanım şekli daha vardır. Rakamlarla yetki atamak: 4 2 1 4 2 1 4 2 1 r w x r w x r w x Owner Group Others ör: Diyelim ki bir dosya için herkese her hakkı vereceğiz. O zaman tüm rakamları kendi içinde topluyoruz, yani: 4+2+1=7 4+2+1=7 4+2+1=7 o zaman chmod 777 dosya1 dersek herkes dosya1 uzerınde her işi yapar. 4+2=6 (okuma ve yazma hakkı) 4+1=5 (okuma ve çalıştırma hakkı) 2+1=3 (yazma ve çalıştırma hakkı) ör: chmod 751 dosya1 ---> dosya1 içi dosyanın sahıbıne tum haklar (7), dosyanın grubundakıler okuma ve çalıştırma hakkı (5) ve diğerlerine sadece çalıştırma (1) hakkı verildi. 16) chown: Dosya ve dizinlerin sahibini değiştirmeye yarar. ör: admin dizini ROOT kullanıcısına aitti. Kullanıcısını diyelim ki mehmet yapzacağız: chown mehmet admin 17) ps: O an çalışan processleri gösterir. ps komutu verilince ekrana gelenler: PID: (Process ID) UNIX’de, her sürecin birer tanıtım numarası vardır. Aynı numaraya sahip iki süreç olamaz. TT: (Teletype : Çok eskilerden kalan bir alışkanlık) Sürecin hangi terminalden başlatıldığı (genellikle co : console, ttya : a isimli seri arabirim, p0 bilgisayar ağı üzerinden bağlanmış bir ekran). TT bilgisi kullandığınız donanımın özelliklerine göre değişebilir. TIME: Sürecin ne kadar zamandır çalıştığını gösterir COMMAND: Süreci başlatan komut satırı ps -ef: Sistemdeki tüm işlemler hakkında bilgi alınır.
|
|
|
|
|
13 Nisan 2007; 9:30:47
|
|
|
Komutlarla devam... 18) sort: Sıralama komutudur. ör: sort file1 > file2 --->file1 içindeki bilgiler sıralanıp file2 dosyasına kaydedilir. parametreler: -d:sözlük sıralamasını kullanır ve noktalama işaretlerini ihmal eder. -b:Satır başlarındaki boşlukları ihmal eder. -f:Caps boşluklarını dikkate almaz. -r:Tersten sıralama yapar. -u:Aynı satırdan bir ya da daha fazla varsa sadece birini gösterir. ***Bu madde önemli 19)tail Bir dosyanın son (adından da anlaşılacağı üzere:kuyruk) kaç satırını görüntülemek istiyorsak bu komutu kullanırız. paramtereler: -f: En çok kullanılan parametredir. ör: tail -f dosya1 ---> dosya1 in son bir kaç satırını gösterir. tail -10f dosya1 ---> dosya1 in son 10 satırını görüntüler. 20) uniq: Bir dosya içinde tekrarlayan satırları görüntüler. parametreler: -c: Dosya içinde her satırın kaç kere tekrar ettiğini gösterir. -d: dosya içinde tekrar etmeyen satırları göstermez. -u: dosya içinde tekrar eden satırları göstermez. ör: uniq dosya1 > dosya2 ---> dosya1 içinde tekrar eden satırlar dosya2 ye kaydedilir. (sort -u gibi) 21) kill: Process öldürmek içindir. ör: Process_id (pid) si 14536 olan bir process i öldürmek istiyorsak; kill -9 14536 ---> process i hemen öldürmek istiyorsa -9 parametresini kullanırız. 22) nohup: Bir UNIX bilgisayarına ulaşmak için kullandığınız terminali ya da terminal gibi davranan bir PC’yi (Terminal Emulation yazılımı çalışan bir PC) kapatırsanız veya logout komutu ile sistem bağlantınızı keserseniz, o terminal bağlantısıyla ilgili tüm süreçler (hem ön, hem arka plandaki süreçler) UNIX tarafından öldürülür. Ender de olsa, bazı durumlarda sistemden çıkmanıza rağmen, başlatmış olduğunuz bir işin kesilmeden devam ettirilmesini isteyebilirsiniz. nohup komutu bu iş için idealdir. ör: nohup komut & nohup gzip dosya1 & ---> bu komutu nohup sız verirsek ve dosya buyukse işlem hemen bitmez, ama işimi var ve hemen cıkmamız gerekse nohup la gzip komutunu verip terminalı kapatabiliriz. 23) wc: kelime sayma komutudur. parametreler: -l: sadece satırları; -w: sadece kelimeleri; -c: sadece karakterleri sayar. ör: wc -lw dosya1 ---> dosya 1 içinde kaç satır ve kaç kelime olduğunu gösterir.
|
|
|
|
|
17 Nisan 2007; 14:58:41
|
|
|
Tam gaz devam: 24) sleep: Bekleme komutudur. Yanında verilen sayı kadar saniye bekler. Shell programlamada oldukça işimize yarayacak. ör: sleep 5 --->5 saniye bekle. 25) cal: takvim komutudur. ör: cal -->içinde bulunulan ayı takvimsel olarak gösterir. cal 1995 --->1995 yılını takvimsel olarak gösterir. cal 7 1995 --->1995 temmuz ayını gösterir. 26) find: Adından da anlaşılacağı üzere arama komutudur. find baslama-dizini kriter[ler] [-exec komut ";"] ör: find /export/home -name dosya* ---> /export/home ve alt dizinlerinde dosya ile baslayan tüm dosyalar aranır. find /export/home -user admin --->user kullanıcısına ait dosyalar. find /export/home -group class --->class grubuna ait dosyalar. find /export/home -size 10 ---> diskte kapladığı alan 10 blok olan dosyalar (1 blok = 512 Byte) find /export/home -size +100 --->diskte kapladığı alan 100 bloktan büyük olan dosyalar (51 KByte’dan büyük dosyalar) find /export/home -size -45 --->diskte kapladığı alan 45 bloktan küçük olan dosyalar find /export/home -ctime 3 --->Tam 3 gün önce değişikliğe uğramış olan dosyalar find /export/home -mtime +8 --->8 günden daha uzun bir süre önce değişikliğe uğramış olan dosyalar ****-ctime ve -mtime parametrelerinin her ikisi de dosyanın değişikliğe uğramasıyla ilgili süreleri kontrol eder; ancak aralarında küçük bir fark vardır. -mtime, dosyanın içeriğinde bir değişiklik yapılıp yapılmadığına; -ctime ise dosyanın içeriği yanısıra özelliklerinin de değişip değişmediğini kontrol eder. Örneğin, sahibi değişen bir dosya -mtime tarafından farkedilmezken -ctime tarafından dikkate alınır. ÖNEMLİ ÖRNEK: find / -name core -exec /bin/rm {} ";" / dizininden başlayarak tüm disklerde core isimli dosyaları arar ve bulduklarını siler. find komutunu -exec parametresiyle birlikte kullanırken sondaki ";" parametresini UNUTMAMALISINIZ. Bu ";" karakter dizisinin gerekliliği tamamen find programının yazılışından kaynaklanmaktadır. Bu komut, sistem yönetiminden sorumlu olanların oldukça sık kullanacakları bir komuttur. find komutuyla birlikte kullanılan kriterleri çeşitli mantık operatörleriyle birleştirebilirsiniz. Bunlar -a : "ve" -o : "veya" \! : "deil" operatörleridir. Örnekler : find /home -name "*.tmp" -a -size +100 -print --->Adı *.tmp kalıbına uyan ve büyüklüğü 100 bloktan fazla olan dosyaları bulur. (1 blok = 512 byte) 27) grep: Dosyaların içinde bişeyler arama komutudur. Bu komut da oldukça önemlidir. Kullanılışı: grep [-ilnc] patern dosya(lar) ör: grep -c mehmet dosya1 --->dosya1 in içinde mehmet kelimesinin kaç kere geçtiğini bulur. grep mehmet dosya1 ---> dosya1 in içindeki mehmet kelimesi geçen yerleri listeler. grep -i mehmet dosya1 ---> mehmet kelimesini büyük-küçük harf ayrımı yapmadan listeler.
|
|
|
|
|
23 Nisan 2007; 20:59:36
|
|
|
|
UNIX PIPE KAVRAMI Piping işlemi, bir çeşit yönlendirmedir; bir programın standart çıktısı, bir başka programa standart girdi olarak yönlendirilir. Pipe kurmak için, aynı komut satırında en az iki program birden başlatmalı ve bu iki programa ilişkin komutların arasına | karakterini (ALT GR+ > tuşu) yerleştirmeniz gerekir. Şimdi grep komutu ve pipe kavramının birlikte kullanımına bir kaç örnek vereyim: % grep kelime1 d | | | |