sHuKKo.com Linux - Dosya Sistemleri Linux - Kabuk /Shell Linux - Komutlar Linux Komutlar - 2

 

Son guncelleme: 28 Kasim 2004 Pazar

Dosya Kaynak: Anonim - Linux Ders Notlari

Bu sayfadaki bilgiler link ve credit verilmek uzere istenildigi gibi kullanilabilir.

bilgi: shukko@shukko.com

 

Dosya ve Dizin Sistemi

                            

/ Her linux makinesi için genel olarak yerel diskte tutulur. Buna rağmen bazı durumlarda ramdisk yada bir network sürücüsünde tutulabilir. Sistemin açılması için gerekli dosyalarını, sistem açıldığında diğer dosya sistemleri / (root) dosya sistemine bağlanır. / dosya sistemi sistemin açılmaması, dosya sistemlerindeki hataların oluşması durumunda sistemin açılması için grekli olabilecek bir takım programları içierisinde bulundurur. / dosya sistemi linux dosya sisteminin temeli ve başlangıcıdır. Bu dosya sisteminde oluşabilecek bir hata diğer dosya sistemlerinin düzgün olmasına rağmen ulaşılmamasına neden olacaktır. 

 

/usr

Dosya sistemi, bütün kütüphaneleri, komutları, normal işlemler sırasında değişmeyen dosyaları ve kılavuz sayfalarını içerir. /usr dosya sistemindeki hiçbir dosya her hangi bir makine için özelleştirilmez. Hepsi normal kullanım amacına yönelik hazırlanmış dosyalardır. Bu sayede buradaki dosyalar ağ üzerinden paylaşılabilir. Bu sayede sabit disklerden önemli ölçüde yer kazanmak mümkün olur. Bu da çok büyük bir tasarruf sağlar. Bir uygulamanın güncellenmesinde sadece ana /usr değiştirilir. Bu da /usr'yi ağ sistemine bağlamayı oldukça kolaylaştırır. Dosya sistemi yerel bir disk üzerinde olsa bile sadece okunabilir şekilde ayarlanması daha uygun olur. Bu sayede herhangi bir çökme durumunda dosyaların hasar görme ihtimalini azaltmış oluruz.

 

/var

Dosya sistemi sürekli değişen dosyaları barındırır. Epostalar, mesajlar, spool dizinleri (news, printer, vb..), düzenlenmiş kılavuz sayfaları ve temp dosyaları bu dosya sisteminin içindedir. Geleneksel olarak /var dizininin altındaki her şey /usr dizini altında bir yerlerde mutlaka vardır. Bu da /usr dosya sisteminin salt okunur yapılmasına olanak verir.

 

/home

Dosya sistemi kullanıcıların ev dizinlerini yani sistemde bulunan bütün gerçek verileri (database vb.) içeren dosya sistemidir. Ev dizinlerini çeşitli parçalara ayırmak yedekleme açısından son derece faydalı olabilir. Nede olsa bütün dizinler aynı hızla değişmiyor. Büyük /home dizinlerinin; /home/staff, /home/student gibi parçalara ayrılması daha akıllıca olacaktır.

 

/bin

Açılış sonrası root ve normal kullanıcılar tarafından kullanılacak komutları içerir. cp, mv gibi. Bu nedenle bu dosya sisteminde bulunan komutlar her şekilde “/” ana dizine bin dizini mount edilerek kullanılabilmelidir. Genellikle /bin dizini içinde, bu nedenle dizin ve başka bir dizine yada dosya sistemine oluşturulmuş link bulunmaz.

 

/sbin

/bin dizinine benzer ama buradaki komutlar, normal kullanıcıların kullanabilmesi için ayrıca tanımlanmadıkça sadece root kullanıcı içindir.

 

/etc

Makineye özel yapılandırma dosyaları bulunur.

 

/root

root kullanıcısı için ev dizinidir. Diğer kullanıcıların bu dizine ulaşması istenen bir durum değildir.

 

/lib

Kök dosya sistemindeki programlar tarafından ihtiyaç duyulan paylaşımlı kütüphanelerin bulunduğu dosya sistemidir.

 

/lib/modules

Genellikle sistemin açılışı sırasında sorunların önlenilmesi için ihtiyaç duyulan yüklenebilir çekirdek modüllerini içerir.

 

/dev

Aygıt ve sürücü dosyalrının bulunduğu dizindir. Bu dizin içdeki herşey dosya ve dizindir. Bu diznin içinde hda1, hda2, cdrom,  cciss, gibi. Cdrom için /dev/cdrom, floppy için /dev/floppy mount edilie ve Cdrom, floppy kullanılabilir. Yazıcıya çıktı /dev/lp0 dosyası kullanılarak gönderilir. Aşağıdaki örneklerde /dev dizini içindeki dosyaların hangi sürücüyü işaret ettikleri görülebilir.

 

/dev/ttyS0 (First communications port, COM1)           /dev/psaux (PS/2)

/dev/lp0 (First printer port, LPT1)                               /dev/dsp (First audio device)

/dev/usb (USB Devices)                                              /dev/sda (C:\, SCSI device)

/dev/scd (D:\, SCSI CD-ROM device)                       /dev/js0 (Standard gameport joystick)

/dev/fd0 (disket sürücüsü)                                             /dev/hda (IDE primary master harddisk)

/dev/ht0 (ilk tape backup sürcüsü)                                  /dev/js0 (ilk analog joistik)

 

Sürücü dosyaları block veya character olarak ayrılır. Block dosyalar data tutan sürücüleri tanımlamak için kullanılır. Örneğin Cdrom, Floppy gibi. character sürücüler ise datanın iletilmesini üstlenir. Örneğin com1, lpt1, psaux gibi.

 

 Major ve Minor numaraları.

 

Aşağıda /dev dizini içinde disket sürücüsü için oluşturulmuş aygıt dosyasının özellikleirine bakalım.

brw-------  1 root disk 2, 0 Apr  6 16:27 /dev/fd0

 

Alıştımız gibi dosyanın tipi, izinleri, sahibi, grubu ve tarih bilgilerini görebiliyoruz. Ancak ilgli dosyanın kapasitesinin belirtildiği yerde 2 ve 0 rakamları yer alıyor. 2 Major, 0 Minor numarası. Linux donanımları kullanırken aslında bu donanımları işerte eden dosyalrı kullanır. Örneği yazıcıya çıktı gönderildiğinde /dev/lp0 dosyası karakter aygıt olması özelliği ile gelen veriyi işaret edilen donanıma gönderir yani yazıcıya.

            Major numarası aygıtın sürücüsünü belirtmek için kullanılır. Donanımlar ile ilgili sürücüler sisteme yüklendiğinde, aygıtın major numarası kullanır ve ilgli işlemlerin kendi sürücü dosyaları üzerinden yapılacağını bildirir. Minor numarası ise ilgili aygıtın sürücüsü tarafından aygıtı ayırt etmek amacı ile kullanılır. Minor numarası aynı tipte olan aygıtların birbirinden ayrılması için kullanılır. Örneğin sistemde takılı olan IDE harddiskin hda olarak bir major numarasının olması, bu diskteki bölümlerin HDA1, HDA2 olarak adlandırılması ve farklı minor numaralarının olmasıdır.

 
               Kernel tarafından kullanılan sabit Major numaralarına aşağıda yolu verilen dosyadan bakılabilir. Ancak yerel kullanımlar için 60-63, 120-127, 240-254 arası boşbırakılmıştır.

 

/usr/src/linux/Documentation/devices.txt

Bu konu için mknod komutuna bakabilirsiniz.

 

/tmp

Geçici dosyalar bulunur. Açılış sonrası çalışan programlar genelde daha fazla yer olmasından dolayı /var/tmp dizinini kullanırlar. Sıklıkla /tmp dizininden /var/tmp dizinine sembolik bir bağ verilmiştir.

 

/boot

Bu dizin açılış işlemi sırasında konfigürasyon dosyaları hariç tüm programları içerir. Konfigürasyon dosyaları /etc dizininde bulunur. LILO ve benzeri programların dosyaları burada bulunur. Genellikle önyükleme kaydının dosyası kök dizin yerine burada saklanır. Eğer birden çok çekirdek imajı sistemde mevcut ise bu dizin çok fazla büyür. Bu nedenle, böyle durumlarda ayrı bir dosya sistemi açmak daha iyi olur. Veya /boot dizini IDE disk üzerinde ilk 1024 silindir içinde olduğundan emin olmak için ayrı bir dosya sistemi açılabilir.

 

/mnt

Sistem yöneticileri tarafından geçici dosya sistemi bağlama işlemlerinin yapıldığı yerdir. Dosya sistemi bağlama işlemleri bu dizine yönlendirilir. Bazı durumlarda bu dizin de alt dizinlere ayrılabilir. Msdos ve ext2 dosya sistemlerine ait aygıtları ayrı ayrı bağlamak için ayrım yapılabilir. Bazı dağıtımlarda /mnt/cdrom ve /mnt/floppy dizinleri ön tanımlı olarak gelir.

 

/proc dosya sistemi

Sanal dosya sistemidir. Disk üzerinde yer kaplamaz. Çekirdek /proc dizinini bellekte yaratır. Sistem hakkında bilgiler burada saklanır (süreçler ve isimleri ,vb..). /proc dosya sistemi ayrıntılı olarak kılavuz sayfasında açıklanmıştır. Bazı çok önemli dosya ve dizinler:

 

/proc/1

1 numaralı süreç hakkında bilgi içerir. Her sürecin kendi numarası ile anılan bir dizini vardır.

 

/proc/cpuinfo

İşlemci hakkında türü, üreticisi, modeli gibi bilgileri içerir.

 

/proc/devices

Çekirdekte o an için çalışan aygıt sürücülerinin listesini verir.

 

/proc/dma

O anda kullanılan DMA kanallarını gösterir.

 

/proc/filesystems

Çekirdekte tanımlanmış olan dosya sistemlerini gösterir.

 

/proc/interrupts

Hangi kesmelerin kullanıldığını ve hangilerinin halihazırda beklediğini gösterir.

 

/proc/ioports

Hangi giriş/çıkış portlarının kullanıldığını gösterir.

 

/proc/kcore

Sistemdeki fiziksel belleğin bir görüntüsü. Fiziksel bellek ile aynı boyuttadır. Çalışan programlar için yaratılmıştır ama gerçek bir bellek değildir. Siz herhangi bir yere kopyalamadıkça /proc altındaki bilgiler diske yazılmaz.

 

/proc/kmsg

Çekirdek mesajları. Ayrıca syslog'a yollanır.

 

/proc/ksyms

Çekirdek sembol tablosu.

 

/proc/loadavg

Sistemin ortalama yükü. Üç adet anlamsız gösterge sistemin o an ne kadar çalıştığını gösterir.

 

/proc/meminfo

Hem fiziksel bellek hem de takas hakkında bilgi verir.

 

/proc/modules

O an yüklü çekirdek modüllerini gösterir.

 

/proc/net

Ağ protokolleri hakkında durum bilgisi verir.

 

/proc/self

O an /proc'a göz atan programın süreç dizinine sembolik bağ. Eğer iki süreç söz konusu ise ikisi de ayrı bağ alır. Böylece programların süreç dizinlerine ulaşmaları daha uygun hale getirilmiş olur.

 

/proc/stat

Sistem hakkında çeşitli istatistikler bulunur. Örneğin sistem açılışından beri meydana gelen hataların sayfa sayısı gibi.

 

/proc/uptime

Sistemin açık kaldığı süreyi verir.

 

/proc/version

Çekirdek sürüm bilgilerini içerir.

 

 

Yukarıda adı geçen dosyaların pek çoğu kolayca okunabilecek şekilde metin dosyaları halindedir. Fakat bazılarının düzenlenmesi gerekebilir. Bunları okumaktansa içeriklerini gösteren komutları kullanmak daha kolaydır. Örneğin free programı /proc/meminfo'yu okur ve byte olan değerleri Kb'a çevirerek gösterir.

 

            Unix dosya sitemi dosyalrı gruplar. Tüm komutlar, data dosyaları, dökümanlar gibi. Bu dosyaları gruplayarak tek yerde tutar. Bazı program dosyaları yüklendikleri dizinlerin içinde tutulabilir. Mesela Adobe Acrobat, Emacs.  

 

 

Dosya ve Dizin hakları / izinleri:

 

[root@charlie root]# ls –la komutuyla bulunulan yerdeki tüm dosyalar ekranda aşağıda görüldüğü gibi listelenebilir.

 

total 132

drwx---r--     6 root     root         4096 May 23 10:01 .

drwxr-xr-x    20 root     root         4096 May 23 07:47 ..

-rw-r--r--     1 root     root         1456 Jan 23 22:29 anaconda-ks.cfg

-rw-------     1 root     root        19225 May 23 10:33 .bash_history

-rw-r--r--     1 root     root           24 Jun 11  2000 .bash_logout

-rw-r--r--     1 root     root          252 Feb  2 15:53 .bash_profile

-rw-r--r--     1 root     root          176 Aug 23  1995 .bashrc

-rw-r--r--     1 root     root          210 Jun 11  2000 .cshrc

-rw-r--r--     1 root     root            7 Mar  5 18:49 deneme

drwxr-xr-xt    2 root     root         4096 May 14 18:18 hardy

-rwxr-xr-x     1 root     root         8489 May 23 08:07 hastane

-rwx------     1 root     root          670 Feb 18 18:40 ibbackup

-rwx------     1 root     root           28 Jan 28 18:06 ibstart

-rw-r--r--     1 root     root           47 Mar  1 14:20 ibstat

-rwx------     1 root     root           29 Jan 28 18:08 ibstatus

-rwx------     1 root     root           28 Jan 28 18:07 ibstop

-rwx------     1 root     root           54 Jan 28 17:54 ibvalidate

-rwxr-xr-x     1 root     root          550 May 21 18:03 kapa

drwxr-xr-x     3 root     root         4096 May 14 18:14 laurel

-rwxr-xr-x     1 root     root          948 May 21 18:02 sistem

drwxr-xr-x     2 root     root         4096 Feb  2 15:31 src

drwx------     2 root     root         4096 Apr  1 19:15 .ssh

-rw-r--r--T    1 backup   root            9 May  6 17:30 yasemin

drwxrwxrwx     1 root     root         2715 May 23 10:01 yazilim

lrwxrwxrwx     1 root     root           13 Jan 23 21:26 rc.local -> rc.d/rc.local

lrwxrwxrwx     1 root     root           15 Jan 23 21:26 rc.sysinit -> rc.d/rc.sysinit

lrwxrwxrwx     1 root     root           10 Jan 23 21:26 rc3.d -> rc.d/rc3.d

-rwxr--r--     1 root     root      2674590 Apr  7 17:38 FirebirdSS-1.0.2.908-1.64IO.i386.rpm

-rw-r--r--     1 root     root         4837 Mar  4 18:37 interbase_20030304_1837.tar.gz

 

1. Sütün           : Dosyanın, Dizinin izinleri,

2. Sütün           : Dosyanın, Dizinin bağlantı sayısını,

3. Sütun           : Dosyanın, Dizinin sahibi olan kullanıcı,

4. Sütün           : Dosyanın, Dizinin Grubu,

5. Sütun           : Dosyanın, Dizinin kapasitesi,

6. Sütun           : Dosyanın, Dizinin son değiştirilme tarihini ve saatini,

7. Sütün           : Dosyanın, Dizinin adını gösterir.

 

l,d,r,w,x harfleri de

d (directory)      = dizin, eğer d harfinin yerinde – işareti varsa ilgili ismin bir dosya ismi olduğu anlaşılır.

l  (link)              = görünen ismin başka dizindeki, bir dosyayı yada dizinini gösterdiği, yönlendirdiği anlaşılır.

b                      = block device. /dev dizini içinde bulunan dosyalarda görülür. Cdrom veya disket sürücüleri gibi data

                           taşıyan sürücüleri temsil eden dosyaları belirtmek için kullanılır.

c                      = character device. Yine /dev dizini içinde bulunan dosyalarda görülür. Lpt1, seri portları temsil eden ve

                           kullanılmasını sağlayan dosyaları işaret eder.

r  (read) = okuma

w (write)            = yazma

x (execute)       = çalıştırma  izinlerini / haklarını ifade eder.

-                       = izin yok

T                      = Takas özelliği olan dosyalar için geçerli bir özelliktir. Bu dosyaların son değiştirilme tarihinin

                           güncellenmediği anlamına gelir.

t                       = Yapışkan bit olarak adlandırılır. Genel olarak dizinler için kullanılan bir özelliktir. Dizin içinde kullanıcılar

                           dosya oluşturabilir, diğer kullanıcıların dosyalarını görebilir fakat kullanıcılar kendi oluşturdukları

                           dosyalar üzerinde işlem yapabilir, diğer kullanıcıların dosyalarını silemezler.

s                      =

p                      =

 

 “yazilim” dosyasının izinleri aşağıda görülmektedir.

-rwxrwxrwx  yazilim

 

Toplam on karakterlik bu ifadenin soldan sağa doğru ilk karakter l veya d olmasına göre adı geçen ifadenin bir link veya dizin olduğu anlamına gelir.

 

2.,3.,4., karakter dosyanın sahibinin haklarını

5.,6.,7., karakter kullanıcının üye olduğu grubun haklarını

8.,9.,10. karakterler ise diğer kullanıcıların dosya üzerindeki haklarını ifade eder

 

Ayrıca ekranda görünen metinlerin, isimlerin renklerine bakarak ilgili ifadenin bir dosya mı, dizin mi olduğu anlaşılabilir.

 

Beyaz               = Normal dosyaları ifade eder.

Yeşil                 = Çalışabilen (x) dosyaları ifade eder.

Mavi                 = Dizinleri ifade eder.

Turkuaz            = Link tanımlarını dosyalarını ifade eder. İlgili linkin işaret ettiği dosya link isminin hemen yanında

                           görülebilir.

Kırmızı              = rpm yada bzip2 gibi programlarla sıkıştırılmış soyaları ifade eder.

Sarı      : Blok veya karakter dosyalar, aygıtlar.

Bordo   : Socet dosyası

 

 

 

Komutlar ile ilgili açıklamalar.

 

Dosya ve Dizin İşlemleri ile İlgili Komutlar:

 

            İlgili komutlara geçmeden önce dosya ve dizin adlarında kullanılan bazı özel karakterleri tanımak yararlı olacaktır.

 

*           : Dosya ve dizin adında veya uzantısında  0 ile temsil edebileceği sayı kadar karakter yerine geçer.

              abc, abcd, abcde adında üç tane dosyamız olsun.

              abc* ifadesi bu üç dosyayı temsil etmek için kullanılabilir.

              ab*d ifadesi ab ile başlayan adının son karakteri d olan dosyaları temsil eder.

              a*c*d.txt  ifadesi adı aile başlayan adında c harfini içeren ve adının son karakteri d olan dosyalar anlamına gelir.

 

?          : Dosya ve dizin adında bir karakter yerine geçer. Yazıldığı sayı kadar karakter yerine geçer ve dosya veya dizin

              adı yazıldığı sayıdan az da  olsa ekranda listelenmez.

              Yine abc, abcd, abcde adında üç tane dosyamız olsun,

               ??? ifadesi abc adındaki dosyayı,

               ???? abcd adındaki dosyayı temsil eder.        

 

[ ]        : (Köşeli Parantez) dosya ve dizin adında parantez içinde verilen karakterlerin arasından denk gelen karakteri

             seçer.  *[ae] yazarak sonu a yada e harfi ile biten dosyaları, abc[sx] yazarak adı abc harfleri ile başlayıp bu

             harflerden sonra dosya adında s ve x harfleri geçen dosyaları  ifade etmiş oluyoruz.

          

-           : İşareti ile de mesela a-z ifadesi ile a ’dan z ’ye kadar olan karakterleri temsil edecektir. Mesela [a-f]* yazarak

  adı a ile f harfleri arasında olan harfler ile başlayan dosyaları ifade etmiş oluyoruz.

 

Komutlarla İlgili Yardım Almak:

 

            Komutlar ile ilgili yardım almak için komutun sonuna –help ifadesi yazılır. Ekran çıktısı ekrana sığmazsa, klavyeden Shift tuşu ile beraber Page Up ile yukarı, Shift tuşu ile beraber  Page Down tuşları ile aşağı hareket edilerek ekrana sığmayan bilgiler görülebilir. Ayrıca komutlar ile ilgili ayrıntı bilgi edinmek için man ve info komutları da kullanılabilir.

            Örnekler:

      [root@charlie tmp]# man ls

[root@charlie tmp]# info ls

[root@charlie tmp]# ls --help

[root@charlie tmp]# ls --help ¦ more (Komut çıktısının ekranda sayfa sayfa görüntülenmesi için kullanılır. Enter tuşu ile satır satır, boşluk tuşu ile de sayfa sayfa ekran kaydırılır. Ayrıca Shift tuşu ile beraber Page Up ve Page Down tuşları ile de ekran çıktısında yukarı ve aşağı hareket edilebilir.)

           

 

1) Komutlar :

 

clear

 

clear

 

            Ekranı temizlemeyi sağlar.

[backup@charlie backup]$ clear

 

ls

 

Dosya ve dizinleri ekranda listelemek için kullanılan komuttur. Komut aksi belirtilmediği sürece ekranda  dosya ve dizinleri A-Z ‘ye doğru sıralayarak listeler.

 

 

ls       [-la1f]     [dosya veya dizin adı]

 

Dosya ve dizinleri ekranda listeler.Tek başına ls komutu verilirse bulunulan dizinin içindeki dosya ve dizinler ekranda listelenir.

 

ls  komutuyla bir dizininin içeriğini görmek için dizinin yolu ve adı yazılabilir.

 

ls /home           : komutuyla ana dizindeki home dizininin içeriği ekranda listelenir.

 

ls –r  ..             : Komutuyla bir üst dizin listelenir.

                          Diyelim ki /home/sina dizini içindeyken bu komutu verirseniz bir üst dizin olan /home dizini listelenir.

 

ls ../..               : Komutuyla bulunulan dizine göre iki üst dizin ekranda listelenir.

                          /home/sina dizininin içindeyken ls ../.. komutu / ana dizinin ekranda listeleyecektir.

 

Ayrıca komutla beraber dosya adı verilerek sadece istenen dosyaların listesi ekrana getirilebilir.

 

ls root.txt          :Eğer bulunulan dizinde root.txt adında bir dosya varsa ekranda listelenir.

 

ls r*                  : Adı r ile başlayan dosya ve dizinler ekranda listelenir.

 

ls *.a*               : Uzantısı a ile başlayan dosyalar ekranda listelenir.

 


Seçenekler :

 

-a / -all  : Tüm dosya ve dizinlerin ekranda listeler.

 

-l          : Her dosyanın ve dizinin izinlerini, sahibini,  boyutunu (byte olarak), son değiştirilme tarihini ve saatini ekranda

              listeler.

 

-R         : Dizin ve alt dizinlerin içindeki dosyalarla beraber ekranda listelenmesini sağlar.

              Örnek: ls –R /etc

 

-d         : Belirtilen dizinin içeriğinin yerine sadece dizinin adını ekranda görüntüler.

      [root@charlie root]# ls -d /etc/

 Komutunu –d parametresi olamdan kullnsaydık ana dizindeki etc dizinini içeriği

 ekranda listelenecekti. –d parametresi ile sadece dizinin adı ekranda

 listeliyoruz. Komutun çıktısı aşağıda görülebilir.

drwxr-xr-x   41 root     root         4096 Jul 11 08:32 /etc/         

 

