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. Örneğin 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) öperatorleri 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:
* 0 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. Liste içindeki `^'
karakteri sonrasında belirtilen liste dışındaki bütün
karakterler anlamına gelir. Örneğin
*[^0-9]* adında rakam olmayan
herhangi bir dosya anlamına gelecektir.