UNIX ve benzeri işletim sitemlerinde kullanıcının komut yazmasını sağlayan, bu komutları yorumlayarak gerekli işlemleri yapan programlara kabuk (shell) adı verilir. UNIX'te bir kullanıcı bir dizi kabuktan istediğini seçebilir. Kabuklar ile ilgili ayrıntılı bilgi ileride verilecektir.
Kullandığınız kabuk ne olursa olsun, gerek kabuktan kaynaklanan, gerekse UNIX komutlarının hepsinin uyduğu bazı standartlardan kaynaklanan bazı geleneksel yapılar vardır. Bunları bilmeniz ilk kez duyduğunuz bir komutun kullanımını bile kolayca çıkarabilmenizin yanı sıra, bir dizi genel hatadan kaçınmanızı da sağlayacaktır.
UNIX'te (ve Linux'ta) bütün komutlar ve dosya isimlerinde büyük/küçük harf ayrımı önemlidir. Sistem komutlarının ve dosyaların çoğu küçük harfle yazılır.
Komut ve dosya adlarında kullanacağınız bazı karakterlerin gerek dosya ve dizin yapısı, gerekse kabuk ve diğer komutlar nedeniyle bazı özel anlamları vardır. Bu karakterlerden yeri geldikçe söz edilecektir. Örneğin,
`/' karakteri hiçbir dosya adında bulunamaz (dosya ve dizinler için ayraç olarak kullanıldığından). `-' ile başlayan bir dosya oluşturulabilir olsa da silmeye kalktığında yeni bir UNIX kullanıcısının başına dert açabilir.
UNIX'te komutlara seçenek verirken seçenekten önce `-' karakteri kullanılır. Örnek olarak ls -l
UNIX komutları tersi istenmedikçe girdilerini standart girdiden (klavye) alır, çıktılarını standart çıktıya (ekran) yazar. Bu özellik ileride anlatılacak olan yönlendirme ve boru (pipe) operatorleri ile birlikte komut satırından birçok işlemi kolayca yapmanızı sağlar.
UNIX kabukları komut satırından verilen komutu çalıştırmadan önce bir dizi karakteri yorumlayarak dosya ad(lar)ına çevirirler. Bu karakterler:
* Sıfır dahil herhangi bir sayıda karakter yerine geçer. Örneğin rm * komutu bütün dosyaları siler, ls -l a* komutu `a' ile başlayan dosyaların listesini verir.
? tek bir karakter yerine geçer. Örneğin ?? adı iki karakterden oluşan bütün dosyalar anlamına gelir.
[] karakterleri arasında yazılan liste içindeki herhangi bir harfe dönüştürülür.
Örneğin cp *[abc] /tmp komutu `a', `b' ya da `c' ile biten bütün dosyaları /tmp dizinine kopyalayacaktır. liste içinde aralarına `-' işareti koyarak aralıklar verebilirsiniz.
Örneğin, [A-Z]* büyük harfle başlayan bütün dosyalar anlamına gelir.
Dosya ve Dizin Yapısı
UNIX altında bazı karakterlerin özel anlamları vardır. Dizin ve dosya isimlerinin başında nokta olması durumunda bu dosyalar gizli dosya haline gelir ve parametresiz yazılan ls komutuyla görünmez.
Dosya ve dizin isimleri 255 karakteri aşamazlar.
Sisteme girince önceden tanımlanmış bir dizin altında bulunursunuz. Bu dizin normal kullanıcılar için genellikle /home/ ve ardından gelen kullanıcı dizini ismidir.
$ pwd
/home/trwe_81
$
UNIX komut yapısı DOS'a çok benzer. Dizin değiştirmek için cd, dizin yaratmak için mkdir komutlarını sistemde sıkça kullanılır.
$ cd /
$ pwd
/
Hiyerarşik bir sıraya sahip olan UNIX'te en üstte / dizini (kök dizin) yeralır. Sistemdeki tüm diğer dosya ve dizinler bunun altında toplanırlar.
Ev dizinine geçiniz ve mkdir komutu ile benim isimli bir dizin yaratınız. Dizini patikasını, bir başka deyişle kök dizininden itibaren ismini vererek de yaratabilirsiniz.
$ cd ~
$ pwd
/home/trwe_81
$ mkdir /home/trwe_81/trwe_81_abc
Dosya Listesi ve İçeriklerinin Görüntülenmesi
Dosya ve dizinleri görebilmek için ls komutu kullanılır. Parametresiz yazarak bulunduğunuz dizin hakkında bilgi alın. Linux altında değişik uzantılı dosyalar okunabilirliği artırmak amacıyla farklı renkte görülecektir. /etc/DIR_COLORS dosyası, dosya renklerini ayarlar. Bu dosyayı içeriğini değiştirerek belirli dosyaların istenilen renkte görünmesini sağlayabilirsiniz.
Kod: Tümünü seç
$ ls
README yazi.txt mail typescript
adres linux perl
Kod: Tümünü seç
$ ls -a
. .bashrc .term yazi.txt typescript
.. .kermrc .xinitrc linux
.Xdefaults .less README mail
.bash_history .lessrc adres perl
Kod: Tümünü seç
$ ls -al
total 91
drwxr-xr-x 6 trwe_81 users 1024 Feb 13 12:56 .
drwxr-xr-x 4 root root 1024 Jan 7 1980 ..
-rw-r--r-- 1 trwe_81 users 390 Feb 13 12:56 .Xdefaults
-rw-r--r-- 1 trwe_81 ftpadm 230 Feb 13 12:57 .bash_history
-rw-r--r-- 1 trwe_81 users 1 Feb 13 12:57 .bashrc
-rw-r--r-- 1 trwe_81 users 163 Nov 24 1998 .kermrc
-rw-r--r-- 1 trwe_81 users 34 Nov 24 1998 .less
-rw-r--r-- 1 trwe_81 users 114 Nov 24 1998 .lessrc
drwxr-xr-x 2 trwe_81 users 1024 Jan 7 1980 .term
-rw-r--r-- 1 trwe_81 users 87 Feb 13 12:56 .xinitrc
-rw-r--r-- 1 trwe_81 users 26264 Feb 13 12:53 README
-rw-r--r-- 1 trwe_81 users 2795 Feb 13 12:55 adres
-rw-r--r-- 1 trwe_81 users 47970 Feb 13 12:53 yazi.txt
drwxr-xr-x 2 trwe_81 users 1024 Feb 13 12:54 linux
drwxr-xr-x 2 trwe_81 users 1024 Feb 13 12:54 mail
drwxr-xr-x 2 trwe_81 users 1024 Feb 13 12:54 perl
-rw-r--r-- 1 trwe_81 users 0 Feb 13 12:57 typescript
Kod: Tümünü seç
$ cat READMEKod: Tümünü seç
$ head -6 README (dosyanin ilk 6 satirini ekrana basar)
This is the README file for the 28 August 1994 public release of the
Info-ZIP group's portable UnZip zipfile-extraction program (and related
utilities).
unzip512.zip portable UnZip, version 5.12, source code distribution
unzip512.tar.Z same as above, but compress'd tar format
$ tail -3 README (dosyanin son 3 satirini ekrana getirir)
-- Greg Roelofs (Cave Newt), UnZip maintainer/container/explainer and
developer guy, with inspiration from David Kirschbaum
Dosyaları kopyalamak için cp ve bir yerden başka bir dizine almak için mv komutu kullanılır. mv komutu, aynı zamanda dosya isimlerini değiştirmek üzere de işletilebilir.
Kod: Tümünü seç
$ cp yazi.txt /tmp
(yazi.txt adlı dosyayi /tmp dizinine kopyala)
$ mv yazi.txt /tmp/yazi
(yazi.txt isimli dosyayi /tmp dizini altina ismini yazi olarak degistirerek koy
Kod: Tümünü seç
$ cp -R /home/gorkem/temp /tmp
(/home/gorkem/temp dizinini ve icindeki her dosyayi /tmp altina kopyala)
$ mv yazi.txt ~/benim
(yazi.txt isimli dosyayi ev dizini altindaki benim dizinine kopyala)
Bir daha kullanılmayacak olan dosyalar, rm komutuyla silinebilir. Dosyaları silerken iki kere düşünün, zira Linux altında silinen bir dosyanın geri dönüşü olmaz. Eğer bu tür hataları çok yapıyorsanız rm komutunu -i parametresi ile birlikte kullanın, bu sayede Linux, dosyayı silmeden önce kullanıcının da onayını alır.
Kod: Tümünü seç
$ rm -i README
rm: remove `README'? y (sileyim mi ?)
$
Kod: Tümünü seç
$ rm -- -dosya
Kod: Tümünü seç
$ rm mail
rm: mail: is a directory
$ rm -rf linux/ (linux dizinini icindekilerle birlikte silinir)
Kod: Tümünü seç
$ rm *
TRWE_2012
Düzce_Akçakoca
:oops: :) :)