-X         : Dosya ve dizinlerin uzantılarına göre A ’dan Z ‘ye doğru sıralar.

              Örnek: ls –X dosyaları ve dizinleri uzantılarına göre A ’dan Z ‘ye doğru sıralar.

                         ls – Xr dosyaları ve dizinleri uzantılarına göre tersten Z ’den A ‘ya doğru sıralar.

 

-t          : Dosyaları değiştirilme tarihlerine göre yeniden eskiye doğru sıralayarak listeler.

 

-u         : Dosyaları en son erişim zamanlarına göre listele.

 

-r          : Dosya ve dizin isimlerini tersten Z ’den A ’ya doğru sıralar.

              Örnek ls –r /home

 

-S         : Dosyaları ve dizinleri kapasitelerine göre büyükten küçüğe doğru sıralar.

              Örnek: ls –lS

 

-U         : Dosya ve dizinleri sıralamadan listeler.

 

-1         : Ekrana gelen listenin tek bir kolon olarak görüntülenmesini sağlar.

 

-x         : Dosya ve dizinleri ekranda sütunlara bölerek listeler.

 

-F         : Dosya isimlerinin sonuna (*), dizin isimleri sonuna (/) karakterini koyar.

 

-m        : Dosya ve dizin isimlerini virgülle ayırarak listeler.

 

-s         : Dosyaların boyutunu kilobyte olarak listeler.

 

-h         : Dosyaların kapasitelerini Kb, Mb, Gb olarak gösterilmesini sağlar.

               Örnek: ls –lh /home  /home dizini içindeki dosyaları

 

-n         : Dosya ve dizinlerin sahiplerinin kullanıcı ve grup numaralarını (UID ve GID) ekranda listeler.

 

-i          : inode sayısının ekranda gösterilmesini sağlar.

 

--author : Dosya veya dizinlerin kimin tarafından oluşturulduğunu gösterir.

 

            ls  komutunun sonuna ¦ more yazılarak komutun ekran çıktısı sayfa sayfa alınabilir.

 

Bazı komut parametrelerinin kullanılması ile ekran çıktılarının daha iyi anlaşılması için –l parametresini kullanmak yararlı olacaktır.

 

Örnekler :

ls 

Dosya ve dizinlerin sadece isimlerini ekranda listeler.

 

ls -l

Dosya ve dizinleri kapasite, tarih ve erişim hakları ile ekranda listeler.

 

ls –la

Tüm dosya ve dizinleri ekranda kapasite, tarih ve erişim hakları ile ekranda listeler.

 

ls –la ¦ more

Tüm dosya ve dizinleri ekranda kapasite, tarih ve erişim hakları ile ekranda sayfa sayfa listeler.

 

ls –lar

Tüm dosya ve dizinleri kapasite, tarih ve erişim hakları ile ekranda adlarına göre Z ‘den A ‘ya doğru

tersten sıralayarak listeler.

 

ls –lha

Tüm dosya ve dizinleri kapasite, tarih ve erişim hakları ile ekranda listeler, dosyaların kapasitelerinin KB,

MB, GB cinsinden gösterilmesini sağlar.

 

ls –la /home ¦ more

home dizini içindeki tüm dosya ve dizinleri ekranda sayfa sayfa listeler.

 

 

cd

 

            cd [dizin adı/dizin adı/…]

           

            cd

 

            cd .., cd ../.., cd ../dizin adı

 

            Dizinlere geçmek için kullanılan komuttur.

 

cd / komutu ana dizine geçmeyi sağlar.

Örnek:

[root@charlie root]# cd /

[root@charlie /]#

 

cd komutu tek başına uygulandığında kullanıcının kendi dizinine geçmeyi sağlar. Her kullanıcının dizinini

/home dizini içerisinde kendi kullanıcı adıyla oluşturulmuş dizindir. Örneğin sistemde backup diye bir kullanıcı varsa, bu kullanıcının dizini  /home/backup dizinindir. cd komutuyla backup kullanıcısı hangi dizin içinde olursa olsun yol belirtmeden /home/Backup dizini içerisine geçer.

 

 

Örnek:

[root@charlie network-scripts]# cd

[root@charlie root]#

 

cd /etc/sysconfig

Ana dizindeki etc dizini içindeki sysconfig dizininin içine geçmeyi sağlar.

 

Örnek:

[root@charlie root]# cd /etc/sysconfig/

[root@charlie sysconfig]#

                       

cd ..

            Bir üst dizine geçmeyi sağlar. Her .. bir üst dizini ifade eder.

../.. bulunulan yere göre iki üst dizini ifade eder.  .. sayısı kadar üst dizinin ifade eder ve aralara / işareti koyulur.

 

Örnek:

[root@charlie sysconfig]# pwd

/etc/sysconfig

[root@charlie sysconfig]# cd ..

[root@charlie etc]# pwd

/etc

[root@charlie etc]#

 

cd /home

Komutu ile ana dizindeki home dizini içine geçilir ve komut satırında geçilen dizin [root@charlie home]#

şeklinde görülebilir.

 

[root@charlie laurel]# pwd

pwd  komutuyla içinde bulunulan dizinin yolu aşağıdaki gibi komutun çıktısında görülebilir. Bu şekilde

bulunulan yer tam olarak görülebilir.

/root/laurel

 

mkdir

 

            mkdir [yeni dizin adı], [dizin adı/yeni dizin adı], [yeni dizin adı  yeni dizin adı]

 

            Dizin oluşturmayı sağlar.

 

[root@charlie tmp]# mkdir belge

Komutu bulunulan yerde belge adında bir dizin açmayı sağlar.

           

[root@charlie tmp]# ls –la

Komutuyla açılan dizin görülebilir.

 

total 48

drwxrwxrwt    9 root     root         4096 May 29 13:32 .

drwxr-xr-x   20 root     root         4096 May 29 08:54 ..

drwxr-xr-x    2 root     root         4096 May 22 17:59 22052003

drwxr-xr-x    2 root     root         4096 May 23 18:09 23052003

drwxr-xr-x    2 root     root         4096 May 26 18:08 26052003

drwxr-xr-x    2 root     root         4096 May 27 17:55 27052003

drwxr-xr-x    2 root     root         4096 May 28 18:00 28052003

drwxr-xr-x    2 root     root         4096 May 29 13:32 belge

drw----r--    2 root     root        16384 Jan 23 21:24 lost+found

 

[root@charlie tmp]# mkdir ocak subat /mart –v

Komutu ile birden fazla dizin aynı anda oluşturulabilir. Bulunulan yerde ocak subat

ana dizinde ise mart adında dizinler oluşturulur.

-v parametresiyle oluşturulan dizinler ekranda belirtilir.

 

mkdir: created directory `ocak'

mkdir: created directory `subat'

mkdir: created directory `/mart'

[root@charlie tmp]# ls -la

total 56

drwxrwxrwt   11 root     root         4096 May 29 13:37 .

drwxr-xr-x   21 root     root         4096 May 29 13:37 ..

drwxr-xr-x    2 root     root         4096 May 22 17:59 22052003

drwxr-xr-x    2 root     root         4096 May 23 18:09 23052003

drwxr-xr-x    2 root     root         4096 May 26 18:08 26052003

drwxr-xr-x    2 root     root         4096 May 27 17:55 27052003

drwxr-xr-x    2 root     root         4096 May 28 18:00 28052003

drwxr-xr-x    2 root     root         4096 May 29 13:32 belge

drw----r--    2 root     root        16384 Jan 23 21:24 lost+found

drwxr-xr-x    2 root     root         4096 May 29 13:37 ocak

drwxr-xr-x    2 root     root         4096 May 29 13:37 subat

 

[root@charlie tmp]# ls /

bin   dev  hbs   initrd  lost+found  misc  opt   root  tmp  var

boot  etc  home  lib     mart        mnt   proc  sbin  usr

 

-p parametresi ile oluşturulacak dizinlerin yolu yanlış da verilse dizinler açılır.

Örnek:

[root@charlie tmp]# ls -a

Komutu ile bulunulan dizin /tmp ‘nin içeriği ekranda aşağıdaki gibi görülmektedir.

 

.     ..    22052003  23052003  26052003  27052003  28052003  belge  lost+found  

rapor

 

[root@charlie tmp]# mkdir -p yedek/rapor/satis/2003

Komutu ile normalde yedek dizini içinde rapor, rapor dizini içinde satis, satis dizini içinde 2003 adlı bir dizin

oluşturur. Ancak yukarıda görüldüğü gibi yedek dizini bulunan dizinde yoktur. Dolayısıyla olamayan bir dizinin içinde bir dizin açılamaz. –p parametresi ile olmayan bu dizinleri açmaya zorluyoruz ve açıyoruz.

 

[root@charlie tmp]# ls

komutu ile dizinin açıldığını kontrol ediyoruz.

 

22052003  26052003  28052003  lost+found  yedek

23052003  27052003  belge     rapor

 

[root@charlie tmp]# ls yedek -R

Komutu ile yedek dizinin ve alt dizinlerini ekranda listeliyoruz ve dizinlerin açılmış olduğunu aşağıda görebiliyoruz.

 

yedek:

rapor

 

yedek/rapor:

satis

 

yedek/rapor/satis:

2003

 

yedek/rapor/satis/2003:

 

 

rmdir

 

            rmdir [silinecek dizin], [/dizin adı/silinecek dizin]

 

İçi boş dizinleri silmeyi sağlar. Silinecek dizinin içinde dosya yada dizin olması durumunda dizin silinmez. Güvenli silme işlemleri için kullanılabilecek bir komuttur.

 

[root@charlie tmp]# rmdir subat

            Bulunulan yerdeki subat dizinini içi boş ise siler.

     

[root@charlie tmp]# rmdir /root/deneme

            Anadizindeki root dizini içindeki deneme dizinini siler.

 

cat

 

 

cat dosya adı [> , >>] [hedef dosya adı]

 

            Dosyaların içeriklerininin ekranda görüntülenmesini sağlar. Ayrıca bu komutla dosya içerikleri birleştirmek içinde kullanılır.

 

 

 

[root@charlie root]# cat a.txt

Bulunulan yerdeki a.txt dosyasının içeriğini ekranda görüntüler.

 

[root@charlie root]# cat /home/ali/not

Anadizindeki home dizinin içindeki ali dizini içindeki not dosyasının içeriğini ekranda listeler.

 

-n parametresi ile dosya içindeki satırlar numaralandırılır.

 

[root@charlie root]# cat -n a.txt

     1  ali

     2  ahmet

     3  adnan

     4          abidin

     5

     6  alpay

 

-b parametresi ile boş satırlar atlanarak satırlar numaralandırılır.

 

[root@charlie root]# cat -b a.txt

     1  ali

     2  ahmet

     3  adnan

     4          abidin

 

     5  alpay

-T parametresi ile içeriği ekranda görüntülenen dosyalarda tab tuşuna basılan  “^I”  karakterleri ile belirtir.

             

[root@charlie root]# cat -T a.txt

ali

ahmet

adnan

^Iabidin

 

alpay

 

ayse

 

-E parametresi ile her satırın sonu “$” karakteri ile belirtilir.

 

[root@charlie root]# cat -E b.txt

belma$

behiye$

bilal$

$

 

 

Ekranda içeriği görüntülenen dosyanın ekran çıktısı bir ekrana sığmıyorsa ¦ more komutu ile ekran çıktısı sayfa sayfa alınabilir. Aşağıda isimlet.txt adlı dosyanın içeriği ekranda sayfa sayfa ve sadece dolu satırlar saydırılarak gösterilecektir. Enter tuşu ile satır satır, boşluk tuşu ile de sayfa sayfa ekran kaydırılır. Ayrıca Shift tuşu ile beraber Page Up ve Page Down tuşları ile de ekran çıktısında yukarı ve aşağı hareket edilebilir.)

 

cat isimler.txt –b ¦ more

 

            Birden fazla dosyanın içeriği ekranda görüntülenebilir.

Örnek:

[root@charlie dnm]# cat a.txt b.txt c.txt

ali

ahmet

adnan

belma

basri

cem

cemile

 

            Dosyaların içerikleri yeni bir dosya adı altında birleştirilebilir. Mesela a.txt, b.txt, c.txt adlarında üç tane dosyamız olsun. Bu dosyaların içeriklerini abc.txt dosyası içerisinde toplayalım.

 

 

[root@charlie dnm]# cat a.txt

ali

ahmet

adnan

 

 

[root@charlie dnm]# cat b.txt

belma

basri

 

 

[root@charlie dnm]# cat c.txt

cem

cemile

 

 

            Bu işlem için aşağıdaki komutu uygulayabiliriz.

[root@charlie dnm]# cat a.txt b.txt c.txt > abc.txt

 

 

 

            Yeni oluşan dosyanın içeriğini ekranda görüntüleyelim.

 

[root@charlie dnm]# cat abc.txt

ali

ahmet

adnan

belma

basri

cem

cemile

 

            Diyelim ki d.txt dosyasının içeriğini abc.txt dosyasına eklemek istiyoruz. d.txt dosyasının içeriğini ekranda görüntüleyelim.

 

[root@charlie dnm]# cat d.txt

derya

deniz

demir

 

            d.txt dosyasının içeriğini abc.txt dosyasına ekleyelim.

 

[root@charlie dnm]# cat d.txt >> abc.txt

 

      abc.txt dosyasının içeriğini ekranda görüntüleyelim.

 

[root@charlie dnm]# cat abc.txt

ali

ahmet

adnan

belma

basri

cem

cemile

derya

deniz

demir

 

 

cp

 

cp [-lr] /kaynak dizin/dosya adı /hedef/dizin adı/yeni dosya adı

 

cp [parametre] kaynak   hedef

 

            Dosyaları kopyalamayı sağlar.

 

[root@charlie dnm]# cp /root/yazilim /home

Ana dizindeki root dizinindeki yazilim adındaki dosyayı ana dizindeki home dizini içine kopyalar.

 

 

[root@charlie dnm]# cp /root/* /tmp/dnm

[root@charlie dnm]# cp /root/yazilim/*  .

            cp komutunu uygularken dosyaların kopyalanacağı dizin, hedef belirtilir. Bulunulan dizine kopyalama işlemi yaparken yine içinde bulunulan dizinin yolu belirtilir yada “.” nokta konur. Yukarıdaki verilen komutlar, ana dizindeki tüm dosyaları bulunulan yere  yani /tmp/dnm dizinine kopyalar.

 

[root@charlie dnm]# cp /root/yazilim/*.*  ..

            Ana dizindeki root dizini içindeki adı ve uzantısı olan dosyaları bir üst dizine kopyalar. Bu komutla a.txt, c.conf dosyaları kopyalanır. Uzantısı olmayan yazilim, hastane dosyaları kopyalanmaz. Bir dizin içindeki dosyaları belli bir isim sınırlaması olmadan tümü için uygulanacaksa tüm dosyalar “*” ile belirtilir.

 

 

[root@charlie dnm]# cp abc.txt /tmp/abcd.txt

            Kaynakta belirtilen dosya hedefe adı değiştirilerek kopyalanabilir. Bulunulan yerdeki abc.txt dosyası ana dizindeki tmp dizini içine adı abcd.txt olacak şekilde kopyalanır.

 

[root@charlie dnm]# cp abc.txt abcd.txt

            Bir dosyanın içerisinde değişiklik yapmadan önce dosyanın ilk halinin bir kopyasını oluşturmak istenebilir yada önceden hazırlanan bir dosyanın birkaç değişiklikle benzeri hazırlanacaksa ilgili dosyanın bir kopyası farklı bir isimle aynı dizine yaratılabilir. Yukarıda verilen komutta abc.txt dosyası bulunulan yere abcd.txt adı ile kopyalanıyor. Yani aynı içerikli ama farlı isimli ikinci bir dosya oluşturmuş oluyoruz.

 

[root@charlie dnm]# ls

      Bulunduğumuz dnm dizinini listeliyoruz.

a.txt            deneme ibbackup ibstatus  kapa        tmp

abc.txt          b.txt  d.txt    ibstart   ibstop      kopyala  yasemin

anaconda-ks.cfg  c.txt  hastane  ibstat    ibvalidate  sistem   yazilim

 

 

[root@charlie dnm]# cp [abcsd]* tmp

            Adının baş harfi a,b,c,d,s harfleri ile başlayan dosyaları bulunduğumuz yerdeki tmp dizini içine kopyalıyoruz.

 

[root@charlie dnm]# ls tmp

            Verdiğimiz komut sonucu hangi dosyaların kopyalandığını görmek için tmp dizinini listeliyoruz.

 

abc.txt  anaconda-ks.cfg  a.txt  b.txt  c.txt  deneme  d.txt  sistem

 

Seçenekler:

 

-r          : Kaynakta verilen dizin ve dosyaların alt dizinlerle beraber kopyalanmasını sağlar.

 

Örnek:

[root@charlie /]# cp -r /root/ /tmp/notlar/

            Ana dizindeki root dizinini ana dizindeki tmp dizini içindeki notlar dizini içine alt dizinleri ile kopyalamayı sağlar. Bu komutla, notlar dizinin içinde root adlı bir dizin oluşturulup ana dizindeki root dizinini içeriği bu dizine kopyalanıyor.

 

[root@charlie /]# ls -la /tmp/notlar/

            tmp dizinini listeliyoruz. root adlı dizinin tmp dizini içinde oluştuğunu görebiliriz.

 

total 12

drwxr-xr-x    3 root     root         4096 Jun  3 11:06 .

drwxrwxrwt   10 root     root         4096 Jun  3 10:11 ..

drwx---r--    9 root     root         4096 Jun  3 11:06 root

 

[root@charlie /]# ls -la /tmp/notlar/root/

            tmp dizinindeki root dizinini listeliyoruz ve tüm dosya ve dizinlerin kopyalandığını görüyoruz.

total 136

drwx---r--    9 root     root         4096 Jun  3 11:06 .

drwxr-xr-x    3 root     root         4096 Jun  3 11:06 ..

-rw-------    1 root     root        11841 Jun  3 11:06 .bash_history

-rw-r--r--    1 root     root          252 Jun  3 11:06 .bash_profile

-rw-r--r--    1 root     root          176 Jun  3 11:06 .bashrc

drwxr-xr-x    2 root     root         4096 Jun  3 11:06 calisma

-rw-r--r--    1 root     root          210 Jun  3 11:06 .cshrc

drwxr-xr-x    2 root     root         4096 Jun  3 11:06 hardy

-rwxr-xr-x    1 root     root         8489 Jun  3 11:06 hastane

-rwx------    1 root     root           28 Jun  3 11:06 ibstart

 

-s         : Kaynakta belirtilen dosyanın veya dosyaların sembolik linklerinin hedefte oluşturulmasını sağlar.

 

[root@charlie notlar]# cp -s root/yazilim .

            Komutu ile root dizini içindeki yazılım dosyasının sembolik linkini bulunduğuz dizinde oluşturmuş oluyoruz.

[root@charlie notlar]# ls –la

            Komutu ile oluşan link dosyasının görüyoruz.

total 24

drwxr-xr-x    3 root     root         4096 Jun  3 13:05 .

drwxrwxrwt   10 root     root         4096 Jun  3 12:59 ..

drwx---r--    9 root     root         4096 Jun  3 12:48 root

lrwxrwxrwx    1 root     root           12 Jun  3 13:05 yazilim -> root/yazilim

[root@charlie notlar]# cp -s /belge/* .

            Komutu ile ana dizindeki belge dizini içindeki tüm dosyaların linklerinin olarak bulunduğumuz dizinde oluşmasını sağlıyoruz. Birden fazla sayıda dosya için cp komutu ile, sadece bulunulan dizine oluşturulabilir.

Yani [root@charlie notlar]# cp -s /belge/* /tmp komutu belge dizini içindeki dosyaların linklerini /tmp dizini içinde oluşturmayacaktır.

 

 

Linkler, bir dosyaya birden fazla isim vermek, ilgili dosyaya farklı dizinlerden erişmek için farklı dosya isimleri kullanmayı sağlar. Hard Link ve Soft Link olarak linkler iki şekilde oluşturulur. Bulunulan dizinde bir link oluşturularak o dosyanın bulunduğu dizine geçmeden içinde değişiklik yapılabilir, çalıştırılabilir.

Hard linkler başka bir dosya sisteminde oluşturulamazlar. Yani, eğer home dizinin içindeki bir dosyaya bir link oluşturacaksanız, oluşturulacak link home dizini için ayrılan disk bölümü içindeki bir dizin içinde oluşturulabilir.

 

[root@charlie notlar]# df -h

 

Komutu ile disk bölümlerini ve bu disk bölümlerinin hangi dizin için ayrıldığını görüyoruz. home dizinin içindeki diyelim ki rapor dosyası için tmp dizinine bir Hard (katı, sabit) link oluşturulamaz.

 

 

Filesystem            Size  Used Avail Use% Mounted on

/dev/cciss/c0d0p3     984M  441M  494M  48% /

/dev/cciss/c0d0p2      42M   15M   25M  37% /boot

/dev/cciss/c0d0p6      14G  9.0G  4.7G  66% /home

none                 1008M     0 1008M   0% /dev/shm

/dev/cciss/c0d0p7      49G   36G   10G  77% /tmp

 

Ayrıca dizinlere Hard link oluşturulamaz.

 

Diyelim ki /tmp dizinindeki ocak_rapor adlı dosyaya yine tmp dizinin içindeki belge dizinin içinde rapor adıyla bir hard link oluşturduk. Bu durumda /tmp dizinindeki ocak_rapor adlı dosyayı  yada  /tmp/belge dizinindeki rapor adında oluşturduğumuz dosyalardan herhangi birinin silinmesi durumunda diğer dosya kullanılmaya devam edilir.

 

            Hard linklerin kullanımındaki kısıtlamaları aşmak için sembolik linkler oluşturulur. Sembolik linkleri Windows da herhangi programa için oluşturduğumuz kısa yol dosyaları olarak da tanımlayabiliriz. Soft linkler başka bir dosya sisteminde oluşturulabilirler.  Dizinlere Soft link oluşturulabilir. Eğer link oluşturulan dosya eğer silinirse, bu dosyaya oluşturulan link dosyaları artık bir işe yaramaz. Soft link olarak oluşturulan dosyalar turkuaz rengi ile ekranda gösterilir.

 

-u                     : Kaynaktaki dosya isimleri ile hedefteki dosyaları karşılaştırır ve kaynakta olup hedefte olmayan

                         dosyaların hedefe  kopyalanmasını sağlar.

 

-v                      : Hedefe kopyalanan her dosya için ekranda bilgi mesajı görüntüler.

 

--reply yes        : Kaynakta belirtilen dosyalarla hedefte isim olarak aynısıyla karşılaşılırsa ekrana uyarı mesajı

                          çıkarmadan kaynaktaki isim olarak aynı olan dosyaları hedefteki dosyaların üzerine yazar. Ekrana

                          overwrite mesajını çıkarmaz.

 

-f                      : Kaynakta verilen dosyaları hedefe yazarken / kopyalarken bir sorun ile karşılaşılırsa hedef dosyayı silip

                          kopyalama işlemine etmeyi dener.

 

mv

 

mv [-lr] /kaynak dizin/dosya adı /hedef/dizin adı/yeni dosya adı

 

mv [parametre] kaynak   hedef

 

mv  /dizin/eski dosya /dizin adı      /dizin/yeni dosya/dizin adı

 

Dosyaları ve dizinleri taşımayı, dosya ve dizinlerin isimlerini değiştirmeyi sağlar.

 

[root@charlie notlar]# mv /isim.txt /tmp

            Ana dizindeki isim.txt dosyası an dizindeki /tmp dizini içine taşır.

 

[root@charlie notlar]# mv b/* belge/

      Bulunulan yerdeki b dizinin içindeki dosyaları ve dizinleri içindeki dosyalarla beraber bulunulan yerdeki belge dizini içine taşır. 

 

[root@charlie notlar]# mv /isim.txt /eski_isimler.txt

            Ana dizindeki isim.txt dosyasının adını eski_isimler.txt olarak değiştirir. Dosya ve dizinlerin ismini değiştirirken ismi değiştirilecek dizin veya dosyanı bulunulan yerden faklı bir dizindeyse, dosya veya dizin için verilecek isimin yazıldığı yerde o dosya ve dizinin bulunduğu yer tarif edilir.

            Örnek olarak aşağıdaki iki komutu inceleyelim.

1. [root@charlie notlar]# mv /isim.txt /eski_isimler.txt

 

2. [root@charlie notlar]# mv /isim.txt  eski_isimler.txt

            1. komuttun yapacağı işlem yukarıda belirtilmiştir. Ama 2. komutun yapacağı işlem; yeni dosya ismini belirlediğimiz yerde ismini değiştireceğimiz dosyanın adresini belirtmediğimiz için ana dizindeki isim.txt dosyasını bulunduğumuz yere adı eski_isimler.txt olarak değiştirerek taşır. Yani dosyanın ismini değiştirmek isterken hem ismini hem de yerini değiştirmiş olduk.

 

Bulunulan yerdeki bir dosya veya dizinin ismini değiştirilecekse eski dosya adı ve yeni dosya adı belirilen yerde dosya ve dizinin adresini belirtmeye gerek yoktur. Örnek olarak aşağıdaki komut bulunulan yerdeki isim.txt dosyasını adını eski_isimler.txt olarak değiştirir.

 

[root@charlie notlar]# mv isim.txt  eski_isimler.txt

 

Seçenekler:

 

-f                      : Kaynakta verilen dosyalarla hedefte de karşılaşılırsa ekrana overwrite uyarı mesajı çıkarmadan

                          kaynaktaki dosyaların hedefte isim olarak aynı olan dosyaların üzerine yazılmasını sağlar.

 

--backup           : Kaynakta verilen dosyalarla hedefte de karşılaşılırsa hedefte isim olarak aynı olan dosyaların isimlerinin sonuna ~ karakterini koyarak dosyaların yedeğini alır. Bu şekilde yanlışlıkla kaynakta verilen dosyalar hedefte verilen dosyaların üzerine yazılırsa, istenen dosya geri alınabilir.

 

                          Örnek:

[root@charlie notlar]# mv a/* b --backup –f

Bulunduğumuz yerdeki a dizinindeki dosyaları yine bulunduğumuz yerdeki b dizini içine taşıyoruz.  –f parametresi ile taşıdığımız dosyaların aynısı taşımak istediğimiz yerde varsa, ekrana uyarı mesajı çıkarmadan taşıdığımız dosyaların taşıyacağımız yerdeki dosyaların üzerine  yazılmasını sağlıyoruz. –backup parametresi ile de isim olarak aynı olan dosyaların sonuna ~ karakterinin konularak yedeğinin alınmasını sağlıyoruz.

 

[root@charlie notlar]# ls b

            b dizinini listeliyoruz.

anaconda-ks.cfg   hastane    ibstart~   ibstop       kapa~     yasemin

anaconda-ks.cfg~  hastane~   ibstat     ibstop~      kopyala   yasemin~

b                 ibbackup   ibstat~    ibvalidate   kopyala~  yazilim

deneme            ibbackup~  ibstatus   ibvalidate~  sistem    yazilim~

deneme~           ibstart    ibstatus~  kapa         sistem~

 

-u                     : Bu parametre genelde kaynakta ve hedefte aynı isimde olan dosyaların bulunduğu durumlarda kullanılır.

--update            Amaç kaynakta belirtilen dosyalardan, değişiklik tarihi hedefteki aynı isimli dosyalardan yeni ise bu

                         dosyalar hedefte isim olarak aynı tarih olarak eski dosyaların üzerine yazılır. Ayrıca eğer kaynakta olup

                         da hedefte olmayan dosyalar varsa bu eksik dosyalar hedefe taşınır.

 

--version            : mv komutunun versiyonuyla ilgili bilgi verir.

 

-v                     : Taşınan her dosya ve dizin için ekranda taşıma işlemi bittiğinde bilgi mesajı görüntüler.

                          Örnek

[root@charlie notlar]# mv a/* b -v

            Komutu ile bulunulan yerdeki a dizinin içindeki tüm dosyaları b dizini içine taşıyoruz. Kullandığımız –v parametresi ile taşıma işlemi biten dosyaların isimlerini ekranda görebiliyoruz.

`a/ibbackup' -> `b/ibbackup'

`a/ibstart' -> `b/ibstart'

 

vi

 

mv [-R +,+ sayı] /dizin/dosya adı

 

Dosyaların içeriğini ekranda görüntüler, değişiklik yapmayı yada yeni bir dosya açmayı sağlar.

 

[root@charlie root]# vi gunluk

            Bulunulan yerde gunluk adında bir dosya varsa bu dosyanın içeriğini ekranda görüntüler, değişiklik yapılmasını sağlar. Bulunulan yerde gunluk adında bir dosya yoksa verilen isimde yeni bir dosya oluşturmayı sağlar.

 

[root@charlie root]# vi /var/log/securty

            Ana dizindeki var dizini içindeki log dizinin içindeki securty dosyasının içeriğini ekranda görüntüler.

 

Seçenekler:

 

+                      : Ekranda içeriği görüntülenecek dosyanın sonuna konumlanır.

[root@charlie notlar]# vi + isimler

                       

+ [satır sayısı]   : Verilen satır sayısına konumlanır.

[root@charlie notlar]# vi +20 isimler

 

-R                    : Dosyanın Read Only – Sadece okunabilir olarak açılmasını sağlar. Eğere komut satırında  w!  yazılıp

                          enter tuşuna basılırsa değişiklikler kayıt edilir.

[root@charlie notlar]# vi -R isimler

 

-m                    : Dosyanın içinde değişiklik yapılmasına izin verir ancak değişikliklerin kayıt edilmesine izin vermez.

 

-n                     : Açılan dosyaların sadece hafızaya yüklenmesini sağlar.

 

-b                     : Dosyaların binary modda açılmasını sağlar. Genellikle çalışabilen dosyalar için kullanılan bir seçenektir.

 

vi editörü ile dosya içeriğine girildiğinde klavye üzerindeki tuşlar farklı kiplerde farklı işlemleri yerine getirirler. Dosya içeriğine girildiğinde ilk anda komut kipi devrededir. Yani klavye üzerinde karakter olarak görünen tuşlara basıldığında bir komut, bir işlem yerine getirilir. Örneğin u harfine basılırsa son yapılan işlem geri alınır.

            Komut kipinden dosya içeriğinde değişiklik yapmak karakter eklemek gibi işlemler için düzenleme kipine geçilir. Komut kipinden düzenleme kipine geçmek için klavyeden “i” harfine basılır. Tekrar komut moduna dönmek için Esc  tuşu kullanılır. Komut modunda dosya ile ilgili komutları uygulamak için “:” karakterini yazmak için kullanılan tuşlara sanki bir yazıya ekleniyormuş  basılır. Bu şekilde vi editöründen çıkmak, yardım almak, değişikliklerin kaydedilmesi gibi işlemlerin uygulanması sağlanır.

 

            Aşağıda göreceğiniz gibi bazı işlemlerin yapılabilmesi için “$ ()” gibi karakterlerin basılması gerekir. Bu şekilde bir karakterin işlevi uygulanacaksa, klavye üzerinde, bu karakterlein sanki normal yazıda yazılıyormuş gibi, o karakterin yazılmasını sağlayan tuşların örneğin Shift + 4 tuş bileşenini İngilizce klavye düzenindeyse kullanılması gerekir.

 

            Komut kipinde kullanılan klavye tuşları ve görevleri:

 

Metin üzerinde hareket etmek:

 

Yön tuşları        : Metin üzerinde hareket için kullanılabilir.

h                      : İmlecin bir karakter sola kaymasını sağlar.

l                       : İmlecin bir karakter sağa kaymasını sağlar.

j                       : İmlecin bir satır aşağı kaymasını sağlar.

k                      : İmlecin bir karakter yukarı sola kaymasını sağlar.

Ctrl + u             : Ekranı yukarı kaydırır.

Ctrl + b             : Ekranı aşağı kaydırır.

w                     : İmleci sağındaki ilk kelimenin baş harfine konumlandırır.

W                    : İmleci boşlukla ayrılmış sağındaki ilk kelimenin baş harfine konumlandırır. w komutu ile diyelim ki

                          “merhaba   -12  günaydın” ifadesinde merhaba kelimesindeyiz. w komutu ile “-“ karakterine konumlanılır

                          ve tekrar w basılarak komut tekrarlandığında “1”  karakteri tekrar komut tekrarlandığında  “günaydın”

                          kelimesinin başına konumlanılır. Eğer W komutu ile hareket edilirse merhaba kelimesinden -12 ifadesine

                          tekrar W komutuyla günaydın kelimesinin ilk harfine konumlanırız.

b                      : İmleci solundaki ilk kelimenin baş harfine konumlandırır.

B                     : İmleci boşlukla ayrılmış sağındaki ilk kelimenin baş harfine konumlandırır. W komutunun açıklamsı bu

                          komut içinde geçerlidir.

e                      : İmleci sağındaki ilk kelimenin son harfine konumlandırır.

0                      : İmleci bulunulan satırın başına konumlandırır.

$                      : İmleci bulunulan satırın sonuna konumlandırır. $ karakterini basmak için ingilizce klavyede Shift + 4 tuş

                          bileşeni kullanılır.

-                       : İmleci önceki satırın başına konumlandırır.

Enter                : İmleci sonraki satırın başına konumlandırır.

{                       : İmleci paragraf başına konumlandırır.

}                       : İmleci paragraf sonuna konumlandırır.

G                     : İmleci dosyanın en son satıra konumlandırır.

[satır sayısı]G   : Verilen satır sayısına imleci konumlandır.

m işaret            : İ

 

Metin düzenleme kipine geçmek:

 

            Komut kipinden çıkmak için “i” harfine basılabilir. İmlecin bulunduğu yerden itibaren artık klavyedeki tuşlar bir işlevi değil, karakter basma işlevlerini yapacaktır.

 

a                      : İmleci bir karakter sağa kaydırır ve metni düzenleme kipine geçiş yapar.             

A                     : İmleç, bulunduğu satırın sonuna konumlanır ve metin düzenleme kipine geçiş yapar.

i                       : İmlecin bulunduğu yerden metin düzenleme kipine geçiş yapar.

I                       : İmleç, bulunduğu satırın başına konumlanır ve metin düzenleme kipine geçiş yapar.

o                      : İmlecin bulunduğu satırın altında boş bir satır açılır, imleç boş satırın başına konumlanır ve metin

                          düzenleme kipine geçiş yapar.

O                     : İmlecin bulunduğu satırın üstünde boş bir satır açılır, imleç boş satırın başına konumlanır ve metin

                          düzenleme kipine geçiş yapar.

s                      : İmlecin üzerinde bulunduğu karakteri siler ve metin düzenleme kipine geçiş yapar.

C                     : İmlecin üzerinde bulunduğu satırın geri kalanını sile ve metin düzenleme kipine geçiş yapar.

c0                    : İmlecin üzerinde bulunduğu yerden satır başına kadar olan metni siler ve metin düzenleme kipine geçiş

                           yapar.

cw                    : İmlecin üzerinde bulunduğu kelimeyi siler metin düzenleme kipine geçiş yapar.

 

Silme işlemleri:

x                      : İmlecin üzerinde bulunduğu karakteri siler.

X                      : İmlecin üzerinde bulunduğu karakterin solundaki karakteri siler.

dw                    : İmlecin üzerinde bulunduğu kelimeyi siler.

dd                    : İmlecin bulunduğu satırı siler.

D                     : İmlecin bulunduğu satırda, imlecin bulunduğu yerden satır sonuna kadar olan metni siler.

d0                    : İmlecin bulunduğu satırda, imlecin bulunduğu yerden satır başına kadar olan metni siler.

J                      : İmlecin bulunduğu satırın sonuna, alttaki satırı birleştirir.

 

Metin üzerinde değişiklik işlemleri:

r                       : İmlecin üstünde bulunduğu karakteri verilen karakter ile değiştirir. r komutu uygulanır ve imlecin üzerinde

                          olduğu karakterin yerine yazılacak karaktere klavyeden basılır.

R                     : Metin üzerinde değişiklik yapılması sağlar. Değişiklik yaparken klavyeden basılan karakterler metinin

                          üzerine yazılır. Esc tuşu ile “R” komutu bitirilebilir.

 

Metin üzerinde arama işlemi:

 

            Dosya içeriğinde bulunulan yerden ileri doğru istenen bir ifadenin aramak için ilk önce “/” karakteri basılır ve aranacak ifade yazılır. Geriye doğru arama işlemi yapılacaksa “?” karakteri basılır ve yine aranacak ifade yazılır. “n” karakteri ile arama işlemini ileri ise ileriye doğru ilk ifade, geri ise geriye doğru ilk ifade bulunur. Sonraki şarta uyan ifadeler bulunurken arama işleminin ileri veya geriye doğru başlatılmış olmasına göre yapılacaktır. “N” harfi ile de, eğer ileriye doğru arama işlemi başlatılmışsa geri, geriye doğru başlatılmışsa ileri doğru şarta uyan ilk ifade bulunur.

 

Metin üzerinde kes, kopyala işlemleri:

 

yy veya Y         : İmlecin üzerinde bulunduğu satırı hafızaya alır

p                      : yy veya Y komutu ile hafızaya alınmış metni imlecin üzerinde bulunduğu karakterin sağına ekler.

P                     : yy veya Y komutu ile hafızaya alınmış metni imlecin üzerinde bulunduğu karakterin soluna ekler.

 

            Silinen her karakter, cümle, paragraf “p veya P” komutu ile istenilen yere eklenebilir yapıştırılabilir.

 

 

 

Dosya işlemleri:

            Dosya işlemlerine, komut kipindeyken “:”  karakteri basılarak, metin düzenleme kipindeyken de  önce Esc tuşuna basıp sonra “:” karakteri basılarak geçilebilir.

 

w                     : Yapılan değişiklikleri kayıt eder.

 

q                      : vi editörünü kapatır.                

           

q!                     : Yapılan değişiklikleri kayıt etmeden çıkar.

 

h                      : Yardım ekranına geçişi sağlar.

 

            Aynı anda birden fazla dosya vi editörü ile açılabilir. Aşağı komutla bulunduğumuz yerdeki dosyaların içerikleri ekranda görüntülenebilir.

 

[root@charlie notlar]# vi a.txt b.txt c.txt

 

……..

 

rm

 

rm [-rf] /dizin/dosya adı

 

Dosya ve dizinleri silmeyi sağlar.

 

[root@charlie notlar]# rm a.txt

            Bulunulan yerdeki a.txt dosyasını siler.

 

[root@charlie notlar]# rm /root/deneme.txt

            Ana dizindeki root dizini içindeki deneme.txt dosyasını siler.

 

[root@charlie notlar]# rm a.txt b.txt

            Komutu ile birden fazla dosya tek komutla, dosya isimlerinin arasına boşluk koyarak

Silinebilir.

 

rm: remove regular file `a.txt'? y

rm: remove regular file `b.txt'? y

 

 

Seçenekler:

 

-f                      : Onay sormadan dosyaların silinmesini sağlar.

 

[root@charlie notlar]# rm –f /tmp/a*

             Ana dizindeki tmp dizinindeki adı a ile başlayan dosyaları ekrana onay mesajı çıkarmadan siler. –f tek seçeneği başına sadece dosya silerken kullanılır.

 

-r                      : Dizin içeriğinde her dosya ve dizini silerken, önce dizin içindeki dosyalar, sonra dizinler için onay sorarak

                          silme işlemi yapar. Dizin alt dizinleri ile beraber silinecekse –r –f parametreleri bir arada

                          kullanılır.

 

[root@charlie notlar]# rm –rf /yedek/01012003 /belge/01022003

                        Ana dizindeki yedek dizini içindeki 01012003 ve ana dizindeki belge dizinindeki 01022203 dizini onay sorulmadan direkt silinir.

 

 

 

 

find

 

find /dizin [–name –type] ölçüt

 

Dosya ve dizinleri aramayı sağlar.

 

Basit olarak diyelim ki a.txt dosyasının olup olmadığını, bu isimde bir dosya varsa bulunduğu dizini öğrenmek istiyoruz. Bunun için de aşağıdaki komutu uygulayabiliriz.

 

[root@charlie notlar]# find / -name a.txt –type -f

            Ana dizinden itibaren adı a.txt olan dosyayı arar. “/” ifadesi ile arama işleminin ana dizinden itibaren başlatılacağını “-name” ifadesi ile aradığımız dosya yada bir dizinin adını, “-type” ifadesi ile de arama ölçütü olarak belirlediğimiz ifadenin “-f = dosya” dosya veya dizin olduğunu belirtiyoruz. “-type ” ifadesini kullanmadan komut uygulanırsa ekrana verilen isme uyan dosya ve dizinler karışık olarak listelenecektir.

 

[root@charlie notlar]# find / -name a* –type -d

            Ana dizinden itibaren adı aile başlayan dizinleri bulmayı sağlar.

 

Seçenekler:

 

-name               : Aranacak dizin veya dosya adını belirtmek için kullanılır.

 

-iname              : Dosya ve dizin adında koşul olarak büyük – küçük harf ayırt etmez.

 

-type                : Arama işleminde aranan ifadenin, öğenin tipini belirlemek için kullanılır.

            -f          : Verilen ifadenin dosya ismi olduğunu belirtir.

            -d         : Verilen ifadenin dizin ismi olduğunu belirtir.

            -l          : Verilen ifadenin link ismi olduğunu belirtir.

 

-daystart           : Son 24 saat içinde erişilen, değiştirilen dosyaları, dizinleri bulur, ekranda listeler.

 

[root@charlie root]# find /root -daystart

            Ana dizindeki root dizini içinde bulunulan andan itibaren 24 saat içinde oluşturulan, değiştirilen ve erişilen dosyaları, dizinleri  bulur, ekranda listeler.

 

[root@charlie root]# find  -daystart -name "h*"

            Ana dizindeki root dizini içinde bulunulan andan itibaren 24 saat içinde adı “h” harfi ile başlayan, oluşturulan, değiştirilen ve erişilen dosyaları, dizinleri bulur, ekranda listeler.

 

-size [sayı]                   : Aranacak dosyalar için kapasite vermeyi sağlar. Geçerli olarak verilen sayı 512 byte olarak

                                    kabul edilir. c byte, k kilobyte harfi kullanılabilir. Kapasite olarak verilen sayının başına “-“

 konursa verilen sayıdan küçük, “+” konursa verilen sayıdan büyük kapasiteli dosyalar şart olarak

 belirlenmiş olur.

 

[root@charlie root]# find /home -amin -1  -size 1k

            Ana dizindeki home dizini içinde son 1 dakika içinde erişilen ve kapasitesi  1 kilobyte olan dosyaları bulur, ekranda listeler.

 

[root@charlie root]# find /  -name "[htm]*" -size +100000k 

Ana dizinden itibaren adı “h,t,m” harflerinden herhangi biriyle başlayan ve kapasitesi 100000 kilobyte ‘dan büyük olan dosyaları bulur, ekranda listeler.

 

[root@charlie root]# find /usr/src -size +500k

            Ana dizindeki  /usr dizini içinde /src dizininde bulunan ve büyüklüğü 500Kb 'tan büyük olan dosyaları bulur, listeler.

 

            Arama işlemi için zaman koşul olarak verilecekse, zaman olarak verilen başına;

  “-“  yazılırsa verilen süreden küçük olanlar,

  “+” yazılırsa verilen süreden fazla olanlar,

  “+” yada “-“ yazılmazsa  verilen süre için şartı sağlayan dosyaları ifade eder.

 

-amin [sayı]                  : İstenen dakika önce, içinde veya verilen dakika için erişilen dosyaları ve dizinleri bulur.

 

[root@charlie root]# find / -amin 3

Ana dizinden itibaren erişim süresi bulunduğumuz zamana göre 3 dakika önce olan dosyaları ve dizinleri bulunur.

 

[root@charlie root]# find / -amin -3

Ana dizinden itibaren son 3 dakika içinde erişilen dosyaları ve dizinleri bulur.

 

[root@charlie root]# find / -amin +3

            Ana dizinden itibaren erişim süresi 3 dakikadan fazla süre geçmiş dosyaları ve dizinleri  bulur.

 

[root@charlie root]# find / -amin -3 –name “hastane” –type d

            Ana dizinden itibaren son 3 dakika içinde erişilen ve adı hastane olan dosyayı bulur.

 

-atime [sayı]                  : Verilen sayı * 24 = saat içerisinde erişilen dosyaları bulmayı sağlar. Verilen sayı ile 24 çarpılır.

                                     Yine verilen sayısının başına “+”, “-“ işareti koyularak istenen sürede erişilen dosyalar

                                     bulunabilir.

 

-anewer [dosya adı]       : Verilen dosyadan daha yakın zamanda, erişilen dosyaları bulur, ekranda listeler. Bu seçeneği

                                     kullanırken bulunulan dizin için işlem yapılır ve o dizinde verilen dosyanın tarihine göre en yeni

                                     dosyalar bulunur, listelenir.

[root@charlie root]# find  -anewer /root

            Ana dizindeki root dizini içindeki erişim süresi en yakın olan, en son erişilen dosyaları ve dizinleri bulur, ekranda listeler.

 

[root@charlie root]# find  -anewer /root -name "h*"

            Ana dizindeki root dizini içindeki erişim süresi en yakın olan, en son erişilen adı “h” ile başlayan dosyaları ve dizinleri bulur, ekranda listeler.

 

-cmin [sayı]                  : İstenen dakika önce, içinde veya verilen dakika içinde içeriği değişen dosyaları ve dizinleri bulur.

 

[root@charlie root]# find /tmp  -cmin -1

 

            /tmp dizinindeki son bir dakika içerisinde içeriği değişen dosya ve dizinleri bulur.

 

-ctime [sayı]                 : Verilen sayı * 24 = saat içerisinde değişen dosya ve dizinleri bulmayı sağlar. Verilen sayı ile 24

                                     çarpılır.Yine verilen sayısının başına “+”, “-“ işareti koyularak istenen sürede erişilen dosyalar

                   bulunabilir.

 

[root@charlie root]# find /tmp  -ctime -1

 

            /tmp dizinindeki son 24 saat içerisinde içeriği değişen dosya ve dizinleri bulur.

 

-cnewer [dosya adı]       : Verilen dosyadan daha yakın zamanda,  içerisinde değişiklik yapılan dosya ve dizinleri bulur,

                                     ekranda listeler. Verilen dosyadan daha yakın zamanda, erişilen dosyaları bulur, ekranda

                                      listeler. Bu seçeneği kullanırken bulunulan dizin için işlem yapılır ve o dizinde verilen dosyanın

                                     tarihine göre en yeni dosya ve dizinler bulunur, listelenir.

 

-mmin [sayı]                 : İstenen dakika önce, içinde veya verilen dakika içinde içeriği değişen dosyaları ve dizinleri bulur.

 

-mtime [sayı]                : Verilen sayı * 24 = saat içerisinde değişen dosya ve dizinleri bulmayı sağlar. Verilen sayı ile 24

                                     çarpılır.Yine verilen sayısının başına “+”, “-“ işareti koyularak istenen sürede erişilen dosyalar

                   bulunabilir.

 

 

-empty                         : İçeriği boş dosya ve dizinleri bulur.

 

-false                            :

 

-user [kullanıcı adı]        : Verilen kullanıcı adına ait dosyaları bulmak için kullanılır.

[root@charlie tmp]# find / -user backup       

 

             backup kullanıcına ait dosyaları silmek için aşağıdaki komut kullanılabilir. –user parametresi ile backup kullanıcısına ait dosyalar bulunur. Bulunan dosyalar üzerinde     –exec parametresi ile verilen komut uygulanır.

 

[root@charlie tmp]# find / -user backup –exec rm '{}' \;        

 

 

-uid   [sayı]                   : Verilen kullanıcı ID ‘sine ait dosyaları bulmak için kullanılır. Kullanıcıların listesi /etc dizini altında

                                     passwd dosyasında görülebilir ve bu dosyanın içeriğinde kullanıcıların UID numaraları elde

                                     edilebilir.

 

[root@charlie tmp]# find / -uid 502      

-nouser                         : Hiçbir kullanıcıya ait olmayan dosya ve dizinleri bulmak için kullanılır.

 

-nogroup                       : Hiçbir gruba ait olmayan dosya ve dizinleri bulmak için kullanılır.

 

            Sahibi olmayan dosya ve dizin olmaz. Bu parametreler genelde sisteme izinsiz bir girişten şüphelenildiği zaman kullanılır. Sisteme yetkisiz girmiş bir kullanıcının oluşturmuş olduğu dosyaları bulmak için kullanılır.

 

[root@charlie root]# find /  -nouser -o -nogroup

 

            Komutla beraber, istenilen dosya ve dizinleri bulmak için kullanılan –name, -atime gibi seçenekleri daha esnek uygulamak için aşağıdaki belirtilen operatörlerle kullanılabilir.

 

!           : İfadesi verilen şartı sağlamayanlar anlamına gelecektir. Yani arama işleminde bulunacak dosyalar için belirtilen kriterin terzisi sağlayan dosyalar bulunacaktır.

            ! operatörü, ters işlem yapması istenen seçenekten önce yazılır.

 

[root@charlie tmp]#  find /tmp/23072003/ ! -name *.gdb -exec ls '{}' \;

            Ana dizindeki tmp dizinindeki 23072003 dizini içinde uzantısı gdb olan dosyaların dışında kalanlar ekran da listelenir.

 

[root@charlie root]# find /home/ayfer  ! –user ayfer 

            Ana dizindeki home dizini içindeki Ayfer dizini içindeki Ayfer kullanıcısına ait olmayan dosyaları bulur.      

 

-and      : İfadesi ile verilen şartlar mutlaka bulunacak dosyalarda aranır. Verilen şartın

              bir tanesi dahi sağlamayan dosyalar ekranda listelenmez.

 

[root@charlie tmp]#  find /tmp/23072003/  -name *.gdb -and -size  +200000k

            Yukarıdaki komutla 23072003 dizini içinde uzantısı .gdb olan ve kapasitesi 200000 kb ‘dan büyük olan dosyalar listelenir. Uzantısı .gdb olup ta kapasitesi verilen kapasiteden düşük olan dosyalar ekranda görüntülenmez. Yada kapasitesi 200000 Kb 2dan büyük ama uzantısı .gdb olmayan dosyalar da ekranda listelenmez.

 

-o         : İfadesi ile verilen şartlardan herhangi birine uyan dosyalar ve dizinler ekranda listelenir.

[root@charlie tmp]#  find /tmp/23072003/  -name *.gdb -o -name *.gbk

            Yukarıdaki komutla 23072003 dizini içindeki uzantısı .gdb veya uzantısı .gbk olan dosyalar ekranda listelenir.

 

-exec                : Bu seçenek ile arama sonucu bulunan dosyalar üzerinde yapılmak istenen işlem için uygulanacak komut

                          verilir. Sadece bulunan dosyalar üzerinde verilen komut işletilir.

 

[root@charlie root]# find / -name "a*" -exec ls -l  '{}' \; ¦ more

            Ana dizinden itibaren adı (–name ) “a” ile başlayan dosya ve dizinleri bulur, bulunan dosya ve dizinleri ekranda ayrıntılı bilgileri ile beraber sayfa  sayfa (¦ more) listeler (–exec ls –l).

 

[root@charlie root]# find / -name "core" -exec rm '{}' \;

 Adı “core” olan dosya ve dizinleri siler.

 

-perm               : Dosya ve dizin izinlerine göre arama yapmak için kullanılır.

                        1 x yani çalıştırma        

                        2 w yani yazma            

                        3 okuma

 

[root@charlie root]# find / -perm 111

            Sadece dosyanın sahibi, grubu ve diğerleri için çalıştırma izni olan tüm dosyaları bulur.

 

[root@charlie root]# find / -perm 100

            root kullanıcısına ait ve sadece sahibi tarafından çalıştırılabilen dosyaları bulur.

 

[root@charlie root]# find / -perm 500

            Sadece sahibi tarafından okunabilen ve çalıştırılabilen dosyaları bulur.

 

[root@charlie root]# find / -user backup -perm 500

            backup kullanıcısına ait ve dosya izinleri sadece sahibi için okuma ve çalıştırma yetkilerine sahip dosyaları bulur.

 

 

grep

 

grep –AB dosya adı

 

      Aranan ifadelerin dosyaların yada komut çıktılarında aranmasını sağlar.

 

[root@sharlo calisma]# grep merhaba a.txt

merhaba

      Bulunulan yerdeki a.txt dosyası içinde “merhaba” ifadesini arar ve listeler.

 

[root@sharlo calisma]# grep merhaba *

a.txt:merhaba

b.txt:merhaba

      Bulunulan yerdeki tüm dosyaların içinde “merhaba” ifadesini arar ve ifadenin bulunduğu dosyaların isimlerini listeler.

 

-A [sayı]   : Verilen sayı kadar satır bulunan ifadeden sonra ekranda görüntülenir.

 

[root@sharlo calisma]# grep merhaba * -A 1

a.txt:merhaba

a.txt-kkkkk

--

b.txt:merhaba

b.txt-

      Bulunulan yerdeki tüm dosyaların içinde “merhaba” ifadesi aranır, aranan ifadeden sonra verilen sayı kadar satır ekranda listelenir.

 

--------------

du

 

du [-ch] /dizin/dosya

 

            Dosyaların ve dizinlerin disk kapasitelerinin ekranda görüntülenmesini sağlar.

 

[root@charlie 11062003]# ls

            Komutu ile içinde bulunduğumuz dizini listeliyoruz.

fis.gbk  hrk2.gbk  hrk.gbk  ihale.gbk  lab.gbk  Login.gdb  mdc.gdb  tnm.gdb

fis.gdb  hrk2.gdb  hrk.gdb  ihale.gdb  lab.gdb  mdc.gbk    tnm.gbk  yedek  

 

[root@charlie 11062003]# du

            Komutu ile de içinde bulunduğumuz dizindeki dosya ve dizinlerin disk üzerinde kapladığı alan görülebilir.  Ekranda listelenen  kapasiteler KB cinsinden gösterilir.  Ekranda, içinde bulunulan dizindeki alt dizinlerin toplam kapasitesi ve dosyaların isimleri belirtilmeden kapasitelerinin toplamı gösterilir.

35708   ./yedek

9550252 .

 

[root@charlie root]# du /home

            Komutu ile ana dizindeki home dizininin ve içindeki dizinlerin toplam disk üzerinde kapladığı alan görülebilir. Home dizininin toplam kapasitesi de ekranda görülebilir.  Komutun çıktısı aşağıdaki olacaktır.

 

16      /home/lost+found

16      /home/boyaci

16      /home/user

4       /home/backup/a

4       /home/backup/d

24      /home/backup

3177928 /home/gbk

11935204        /home

 

[root@charlie root]# du /home/*

            du komutunda dizin içindeki dosyaları belirtebiliriz. Yukarıdaki komutla ana dizindeki home dizini içindeki dosyaların kapasiteleri KB cinsinden görülebilir. 

 

4       /home/28052003_yedekleri

119840  /home/Login.gdb

4       /home/backup/a

4       /home/backup/d

24      /home/backup

16      /home/boyaci

23484   /home/fis.gdb

3177928 /home/gbk

1601576 /home/hrk.gdb

1456852 /home/hrk2.gdb

2468696 /home/hrk2x.gdb

1601576 /home/hrkx.gdb

88060   /home/ihale.gdb

846752  /home/lab.gdb

16      /home/lost+found

91440   /home/mdc.gdb

458916  /home/tnm.gdb

16      /home/user

4       /home/vzh.txt

 

[root@charlie root]# du /home/*.gbk

            Komutu ile ana dizindeki home dizini içindeki .gbk uzantılı dosyaların kapasiteleri  KB cinsinden ekranda görülebilir. Dosya isminde yine özel karakterler kullanılarak örneği “[ ] * ?? vb. gibi” ekrana gelecek liste özelleştirilebilir.

 

Seçenekler:

-a                     : Tüm dosya ve dizinlerin kapasitelerinin alt dizinlerle ve içindeki dosyalarla beraber ekran da

                          görüntülenmesini sağlar.

 

[root@charlie home]# du –a

            Komutu ile içinde bulunulan dizinin içindeki tüm dosyaların, alt dizinlerin ve alt dizinlerin içinde bulunan dosyaların kapasiteleri ekranda görüntülenir.

 

-b                     : Dosya ve dizinlerin kapasiteleri ekranda Byte cinsinden gösterilir.

 

-c                     : Ekranda görüntülenen dosya ve dizin kapasitelerinin toplamını listenin altında verir. Diyelim ki ana

                          dizindeki etc dizininin disk üzerinde kapladığı alanı görmek istiyoruz.  [root@charlie home]# du

             /etc komutunu uyguluyoruz. Komutun çıktısında etc dizinin içindeki dosya ve alt dizinlerin kapasiteleri

                          ekranda görüntülenir. Listenin son satırında etc dizinini toplam disk üzerinde kapladığı alan gösterilir.

                          Yani –c parametresini kullanmanın gereği yoktur. Ancak bir dizin içinde belli bir şarta uyan dosyaların

                          kapasitelerinin toplamını görmek için –c parametresi kullanılabilir. Örnek olarak [root@charlie

             home]# du –c /etc/*.conf komutu ile etc dizinindeki .conf uzantılı dosyaların kapasiteleri görülür.

                          Listenin altında bu dosyaların toplam disk üzerinde kapladığı alan gösterilir.

 

-h                     : du komutu ile ekrandaki kapasiteler aksi belirtilmedikçe KB olarak gösterilir. Bu parametre ile ekranda

                         dosya ve dizin kapasiteleri hakkında bilgi gösterilirken KB, MB, GB  olarak dosya ve dizinlerin

                         kapasiteleri anlaşılır bir şekilde gösterilir.

 

-x                     : Farklı dosya sistemleriyle ilgili bilgi göstermez.

                          Örnek: [root@charlie root]# du / -xh            komutu ile sadece ana dizindeki dosya ve dizinlerin

                          kapasiteleri ekranda gösterilir. Ana dizine bağlı dosya sistemleri  herhangi bir dizin için bilgi gösterilmez.

 

-H                    : Dosya ve dizin kapasiteleri yine KB, MB,GB olarak gösterilir. Dosya ve dizin kapasiteleri 1024 ve katları

                          yerine 1000 ve katları olarak gösterilir. Yani 2048 Byte olan bir dosya –h parametresi ile 2 KB, -H

                          parametresi ile 2,5 KB olarak gösterilir.

 

-S                    : Alt dizinlerin kapasiteleri ekranda gösterilir. Genel toplamda dikkate alınmaz.

 

--exclude          : Belirtilen dosyaların veya dizinlerin kapasitelerini göz önüne almaz. Ekranda bu dosyalar veya dizin için

                          bilgi vermez.

 

[root@charlie gbk]# du -ah

            Komutu ile bulunduğumuz dizindeki tüm dosyaların kapasiteleri ekranda KB, MB, GB olarak görüntülenir.

 

12M     ./fis.gbk

2.0G    ./hrk.gbk

4.0K    ./hrk2.gbk

58M     ./ihale.gbk

576M    ./lab.gbk

77M     ./mdc.gbk

277M    ./tnm.gbk

118M    ./Login.gdb

3.1G    .

[root@charlie gbk]# du -ah --exclude=l*.*

      Komutu ile bulunduğumuz yerdeki adı l ile başlayan dosyalar hariç tüm dosyaların  kapasitelerinin ekranda KB, MB ,GB olarak görüntülenir.

 

12M     ./fis.gbk

2.0G    ./hrk.gbk

4.0K    ./hrk2.gbk

58M     ./ihale.gbk

77M     ./mdc.gbk

277M    ./tnm.gbk

118M    ./Login.gdb

2.5G    .

 

 

df

     

df [-h] /dizin/dosya

 

            Dosya sistemleri hakkında bilgi verir. Bir dosyanın bulunduğu dosya sistemi hakkında bilgi almak amacı ile de kullanılır.

 

[root@charlie gbk]# df

            Komutu ile disk bölümleri ve dolu / boş alanların miktarını ekranda görebiliriz.

 

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/cciss/c0d0p3      1007944    451152    505588  48% /

/dev/cciss/c0d0p2        43455     15060     26151  37% /boot

/dev/cciss/c0d0p6     15119912  11968012   2383844  84% /home

none                   1032348         0   1032348   0% /dev/shm

/dev/cciss/c0d0p7     51729748  31140540  17961488  64% /tmp

 

Filesystems      : Dosya sistemlerinin bağlı olduğu fiziksel disk bölümlerini,

NK-blocks         : Belirlenen değere göre blok sayısını gösteriri. Standart olarak bu değer 1024 ‘tür. Yukarıda “1K-blocks”

                          başlığı altındaki değerler 1024 sayısı ile çarpılırsa disk bölümünün – dosya sisteminin kapasitesi

                          bulunur.

Used                : Dosya sistemindeki kullanılan alan miktarını gösterir.

Available           : Kullanılabilir boş alanın miktarı gösterir.

Use%               : Dosya sistemin yüzde olarak kullanım oranını gösterir.

Mounted On      : Dosya sisteminin hangi dizine bağlı olduğunu gösterir.

 

Seçenekler:

 

-a                     : Tüm dosya sistemlerinin ekranda görüntülenmesini sağlar. Bazı dosya sistemlerinin kapasitesi olabilir.

                          Bazı dosya sistemleri özel bir amaçla sanal olarak yaratılmış da olabilir. Bu parametre ile tüm dosya

                          sistemleri ekranda listelenir.

 

[root@charlie root]# df -a

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/cciss/c0d0p3      1007944    451180    505560  48% /

none                         0         0         0   -  /proc

/dev/cciss/c0d0p2        43455     15060     26151  37% /boot

none                         0         0         0   -  /dev/pts

/dev/cciss/c0d0p6     15119912  11968012   2383844  84% /home

none                   1032348         0   1032348   0% /dev/shm

/dev/cciss/c0d0p7     51729748  38155724  10946304  78% /tmp

 

-h                     : Dosya sistemlerinin kapasite, dolu ve boş alanlarının KB, MB, GB olarak gösterilmesini sağlar.

 

[root@charlie gbk]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/cciss/c0d0p3     984M  441M  493M  48% /

/dev/cciss/c0d0p2      42M   15M   25M  37% /boot

/dev/cciss/c0d0p6      14G   12G  2.2G  84% /home

none                 1008M     0 1008M   0% /dev/shm

/dev/cciss/c0d0p7      49G   34G   13G  73% /tmp

 

-B (M,G,T)                    : Dosya sistemlerinin kapasitelerinin istenen kapasite birimiyle gösterilmesini sağlar.

-B kapasite      

 

[root@charlie root]# df -BM

Filesystem           1M-blocks      Used Available Use% Mounted on

/dev/cciss/c0d0p3          984       441       493  48% /

/dev/cciss/c0d0p2           42        15        25  37% /boot

/dev/cciss/c0d0p6        14765     11688      2327  84% /home

none                      1008         0      1008   0% /dev/shm

/dev/cciss/c0d0p7        50517     37262     10689  78% /tmp

 

 

[root@charlie root]# df -BG

Filesystem           1G-blocks      Used Available Use% Mounted on

/dev/cciss/c0d0p3            1         1         0  48% /

/dev/cciss/c0d0p2            0         1         0  37% /boot

/dev/cciss/c0d0p6           14        12         2  84% /home

none                         1         0         0   0% /dev/shm

/dev/cciss/c0d0p7           49        37        10  78% /tmp

 

[root@charlie root]# df -B 2048

            Komutu, dosya sitemlerinin kapasitelerinin, her block için 2048 Kb olarak hesaplanıp gösterilmesini sağlar.

 

-k                     : Her block kapasitesinin 1024 KB olarak gösterilmesini sağlar.

 

-T                     : Dosya sistemlerinin kapasiteleri ile beraber dosya sisteminin türünün de ekranda görüntülenmesini

                          sağlar.

 

[root@charlie root]# df -T

Filesystem              Type   1K-blocks      Used Available Use% Mounted on

/dev/cciss/c0d0p3       ext3     1007944    451180    505560  48% /

/dev/cciss/c0d0p2       ext3       43455     15060     26151  37% /boot

/dev/cciss/c0d0p6       ext3    15119912  11968012   2383844  84% /home

none                    tmpfs     1032348         0   1032348   0% /dev/shm

/dev/cciss/c0d0p7       ext3    51729748  38155724  10946304  78% /tmp

 

head

 

stat

 

tail

 

      tail –nrf dizin/dosya adı

 

            Dosyaların içeriğinin kadar dosya sonundan dosyanın başına doğru verilen satır sayısı ekranda görüntülenmesini sağlar. Ayrıca dosyaların izlenmesi içinde kullanılır.

           

[root@charlie root]# tail liste   

            Bulunulan yerdeki liste dosyasının, dosyanın sonundan başına doğru standart olarak 10 satırı ekranda görüntüler.

 

[root@charlie root]# tail /opt/interbase/interbase.log

            Dosyanın bulunduğu konum tarif edilerek, ilgili dosyanın içeriği sonundan başına doğru 10 satır ekranda görülebilir.

 

Seçenekler:

-n sayı              : Belirtilen sayı kadar dosyanın içeriğinin ekranda, dosyanın sonundan başına doğru ekranda

                          görüntülenmesini sağlar.

 

[root@charlie root]# tail –n 50 /opt/interbase/interbase.log

            Ana dizindeki opt dizinindeki interbase dizinindeki interbase.log dosyasının son 50 satırını ekranda görüntüler. 50 satır ekrana sığmayacağından bu komutun sonuna ¦ more yazılarak dosyanın ekranda sayfa sayfa görüntülenmesi sağlanabilir.

 

-c Byte             : Dosyanın sonundan başına doğru verilen byte kadar karakterin ekranda görüntülenmesini sağlar.

 

[root@charlie root]# tail -c 100 /opt/interbase/interbase.log

            interbase.log dosyasının sonundan 100 byte karakterlik kısmının ekranda görüntülenmesini sağlar.

 

-f                      : Bu parametre ile anlık dosya içeriklerinin izlenmesi için kullanılır. Bu parametre ile dosya sonuna

-F                       herhangi bir bilgi eklenirse ekrandan takip edilebilir. Genellikle içeriği sürekli değişen yada boyut olarak

  artan dosyaların izlenmesi için kullanılır.

 

[root@charlie root]# tail –f /opt/interbase/interbase.log

Ana dizindeki opt dizinindeki interbase dizinindeki interbase.log dosyasının son 10 satırı ekranda görüntülenir ve

dosyanın içeriğine ekleme olursa ekranda görülebilir. Ctrl + C tuş bileşeni kullanılarak tail komutundan çıkılabilir.

 

--retry               : Komutta belirtilen dosyanın bulunamaması durumunda, dosya oluşturulana kadar komut bekler. Bu

                          şekilde dosya adı verilen dosya belirtilen yerde oluştuğunda içeriği ekranda görüntülenir. –f parametresi

                          ile birlikte kullanılır. BU şekilde komutun dosyayı bulaması durumunda sürekli olarak dosyanın varlığı

                          denetlenir ve dosya oluştuğunda içeriği ekranda görüntülenir.

 

Örnek:

[root@charlie root]# tail -f --retry liste

                        Bulunulan yerde liste adındaki dosyanın olmadığını biliyoruz ve yukarıdaki komutu uyguluyoruz. Komutun çıktısı aşağıdaki gibi olacaktır.

 

tail: warning: --retry is useful only when following by name

tail: liste: No such file or directory

 

            liste adında bir dosya bululan yerde oluştuğu zaman aşağıda görülen mesaj ekranda görüntülenir. Dosyanın içeriğinin artışı ekranda görülebilir.

 

tail: `liste' has appeared;  following end of new file

liste dosyası oluşturuldu.

 

-v                     : Ekranda içeriği görüntülenen dosyanın adının ekranda belirtilmesini sağlar.

 

[root@charlie root]# tail -v  liste

==> liste <==

ali

 

            Birden fazla dosya üzerinde aynı anda işlem yapılabilir. Mesela aşağıdaki komutla hem interbase.log dosyasını hem de liste adındaki dosyanın içeriğindeki değişmeleri gözlemleyebiliriz. İçeriği değişen dosyanın adı belirtilir ve hemen altına dosyaya yeni eklenen bilgi ekranda gösterilir.

 

[root@charlie root]# tail  -f -v  /opt/interbase/interbase.log liste

            Komutun çıktısı aşağıdaki gibi olacaktır.

 

==> /opt/interbase/interbase.log <==

        INET/inet_error: connect errno = 111

charlie (Client)        Fri Jul  4 17:29:28 2003

        /opt/interbase/bin/ibguard: guardian starting bin/ibserver

charlie (Client)        Fri Jul  4 17:29:49 2003

        /opt/interbase/bin/ibguard: bin/ibserver normal shutdown.

 

==> liste <==

ggg

aaa

a":wq

 

            Diyelim ki interbase.log  dosyasının içeriğine “merhaba” ifadesi eklendi. Bu durumda içeriğinde değişme olan dosyanın adı belirtilir ve eklenen bilgi ekranda görüntülenir. Hangi dosyanın içerinde bir ekleme olursa o dosya ekranda adı belirtilerek eklenen bilgi görülebilir.

 

--pid=[pid]         : Yine bu seçenek –f parametresi ile kullanılması iyi olacaktır. PID numarası verilen işlem eğer sonlanırsa, belirtilen dosyanın içeriğinin izlenmesi de sonlanır.

 

[root@charlie root]# tail -f -n 4 --pid=1804 /opt/interbase/interbase.log

            Yukarıdaki komutla interbase.log dosyasının son 4 satırını ve dosya içeriğine bilgi eklenmesini anlık gözlemleyebilmek için de –f parametresini kullanarak uyguluyoruz. Uyguladığımız komutun çıktısı aşağıda görülebilir.

 

charlie (Client)        Fri Jul  4 17:46:03 2003

        /opt/interbase/bin/ibguard: guardian starting bin/ibserver

 

            Eğer PID numarası 1804 olan işlem sonlanırsa tail komutu da interbase.log dosyasının içeriğini izleme işlemini sonlandıracaktır. 

 

-s saniye          : Verilen saniye aralıklarında belirtilen dosyanın kontrol edilmesini sağlar. Bu parametrenin  –f

                          parametresi ile kullanılması iyi olacaktır.

 

[root@charlie root]# tail -f -s 10 /opt/interbase/interbase.log

                        interbase.log dosyasının içeriğini her 10 saniyede bir kontrol eder.

 

w

 

            w - [husfV] [user]          

Sisteme bağlanmış kullanıcıları ve bu kullanıcıların çalıştırdıkları son komut yada program hakkında bilgi verir.

 

who

           

      who (-ah)

            Sisteme başlanmış logon olmuş, çalışmakta olan kullanıcıları ekranda görmek için kullanılır.

           

            Komut uygulandığında sisteme bağlanmış kullanıcıların adı, terminal adı, bağlanılan tarih,saat ve konum ekranda aşağıdaki gibi görülebilir.

[root@charlie root]# who

root     tty1         Jul  7 08:58

root     pts/1        Jul  7 10:07 (192.168.1.203)

backup   pts/2        Jul  7 10:50 (192.168.1.203)

 

Seçenekler:

 

-H                    : Ekrandaki bilgilerin başlıklarının görüntülenmesini sağlar. Komutun ekran çıktısındaki bilgilerin daha rahat anlaşılabilmesi için –H parametresinin kullanılması iyi olacaktır.

 

[root@charlie root]# who -H

NAME     LINE         TIME         COMMENT

root     tty1         Jul  7 08:58

root     pts/0        Jul  7 10:06 (192.168.1.203)

backup   pts/2        Jul  7 10:50 (192.168.1.203)

 

-a                     : -b, -d, --login, -p, -r, -t, -T, -u parametrelerinde görülen bilgilerin aynı anda tümünün ekranda

                          görüntülenmesini sağlar. Komutun çıktısı aşağıda görülebilir.

 

[root@charlie root]# who -aH

NAME       LINE         TIME         IDLE          PID COMMENT  EXIT

                        Jul  8 08:28                20 id=si    term=0 exit=0

           system boot  Jul  8 08:28

           run-level 3  Jul  8 08:28                   last=S

                        Jul  8 08:28               195 id=l3    term=0 exit=0

                        Jul  8 08:28               554 id=ud    term=0 exit=0

root     + tty1         Jul  8 08:28 01:25         555

LOGIN      tty2         Jul  8 08:28               556 id=2

root     + tty3         Jul  8 13:12 02:24         557

root     + pts/0        Jul  8 15:17 00:09        9317 (192.168.1.203)

root     + pts/1        Jul  8 15:18 00:02        9448 (192.168.1.203)

root     + pts/2        Jul  8 15:20   .          9664 (192.168.1.203)

backup   + pts/3        Jul  8 15:21 00:15        9706 (192.168.1.203)

 

-b                     : Bağlanılan sistemin en son açılış (boot) zamanını ekranda görüntüler.

 

[root@charlie root]# who -b

         system boot  Jul  7 08:44

 

-d                     : Sonlanmış, ölmüş işlemleri arkamda listeler.

 

[root@charlie root]# who -d

                      Jul  7 08:44                20 id=si    term=0 exit=0

                      Jul  7 08:44               195 id=l3    term=0 exit=0

                      Jul  7 08:44               554 id=ud    term=0 exit=0

 

-q                     : Kullanıcı isimlerini ve bağlı olan toplam kullanıcı sayısını ekranda görüntüler.

--count

 

[root@charlie root]# who -q

root root root backup root

# users=5

 

 

-u                     : Bağlı kullanıcıları, kullanıcıların işlem yapmadan geçirdikleri süreyi ve kullanıcıların işlem numarası

--idle                   ekranda görüntüler. IDLE başlığı altında “.” Görülürse son bir dakika içinde ilgili kullanıcın işlem yaptığı,

                          “old” ifadesi ise kullanıcının son 24 saat içinde işlem yapmadığı anlamına gelir.

 

 

[root@charlie root]# who -uH

NAME     LINE         TIME         IDLE          PID COMMENT

root     tty1         Jul  7 08:58 01:53         555

root     pts/1        Jul  7 10:07   .          1226 (192.168.1.203)

backup   pts/2        Jul  7 10:50 old          1309 (192.168.1.203)

 

-m                    : Bağlanılan kullanıcıyla ilgili bilgi verir.

 

[root@charlie root]# who -mH

NAME     LINE         TIME         COMMENT

root     pts/1        Jul  7 10:07 (192.168.1.203)

 

--lookup            : Bilgisayar isimlerini dns üzerinden sorgular.

 

last

 

      last –nxf [kullanıcı adı] [terminal]

 

is4:~ # last

root     pts/0        192.168.1.7      Mon Aug  9 14:53   still logged in

root     pts/0        192.168.1.6      Mon Aug  9 14:44 - 14:44  (00:00)

root     pts/0        is7              Mon Aug  9 08:37 - 08:39  (00:01)

root     pts/1        192.168.1.203    Tue Aug  3 14:22 - 18:22  (03:59)

root     pts/1        192.168.1.32     Tue Aug  3 14:13 - 14:20  (00:07)

root     pts/0        192.168.1.7      Tue Aug  3 14:11 - 14:21  (00:09)

root     tty3                          Tue Aug  3 12:21   still logged in

root     tty2                          Mon Aug  2 18:04   still logged in

root     tty1                          Mon Aug  2 18:03   still logged in

reboot   system boot  2.6.5-7.95-defau Mon Aug  2 18:03         (6+20:50)

root     tty3                          Sat Jul 31 20:02 - down  (1+21:56)

 

wtmp begins Sat Jul 31 15:24:24 2004

            İstenilen konsolun adı verilerek sadece o konsoldan sisteme bağlanmış, log on olmuş kullanıcılarla ilgili bilgiler görülebilir. Aşağıdaki komutla sadece tty1 konsolundan sisteme log in olmuş kullanıcıları listeliyoruz.

Örnek:

[root@alpay root]# last tty1

root     tty1                          Tue Sep 28 14:15   still logged in  

root     tty1                          Mon Sep 27 16:23 - crash  (21:50)   

root     tty1                          Mon Sep 13 11:11 - crash (14+05:07) 

root     tty1                          Fri Sep 10 08:45 - down   (00:54)   

root     tty1                          Thu Sep  2 09:04 - 10:43  (01:39)   

 

            Eğer istenirse sanal terminallerden yani uzak bilgisayarlardan sisteme log on olan kullanıcılarla ilglil bilgiler de görülebilir. pts/1... ifadesi sisteme bağlanan uzak bilgisayarları ifade eder.

Örnek:

charlie:~ # last pts/9

kubilay  pts/9        192.168.1.32     Wed Sep 29 09:23   still logged in  

root     pts/9        192.168.3.203    Thu Sep 16 11:17 - 12:03  (00:45)   

wtmp begins Wed Sep 15 08:38:11 2004

           

Sadece istenen kullanıcının log in işlemleri kullanıcının adı belirtilerek görülebilir. Aşağıdaki komut ile backup kullanıcısının log in işlemlerini ekranda listeliyoruz.

charlie:~ # last backup     

backup   pts/7        192.168.1.203    Wed Sep 29 09:22 - 09:22  (00:00)   

backup   pts/7        192.168.1.32     Wed Sep 29 09:22 - 09:22  (00:00)   

backup   pts/7        192.168.1.32     Wed Sep 29 09:22 - 09:22  (00:00)   

backup   pts/7        192.168.1.32     Wed Sep 29 09:21 - 09:21  (00:00)   

backup   pts/5        localhost        Mon Sep 27 17:49 - 17:49  (00:00)   

backup   pts/5        localhost        Mon Sep 27 17:48 - 17:48  (00:00)   

 

wtmp begins Wed Sep 15 08:38:11 2004

 

-n [sayı]            : Ekranda gösterilecek satır sayısı.

-R                    : Kullanıcıların bağlandıkları makine adlarını yada IP adreslerini göstermez.

-o                     : Eski wtmp dosyasının okunması için kullanılır (linux-libc5).

-x                     : Sistemin kapatıldığı ve init çalışma seviyelerinde yapılan değişiklikleri  listeler (run level).

-d                     : Uzaktan bağlanan istemcilerin IP adreslerinden bilgisayar isimlerine çevirmeye çalışır.

-i                      : Sisteme log in olmuş tüm kullanıların bağlandıkları makinelerin bilgisayar adları yerine IP adreslerinin

                          görüntülenmesini sağlar.

-f                      : bu parametre ile daha önce yedeği alınmış wtmp dosyalarının içerikleri düzenli şekilde ekranda

                          görülebilir.

Örnek: Aşağıdaki komutla /tmp dizini içine 29.09.2004_wtmp adıyla kaydedilen wtmp dosyasını –f parametresi ile belirterek bu dosyanın içeriğini ekranda düzenli olarak görüntüleyebiliyoruz.

[root@alpay root]# last -f /tmp/29.09.2004_wtmp

kubilay  pts/4        192.168.50.3     Thu Sep  2 04:45 - 04:45  (00:00)

root     pts/3        192.168.50.3     Thu Sep  2 04:44 - 04:44  (00:00)

kubilay  pts/2        192.168.50.3     Thu Sep  2 04:44 - 04:44  (00:00)

root     pts/1        192.168.50.3     Thu Sep  2 04:10 - down   (03:29)

root     pts/0        192.168.50.3     Thu Sep  2 04:04 - 06:10  (02:06)

 

wtmp begins Thu Sep  2 04:04:02 2004

 

chmod

 

chmod [-Rhf] izin kodu {dosya...|dizin...}

 

            Dosya ve dizinlere erişim haklarını belirlemek için kullanılır.

            Dosya ve dizinler erişim izinlerini belirlemek için, bu izinleri tanımlayan rakamlar yada sembolik tanımlamalar kullanılır.

 

Sayılar:                                                Sembolik Tanımlar:

Çalıştırma x execute      : 1                    r : okuma yetkisi (read) 

Yazma      w write         : 2                    w : yazma yetkisi (write)

Okuma     r   read          : 4                    x : çalıştırma yetkisi (execute)

                                                           s : programı çalıştıran kullanıcıların, program çalıştığı sürece ve sadece bu

                                                                programla ilgili komutlar açısından, program dosyasının sahibinin yetkilerine

                                                                sahip olmalarını sağlar.

 

-           : İzin yok anlamına gelir.

 

-rwxr-xr-x    1 root     root         8489 May 23 08:07 hastane

 

            Yukarıda hastane adındaki doyanın izinlerini görebiliyoruz.  Kısaca bilgilerimizi yeniden tazeleyecek olursak:

 

2.,3.,4., karakter dosyanın sahibinin haklarını

5.,6.,7., karakter kullanıcının üye olduğu grubun haklarını

8.,9.,10. karakterler ise diğer kullanıcıların dosya üzerindeki haklarını ifade eder

 

            Bir dosyaya izin tanımlamak için, verilecek izini temsil eden sayı yada sembolik tanım belirtilir. Örneğin dosyaya yazma izini verilecekse 2 sayısının yada w tanımının kullanılması gibi. Birden fazla izin tanımlanacaksa, izinleri temsil eden sayılar toplanır. Örneği okuma ve çalıştırma yetkisi dosyaya verilecekse okuma 4 + yazma 1 = 5,sembolik yada +rw ifadesi kullanılır.

 

İzinlerin anlamı, dosya ve dizinler için farklı yorumlanır.

Okuma:

 

Yazma:

 

Çalıştırma:

 

İzin

Dosya

Dizin

Okuma

Dosyanın içeriğini görebilme

Dizinde hangi dosyaların bulunduğunu görebilme

Yazma

Bir dosya üzerinde değişiklik veya ekleme yapabilme

Bir dizindeki dosyaları silebilme veya taşıyabilme

Çalıştırma

İkili yapıdaki bir programı veya kabuk betiğini çalıştırma

Bir dizinde arama yapabilme, okuma izinleri ile birlikte

 

Her kullanıcı kendi dosyaları üzerinde tüm haklara sahiptir. Diğer kullanıcıların dosya ve dizinleri üzerinde o kullanıcının belirlediği yetkiler ile çalışabilir. Eğer bir kullanıcı olarak sisteme bağlanıldıysa kullanıcı bu yetkileri kendi dosyaları için değiştirebilir. Yani dosyanın sahibi kendisidir.

 

-r--------    1 root     root         8489 May 23 08:07 calisma

 

Yukarıdaki calisma adlı dosyamızın izinleri görüyoruz. Bu dosyanın izinlerini tanımlayalım.

root olarak sisteme bağlandığımızı düşünelim. calisma adlı dosyaya, sahibi için tüm izinleri (root), grubu için okuma ve çalıştırma, diğer kullanıcılar içinde sadece okuma yetkisini tanımlayalım.

 

[root@charlie root]# chmod 754 calisma

 

            Komutta görülen rakamlar, 7 dosyanın sahibi için, 4 dosyanın sahibinin üye olduğu grup kullanıcıları için, 5 diğer kullanıcıların haklarını ifade eder. Bu sayıların anlamlarına bakacak olursak;

  

Dosyanın sahibi için             1             +    2            +       4                = 7

                                   çalıştırma (x)     yazma (w)        okuma (r)         =xwr    

 

Kullanıcının grubu için           1             +       4                                      = 5

                                   çalıştırma (x)     okuma (r)                                = xr

 

Diğer kullanıcılar için            4                                                              = 4

                                   okuma (r)                                                         = r

 

            Sembolik tanımlamalar ise anlamları aşağıda görülebilir.

u : dosya/dizinin sahibi (user)                                    g : dosya/dizinin sahibiyle aynı grupta olanlar (group)

o : diğer kullanıcılar (others)                                      a : herkes (all)

 

            Yukarıdaki açıklamalara bakarak calisma adlı dosyanın izinlerini sembolik tanımlarla belirleyelim

 

[root@charlie root]# chmod u+wxr,g+xr,o+r calisma

            u user yani root kullanıcısına yazma w, çalıştırma x ve okuma r izinlerini;

g kullanıcının grubuna çalıştırma x, okuma r;

o diğer kullanıcılara okuma r yetkisini verir.

           

            Her iki komutun uygulanmasından sonra ls –l komutu ile dosyayı ekranda listelediğimizde izinlerin  aşağıdaki gibi düzenlenmiş olduğunu görebiliriz.

 

-rwxr-xr--    1 root     root         8489 6 Jul 30 17:37 calisma

 

 “+” işareti ile ilgili izinler dosyaya verilir. Erişim izni alınacaksa “-“ işareti kullanılır.

 

deneme adlı dosyada sahibinin tüm yetkileri, grubun okuma yetkisi, diğer kullanıcılarında okuma ve çalıştırma yetkisi olsun. Deneme dosyasından diğer kullanıcıların okuma ve çalıştırma yetkisini almak için,

 

-rwxr--r-x    1 root     root         8489 6 Jul 30 17:37 deneme

 

[root@charlie root]# chmod 740 deneme

yada

[root@charlie root]# chmod o-rx deneme

 

            komutları verilebilir. Sayı ile izinler üzerinde ayarlama yaparken dosyanın sahibinin ve grubunun yetkisi eskisi gibi bıraktık. Diğer kullanıcıların yetkilerini tamamen kaldırmak için “0” sayısını kullandık. ls –l deneme komutu ile dosyanın izinlerini kontrol edebiliriz.

                                                                                                         

-rwxr-----    1 root     root         8489 6 Jul 30 17:37 deneme

 

            Sembolik tanımlar ile dosya izinleri aynı anda verilebilir veya alınabilir. Aşağıdaki komutla bulunulan yerdeki a adlı dosyaya, sahibi için yazma yetkisi alınıp, çalıştırma yetkisi dosyaya verilir.

 

[root@charlie tmp]# chmod u-w+x a

 

Seçenekler:

 

-c                     : Dosyanın izinleri üzerinde değişiklik olursa ekranda izinler sayısal olarak gösterir. Eğer dosyaların

                          izinlerinde değişiklik olmazsa ekranda bilgi mesajı görüntülenmez. Aşağıdaki komutla bulunulan yerdeki

                          a dosyasına sahibi için yazma ve okuma, diğer kullanıcılar için okuma iznini dosyaya verir. Ekranda

                          dosya izinleri sayısal ve sembolik tanımları ile ekranda gösterilir.

 

 

[root@charlie tmp]# chmod 604 a -c

mode of `a' changed to 0604 (rw----r--)

 

-v                     : Yapılan her işlem için ekranda bilgi mesajı görüntüler.

 

[root@charlie tmp]# chmod 604 a -v

mode of `a' changed to 0604 (rw----r--)

 

 

-R                    : Dizin ve alt dizinlerdeki dosyalar üzeride işlem yapılmasını sağlar.

 

[root@charlie tmp]# chmod  700 dnm/* -R

            Yukarıdaki komutla dnm dizini ve alt dizinlerindeki tüm dosyaların izinleri sahibi için yazma, çalıştırma ve okuma olarak belirlenir, grubu ve diğer kullanıcılar içinde dosyanın tüm izinleri alınır.

 

-f                      : Geçersiz izinler ve kullanım cümleleri dışında kalan hata mesajlarını ekranda görüntülemez.

 

Bir dosya yada dizinin ilgili linki ile ilgili izinler düzenlenirse, linkin bağlı olduğu dosya ve dizinin izinleri değiştirilmiş olur.

 

Temel olarak dosya ve dizinlere çalışma (x=1), yazma (w=2) ve okuma (r=4) izinleri nasıl verilir açıklamış olduk. Ancak bu izinlerle beraber dosya ve dizinlere bir takım özellikler katan izinler tanımlanabilir.

 

Yapışkan bit t:

 

Yapışkan bit (t) olarak da anılan  izin genel olarak dizinler için kullanılır. Aşağıda görüleceği üzere dosya ve dizin izinlerin en sonunda görülebilir. Eğer dizine bu izin verilmişse, o dizin içinde kullanıcılar dosya oluşturabilir. Ama hiçbir kullanıcı diğer kullanıcının dosyalarını silemez değiştiremez. Sadece dosyanın sahibi ve dizinin sahibi kullanıcıların oluşturmuş olduğu dosyaları silebilir. Genel olarak FTP sunucular için bu özellik çok kullanışlıdır.

 

drwxrwxrwxt    9 root     root         4096 Aug  4 18:01 tmp

 

Diyelim ki chmod  777 txt komutu aslında chmod 0777 txt  komutudur. Buradaki ilk bit dizinin yukarıda bahsettiğimiz özelliğini temsil eder.

 

Eğer bir dizine bu özelliği kazandırmak, bu izni vermek istiyorsanız

 

[root@charlie root]# chmod 1777 /tmp

[root@charlie root]# chmod u+t /tmp

 

            Komutları verilebilir ve dizininin izinlerinin aşağıdaki gibi düzenlenmiş olduğu görülebilir.

 

drwxrwxrwxt    9 root     root         4096 Aug  4 18:01 tmp

 

Dizinden artık bu izin alınmak isteniyorsa aşağıdaki komut kullanılabilir.

[root@charlie root]# chmod 0777 /tmp

           

 

s Biti

 

SUID (set user id):

 

            Linux altında her kullanıcı kendi dosyalarıyla çalışır. Her kullanıcı kendisini tanımlayan bir numaraya ID ‘ye sahiptir. “s” bitine sahip bir dosyayı kullanan kullanıcı kendi kullanıcı kimliği ile değil, dosyanın sahibinin yetkilerine sahip olarak dosyayı kullanır. Büyük bir güvenlik açığı olabilecek özelliği kullanırken hangi dosyalara bu yetkinin verileceği iyi düşünülmelidir.

 

[root@charlie root]# chmod u+s /etc/passwd

 

[root@charlie root]# chmod 4755 /etc/passwd

 

 

GUID (set group id):

 

            Eğer bir dosyanın bu bitini1 yaparsanız diğer kullanıcılar bu dosyayı grup ID ‘si ile çalıştırırlar.

 

Eğer bir dizinin bu bitini 1 yaparsanız (chmod g+s dizin ile), bu dizinde yaratılan dosyaların grupları, bu dizinin grubu ile aynı olacaktır.  Bu şekilde oluşturulan her dosya grubun kullanımına açık hale gelecektir.

 

[root@charlie root]# chmod g+s /etc/2003_uretim_raporlari

 

[root@charlie root]# chmod 2755 /etc/listele

 

 

chown

 

chown [-cR] kullanıcı:grup dosya adı

 

            Dosya ve dizinlerin sahibini, grubunu değiştirmeyi sağlar. Dosyaların sahiplerini sadece root değiştirir ve belirler. Dosyanın yada dizinin sahibi dosyanın izinlerini belirler.

 

[root@charlie notlar]# ls -l

-rw-r-----    1 ahmet   uretim         10 Jul  7 10:52 kullanici

            Yukarıda kullanici dosyasının sahibi ahmet, bu dosyanın grubu uretim olarak görülmektedir. Sahibi için okuma ve yazma, grubu için sadece okuma yetkilerine sahiptir. Bu dosyanın izinleri root ve sahibi ahmet tarafından belirlenebilir. Bu dosyanın sahibi de sadece root tarafından değiştirilebilir veya belirlenir.

kullanici dosyasının sahibini dilek olarak değiştirelim. Bu işlem için aşağıdaki komutu vermek yeterli olacaktır.

 

[root@charlie notlar]# chown dilek kullanici

           

Yaptığımız işlemi ls komutu ile görelim. İlgili dosyanın sahibinin dilek olarak değiştiği ama grubunun aynı kaldığı görülebilir.

 

[root@charlie notlar]# ls -l

-rw-r-----    1 dilek   uretim         10 Jul  7 10:52 kullanici

 

kullanici dosyasının sahibi dilek olarak değiştirdik. Dosyanın grubunu değiştirmedik. uretim grubuna uye kullanıcılar, dilek kullanıcısı uretim grubuna uye olmasa dahi, bu dosya üzerinde okuma yetkisine sahip hala sahipler. 

Eğer dosyanın hem sahibini hem de grubunu değiştirmek istiyorsak aşağıdaki komutu uygulayabiliriz.

 

[root@charlie notlar]# chown dilek:backup kullanici

[root@charlie notlar]# ls -l

-rw-r--r--    1 dilek   backup         10 Jul  7 10:52 kullanici

            chown komutundan sonra dosyanın sahibi olacak kullanıcı adını “:” yada “.”  işaretinden sonra grup adını yazarak komutu tamamlıyoruz. Yaptığımız işlemi ls komutu ile kontrol ediyoruz.

 

            Dosyanın sahibini değiştirmeden grubunu değiştirmek için “:” yada “.” işaretinden sonra grup adını belirtiyoruz.

[root@charlie notlar]# chown :user kullanici

 

 

-R                    : Dizin ve alt dizinlerdeki dosya ve dizinler içinde işlem yapılmasını sağlar.

 

[root@charlie notlar]# chown backup /gecici -R

            Ana dizindeki gecici dizininin içindeki dosya ve dizinlerin sahibini backup kullanıcısı olarak değiştirir.

 

-v                     : Sahibi yada grubu değişen dosya ve dizinleri ekranda görüntüler.

 

[root@charlie notlar]# chown root a/* --dereference -v

changed ownership of `a/abc' to root

changed ownership of `a/anaconda-ks.cfg' to root

changed ownership of `a/b' to root

 

-c                     : Ekranda sadece sahibi yada grubu değişen dosyaları –v parametresinde olduğu gibi görüntüler.

 

--dereference     : Eğer bir linkin sahibi yada grubu değiştirilirse, bu parametre ile linkin işaret ettiği dosya yada dizininde

                          sahibi yada grubu değişir. Bu seçenek kullanılmazsa, sadece ilgili link dosyasının sahibi veya grubu

                          değişir.

 

-f                      : Hata mesajlarını gizler.

 

            Bulunduğumuz dizindeki ibstart adlı dosyayı listeliyoruz. Görüleceği üzere ibstart dosyası ana dizindeki root dizini içindeki ibstart dosyası için oluşturulmuş bir link dosyasıdır.

[root@charlie notlar]# ls -l ibstart

lrwxrwxrwx    1 root     root           13 Jul 29 13:08 ibstart -> /root/ibstart

 

            Ana dizindeki root dizinindeki ibstart dosyasını listeleyerek, bu dosyayla ilgili bilgileri ekrana getirelim. Dosyanın sahibi root, grubu da root olarak görünüyor.

 [root@charlie notlar]# ls -l /root/ibstart

---x--x--x    1 root     root           28 Jan 28  2003 /root/ibstart

 

            Bulunduğumuz yerdeki, ana dizindeki root dizinindeki ibstart dosyasına işaret eden linkin, sahibini kubilay kullanıcısı olarak belirlemek istiyoruz ve yukarıdaki komutu uyguluyoruz. --dereference seçeneği ile link dosyasının yerine işaret ettiği dosyanın üzerinde işlem yapmayı, -v parametresi ile de ekranda yapılan işlemle ilgili bilgi mesajını görüntülemeyi sağlıyoruz.

[root@charlie notlar]# chown kubilay ibstart --dereference -v

changed ownership of `ibstart' to kubilay

 

Yaptığımız işlemi kontrol etmek için önce bulunduğumuz yerdeki link dosyasını, sonra da root dizinindeki asıl dosyayı listeliyoruz.

[root@charlie notlar]# ls -l ibstart

lrwxrwxrwx    1 root     root           13 Jul 29 13:08 ibstart -> /root/ibstart

 

[root@charlie notlar]# ls -l /root/ibstart

---x--x--x    1 kubilay  root           28 Jan 28  2003 /root/ibstart

     

            Dosyaların ve dizinler için geçerli kurallar sahibi, dosyanın sahibinin grubu ve diğer kullanıcılar içindir. Dosyanın sahipliğini, grubunu sadece root belirler. Dosya izinlerini de root ve dosyanın sahibi belirleyebilir. Tüm kullanıcılar için çalışma dizinleri belirlenebilir. Bu dizinlerin izinlerini yapışkan bit, herkes için okuma, yazma ve çalıştırma olarak belirlenebilir. Aşağıdaki komutlara ve çıktılarını incelersek konuyu daha iyi anlayabiliriz.

 

[root@charlie root]# mkdir /ortak

            Ana dizinde ortak adında bir dizin oluşturuyoruz.

 

[root@charlie root]# chmod 1777 /ortak

            Ana dizindeki ortak dizini için herkese okuma yazma ve çalıştırma yetkilerini veriyoruz. Ayrıca bu dizine yapışkan bit denilen izinle; yani her kullanıcının kendi dosyalarından başka dosyaları silememesini, ismini değiştirememesini sağlıyoruz. Çalıştırma, okuma ve yazma izinleri kullanıcılar kendi isteklerine göre düzenleyerek gerekli izinleri verebilirler.

 

[root@charlie root]# ls –l /

            Komutu ile ekrana gelen listede ortak dizininin izinlerini ekranda görüyoruz.

 

drwxrwxrwt   12 root     root         4096 Aug 13 14:40 ortak

 

            ortak dizinin içinde aşağıdaki dosyaların bulunduğunu varsayalım.

[backup@charlie ortak]$ ls -l

total 20

drwxrwxrwt    2 root     root         4096 Aug 13 14:51 .

drwxr-xr-x   20 root     root         4096 Aug 13 14:47 ..

-rw-r--r--    1 root     root            6 Aug 13 14:51 genel_rapor

-rw-r-----    1 ali      backup          5 Aug 13 14:49 ocak_rapor

-rw-rw-r--    1 backup   backup          6 Aug 13 14:48 subat_rapor

-rw-rw-r--    1 user     user            6 Aug 13 14:50 mart_rapor

 

             Yukarıdaki dosya listesinde görüleceği üzere root, user, backup ve ali kullanıcısına ait birer dosya dizin içinde mevcut.Bu dört kullanıcıda birbirlerinin oluşturmuş oldukları dosyaları dosyanın sahibinin verdiği izinler ölçüsünde görebilir, okuyabilir, kopyalayabilir, içerisinde değişiklik yapabilir ama silemez, ismini değiştiremez, taşıyamaz.

 

- ali kullanıcısı

 

ali kullanıcısının dosyası kendisi için okuma ve yazma, grubu ve diğer kullanıcılar için sadece okuma izinlerine sahiptir.

 

backup kullanıcısı ile aynı gruptadır. Bu yüzden grup izinlerine bakarsak ali kullanıcısı backup kullanıcısının dosyasını görebilir, içinde değişiklik yapabilir, kopyalayabilir ama çalıştıramaz, silemez ve adını değiştiremez, taşıyamaz, izin tanımlayamaz.

root ve user kullanıcılarının dosyalarını sadece görebilir, kopyalayabilir ve okuyabilir.

 

 

- backup kullanıcısı

backup kullanıcısının dosyası kedisi ve grubu için okuma ve yazma, diğer kullanıcılar için sadece okuma izinlerine sahiptir.

 

ali kullanıcısı ile aynı gruptadır. ali kullanıcısının dosyasını görebilir ve okuyabilir, kopyalayabilir ama içinde değişiklik yapamaz, çalıştıramaz, ismini değiştiremez, taşıyamaz, izin tanımlayamaz.

 

- user kullanıcısı

user kullanıcısının dosyası kendisi ve grubu için yazma ve okuma, diğer kullanıcılar için sadece okuma izinlerine sahiptir.

 

ali, backup ve root kullanıcısının dosyalarını sadece görebilir, okuyabilir, kopyalayabilir. ali kullanıcısının da dosyasını, sadece görebilir ama okuyamaz ve kopyalayamaz.

 

- root

ise bu dosyaları okuyabilir, içinde değişiklik yapabilir, ismini değiştirebilir, taşıyabilir ve silebilir. root için dosya ve dizin izinlerinin bir anlamı yoktur.Tüm dosya ve dizinlere root erişebilir.

 

 

s bitinin farkı

 

            Yukarıdaki örnek olarak verilen ortak dizininde kullanıcıların birbirlerinin dosyalarını silememelerinin nedeni yapışkan bit olarak tanımladığımız “t” özelliktir. Eğer ortak dizini için bu özelliği root vermemiş olsaydı, ali kullanıcısı backup kullanıcısının dosyasının üzerinde grup yetkilerini kullanarak dosyanın içerisinde değişiklik yapabilecek, silebilecek, ismini değiştirebilecek veya taşıyabilecektir.  root ve user kullanıcılarının dosyalarını diğer kullanıcı yetkilerine göre sadece okuyabilecek ve kopyalayabilecektir.

 

            backup kullanıcısı grup yetkilerine göre ali kullanıcısının dosyasını sadece görebilecek, kopyalayabilecek ve okuyabilecek ama silemeyecek, içerisinde değişiklik yapamayacak, ismini değiştiremeyecek, çalıştıramayacak ve taşıyamayacaktı. root ve user kullanıcılarının dosyalarını diğer kullanıcı yetkilerine göre sadece okuyabilecek ve kopyalayabilecektir.

 

            user kullanıcısı diğer kullanıcı yetkilerine göre backup, ali ve root kullanıcılarının dosyalarını sadece okuyabilecek ve kopyalayabilecektir.

           

 

chgrp

 

chgrp [-Rc]  grup  dosya adı

 

            Dosya ve dizinlerin grubunu değiştirmeyi sağlar.

           

            Bu işlem için chown komutu da kullanılabilir.

           

            Bulunduğumuz yerdeki clear adlı dosya ait bilgileri ekranda listeliyoruz. Dosyanın sahibi backup adlı kullanıcı ve bu kullanıcı backup grubunun üyesi.

[root@charlie tmp]# ls -l clear

-rw-r--r--    1 backup   backup          6 Aug 13 16:28 clear

 

            Bu dosyanın grubunu yazilim grubu olarak değiştirmek istiyoruz. Komuttan sonra dosyanın yeni grubunu ve dosyanın adını yazıyoruz.

[root@charlie tmp]# chgrp yazilim clear

 

            Dosyanın bilgilerini ekran tekrar listeliyoruz. Dosyanın sahibinin aynı kaldığını  ama grubunun yazilim olarak değiştiğini görebiliriz.

[root@charlie tmp]# ls -l clear

-rw-r--r--    1 kubilay  yazilim         6 Aug 13 16:28 clear

 

-c                     : Ekranda sadece sahibi yada grubu değişen dosyaları –v parametresinde olduğu gibi görüntüler.

 

-R                    : Dizin ve alt dizinlerdeki dosya ve dizinler içinde işlem yapılmasını sağlar.

 

-v                     : Sahibi yada grubu değişen dosya ve dizinleri ekranda görüntüler.

 

-f                      : Hata mesajlarını gizler.

 

--dereference     : Eğer bir linkin sahibi yada grubu değiştirilirse, bu parametre ile linkin işaret ettiği dosya yada dizininde

                          sahibi yada grubu değişir. Bu seçenek kullanılmazsa, sadece ilgili link dosyasının sahibi veya grubu

                          değişir.

 

 

 

whereis

 

whereis –bms [komut]

 

Verilen komut için işletilecek binary dosyasının yerini ve yardim dosyalarını ekranda gösterir.

 

[root@charlie root]# whereis iptables

iptables: /sbin/iptables /lib/iptables /usr/share/man/man8/iptables.8.gz

            Yukarıdaki komutla iptables komutunun bulunduğu dizini ve binary dosyasının yerini görebiliriz.

 

Seçenekler:

 

-b                     : Sadece verilen komuta ait binary dosyaları ekranda gösterir, bulur.

 

[root@charlie root]# whereis -b iptables

iptables: /sbin/iptables /lib/iptables

 

-m                    : Sadece komutla ilgili yardım dosyalarının (manual) yerine ekranda listeler.

 

[root@charlie root]# whereis -m iptables

iptables: /usr/share/man/man8/iptables.8.gz

 

-s                     : Sadece verilen komuta ait kaynak kodu (source) içeren dosyanın yerini ekranda görüntüler.

 

uptime

 

      uptime

 

            Sistemin ne kadar süredir açık olduğunu, geçerli tarihi, işlem yükü (1, 5 ve 15 dakika ortalamaları)ve bağlı kullanıcı sayısı hakkında bilgi verir.

/var/run/utmp, /var/log/wtmp dosyalarına bakarak kullanıcı sayısı ve sistemin ayakta olduğu süre hesaplanır. Komutun en yaygın kullanımı ve ekran çıktı aşağıda görülebilir.

 

is6:~ # uptime

2:43pm      up 17 days  1:52,  6 users,       load average: 0.09, 0.06, 0.07

Geçerli             Sistemin açık olduğu gün     sisteme bağlı          son 1,5 ve 15 sistemin ortalam yükü

Saat                  ve dakika                           kullanıcı sayısı       

 

ps

 

ps [-efx]

 

            Çalışan işlemler hakkında bilgi verir. Bu komutla çalışan servisler, çalışan program ve komutlar görülebilir.

 

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 08:42 ?        00:00:04 init

 

            Komut uygulandığında ekranda çalışan işlemlerle ilgili bilgiler gelecektir. Burada hangi bilginin neyi ifade ettiğini kısaca açıklayalım.

 

UID                  : İşlemi başlatmış olan kullanıcı.

PID                  : İşlemin tanımlanmış numarası. Başlatılan her işlem için bir numara (Process ID) atanır. Bu numara o

                          işlemim bitişine

                          yada sonlandırılmasına kadar kullanılır. Sonlanan işlemin numarası yeni başlatılan bir işleme verilmez.

PPID                : İşlemin bağlı olduğu işlem numarası (PID).

%CPU              : İşlemin CPU ‘daki yük durumu.

%MEM             : İşlemin hafızada kapladığı alan.

SIZE                 : Programın toplam kullandığı bellek alanı (kilobyte)

RSS                 : Programın bellekte kapladığı gerçek alan. Bu değer paylaşılan sistem kütüphaneleri (shared library)

                          nedeniyle genellikle SIZE değerinden küçüktür.

TTY                  : Sürecin çalıştırıldığı (sanal) terminal

C                     :

STIME              : İşlemin başlatıldığı zaman.

STAT                : İşlemin durumu.

                        R          = İşlem çalışabilir durumda.

                        T          = İşlem durmuş. Genel olarak bu durum Ctrl + Z tuşu ile durudurulan işlemlerde görülür.

                        P          = İşlem diskten bir sayfa yüklemesi bekliyor.

                        D          = İşlem diskten bilgi yüklemesi bekliyor.

                        S          = İşlem 20 saniyeden az bir süredir bekliyor.

                        I           = İşlem 20 saniyeden uzun bir süredir bekliyor, uyuyor.

                        Z          = İşlem sonlanmış ama hafızadan silinmemiş durumda (Zombi). Makineyi meşgul etmezler.

                                      Sistem kaynağı harcamazlar. Bu tür süreçler öldürülemezler.

                        W         = İşlem diske aktarıldı.

                        >          = İşlem kendisi için geçerli olan bellek limitini aştı.

                        N          = İşlem düşük öncelikle işliyor.

                        <          = İşlem yüksek öncelikle işliyor.

TIME                : İşlemin çalıştırılması için harcanan süre.

CMD                : İşlemin adı, yada çalışan komut.

 

Seçenekler:

 

-e                     : Tüm işlemlerin ekranda görüntülenmesini sağlar.

-A                      Örnek: [root@charlie root]# ps -e

                                    [root@charlie root]# ps -A

                          Bu parametre ile PID, TTY, TIME, CMD bilgileri ekranda görülebilir. Listenin daha anlaşılır olması için –f

                          parametresinin kullanılması yararlı olacaktır.

 

-x                     : Terminal işlemleri dışında kalan işlemlerin ekranda listelenmesini sağlar. Yani sadece bağlanılmış yada

                          üzerinde oturum açılmış sistemin üzerindeki işlemler ekranda listelenir.

                          Örnek: [root@charlie root]# ps –x

 

-a                     : Grup liderleri ve terminallerle ilişkisi olanlar dışında kalan tüm işlemler hakkında bilgi verir. Kısacası

  açılan oturumlarla beraber çalıştırılan işlemler ekranda görüntülenir.

 

-r                      : Sadece çalışan işlemleri ekranda listeler.

 

-T                     : Eğer bir kullanıcı olarak sisteme bağlanıldıysa, sadece kullanıcının işlemleri ekranda listelenir.

 

 

-p PID               : PID ‘i (process id) verilen işlemi ekranda görüntüler.

                          Örnek: [root@charlie root]# ps -p 679

 

 

-U kullanıcı        : Sadece verilen kullanıcının işlemleri ekranda listelenir.

                          Örnek : [root@charlie root]# ps -U backup  

                          Backup kullanıcısına ait işlemler ekranda listelenir.

 

-C                    : Sadece adı verilen komutla ilgili bilgi verir.

 

[root@charlie root]# ps -C ibserver

  PID TTY          TIME CMD

  533 ?        00:00:00 ibserver

 

-N                    : İstenen işlemin dışında kalan diğer işlemleri ekranda listeler.

 

 Örnekler:

            [root@charlie root]# ps -C ibserver –N

 

      -C parametresi ile sadece adı ibserver olan işlem veya işlemlerle ilgili bilgileri verir. –N parametresi kullanılırsa adı ibserver olmayan işlemler ekranda listelenir.

 

-G                    : Sadece belirlenen grubun kullanıcılarının işlemleri ekranda görüntülenir.

 

-f                      : İşlemlerle ilgili ayrıntılı bilgilerin ekranda gösterilmesini sağlar.

 

-u                     : Ekranda kullanıcıya ait işlemlerin daha rahat anlaşılabilecek başlıklarla listeler.

 

 

            ps komutunun en yaygın kullanımları aşağıda görülebilir.

 

[root@charlie root]# ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 08:27 ?        00:00:04 init

            Tüm işlemlerin ekranda gösterilmesini sağlar. Ekrana gelen listede UID kullanıcı, PID işlemin numarası, PPID işlemin bağlı olduğu işlem numarası, C cpu kullanımı, STIME işlemin ilk olarak çalıştığı zaman, TIME bu işlemin çalıştırılması için harcanan zaman, CMD işlemi çalıştıran başlatan komut görülebilir.

 

[root@charlie root]# ps -aux

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.0  1336  480 ?        S    08:27   0:04 init

 

            Tüm işlemlerin ekranda görüntülenmesini sağlar. USER kullanıcı, PID işlemin numarası, %CPU işlemin cpu kullanımı, %MEM işlemin hafıza kullanımı, RSS Programın bellekte kapladığı gerçek alan, STAT işlemin durumu, START işlemin ilk çalıştığı zaman, TIME işlemin çalıştırılması için harcanan zaman, COMMAND işlemin başlatan, çalıştıran komuttur.

 

kill

 

      kill [-9..] PID,PID,...

 

            Çalışan işlemleri durdurmak için sinyal gönderir. Bu komut çalışan bir işlemi durdurmak amacı ile kullanılır.

 

            ps  komutu ile çalışan işlemler görülebilir. Bu komutun çıktısında görülen işlemlerin PID nosu kill komutuyla kullanılır.

           

Komutun en yaygın kullanımları:

 

[root@charlie root]# kill -9 1431

            1431 numaralı işlem sonlandırılır. Bu işleme bağlı olarak çalışan diğer işlemler (PPID) de sonlanacaktır. Bu yüzden kill komutu dikkatli kullanılması gereken bir komuttur. Bu komutta kullanılan -9 SIGKILL mesajını temsil eder ve belirtilen işleme bu mesaj uygulanır.

 

            Birden fazla işlem numarası kill komutu ile verilebilir. Bu şekilde her işlem için bir komut vermek yerine, işlemler tek komutla sonlandırılabilir.

            Örnek:

[root@charlie root]# kill -9 1431 1432 1556

            kill komutu uygulandıktan sonra ps -ef komutuyla PID numarası verilen işlemin durumu, yada çalışıp çalışmadığı görülebilir.

 

[backup@charlie root]# kill -9 0

Yukarıdaki komut backup kullanıcısının tüm işlemlerini sonlandırır. Komutun kullanılırken bağlı olduğunuz kullanıcının yetkilerine dikkat etmeniz yararınıza olacaktır.

 

[backup@charlie root]# kill -9 -1

Kullanıcının sahip olduğu tüm işlemler sonlandırılır. Kullanıcı yazıcıdan çıktı alıyorsa bu işlemi de sonlandırılacaktır.

 

Ayrıca kill komutu ile

[backup@charlie root]# kill -term 532

PID numarası belirtilen işlemin toparlanıp sonlandırılmasını sağlar.

 

[backup@charlie root]# kill -kill 532

PID numarası belirtilen işlemin hemen sonlandırılmasını sağlar.

 

[backup@charlie root]# kill -hup 532

PID numarası belirtilen işlemin kendine ait yapılandırma dosyalarının yeniden okunması ve çalışma düzeninin

buna ayarlanması için kullanılır.

 

Bir root kullanıcı herhangi bir süreci kill komutuyla sonlandırabilir. Eğer root kullanıcı değilseniz sonlandırmak istenen işlemin kullanıcı tarafından başlatılmış olması gerekir. Yani sadece kullanıcıya, kendinize  ait işlemleri sonlandırabilirsiniz.

           

kill komutu ile işlemler için gönderilecek mesajların listesi aşağıda görülebilir.

[root@charlie root]# kill -l

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL

 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE

 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2

13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD

18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN

22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ

26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO

30) SIGPWR      31) SIGSYS      32) SIGRTMIN    33) SIGRTMIN+1

34) SIGRTMIN+2  35) SIGRTMIN+3  36) SIGRTMIN+4  37) SIGRTMIN+5

38) SIGRTMIN+6  39) SIGRTMIN+7  40) SIGRTMIN+8  41) SIGRTMIN+9

42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13

46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14

50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10

54) SIGRTMAX-9  55) SIGRTMAX-8  56) SIGRTMAX-7  57) SIGRTMAX-6

58) SIGRTMAX-5  59) SIGRTMAX-4  60) SIGRTMAX-3  61) SIGRTMAX-2

62) SIGRTMAX-1  63) SIGRTMAX

 

 

top

 

top (-dp)

           

            Çalışan işlemlerin durumunu gerçek zamanlı olarak gösterir. İşlemlerin yönetilmesi, CPU, bellek  kullanımlarına göre işlemlerin sıralanmasını sağlar.

 

top komutu seçenekleri ile uygulanabilir. Komut uygulandıktan sonra çalışan işlemlerin gözlemlenmesi sırasında da çalışan işlemler verilen komutlarla yönlendirilebilir, sıralanabilir. Top komutu ile yalnızca yürütülen işlemler değil aynı zamanda hafıza, cpu durumları ile de ilgili bilgiler görülebilir.

Komut tek başına parametre kullanılmaksızın uygulanabilir. Komutun çıktısı aşağıda görülebilir.

 

[root@charlie root]# top

 

4:08pm  up  7:40,  6 users,  load average: 0.00, 0.00, 0.00

42 processes: 40 sleeping, 1 running, 1 zombie, 0 stopped

CPU0 states:  0.0% user,  0.1% system,  0.0% nice, 99.4% idle

CPU1 states:  0.0% user,  0.0% system,  0.0% nice, 100.0% idle

Mem:  2064700K av, 1934744K used,  129956K free,       0K shrd,   40412K buff

Swap: 2101176K av,       0K used, 2101176K free                 1844952K cached

 

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND

12800 root      15   0  1036 1036   840 R     0.3  0.0   0:00 top

    1 root      15   0   480  480   428 S     0.0  0.0   0:04 init

    2 root      0K   0     0    0     0 SW    0.0  0.0   0:00 migration_CPU0

    3 root      0K   0     0    0     0 SW    0.0  0.0   0:00 migration_CPU1

    4 root      15   0     0    0     0 SW    0.0  0.0   0:00 keventd

    5 root      34  19     0    0     0 SWN   0.0  0.0   0:00 ksoftirqd_CPU0

    6 root      34  19     0    0     0 SWN   0.0  0.0   0:00 ksoftirqd_CPU1

    7 root      15   0     0    0     0 SW    0.0  0.0   0:00 kswapd

    8 root      25   0     0    0     0 SW    0.0  0.0   0:00 bdflush

    9 root      15   0     0    0     0 SW    0.0  0.0   0:02 kupdated

 

4:08pm                        : Sistemin saati

7 days up                  : Sistemin kapanmadan çalıştığı süre

6 users                      : Bağlı kullanıcı sayısı

load average: 0.00, 0.00, 0.00 sistemin yükü. İlk değer o anki yük, ikinci değer son iki dakikadaki ortalama yük, üçüncü değer son beş dakika için ortalama yükü ifade eder. (yükün 1.00 ile 1.80 arası normal değer olarak kabul edilir)

42 processes           : İşlem sayısı

40 sleeping, 1 running, 1 zombie, 0 stopped: Çalışan, durmuş işlerin sayısı

 

CPU0 states:  0.0% user,  0.1% system,  0.0% nice, 99.4% idle

CPU1 states:  0.0% user,  0.0% system,  0.0% nice, 100.0% idle

cpu yükünün durumu, kullanıcıların, sistemin cpu ‘nun ne kadar kaynağını kullandıkları,  cpu ‘nun kullanılmayan kaynaklarının oranı

 

Mem:  2064700K av, 1934744K used,  129956K free,       0K shrd,   40412K buff

Swap: 2101176K av,       0K used, 2101176K free                 1844952K cached

Toplam bellek miktarı, kullanılan bellek alanı, bellekteki boş alan miktarı, tampon belleğin kapasitesi, takas olarak disk üzerinde ayrılan alanın kapasitesi, bu alanın kullanılan ve boş olan alanı görülebilir.

 

      Bu bilgilerin altında yürütülen işlemler hakkında bilgiler görülür.

PID         :İşlemin numarası.

USER        :İşlemin sahibi kullanıcı.

PRI         :İşlemin öncelik durumunu.

NI          :İşlem öncelik değerini belirtir. Negatif sayıya sahip işlemlerin diğer işlemlere göre öncelik sırası yüksektir.

                         nice komutu ile işlemlerin öncelik ayarları yapılabilir.

SIZE        :İşlemin hafızada kullandığı/kullanacağı ayrılan ek alandır.

DSIZE              :

RSS         :İşlem tarafından fiziksel hafızada yani RAM bellekte kullanılan alanı gösterir.

SHARE       :İşlem paylaşılmış hafızada kullanılan alanı gösterir.

STAT        :İşlemin durumu gösterir.

                        S          : Uyuyan işlemler.

                        D          : Sürekli uyuyan işlemler.

                        R          : Çalışan işlemler.

                        Z          : Zombie işlemler. İşlem sonlanmış ama hafızadan silinmemiş durumda.

                        T          : Durmuş işlemler.

SWAP        : İşlemin takas alanında kapladığı / kullandığı alanı gösterir.

WCHAN       : /boot/psdatabase ve /boot/System.map dosyalarından varolan birinden uyuyan işlemlerin kernel

                          İsimlerini veya fonksiyonunu / durumunu gösterir.

%CPU        :İşlemin cpu kullanımı gösterir.

%MEM        :İşlemin hafızada kapladığı alan.

TIME        :İşlemin çalışmaya başladığı andan itibaren CPU ‘yu kullandığı toplam zamanı gösterir.

COMMAND     :İşlemi başlatan, çalıştıran komut.

 

Seçenekler:

 

-d [sayı]            : top komutu ile yürütülen işlemler standart olarak 4 saniyede bir tekrar okunur ve yinelenir. Bu parametre

                          ile bekleme süresi uzatılabilir veya kısaltılabilir.

 

[root@charlie root]# top –d 1

                        Komutu ile yürütülen işlemlerin ve diğer bilgilerin her 1 saniyede bir yenilenmesi sağlanır.

 

-p [PID]             : Sadece işlem numarası verilen numaraya eş olan işlem ekranda gösterilir.

 

[root@charlie root]# top –p 532

 

-q                     : ps komutunda olduğu gibi anlık olarak işlemleri ekranda göstermeyi sağlar. Ekranı tazelemez ve komut moduna geçer.

 

-s                     : Kullanılması muhtemel işlemler üzerinde doğrudan etki yapılabilecek komutların kullanılmasını engeller.

                          (K,r,N,A,P,M,T,s)

-i                      : Zombie ve boşta olan (idle) işlemleri görüntülemez. Ekranda çalışan işlemler görüntülenir.

 

-c                     : COMMAND sütununda komut isminin yerine komut satırını yani işlemi başlatan komutu görüntüler.

 

-C                    : Bu seçenek genel olarak birden fazla CPU kullanan (SMP symmetric multi processor) sunucularda

                          kullanılır. Sunucu 2 CPU ‘ya sahipse, CPU ‘ların toplam yükünü, kullanılmayan kaynaklarını görüntüler.

              Diyelim ki sistemimizde iki CPU var.  [root@charlie root]# top –C komutunu uyguladığımızda

                          CPU durumları aşağıdaki gibi görülecektir.

 

 

CPU states:  0.2% user,  6.8% system,  0.0% nice, 192.6% idle

CPU0 states:  0.1% user,  1.3% system,  0.0% nice, 98.0% idle

CPU1 states:  0.1% user,  5.0% system,  0.0% nice, 94.3% idle

 

 

-n (sayı)            : Verilen sayıda ekranı tazeler ve çıkar.

 

[root@charlie root]# top –n 8

            8 defa işlemlerin durumunu ekranda yeniler ve çıkar. Komut uygulandıktan sonra ekrana gelen ilk görüntü verilen

sayıya dahildir.

 

            Komut uygulandıktan sonra işlemlerin durumunun gözlemlendiği ekranda komut kullanılarak bir takım işlemler yapılabilir. İşlemler gözlemlenirken klavyeden küçük “h” harfine basılarak verilebilecek komutlar ve açıklamaları görülebilir. Klavyeden herhangi tuşa basılarak tekrar işlemlerin gözlemlendiği ekrana geçilebilir. “q” tuşuna basılarak programdan çıkılabilir.

 

Verilebilecek komutlar   :

 

Space                          : Ekranı tazelemek için kullanılır.

Boşluk tuşu

F                                 : Ekranda görüntülenen bilgilere ekleme yada çıkarma yapmak için kullanılır. F yada f tuşuna

F                                   basıldığında aşağıda görünen ekrana geçilir.

 

Current Field Order: AbcDgHIjklMnoTP|qrsuzyV{EFWX

Toggle fields with a-x, any other key to return:

 

* A: PID        = Process Id

  B: PPID       = Parent Process Id

  C: UID        = User Id

* D: USER       = User Name

* E: %CPU       = CPU Usage

* F: %MEM       = Memory Usage

  G: TTY        = Controlling tty

* H: PRI        = Priority

* I: NI         = Nice Value

  J: PAGEIN     = Page Fault Count

  K: TSIZE      = Code Size (kb)

  L: DSIZE      = Data+Stack Size (kb)

* M: SIZE       = Virtual Image Size (kb)

  N: TRS        = Resident Text Size (kb)

  O: SWAP       = Swapped kb

* P: SHARE      = Shared Pages (kb)

  Q: A          = Accessed Page count

  R: WP         = Write Protected Pages

  S: D          = Dirty Pages

* T: RSS        = Resident Set Size (kb)

  U: WCHAN      = Sleeping in Function

* V: STAT       = Process Status

* W: TIME       = CPU Time

* X: COMMAND    = Command

  Y: LC         = Last used CPU (expect this to change regularly)

  Z: FLAGS      = Task Flags (see linux/sched.h)

 

            Yıldız işareti bulunan ifadeler ekranda görüntülenen bilgiler, sütun başlıklarıdır. Ekran işlemler ile ilgili ek bir bilgi görüntülenmek istenirse, klavyeden ilgili açıklamaya, bilgiye karşılık gelen harfe basılır. Mesela UID bilgisinin de ekranda görüntülenmesi istenirse klavyeden C harfine basılır ve yıldız karakteri ile işaretlenir. Diyelim ki SHARE sütununu kaldırmak istenirse P harfine basılır ve yıldız işareti kaldırılır. Küçük yada büyük harf kullanılabilir. Klavyeden A-Z harfleri dışındaki herhangi bir tuşa basılarak işlemlerin görüntülendiği ekrana geçilebilir.

^L      Redraw the screen

oO                   : Ekranda görüntülenen PID, STAT gibi bilgilerin ekrandaki yerini değiştirmek için kullanılır. Yukarıda “f” yada ”F” tuşuna bastığımızda karşımıza gelen ekran “o” yada “O” tuşuna bastığımızda da gelir. Ekranda görünen her sütuna karşılık gelen bir harf olduğunu biliyoruz. İşte bu harfleri kullanarak, mesela STAT sütununu sola kaydırmak istersek klavyeden büyük harf olarak “U”, sağa kaydırmak için küçük harf “u”  ‘ya basılır. Ekranın üstünde yapılan işleme göre değişen sıralama Current Field Order: AbcDgHIjklMnoTP|qruszyV{EFWX ifadesinden gözlemlenebilir. Büyük harfler görünen, küçük harfler ise görüntülenmeyen sütunları, bilgileri ifade eder.

 

h                      : Ekrandaki listenin yazıcıdan çıkmasını sağlar.

H                     : Toggle dispplay of threads

S                     : Toggle cumulative mode

i                       : Sadece çalışan işlemleri gösterir, tekrar basılırsa yine diğer işlemleri ekranda  geri döner.

I                       : Toggle between Irix and Solaris views (SMP-only)

c                      : COMMAND sütununda işlemi çalıştıran komutun adını gösterir, tekrar basılırsa komut satırında işlem

                          için verilen komutu gösterir.

l                       : Sistemi işlem yükünün gösterilip gösterilmemsi için kullanılır.

m                     : Bellek bilgilerinin ekranda görüntülenmesini veya görüntülenmemesini sağlar.

T                      : Özet bilgilerin ekranda görüntülenmesini veya görüntülenmemesini sağlar.

k                      : İşlemleri sonlandırmak için kullanılır. “k” tuşuna basıldığında sonlandırılacak işlemin PID numarası

                          istenir. Örneğin sonlandıracağımız PID numarası 16884 olsun.

  $<5>$<3>$<2>$<2>PID to kill: $<2> 16884

                         PID numarası yazıldıktan sonra Enter tuşuna basılır. İlgili işleme gönderilecek sinyal numarası sorulur.

                         kill komutundan hatırlanacağı üzere istenen sinyal numarası yazılabilir. İşlemi sonlandırmak için 9

                         sayısını yazıp Enter tuşuna basıyoruz ve PID numarasını verdiğimiz işlemi sonlandırıyoruz. Yaptığımız

                         işlemin sonucunu ekrandan hemen gözlemleyebiliriz.

                          $<5>$<3>$<2>$<2>Kill PID 16884 with signal [15]: $<2> 9

 

r                       : Renice a task

N                     : İşlemleri PID numaralarına göre ekranda sıralar.

A                     : İşlemleri çalışmaya başladıkları zamanın uzunluğuna göre, eskiden yeniye doğru sıralar.

P                     : İşlemleri CPU kullanımlarına göre en çok CPU 2yu kullanan işlemden en az olana doğru sıralar.

M                     : İşlemleri hafızayı kullanma oranlarına göre büyükten küçüğe doğru sıralar.

T                      : Sort by time / cumulative time

u                      : Sadece belirtilen kullanıcının işlemlerini ekranda görüntüler.

n or #               : Ekranda görüntülenecek işlem sayısını vermeyi sağlar. “n” tuşuna basıldığı zaman ekranda gösterilecek

                          işlem sayısı yazılır. Tekrar tüm işlemlerin gösterilmesi için “n” tuşuna basılır ve 0 sayısı girilir.

s                      : Ekrandaki işlemlerin durumunun tazelenme süresini saniye olarak belirlemeyi sağlar.

W                    : Yapılan ayarlamalarının komutun her çalıştığında geçerli olması için kullanıcının kendi dizininde .toprc

                          adlı dosyaya yazılır. Eğer top komutunun standart ayarlarına dönmek için dosya silinebilir.

q                      : Çıkış için kullanılır.

 

 

alias

 

            alias kisaltma="komut dizisi"

 

            Komutlar için bir kısa bir takma isim belirlenmesini sağlar. Bu şekilde sık verilen komutlar bu yolla kısa komutlarla çalıştırılabilir. Kullanıcıların oluşturduğu bu tanımlamalar sadece kendi oturumlarında geçerlidir.

 

      [root@charlie root]# alias ls="ls -la"

            ls komutunun –l ve –a seçeneklerini yazmadan komutun bu seçeneklerle çalışmasını sağlar.

 

            Komut tek başına kullanılırsa tanımlı takma isimleri ekranda listeler.

[root@charlie root]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls -la'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'   

Kullanıcı oturumunu kapatırsa oluşturulan bu takma isimler de silinir. Kullanıcının oturum açtığında bu tanımları aktif olması için kullanıcının kendi dizinindeki .bash_profile dosyasına yada yine kendi dizinindeki .bashrc dosyasına bu tanımlar eklenebilir.

            alias komutu ile tanımlanan takma isimler unalias komutu ile silinebilir.

            Örnek:

      [root@charlie root]# unalias ls

 

chkconfig

 

            Sistem servislerini açar veya kapatır.

 

            Kullanılan Linux dağıtımına göre bu komutun yardımına bakmak iyi olacaktır.

Redhat Linux:

            Sistem açılış süreçleri /etc/rc.d dizini altında bulunan rc0.d, rc1.d, rc2.d, rc3.d rc4.d, rc5.d dizinleri içinde bulunan linkler yada script dosyaları idare edilir. Her çalışma seviyesi için bir dizin bulunur. Bu dizinleri kullanarak sistem süreçleri çalışma düzeylerinde kontrol edilebilir. Bu dizinlerin için sembolik linklet bulunur. Bu şekilde ilgili servisi yada program çalıştırılır.

 

 

 

Bu dizinlerin içinde adı S ile başlayan linkler çalıştırılacak, K ile başlayan linkler ise kapatılan servisleri programları gösterir. S ve K harflerinden sonra gelen sayı ilgili servisin, programın hangi sırada işlem göreceğini ifade eder. Linklerin gösterdiği dosyalara bakarak hangi programın yada dosyanın çalıştırıldığı görülebilir. Yeni bir seviyeye geçildiğinde önce K, sonra da S programları çalıştırılır. Önce çalıştırılmak istenen progralamalara o seviye içinde daha küçük rakam atanır. Bu şekilde servislerin yada programların çalışma sıraları ayarlanmış olur. Sistem yöneticisi isterse bu dizinlerin içine uygun formatta bir komut dosyası ekleyerek açılışta çalışmasını sağlayabilir. /etc/rc.d dizini altında bulunan rc.local (redhat), (boot.local) suse dosyasına sistem açılışından sonra uygulanacak komutlar yada komut dosyaları eklenebilir.

 

Bu dizinlerin içinde uygun formatla çalıştırılacak servisler ele düzenlenebilir. Ancak bu şekilde açılış süreçlerini kontrol etmek zahmetli olabilir. Sistem süreçleri ntsysv programı ile Redhat, yast programı ile de Suse linux da kontrol edilebilir. Ortak olarak Linux sürümlerinde chkconfig programı sistem servislerini kontol etmek için kullanılabilir.

init.d seviyeleri:

0- halt                              : Sistemin kapanma durumu.

1- single                           : Sistemin tek kullanıcı durumda açılması.

2- multiuser without NFS   : Network ortamı olmayan durumlarda yada NFS servisinin çalışmasının istenmediği

                                         durumda kullanılan çalışma seviyesidir.

3- full multiuser  mode       : Sistemin çok kullanıcılı olarak metin tabanlı açılması.           

4- unused                         : Kullanılmıyor.

5- X11                              : Sistemin çok kullanıcılı olarak grafik tabanlı açılması.

6- reboot                          : Sistemin reboot yada shutdown komutu ile kapanıp tekrar açılması drumunda kullanılan init.d

                                         seviyesi.

Sistemin açılış ayarları /etc/inittab dosyasından yapılabilir. İnittab dosyası açılışta kernel tarafından çalıştırılır (/sbin/init).

Ayarlar /etc/inittab:

 

Sistemin init seviyesi buraki id numarasının değiştirilmesi ile ayarlanabilir. Eğer init seviyesi belirlenmezse sistem açılışta init seviyesini sorar.

# The default runlevel is defined here

id:5:initdefault:

Açılışta devreye giren ilk program.

si:

 

Klavyeden Ctrl+Alt+Del tuşlarının kullanımı ile ilgili ayar. Bu ayarı geçersiz kılmak için satırın başına “#” işareti konulur.

# Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

 

Redhat Linux:

            --list parametresi ile servislerin init düzetlerindeki durumu görüleblir.

[root@alpay root]# chkconfig --list

cups            0:off   1:off   2:on    3:off   4:on    5:on    6:off

nfslock         0:off   1:off   2:off   3:off   4:on    5:on    6:off

iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

xinetd based services:

cups-lpd:   off

tftp:       on

 

            Yukarıdaki ekran çıktısında bulunduğunuz init seviyesine göre hangi servisin durumunu görebilirsiniz.

            Herhangi bir init seviyesinde çalışmak üzere ayarlanmış servisleri görmak için aşağıdaki komut uygulanabilir.

[root@alpay root]# chkconfig --list | grep :on

 

            3. seviyede çalışması için ayarlanan servislerin listesi aşağıdaki komutla alınabilir.

[root@alpay root]# chkconfig --list | grep 3:on

           

Aşağıdaki komut smb servisinin 3. ve 5. init seviyesinde çalışması için ayarlanmasını sağlar.

[root@alpay root]# chkconfig --level 35 smb on

 

            smb servisinin init düzeylerindeki durumunu görmek için aşağıdaki komut kullanılabilir.

[root@alpay root]# chkconfig --list | grep smb

 

Suse Linux:

is8:~ # chkconfig

isdn        on

joystick    on

kbd         on

xinetd based services:

        chargen:            off

        chargen-udp:        off

        cups-lpd:           off

        cvs:                on

 

            Servislerin tüm init seviyelerindeki durumunu görmel için –l parametresi kulanılır.

is8:~ # chkconfig -l

isdn                      0:off  1:off  2:off  3:off  4:off  5:off  6:off

joystick                  0:off  1:off  2:off  3:off  4:off  5:off  6:off

kbd                       0:off  1:on   2:on   3:on   4:off  5:on   6:off

xinetd based services:

        chargen:            off

        chargen-udp:        off

        cups-lpd:           off

        cvs:                on

           

Aşağıdaki komut kullanılarak sadece açık olan servislerin listesi alınabilir.

is8:~ # chkconfig | grep on

 

            İstenilen servisin açılışta çalışmasını engellemek için servisin adı yazılır ve off ifadesi kullanılır.

is8:~ # chkconfig vnc off

 

            Tek bir komutla birden fazla servis adı yazılıp bu servisler üzerinde işlem yapılabilir.

is8:~ # chkconfig syslog smb on

is8:~ # chkconfig apache on xntpd off

 

            Bir servisin bulunulan init seviyesindeki durumunu görmek için komuttan sonra servis adının yazılması yeterlidir. Ancak servisin on yada off olarak gösterimesi o an servisin çalışma durmunu gösteren bir bilgi değildir. Sadece normal açılış işleminde içinde bulunulan init seviyesinde bu servisin açık olmasının istendiği anlamına gelir.

is8:~ # chkconfig smb

smb  on

 

is8:~ # chkconfig –t smb apache2

smb     on

apache2 off

            İstenrise servisin çalışma seviyeleri verilebilir. Aşağıdaki ilk komutta apache sadece 5. seviyede, ikinci komutta 3. ve 5. seviyede ilgili servis çalıştırılması sağlanır. Servis 3 çalışacak şekilde ayarlanmışken, servisin 5. seviyede de çalışması isteniyorsa 3. ve 5. seviye mutlaka belirtilmelidir.

is8:~ # chkconfig apache 5

is8:~ # chkconfig apache 35

 

            Sistem servislerinin durumları kayıtedilebir. Aşağıdaki komutla servislerin durumu 23042004_servisler.save dosyasına kayıt edilir.

is8:~ # chkconfig > 23082004_servisler.save

           

Daha önceden servislerin durumlarının kayıt edildiği dosya kullanılarak sistem servisleri eski haline getirilebilir.

is8:~ # chkconfig -s < 23082004_servisler.save

 

 

Ortak açıklamalar:

 

Bulunılan init seviyesini öğrenmek için runlevel komutu uygulanır. Komut çıktısında N harfi önceki init seviyesi gösterir. Bunun anlamı gerekli durumlarda sistem açıldıktan sonra init seviyesi sistem yöneticisi tarafından init komutu ile değiştirilebilir. Bu tür durumlarda N harfi yerinde önceki init seviyesi gösterilir. Eğer N harfi görülürse init seviyesinde değşiklik yapılmadığı anlaşılır.

is8:~ # runlevel

N  5

Diyelim ki N harfi yerinde 2,3,5 rakamları görülürse init seviyesinin değiştirildiği ve önceki init seviyesinin hangisi olduğu görülebilir.

is8:~ # runlevel

3  5

Sistem yöneticisi init seviyesini değiştirmek için init komutuyla geçmek istediği init seviyesini belirtir. runlevel komutuyla yapılan işlem kontrol edilebilir.

is8:~ # init 5

 

            3. seviyeden 5. seviyeye geçildiğinde 3. seviyede çalışıp 5. seviyede çalışmayan servisler kapanır. 3. seviyede çalışmayıp 5. seviyede çalışan servisleri çalıştırmak için u yada U parametresi kullanılır.

is8:~ # init U

           

/etc/inittab dosyası içinde yapılan ayarların sistemi kapatıp açmadan etkin olması için init komutuyla Q parametresi kullanılır.

is8:~ # init Q

 

            Tek kullanıcı moduna geçmek için init komutuyla beraber S parametresi kulanılır.

is8:~ # init S

 

crontab

 

            Görevlerin belirlenen tarihlerde herbir kullanıcı için devamlı olarak yapılması için kullanıcıların ilglil dosyalarını oluşturmalarını ve düzenlemelerininı sağlar. Görevlerin belirli zamanlarda yapılabilmesi için cron servisinin çalışması gereklidir. chkconfig komutu, yast (suse), setup yada ntsysvs (redhat) komutları, araçları kullanılabilir.

            Kullanıcılara ve root ‘a ait görev tanımlamaları genel olarak (redhat 9, suse 9) /var/spool/cron/tabs dizinleri altında, dosyanın ait olduğu kullanıcı adıyla bulunabilir. Eğer sistemde bir yedek alma işlemi uygulanacaksa yada sistemin taşınması gibi durumlarda bu dizindeki kullanıcı adıyla bulunan dosyaların yedeklenmesi iyi olacaktır. Her kullanıcı zamanladığı görevleri görebilir ve değiştirebilir. Zamanlanmış görevleri görmek için crontab –l komutu uygulanır.

Örnek:

is6:~ # crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.7139 installed on Mon Aug 16 11:24:31 2004)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

#40 7 * * * cp /home/*.gdb /backup/740

0 * * * * /usr/sbin/netdate 80.251.40.15

40 7 * * * /root/backup -d /backup/740 >/backup/backup.log 2>&1 

 

            Zamanlanmış görevlerin tümünü silmek için –r parametresi kullanılır.

is6:~ # crontab -r

 

            Bazı kulanıcıların zamanlanmış görevleri ataması istenmeyebilir. Bu durumda /etc/cron.deny dosyası içine ilgili kullanıcıların adı yazılabilir. Burada eğer /etc dizini içinde cron.allow dosyası yaratılmazsa sadece cron.deny dosyası içindeki kullanıcılara izin verilmez. Eğer /etc dizini içinde cron.allow dosyası yaratılırsa ve bu dosyanın içine ilgili kullanıcı adları yazılmazsa, ne cron.allow dosyası içine ne de cron.deny dosyası içine yazılmayan kullanıcılar zamanlanmış görev atayamazlar. Kulanıcı zamanlanmış görev atamak istediğinde bu durumu belirten mesaj ekranda görüntülenir.

Örnek:

[kubilay@alpay kubilay]$ crontab -e

You (kubilay) are not allowed to use this program (crontab)

See crontab(1) for more information

[kubilay@alpay kubilay]$

 

            Zamanlanmış bir görev eklemek için crontab –e komutu uygulanır.          

is6:~ # crontab -e

 

#” işareti açıklama satırlarının yada çalışması istenmeyen ama silinmesi de istenmeyen satırların başına komur. Bu şekilde bu satırlar işleme alınmaz.

            Dosya içeriğinde her satır zamanlanmış bir görevi ifade eder. Her satır 6 bölümden oluşur. İlk 5 bölüm komutun uygulanacağı zamanı, 6. bölümde komut ve ilgili parametlerin yazıldığı bölümdür.

 

*           *           *           *           *           [ Komut ]

Dakika              Saat                 Ayın günü         Ay                    Haftanın günü

 

            Komutun düzenli olarak uygulanacağı zamanın verildiği ilk bölüm dakikayı, ikinci bölüm saati, üçüncü bölüm ayın gününü, dördüncü bölüm ayı ve beşinci bölüm haftanın gününü belirler.

 

Dakika              : 0-59

Saat                 : 0-23

Ayın günü         : 1-31

Ay                    : 1-12 Aylar için, ayın ilk üç harfi kullanılabilir. Büyük küçük harf ayrımına dikkat edilmez.

Haftanın günü    : 0-7 günlerin sayısıdır. 0 ve 7 Sunday yani Pazar gününü ifade eder. Günlerin ilk üç harfi de kullanılabilir.

                          Büyük küçük harf ayrımına dikkat edilmez.

                          Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday.   

 

            Sayılar direk yazılır. Eğer arada “-“ kullanılırsa belirtilen sayılar dahil 2 sayı arasında kalan sayılar ifade edilmiş olur. Örneğin 8-11 ifadesi 8,9,10,11 sayılarını ifade eder.

           

Sayılar arasına “,”koyularak belirli sayılara verilebilir. Örneğin 5,9,13 gibi.

 

            Virgül kullanılarak daha esnek zamanlar belirlenebilr. Örneğin 5-9,15-20 gibi. Bu ifade 5,6,7,8,9,15,16,17,18,19,20 sayılarını ifade eder.

            Bölü işareti ile belirli zaman aralıkları da belirlenebilir. Örneğin 23/2 ifadesi 2,4,6,8,10,12,14,16,18,20,22 sayılarını işaret eder. 7-17/3 ifadesi 10,13,16 sayılarını ifade eder. Ayrıca */2 ifadesi kullanıldığı yere göre her 2 dakika,saat, ayın günü, ay ve haftanın günü anlamına gelecektir.

 

Örnekler:

 

            Her gece yarısından 5 dakika sonra /root/ dizini içindeki backup komutu çalıştırılacaktır. Komutun çalışması sonucu ekrana çıkacak olan standart çıktılar ve hata mesajları /home/tmp dizinindeki out dosyasına yazılacaktır.

5 0 * * *       /home/bin/daily.job >> /home/tmp/out 2>&1

40 7 * * *     /root/backup -d /backup/740 >/backup/740/backup.log 2>&1

 

            Her ayın birinci günü saat 14:15 ‘te ilgili komut çalıştırılacaktır.

15 14 1 * *     $HOME/bin/monthly

 

            Hafta içi hergün saat 22:00 Joe kullanıcısına ilgili başlığa ve mesaja sahip mesaj gönderilecektir.

0 22 * * 1-5   mail -s "It's 10pm" joe%Joe,%%Where are your kids?%

 

            Hergün çift saatlerin 23. dakikasında ilgili mesaj ekranda görüntülenecektir.

23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"

 

            Her Pazar sabahı saat 04.05 /home dizinin içinde uzantısı .txt olan dosyalar /yedek dizinine kopyalanacaktır.

5 4 * * sun     cp /home/data/*.txt /yedek

 

            Her saat başı sistem saati belirtilen Time Server ‘a bağlanıp sistem saatinini düzenleyecektir.

0 * * * * /usr/sbin/netdate 80.251.40.15

           

Her Mayıs ayının 19. günü saat 18:45 ‘te verilen Komut çalıştırılır. Komutun satandart çıktıları ve hata mesajları backup.log dosyasına yazılır.

45 18 19 5 * /root/backup > /root/backup.log 2>&1

 

at – atq – atrm - batch

 

            Sadece, belirtlen zamanda istenen işlemlerin bir defa yapılması için at komutu kullanılır. İlgili servisi

is8:~ # /etc/init.d/atd start komutu ile çalıştırılabilir. Eğer bir görev için verilen zaman içinde bulunulan zamandan eski ise, sonraki gün için ilgili komut uygulanır.

 

at         : Belirtilen zamanda bir komutun uygulanmasını sağlar.

atq       : Uygulanmak üzere sırada bekleyen görevleri listeler.

atrm     : Uygulanmak üzere belirlenmiş görevleri silmek için kullanılır.

 

            Aşağıdaki komutla içinde bulunduğumuz gün için saat 23:00 ‘da /root dizinindeki backup komutunun çalıştırılmasını sağlaayabiliriz. at komutundan sonra görevin çalıştırılacağı zaman verilir ve Enter tuşuna basılır. Komut satırında  “at>“ ifadesi görülünce uygulanması istenen komutlar her satıra teker teker yazılır. Aşağıdaki satıra geçmek için enter tuşuna basılır. Ctrl +D tuşuna basılır ve işlem bitirilir. <EOT> Ctrl + D tuşuna basıldığında ekranda <EOT> ifadesi çikar. Bu şekilde işlemlemin bitirilmiş olduğu anlaşılır.

 

[root@alpay root]# at 23:00

at> /root/backup

at> <EOT>

job 12 at 2004-09-06 23:00

[root@alpay root]#

 

Örnekler:

[root@alpay root]# at 4pm + 3 days

            Üç gün sonra öğleden sonra saat 4 ‘te belirtilen işlemleri yapılmasını sağlar.

 

[root@alpay root]# at 10am Jul 31

            31 Haziran sabah saat 10’da belirtilen işlemleri yapılmasını sağlar.

 

[root@alpay root]# at 1am tomorrow

            Bir sonraki gün (yarın) gece saat 1’de belirtilen işlemleri yapılmasını sağlar.

 

is8:~ # at now + 20 minute

            Yirmi dakika sonra belirtilen işlemleri yapılmasını sağlar.

 

is8:~ # at now + 24 hours

            Yirmi dört saat sonra belirtilen işlemleri yapılmasını sağlar.

 

            at komutyla verilebilecek zamanlar kısa ifadelerle belirtilebilir.

is8:~ # at teatime      : saat 16:00 anlamına gelir.

is8:~ # at midnight     : 00:00 gece yarısı anlamına gelir.

is8:~ # at noon         : Öğleyin saat 12:00 anlamına gelir.

is8:~ # at 09102005     :Dokuzuncu ayın onunda 2005 yılında geçerli sitem saatinde belirtilen işlemleri yapılmasını

                                                  sağlar.

is8:~ # at 10/10/2005   : Onuncu ayın onunda 2005 yılında geçerli sitem saatinde belirtilen işlemleri yapılmasını

                                                  sağlar.

is8:~ # at 12.01.2005   : Onikinci ayın birinde 2005 yılında geçerli sistem saatinde belirtilen işlemleri yapılmasını

                                                  sağlar.

is8:~ # at 10:00 Sunday : Bulunulan günden itibaren bir hafta içinde verilen günde belirtilen işlemleri yapılmasını

   sağlar.

is8:~ # at 23:00 01/08/2005  : Birinci ayın sekizinde 2005 yılında saat 23:00 ‘te belirtilen işlemleri yapılmasını

     sağlar.

 

 

-V         : at programının versiyon bilgilerini ekranda görüntüler.

            Aşağıdaki komutla 1 Ocak 2005 saat 00:01 ‘e sistem saatinin belirtilen zaman sunucudan doğrulanması için gerekli komutu yazıyoruz.

[root@alpay root]# at -V 00:01 01 Jan 2005

at version 3.1.8

Bug reports to: ig25@rz.uni-karlsruhe.de (Thomas Koenig)

at> netdate 80.251.40.15

at> <EOT>

job 14 at 2005-01-01 00:01

[root@alpay root]#

 

at komutu ile belirlenen görevler kullanılan linux sürümüne göre /var/spool dizini altında tutulur (redhat fedora /var/spool/at/, suse 9 /var/spool/atjobs). Bu dosyaların içeriklerine cat komutu kullanılarak bakılabilir. Bu şekilde uygulanacak komutların neler olduğu anlaşılabilir.

 

-m        : Görev tamamlandığında kullanıcıya mail atmak için kullanılır.

 

-f          : Komutlların bir dosya içinden okunarak çalıştırılmasını sağlar.

is8:~ # at  -f  komut 15:08

 

-l          : Uygulanmak üzere sırada bekleyen görevleri ekranda listeler. atq komutuyla aynı işlemi yapar. Ekrana gelen listede görevin numarası, uygulanacağı tarih, saat, göre eğer at komutuyla tayin edildiyse a, batch komutu ile tayin edildiyse b, = ise şu an bu görevin işleme alındığı ve işlemin sürdüğü anlamına gelir.

is8:/var/spool/atjobs # at -l

25      2004-09-06 20:00 a root

18      2004-09-06 23:00 a root

22      2004-09-07 13:32 a root

19      2004-09-06 23:00 a root

20      2004-09-06 23:00 b root

18      2004-09-06 15:42 = root

 

-d         : Uygulanmak üzere sırada bekleyen görevleri silmek için kullanılır. atrm komutuyla aynı işlemi yapar.

-r          : Uygulanmak üzere sırada bekleyen görevleri silmek için kullanılır. atrm komutuyla aynı işlemi yapar.

 

            atq yada at –l komutlarıyla uygulanmak üzere tanımlanmış görevler ve numaraları görülebilir. Bu görev numaraları belirtilerek istenen görev silinebilir. Numaralar arasında boşluk kullanılarak birden fazla görevin silinmesi sağlanabilir.

Örnek:

is8:~ # at  -r 25

is8:~ # at  -r 20 18

is8:~ # atrm 25

is8:~ # atrm 20 18

 

            at –l komutuyla yada atq komutuyla tanımlanmış görevlerin listesi alınabilir.

Örnek:

is8:~ # atq

14      2004-09-04 15:08 a root

 

            /etc/at.allow dosyası eğer oluşturulmuşsa bu dosyanın içindeki her bir satıra yazılmış kullanıcılar at ile görev zamanlayabilir. Eğer at.allow dosyası yoksa at.deny dosyası kontrol edilir. Bu yüzden sadece at.allow yada at.deny dosyalarından birini kullanmak mantıklı olabilir.

 

batch               : Sistemin yük durmuna göre belirlenen görevin verilen zamanda çalıştırılmasını sağlar. Geçerli olarak sistem yükünün değeri 0.8 olarak belirlenmiştir. İstenirse bu değer “atrun –l (değer)”  komutu kullanılarak değiştirilebilir.

            Aşağıda komutun örnek kullanımı görülebilir. –t parametresinden sonra yıl, ay, gun ve saat ayırıcı bir işaret kullanmadan yazılır.

is8:~ # batch -t 0410201643

warning: commands will be executed using /bin/sh

at> /root/yedekle

at> <EOT>

job 74 at 2004-10-20 16:43

            Aşağıdaki komutla bir defa çalışması için batch komutu ile ayarlanan görevlerin sistemin bir dakika içindeki  ortalama yükünün 0.50 ‘nin altında olması durumunda belirlenen görevlerin çalıştırılmasını sağlar.

is8:~ # atrun -l 0.50

 

sleep

 

            sleep sayı(smhd)

           

            Belirtilen süre kadar bekler. Bu komut genel olarak linux veya unix sistemlerinde yazılan scriptlerin ekran çıktılarının belli bir süre ekranda kalması yada belli bir süre işlemlerin beklemesini sağlamak için kullanılır. Ayrıca komut satıruında bu komut uygulanarak kolayca bir görev 10 saniye,  5 dakika, 1 saat, 2 gün gibi bir süre geçtikten sonra kendiliğinden çalıştırılabilir.

            Komutun scriptler içinde kullanımı aşağıda görülebilir. Aşağıdaki komutla işlemler 20 saniye için bekler ve bu süre geçtüğinde bir alttaki satırdan komutlar uygulanmaya devam edilir.

 

while true; do

            clear

            echo “Sistem yuku :”

            echo “    “ `uptime`

sleep 20

done

 

            Komutun komut satırında kullanımında önce sleep komutu ve istenilen süre verilir sonra “;” ayracı ile diğer komut yazılır ve Enter tuşuna basılır. Bu şekilde sleep komutu verilen süre sonunda işlemini bitirir ve “;” işaretinden sonraki komut uygulanmaya başlanır. Eğer verilen sayı için dakika, saat gibi bir süre belirtilmezse geçerli olarak verilen sayı saniye olarak kabul edilir ve verilen sayı kadar saniye beklenir.

Örnek:

charlie:~ # sleep 10m ; /root/backup –d /backup/930 

 

s (seconds)       : saniye

m (minutes)      : dakika

h (hours)           : saat

d (days)            : gün

 

ln

 

            ln –s [dosya dizin adı] [lik adı]

 

            Dosya ve dizinlere link yada kısayol oluştumayı sağlar. Örnek olarak sürekli çalışılan dizin içerisinde başka dizinlerdeki dosya yada klasörlere ihtiyaç duyulduğunda, bu dosya ve dizinlerin bulundukları yerlere gitmeden,  onlara linklerin yardımıyla ulaşılabilir.

 

            Link dosyaları iki çeşit oluşturulur. Katı (hard) ve Simgesel (soft) link olarak oluşturulur.

 

Katı linkler kaynak dosyanın birebir kopyasını çıkarır. Kaynak yada hedef dosyaların herhangi birisinde yapılan değişiklik diğer dosyaya yansır. Kaynak dosya silinse bile oluşturulan link dosyası kullanılabilir. Ayrıca katı linkler farklı dosya sistemleri arasında oluşturulamaz. Bunu anlamı eğer bir dizine, üzerinde belli bir kapasiye sahip bir alan ayrılmışsa bu dizin  içindeki dosyalara diğer dizinlerden katı linkler oluşturulamaz. Eğer bir dizinin kendine ait bir disk alanı yoksa, kendisi ile aynı disk alanı içinde olan dosya sistemlerinden katı linkler oluşturulabilir.

Sembolik linklerde oluşturulan link dosyası kaynak dosyaya işaret eder. Kaynak dosya silinirse link dosyasının bir işlevi kalmaz. Sembolik linkler farklı dosya sistemleri yada dizinler arasında oluşturulabilir. Sembolik link oluşturmak için “-s” parametresi kullanılır.

Bu açıklamaları daha anlaşılır yapmak için aşağıdaki df komutunun çıktısına bakalım. Aşağıdaki bilgilerden /, /alpay ve /boot dosya sistemlerinin, dizinlerinin disk üzerinde kendilerine ayrılmış alanın olduğu görülüyor. Bu durumda bu üç dizin arasında katı link oluşturulamaz. Ancak sembolik link oluşturulabilir. Bu üç dosya sistemi içindeki dizinler arasında katı linkler oluşturulabilir.

 

[root@alpay root]# df -h

Filesystem                   Size  Used Avail Use% Mounted on

/dev/sda5                    5.5G  3.3G  2.0G  63% /

/dev/mapper/vg0-LogVol00     1.0G   33M  940M   4% /alpay

/dev/sda1                    190M  5.9M  175M   4% /boot

none                         63M     0   63M    0% /dev/shm

 

Örnek: Aşağıdaki komutla /home/kubilay dizini içindeki sistem_durumu dosyasına bulunulan yerde sistem adında sembolik bir link, kısayol oluşturur. Bulunulan dizinde bu dosyanın üzerinde olduğu yere gitmeden işlem yapılabilir.

is8:~ # ln -s /home/kubilay/sistem_durumu    sistem

 

            Aynı şekilde dizinler için de senbolik link dosyaları oluşturulabilir. Aşağıdaki komutla /tmp dizinine bulunulan yerde tmp adında bir link oluşturulur.

is8:~ # ln -s  /tmp tmp

 

            Oluşturulan dosyaların özelliklerine baktığımızda, izinlerin olduğu bölümde “l” harfiyle dosyanın bir link dosyası olduğu belirtilir. İlgili dosyaların işaret ettikleri dosya yada dizinler, link dosyasının adından sonra “->” işareti ile gösterilir.

/tmp diziniyle ilgili komutlar uygulandığında, /tmp dizinine bulunulan dizinin alt diziniymiş gibi davranılır.

 

lrwxrwxrwx  1 root root 15 Oct 18 15:10 a -> /home/kubilay/a

lrwxrwxrwx  1 root root  4 Oct 18 15:15 tmp -> /tmp

 

            Link dosyaları turkuaz renkle gösterilir. Link dosyalarının işaret ettiği asıl dosyanın silinmesi yada adının değiştirilmesi gibi durumlarda link dosyalarının adı kırmızı renkle gösterilir.

 

 

netstat

 

ifconfig

 

route

 

smbstatus

 

date

 

date [seçenekler] [+fromat]

Sistem tarihini gösterir ve ayarlamayı sağlar.

 

Tek başına komutu uyguladığımızda sistemin tarih ve saat bilgisini ekranda görebiliriz.

 

[root@sharlo root]# date

Thu Feb 26 14:53:23 EET 2004

-s         : Tarihi ve saati ayarlamak için kullanılır.

              Aşağıdaki örnekte önce sistem saatini date komuru ile öğreniyorua. Sistem tarihini düzeltmek için –s

  parametresi ve çift tırnak içinde date komutu ile ekranda görünen düzende tarihi yazıyoruz.

 

is8:~ # date

Sun Aug  1 10:13:16 EEST 2004

is8:~ # date -s "Mon Aug 02 10:13:00 2004"

Mon Aug  2 10:13:00 EEST 2004

 

%a    : Kısa olarak günü gösterir. Sun..Sat gibi.

%A    : Gün uzun olarak ekranda gösterilir. Sunday..Saturday gibi.

%b    : Ay kısa olarak yazılır. Jan..Dec gibi.

%B    : Ay uzun olarak ekranda gösterilir. January..December.

%c     localeâs date and time (Sat Nov 04 12:02:33 EST 1989)

       %C     century  (year  divided  by  100  and  truncated  to an integer)

              [00-99]

       %d     day of month (01..31)

       %D     date (mm/dd/yy)

       %e     day of month, blank padded ( 1..31)

       %F     same as %Y-%m-%d

       %g     the 2-digit year corresponding to the %V week number

       %G     the 4-digit year corresponding to the %V week number

       %h     same as %b

       %H     hour (00..23)

       %I     hour (01..12)

       %j     day of year (001..366)

       %k     hour ( 0..23)

       %l     hour ( 1..12)

       %m     month (01..12)

       %M     minute (00..59)

       %n     a newline

       %N     nanoseconds (000000000..999999999)

       %p     localeâs upper case AM or PM indicator (blank in many locales)

       %P     localeâs lower case am or pm indicator (blank in many locales)

       %r     time, 12-hour (hh:mm:ss [AP]M)

       %R     time, 24-hour (hh:mm)

       %s     seconds since â00:00:00 1970-01-01 UTCâ (a GNU extension)

       %S     second (00..60); the 60 is necessary to accommodate a leap  sec-

             ond

       %t     a horizontal tab

       %T     time, 24-hour (hh:mm:ss)

       %u     day of week (1..7);  1 represents Monday

       %U     week number of year with Sunday as first day of week (00..53)

       %V     week number of year with Monday as first day of week (01..53)

       %w     day of week (0..6);  0 represents Sunday

       %W     week number of year with Monday as first day of week (00..53)

       %x     localeâs date representation (mm/dd/yy)

       %X     localeâs time representation (%H:%M:%S)

       %y     last two digits of year (00..99)

       %Y     year (1970...)

       %z     RFC-822 style numeric timezone (-0500) (a nonstandard extension)

       %Z     time zone (e.g., EDT), or nothing if  no  time  zone  is  deter-

             minable

       By  default, date pads numeric fields with zeroes.  GNU date recognizes

       %r     time, 12-hour (hh:mm:ss [AP]M)

       %R     time, 24-hour (hh:mm)

       %s     seconds since â00:00:00 1970-01-01 UTCâ (a GNU extension)

       %S     second (00..60); the 60 is necessary to accommodate a leap  sec-

             ond

       %t     a horizontal tab

       %T     time, 24-hour (hh:mm:ss)

       %u     day of week (1..7);  1 represents Monday

       %U     week number of year with Sunday as first day of week (00..53)

       %V     week number of year with Monday as first day of week (01..53)

       %w     day of week (0..6);  0 represents Sunday

       %W     week number of year with Monday as first day of week (00..53)

       %x     localeâs date representation (mm/dd/yy)

       %X     localeâs time representation (%H:%M:%S)

       %y     last two digits of year (00..99)

       %Y     year (1970...)

hwclock

           

Donanım satini gösterir ve ayarlar. Komut tek başına kullanıldığında donaım saatini gösterir. Linux ta donanım saati RTC – Real Time Clock ve sitem saati ayrı iki tarik bilgisidir. Linux açılışta donanım saatine bakarak sistem saatini ayarlar. Donanım saatinin yanlış olma durumunda sistem saati de buna uyacaktır. Bu tür problemlerin üstesinden gelmek için genellikle tarihi doğru tutan ve dünya üzerindeki diğer bilgisayarların tarih bilgileri kontrol edip düzeltmelerini sağlayan sunuculara bağlanarak belirli aralıklarla tarih bilgisi kontrol edilebilir.

ntpdate, netdate, xntp, crontab, konularına gözatmanız yararlı olacaktır.

            Aşağıdaki komutla donanım saatini görebiliyoruz. date komutunu kullanarak sistem saati kontrol edilebilir.

is8:~ # hwclock

Mon Aug  2 14:36:48 2004  -0.033434 seconds

 

Sistem saati ve donanım saati arasında fark olursa aşağıdaki komutlar uygulanabilir.

            Eğer internet bağlantısı varsa ve zaman dilimi ayarlarının doğru ise linux sürümlerine göre netdate yada ntpdate komutuyla Internet üzerindeki bir zaman sunucusundan sistemin tarih ve saat bilgisi ayarlanabilir.

is8:~ # netdate 80.251.40.15

Trying 80.251.40.15...

80.251.40.15 +0.299      Mon Oct 25 17:51:55.000

 

            Daha sonra donanım saati, sistem saatine göre aşağıdaki komutla ayarlanabilir.  

 

is8:~ # hwclock

Mon Oct 25 17:56:29 2004  -0.318437 seconds

            Yukarıdaki komutla donanım saatini görüntülüyoruz.

 

is8:~ # date

Mon Oct 25 17:54:59 EEST 2004

            Yakarıdaki komutla sistem saatini görüntülüyoruz. Donanım saatinin sistem saatinden yaklaşık 2 dakika kadar ileri olduğunu görebiliriz.

 

is8:~ # hwclock –-systohc

            Yukarıdahi komutla sistem saatine göre donanım saatinin ayarlanmasını sağlıyoruz. –systohc ifadesi yerine –w parametresi de kullanılabilir.

 

is8:~ # hwclock

Mon Oct 25 17:56:16 2004  -0.436072 seconds

is8:~ # date

Mon Oct 25 17:56:17 EEST 2004

            Yukarıdaki komutları peş peşe uygulayarak her iki saat bilgisinin tutarlılığını kontrol ediyoruz.

 

is8:~ # hwclock –-hctosys

            Yukarıdaki komutla sistem saatinin donanım saatine göre ayarlanmasını sağlayabiliriz. –hctosys ifadesi yerine –s parametresi kullanılabilir.