← man/shells_and_env
csh — man csh — 80×24
ugur@toprak:~/man/shells_and_env$man csh
Bölüm 1 Kabuklar & Ortam

csh

dosya adı tamamlama ve komut satırı düzenleme özelliklerine sahip C kabuğu (C shell)

Özet

        tcsh [-bcdefFimnqstvVxX] [-Dname[=value]] [arg ...]
        tcsh -l

Açıklama

tcsh, Berkeley UNIX C kabuğunun (csh(1)) geliştirilmiş ancak tamamen uyumlu bir sürümüdür. Hem etkileşimli bir giriş kabuğu (login shell) hem de bir kabuk betiği (shell script) komut işlemcisi olarak kullanılabilen bir komut dili yorumlayıcısıdır. Bir komut satırı düzenleyicisi (bkz. Komut satırı düzenleyici), programlanabilir sözcük tamamlama (bkz. Tamamlama ve listeleme), yazım düzeltme (bkz. Yazım düzeltme), bir geçmiş mekanizması (bkz. Geçmiş ikamesi), iş denetimi (bkz. İşler) ve C benzeri bir sözdizimi içerir. YENİ ÖZELLİKLER bölümü, tcsh'in csh(1) üzerindeki büyük geliştirmelerini açıklamaktadır. Bu kılavuz boyunca, çoğu csh(1) uygulamasında bulunmayan tcsh özellikleri (özellikle 4.4BSD csh) (+) ile, csh(1)'de bulunan ancak genellikle belgelenmeyen özellikler ise (u) ile işaretlenmiştir.

Argüman listesi işleme Kabuğa gönderilen ilk argüman (argüman 0) - ise, bu bir giriş kabuğudur (login shell). Bir giriş kabuğu, kabuk tek argüman olarak -l bayrağıyla çağrılarak da belirtilebilir.

Geri kalan bayrak argümanları şu şekilde yorumlanır:

  • -b: Seçenek işlemeden kesin bir çıkış (``break'') yapılmasını zorlar ve sonraki kabuk argümanlarının seçenek olmayan argümanlar olarak ele alınmasını sağlar. Kalan argümanlar kabuk seçenekleri olarak yorumlanmayacaktır. Bu, bir kabuk betiğine kafa karışıklığı veya olası bir aldatmaca olmaksızın seçenekleri aktarmak için kullanılabilir. Kabuk, bu seçenek olmadan set-user ID betiğini çalıştırmayacaktır.

  • -c: Komutlar bir sonraki argümandan okunur (bu argüman mevcut olmalı ve tek bir argüman olmalıdır), referans için komut kabuk değişkeninde saklanır ve yürütülür. Kalan argümanlar argv kabuk değişkenine yerleştirilir.

  • -d: Giriş kabuğu olsun ya da olmasın, kabuk dizin yığınını Başlangıç ve kapatma altında açıklandığı gibi ~/.cshdirs dosyasından yükler. (+)

-Dname[=value] name çevre değişkenini value değerine ayarlar. (Yalnızca Domain/OS) (+)

  • -e: Çağrılan herhangi bir komut anormal şekilde sonlanırsa veya sıfır olmayan bir çıkış durumu döndürürse kabuktan çıkılır.

  • -f: Kabuk hiçbir kaynak veya başlangıç dosyası yüklemez, komut eşlemesi (hashing) yapmaz ve bu sayede daha hızlı başlar.

  • -F: Kabuk, süreçleri oluşturmak için vfork(2) yerine fork(2) kullanır. Bu artık varsayılandır ve bu seçenek yoksayılır. (+)

  • -i: Kabuk etkileşimlidir ve bir terminal olmasa bile en üst düzey girdisi için bilgi istemleri (prompts) sunar. Giriş ve çıkışları terminal olan kabuklar, bu seçenek olmasa da etkileşimlidir.

  • -l: Kabuk bir giriş kabuğudur. Yalnızca -l belirtilen tek bayrak ise geçerlidir.

  • -m: Etkin kullanıcıya ait olmasa bile kabuk ~/.tcshrc dosyasını yükler. su(1) uygulamasının daha yeni sürümleri kabuğa -m parametresini geçirebilir. (+)

  • -n: Kabuk komutları ayrıştırır ancak yürütmez. Bu, kabuk betiklerinde hata ayıklamaya yardımcı olur.

  • -q: Kabuk SIGQUIT sinyalini kabul eder (bkz. Sinyal işleme) ve bir hata ayıklayıcı altında kullanıldığında buna göre davranır. İş denetimi devre dışı bırakılır. (u)

  • -s: Komut girdisi standart girdiden alınır.

  • -t: Kabuk girdinin tek bir satırını okur ve yürütür. Bu satırın sonundaki yeni satır karakterinden kaçmak ve başka bir satıra devam etmek için bir \ kullanılabilir.

  • -v: verbose kabuk değişkenini ayarlar, böylece geçmiş ikamesinden sonra komut girdisi ekrana yansıtılır (echo).

  • -x: echo kabuk değişkenini ayarlar, böylece komutlar yürütülmeden hemen önce ekrana yansıtılır.

  • -V: ~/.tcshrc dosyasını yürütmeden önce bile verbose kabuk değişkenini ayarlar.

  • -X: -x seçeneğinin -V seçeneğinin -v seçeneğine olan ilişkisi gibidir.

--help Standart çıktıya bir yardım mesajı yazdırır ve çıkar. (+)

--version Standart çıktıya sürüm/platform/derleme seçeneklerini yazdırır ve çıkar. Bu bilgi ayrıca version kabuk değişkeninde de yer alır. (+)

Bayrak argümanlarının işlenmesinden sonra, argümanlar kalırsa ancak -c, -i, -s veya -t seçeneklerinden hiçbiri verilmemişse, ilk argüman yürütülecek komutların yer aldığı bir dosyanın adı veya ``betik'' (script) olarak alınır. Kabuk bu dosyayı açar ve $0 tarafından olası yeniden ikame edilmek üzere adını kaydeder. Birçok sistem, kabuk betikleri bu kabukla uyumlu olmayan standart sürüm 6 veya sürüm 7 kabuklarını kullandığından, kabuk, ilk karakteri # olmayan (yani bir yorumla başlamayan) bir betiği yürütmek için böyle bir 'standart' kabuk kullanır.

Kalan argümanlar argv kabuk değişkenine yerleştirilir.

Başlangıç ve kapatma Bir giriş kabuğu, /etc/csh.cshrc ve /etc/csh.login sistem dosyalarındaki komutları yürüterek işe başlar. Ardından kullanıcının ev dizinindeki (home directory) dosyalardan komutları yürütür: önce ~/.tcshrc (+) veya ~/.tcshrc bulunamazsa ~/.cshrc, ardından ~/.history içeriği (veya histfile kabuk değişkeninin değeri) belleğe yüklenir, sonra ~/.login ve son olarak ~/.cshdirs (veya dirsfile kabuk değişkeninin değeri) (+). Kabuk, derlenme şekline bağlı olarak /etc/csh.login dosyasını /etc/csh.cshrc dosyasından önce (sonra yerine) ve ~/.login dosyasını ~/.tcshrc veya ~/.cshrc ve ~/.history dosyalarından önce okuyabilir; bkz. version kabuk değişkeni. (+)

Giriş kabuğu olmayan kabuklar, başlangıçta yalnızca /etc/csh.cshrc ve ~/.tcshrc veya ~/.cshrc dosyalarını okur.

Başlangıç dosyası örnekleri için lütfen http://tcshrc.sourceforge.net adresini ziyaret edin.

Her girişte yalnızca bir kez çalıştırılması gereken stty(1) ve tset(1) gibi komutlar genellikle kişinin ~/.login dosyasına yerleştirilir. Hem csh(1) hem de tcsh ile aynı dosya kümesini kullanması gereken kullanıcılar, tcsh'e özgü komutları kullanmadan önce tcsh kabuk değişkeninin (bkz.) varlığını kontrol eden tek bir ~/.cshrc dosyasına sahip olabilirler veya hem bir ~/.cshrc dosyasına hem de ~/.cshrc dosyasını kaynak alan (built-in komutuna bakın) bir ~/.tcshrc dosyasına sahip olabilirler. Bu kılavuzun geri kalanında ~/.tcshrc ifadesi ~/.tcshrc veya ~/.tcshrc bulunamazsa ~/.cshrc anlamına gelir.

Normal durumda, kabuk terminalden komutları okumaya başlar ve > ile bilgi istemi sunar. (Argümanların işlenmesi ve komut betikleri içeren dosyaları işlemek için kabuğun kullanımı daha sonra açıklanacaktır.) Kabuk, bir komut girdi satırını tekrar tekrar okur, kelimelere böler, komut geçmişi listesine yerleştirir, ayrıştırır ve satırdaki her komutu yürütür.

Boş bir satırda ^D, logout veya login yazarak ya da kabuğun otomatik çıkış mekanizması (bkz. autologout kabuk değişkeni) aracılığıyla oturum kapatılabilir. Bir giriş kabuğu sonlandığında, logout kabuk değişkenini uygun şekilde normal veya automatic olarak ayarlar, ardından /etc/csh.logout ve ~/.logout dosyalarındaki komutları yürütür. Kabuk, derlenme şekline bağlı olarak oturumu kapatırken DTR'yi düşürebilir; bkz. version kabuk değişkeni.

Sistem giriş ve çıkış dosyalarının adları, farklı csh(1) varyantlarıyla uyumluluk sağlamak amacıyla sistemden sisteme değişiklik gösterir; bkz. DOSYALAR.

Düzenleme Öncelikle Komut satırı düzenleyicisini açıklayacağız. Tamamlama ve listeleme ile Yazım düzeltme bölümleri, düzenleyici komutları olarak uygulanan ancak kendi başlarına ele alınmayı hak eden iki işlev kümesini açıklamaktadır. Son olarak, Düzenleyici komutları kabuğa özgü düzenleyici komutlarını ve bunların varsayılan tuş atamalarını (bindings) listeler ve açıklar.

Komut satırı düzenleyicisi (+) Komut satırı girdisi, emacs(1) veya vi(1) programlarında kullanılanlara benzer tuş dizileri kullanılarak düzenlenebilir. Düzenleyici, yalnızca etkileşimli kabuklarda varsayılan olarak ayarlanan edit kabuk değişkeni ayarlandığında etkindir. bindkey yerleşik komutu (builtin) tuş atamalarını görüntüleyebilir ve değiştirebilir. emacs(1) tarzı tuş atamaları varsayılan olarak kullanılır (kabuk aksi şekilde derlenmemişse; bkz. version kabuk değişkeni), ancak bindkey tuş atamalarını topluca vi(1) tarzı atamalara dönüştürebilir.

Kabuk, yön tuşlarını (TERMCAP çevre değişkeninde tanımlandığı şekilde) her zaman şu komutlara atar:

down down-history up up-history left backward-char right forward-char

Bunun yapılması başka bir tek karakterli atamayı değiştirmediği sürece bu atamalar geçerlidir. Bu atamaları önlemek için yön tuşu kaçış dizileri settc ile boş dizeye ayarlanabilir. Yön tuşları için ANSI/VT100 dizileri her zaman atanmıştır.

Diğer tuş atamaları, çoğunlukla emacs(1) ve vi(1) kullanıcılarının bekleyeceği şekildedir ve bindkey ile kolayca görüntülenebilir, bu nedenle burada listelenmelerine gerek yoktur. Benzer şekilde, bindkey düzenleyici komutlarını her birinin kısa bir açıklamasıyla birlikte listeleyebilir. Bazı tuş atamaları, emacs(1) veya vi(1) tarzı atamaların kullanılmasına bağlı olarak farklı davranışlar gösterir; daha fazla bilgi için vimode bölümüne bakın.

Düzenleyici komutlarının, kabuğun sahip olduğu ``sözcük'' (word) kavramıyla aynı kavramına sahip olmadığına dikkat edilmelidir. Düzenleyici, kelimeleri wordchars kabuk değişkeninde yer almayan alfasayısal olmayan karakterlerle sınırlandırırken, kabuk yalnızca boşlukları ve Sözcüksel yapı altında listelenen, kendisi için özel anlamı olan bazı karakterleri tanır.

Tamamlama ve listeleme (+) Kabuk, benzersiz bir kısaltma verildiğinde genellikle sözcükleri tamamlayabilir. Sözcüğün bir kısmını yazın (örneğin ls /usr/lost) ve complete-word düzenleyici komutunu çalıştırmak için sekme (tab) tuşuna basın. Kabuk, girdi arabelleğindeki tamamlanmamış sözcüğü tamamlenmiş sözcükle değiştirerek /usr/lost dosya adını /usr/lost+found/ olarak tamamlar. (Sondaki / karakterine dikkat edin; tamamlama, yazmayı hızlandırmak ve başarılı tamamlamanın görsel bir göstergesini sağlamak için tamamlanan dizinlerin sonuna bir / ve diğer tamamlanan sözcüklerin sonuna bir boşluk ekler. Bunu önlemek için addsuffix kabuk değişkeni kaldırılabilir.) Eşleşme bulunamazsa (belki de /usr/lost+found mevcut değildir), terminal zili çalar. Sözcük zaten tamamlenmişse (belki de sisteminizde bir /usr/lost vardır veya belki de çok ileriyi düşünüp her şeyi tam olarak yazdınız), zaten orada değilse sonuna bir / veya boşluk eklenir.

Tamamlama satırın sadece sonunda değil, herhangi bir yerinde çalışır; tamamlanan metin satırın geri kalanını sağa doğru iter. Bir sözcüğün ortasında tamamlama yapmak, genellikle imlecin sağında silinmesi gereken artık karakterlerin kalmasına neden olur.

Komutlar ve değişkenler de benzer şekilde tamamlanabilir. Örneğin, em[tab] yazmak, sisteminizde em ile başlayan tek komut emacs ise, em ifadesini emacs olarak tamamlayacaktır. Tamamlama, path içindeki herhangi bir dizinde veya tam bir yol adı verildiğinde bir komutu bulabilir. echo $ar[tab] yazmak, ar ile başlayan başka bir değişken yoksa $ar ifadesini $argv olarak tamamlayacaktır.

Kabuk, tamamlamak istediğiniz sözcüğün bir dosya adı, komut veya değişken olarak tamamlanıp tamamlanmayacağını belirlemek için girdi arabelleğini ayrıştırır. Arabellekteki ilk sözcük ve ;, |, |&, && veya || karakterlerini takip eden ilk sözcük bir komut olarak kabul edilir. $ ile başlayan bir sözcük değişken olarak kabul edilir. Geri kalan her şey bir dosya adıdır. Boş bir satır, bir dosya adı olarak tamamlanır.

Sözcüğün olası tamamlamalarını, delete-char-or-list-or-eof düzenleyici komutunu çalıştırmak için istediğiniz zaman ^D yazarak listeleyebilirsiniz. Kabuk, yerleşik ls-F (bkz.) komutunu kullanarak olası tamamlamaları listeler ve bilgi istemini ve bitmemiş komut satırını yeniden yazdırır, örneğin:

ls /usr/l[^D] lbin/ lib/ local/ lost+found/ ls /usr/l

Eğer autolist kabuk değişkeni ayarlanmışsa, kabuk tamamlama başarısız olduğunda kalan seçenekleri (varsa) listeler:

set autolist nm /usr/lib/libt[tab] libtermcap.a@ libtermlib.a@ nm /usr/lib/libterm

autolist değeri ambiguous olarak ayarlanmışsa, seçenekler yalnızca tamamlama başarısız olduğunda ve tamamlanan sözcüğe yeni karakterler eklenmediğinde listelenir.

Tamamlanacak bir dosya adı; değişkenler, ~ ile kısaltılmış kendi veya başkalarının ev dizinleri (bkz. Dosya adı ikamesi) ve = ile kısaltılmış dizin yığını girdileri (bkz. Dizin yığını ikamesi) içerebilir. Örneğin,

ls ~k[^D] kahn kas kellogg ls ~ke[tab] ls ~kellogg/

veya

set local = /usr/local ls $lo[tab] ls $local/[^D] bin/ etc/ lib/ man/ src/ ls $local/

Değişkenlerin expand-variables düzenleyici komutuyla açıkça da genişletilebileceğini unutmayın.

delete-char-or-list-or-eof yalnızca satırın sonunda listeleme yapar; satırın ortasında imlecin altındaki karakteri siler ve boş bir satırda oturumu kapatır veya ignoreeof ayarlanmışsa hiçbir şey yapmaz. list-choices düzenleyici komutuna atanan M-^D, satırın herhangi bir yerindeki tamamlama olasılıklarını listeler ve list-choices (veya delete-char-or-list-or-eof altında listelenen, silme, listeleme ve/veya oturum kapatma işlemlerini gerçekleştiren veya gerçekleştirmeyen ilgili düzenleyici komutlarından herhangi biri), istenirse bindkey yerleşik komutuyla ^D tuşuna atanabilir.

complete-word-fwd and complete-word-back düzenleyici komutları (varsayılan olarak hiçbir tuşa atanmamıştır), olası tamamlamalar listesinde yukarı ve aşağı doğru gezinmek ve mevcut sözcüğü listedeki bir sonraki veya önceki sözcükle değiştirmek için kullanılabilir.

fignore kabuk değişkeni, tamamlama tarafından yoksayılacak uzantıların (soneklerin) bir listesine ayarlanabilir. Aşağıdakini inceleyin:

ls Makefile condiments.h~ main.o side.c README main.c meal side.o condiments.h main.c~ set fignore = (.o ~) emacs ma[^D] main.c main.c~ main.o emacs ma[tab] emacs main.c

main.c~ ve main.o, fignore içindeki uzantılarla bittikleri için tamamlama tarafından yoksayılır (ancak listeleme tarafından yoksayılmaz). Dosya adı ikamesi altında açıklandığı gibi ev dizinine genişletilmesini önlemek için ~ işaretinin önüne bir \ konulması gerektiğine dikkat edin. Yalnızca tek bir tamamlama mümkünse fignore yoksayılır.

Eğer complete kabuk değişkeni enhance olarak ayarlanmışsa, tamamlama 1) büyük/küçük harf durumunu yoksayar ve 2) noktaları, kısa çizgileri ve alt çizgileri (., - ve _) sözcük ayırıcıları olarak kabul eder; kısa çizgiler ile alt çizgileri eşdeğer sayar. Aşağıdaki dosyalara sahip olduğunuzu varsayalım:

comp.lang.c comp.lang.perl comp.std.c++ comp.lang.c++ comp.std.c

ve mail -f c.l.c[tab] yazdıysanız, bu mail -f comp.lang.c olarak tamamlanacaktır ve ^D tuşu comp.lang.c ve comp.lang.c++ dosyalarını listeleyecektir. mail -f c..c++[^D] ise comp.lang.c++ ve comp.std.c++ dosyalarını listeleyecektir. Aşağıdaki dizinde rm a--file[^D] yazmak:

A_silly_file a-hyphenated-file another_silly_file

her üç dosyayı da listeleyecektir, çünkü büyük/küçük harf durumu yoksayılır ve kısa çizgiler ile alt çizgiler eşdeğerdir. Ancak noktalar, kısa çizgilere veya alt çizgilere eşdeğer değildir.

Eğer complete kabuk değişkeni Enhance olarak ayarlanmışsa, tamamlama büyük/küçük harf durumunu ve bir kısa çizgi ile alt çizgi sözcük ayırıcısı arasındaki farkları yalnızca kullanıcı küçük harfli bir karakter veya bir kısa çizgi yazdığında yoksayar. Büyük harfli bir karakter veya bir alt çizgi girilmesi, karşılık gelen küçük harfli karakterle veya kısa çizgi sözcük ayırıcısıyla eşleşmeyecektir. Önceki örneğin dizininde rm a--file[^D] yazmak yine her üç dosyayı da listeleyecektir, ancak rm A--file yazmak yalnızca A_silly_file ile eşleşecek ve rm a__file[^D] yazmak ise kullanıcının açıkça büyük harf veya alt çizgi karakteri kullanması nedeniyle yalnızca A_silly_file ve another_silly_file ile eşleşecektir.

Tamamlama ve listeleme diğer birkaç kabuk değişkeninden de etkilenir: recexact, daha fazla yazmanın daha uzun bir eşleşmeyle sonuçlanabileceği durumlarda bile mümkün olan en kısa benzersiz eşleşmede tamamlamak üzere ayarlanabilir:

ls fodder foo food foonly set recexact rm fo[tab]

sadece bip sesi çıkarır, çünkü fo ifadesi fod veya foo olarak genişletilebilir, ancak bir tane daha o yazarsak,

rm foo[tab] rm foo

food ve foonly de eşleşmesine rağmen tamamlama foo üzerinde tamamlanır. autoexpand, her tamamlama girişiminden önce expand-history düzenleyici komutunu çalıştıracak şekilde ayarlanabilir; autocorrect, her tamamlama girişiminden önce tamamlanacak sözcüğün yazımını düzeltecek şekilde ayarlanabilir (bkz. Yazım düzeltme) antes de cada intento de completación; ve correct ise 'return' tuşuna basıldıktan sonra komutları otomatik olarak tamamlayacak şekilde ayarlanabilir. matchbeep, tamamlamanın çeşitli durumlarda bip sesi çıkarıp çıkarmamasını sağlayacak şekilde ayarlanabilir ve nobeep ise hiçbir zaman bip sesi çıkarmayacak şekilde ayarlanabilir. nostat, tamamlama mekanizmasının bu dizinlerde stat(2) çağrısı yapmasını önlemek için dizinlerin ve/veya dizinlerle eşleşen şablonların bir listesine ayarlanabilir. listmax ve listmaxrows, önce sormadan listelenen öğelerin ve satırların sayısını (sırasıyla) sınırlamak için ayarlanabilir. recognize_only_executables, kabuğun komutları listelerken yalnızca yürütülebilir dosyaları listelesini sağlamak için ayarlanabilir, ancak bu oldukça yavaştır.

Son olarak, yerleşik complete komutu, kabuğa dosya adları, komutlar ve değişkenler dışındaki sözcüklerin nasıl tamamlanacağını söylemek için kullanılabilir. Tamamlama ve listeleme, dosya kalıplarında (glob-patterns) çalışmaz (bkz. Dosya adı ikamesi), ancak list-glob ve expand-glob düzenleyici komutları dosya kalıpları için eşdeğer işlevleri gerçekleştirir.

Yazım düzeltme (+) Kabuk, dosya adlarını, komutları ve değişken adlarını tamamlayıp listelemenin yanı sıra bazen bunların yazımını da düzeltebilir.

Münferit sözcükler spell-word düzenleyici komutuyla (genellikle M-s ve M-S tuşlarına atanmıştır) ve tüm girdi arabelleği spell-line komutuyla (genellikle M-$ tuşuna atanmıştır) yazım düzeltmesinden geçirilebilir. correct kabuk değişkeni, komut adını düzeltmek için cmd olarak veya return tuşuna her basıldığında tüm satırı düzeltmek için all olarak ayarlanabilir; autocorrect ise her tamamlama girişiminden önce tamamlanacak sözcüğü düzeltecek şekilde ayarlanabilir.

Yazım düzeltme bu yollardan herhangi biriyle çağrıldığında ve kabuk komut satırının herhangi bir bölümünün yanlış yazıldığını düşündüğünde, düzeltilmiş satırla birlikte bilgi istemi sunar:

set correct = cmd lz /usr/bin CORRECT>ls /usr/bin (y|n|e|a)?

Kişi düzeltilmiş satırı yürütmek için y veya boşluk tuşuyla, düzeltilmemiş komutu girdi arabelleğinde bırakmak için e tuşuyla, komutu sanki ^C basılmış gibi iptal etmek için a tuşuyla ve orijinal satırı olduğu gibi yürütmek için başka herhangi bir tuşla yanıt verebilir.

Yazım düzeltme, kullanıcı tanımlı tamamlamaları tanır (yerleşik complete komutuna bakın). Bir tamamlama tanımlanmış olan bir konumdaki bir girdi sözcüğü tamamlama listesindeki bir sözcüğe benziyorsa, yazım düzeltme bir yazım hatası kaydeder ve düzeltme olarak ikinci sözcüğü önerir. Ancak, girdi sözcüğü o konum için olası tamamlamalardan hiçbiriyle eşleşmiyorsa, yazım düzeltme bir yazım hatası kaydetmez.

Tamamlama gibi yazım düzeltme de satırın herhangi bir yerinde çalışır, satırın geri kalanını sağa doğru iter ve muhtemelen imlecin sağında fazladan karakterler bırakır.

Düzenleyici komutları (+) bindkey tuş atamalarını listeler ve bindkey -l düzenleyici komutlarını listeler ve kısaca açıklar. Burada yalnızca yeni veya özellikle ilginç düzenleyici komutları açıklanmaktadır. Her düzenleyicinin tuş atamalarının açıklamaları için emacs(1) ve vi(1) belgelerine bakın.

Her komutun varsayılan olarak atandığı karakter veya karakterler parantez içinde verilmiştir. ^karakter bir kontrol karakteri ve M-karakter ise bir meta karakter anlamına gelir; meta tuşu olmayan terminallerde kaçış karakteri (escape) ve ardından gelen karakter şeklinde yazılır. Büyük/küçük harf önemlidir, ancak kolaylık sağlamak amacıyla varsayılan olarak harflere atanan komutlar hem küçük hem de büyük harflere atanmıştır.

backward-char (^B, left) Bir karakter geri gider. İmleç davranışı vimode tarafından değiştirilir.

backward-delete-word (M-^H, M-^?) Mevcut sözcüğün başlangıcından imlece kadar olan kısmı keser - kesme arabelleğine (cut buffer) kaydeder. Sözcük sınırı davranışı vimode tarafından değiştirilir.

backward-word (M-b, M-B) Mevcut sözcüğün başlangıcına gider. Sözcük sınırı ve imleç davranışı vimode tarafından değiştirilir.

beginning-of-line (^A, home) Satırın başına gider. İmleç davranışı vimode tarafından değiştirilir.

capitalize-word (M-c, M-C) İmleçten mevcut sözcüğün sonuna kadar olan karakterleri büyük harfle başlatır. Sözcük sınırı davranışı vimode tarafından değiştirilir.

complete-word (tab) Tamamlama ve listeleme altında açıklandığı gibi bir sözcüğü tamamlar.

complete-word-back (atanmamış) complete-word-fwd gibidir, ancak listenin sonundan yukarıya doğru adımlar.

complete-word-fwd (atanmamış) Mevcut sözcüğü olası tamamlamalar listesindeki ilk sözcükle değiştirir. Listede aşağı doğru ilerlemek için tekrarlanabilir. Listenin sonunda bip sesi çıkarır ve tamamlanmamış sözcüğe geri döner.

complete-word-raw (^X-tab) complete-word gibidir, ancak kullanıcı tanımlı tamamlamaları yoksayar.

copy-prev-word (M-^_) Mevcut satırdaki önceki sözcüğü girdi arabelleğine kopyalar. Ayrıca bkz. insert-last-word. Sözcük sınırı davranışı vimode tarafından değiştirilir.

dabbrev-expand (M-/) Gerekirse geçmiş listesini (bir kez) başa sararak, mevcut sözcüğü, mevcut sözcüğün ön eki olduğu en son önceki sözcüğe genişletir. Araya herhangi bir girdi girmeden dabbrev-expand komutunu tekrarlamak, history-search-backward komutunun yaptığı gibi özdeş eşleşmeleri atlayarak bir önceki sözcüğe vb. geçer.

delete-char (atanmamış) İmlecin altındaki karakteri siler. Ayrıca bkz. delete-char-or-list-or-eof. İmleç davranışı vimode tarafından değiştirilir.

delete-char-or-eof (atanmamış) İmlecin altında bir karakter varsa delete-char, boş bir satırda ise dosya sonu (end-of-file) işlemini gerçekleştirir. Ayrıca bkz. delete-char-or-list-or-eof. İmleç davranışı vimode tarafından değiştirilir.

delete-char-or-list (atanmamış) İmlecin altında bir karakter varsa delete-char, satırın sonunda ise list-choices işlemini gerçekleştirir. Ayrıca bkz. delete-char-or-list-or-eof.

delete-char-or-list-or-eof (^D) İmlecin altında bir karakter varsa delete-char, satırın sonunda ise list-choices, boş bir satırda ise dosya sonu (end-of-file) işlemini gerçekleştirir. Ayrıca, her biri yalnızca tek bir işlem gerçekleştiren bu üç komuta ve her biri bu üç işlemden farklı ikisini gerçekleştiren delete-char-or-eof, delete-char-or-list ve list-or-eof komutlarına bakın.

delete-word (M-d, M-D) İmleçten mevcut sözcüğün sonuna kadar olan kısmı keser - kesme arabelleğinde saklar. Sözcük sınırı davranışı vimode tarafından değiştirilir.

down-history (down-arrow, ^N) up-history gibidir, ancak aşağı doğru adımlar ve orijinal girdi satırında durur.

downcase-word (M-l, M-L) İmleçten mevcut sözcüğün sonuna kadar olan karakterleri küçük harfe dönüştürür. Sözcük sınırı davranışı vimode tarafından değiştirilir.

end-of-file (atanmamış) Bir dosya sonu sinyali göndererek, bunu önlemek için ignoreeof kabuk değişkeni (bkz.) ayarlanmadığı sürece kabuğun çıkmasını sağlar. Ayrıca bkz. delete-char-or-list-or-eof.

end-of-line (^E, end) İmleci satırın sonuna götürür. İmleç davranışı vimode tarafından değiştirilir.

expand-history (M-space) Mevcut sözcükteki geçmiş ikamelerini genişletir. Bkz. Geçmiş ikamesi. Ayrıca bkz. magic-space, toggle-literal-history ve autoexpand kabuk değişkeni.

expand-glob (^X-*) İmlecin solundaki dosya kalıbını (glob-pattern) genişletir. Bkz. Dosya adı ikamesi.

expand-line (atanmamış) expand-history gibidir, ancak girdi arabelleğindeki her sözcükteki geçmiş ikamelerini genişletir.

expand-variables (^X-$) İmlecin solundaki değişkeni genişletir. Bkz. Değişken ikamesi.

forward-char (^F, right) Bir karakter ileri gider. İmleç davranışı vimode tarafından değiştirilir.

forward-word (M-f, M-F) Mevcut sözcüğün sonuna kadar ileri gider. Sözcük sınırı ve imleç davranışı vimode tarafından değiştirilir.

history-search-backward (M-p, M-P) Girdi arabelleğinin imlece kadar olan mevcut içeriğiyle başlayan bir komut için geçmiş listesinde geriye doğru arama yapar ve bunu girdi arabelleğine kopyalar. Arama dizesi, *, ?, [] veya {} içeren bir dosya kalıbı (bkz. Dosya adı ikamesi) olabilir. up-history ve down-history geçmiş listesindeki uygun noktadan devam edecektir. Yalnızca emacs modu. Ayrıca bkz. history-search-forward ve i-search-back.

history-search-forward (M-n, M-N) history-search-backward gibidir, ancak ileriye doğru arar.

i-search-back (atanmamış) history-search-backward gibi geriye doğru arama yapar, ilk eşleşmeyi imleç kalıbın sonunda olacak şekilde girdi arabelleğine kopyalar ve bck: ile birlikte ilk eşleşmeyle bilgi istemi sunar. Aramayı genişletmek için ek karakterler yazılabilir, aynı kalıpla aramaya devam etmek için (bunun çalışması için i-search-back tek bir karaktere atanmalıdır) veya gerekirse geçmiş listesini sarmak için i-search-back yazılabilir veya aşağıdaki özel karakterlerden biri yazılabilir:

^W İmlecin altındaki sözcüğün geri kalanını arama kalıbına ekler. delete (veya backward-delete-char komutuna atanan herhangi bir karakter) Yazılan son karakterin etkisini geri alır ve uygunsa arama kalıbından bir karakter siler. ^G Önceki arama başarılı olduysa, tüm aramayı iptal eder. Başarılı olmadıysa, son başarılı aramaya geri döner. escape Mevcut satırı girdi arabelleğinde bırakarak aramayı sonlandırır.

self-insert-command komutuna atanmamış diğer herhangi bir karakter, mevcut satırı girdi arabelleğinde bırakarak aramayı sonlandırır ve ardından normal girdi olarak yorumlanır. Özellikle, bir satır başı (carriage return) mevcut satırın yürütülmesine neden olur. Ayrıca bkz. i-search-fwd ve history-search-backward. Sözcük sınırı davranışı vimode tarafından değiştirilir.

i-search-fwd (atanmamış) i-search-back gibidir, ancak ileriye doğru arar. Sözcük sınırı davranışı vimode tarafından değiştirilir.

insert-last-word (M-_) Önceki girdi satırının son sözcüğünü (!$) girdi arabelleğine ekler. Ayrıca bkz. copy-prev-word.

list-choices (M-^D) Tamamlama ve listeleme altında açıklandığı gibi tamamlama olasılıklarını listeler. Ayrıca bkz. delete-char-or-list-or-eof ve list-choices-raw.

list-choices-raw (^X-^D) list-choices gibidir, ancak kullanıcı tanımlı tamamlamaları yoksayar.

list-glob (^X-g, ^X-G) İmlecin solundaki dosya kalıbıyla (bkz. Dosya adı ikamesi) eşleşenleri listeler (yerleşik ls-F komutu aracılığıyla).

list-or-eof (atanmamış) Boş bir satırda list-choices veya dosya sonu (end-of-file) işlemini gerçekleştirir. Ayrıca bkz. delete-char-or-list-or-eof.

magic-space (atanmamış) expand-history gibi mevcut satırdaki geçmiş ikamelerini genişletir ve bir boşluk ekler. magic-space boşluk çubuğuna atanmak üzere tasarlanmıştır, ancak varsayılan olarak atanmamıştır.

normalize-command (^X-?) PATH içinde mevcut sözcüğü arar ve bulunursa, onu yürütülebilir dosyanın tam yolu ile değiştirir. Özel karakterler tırnak içine alınır. Takma adlar (aliases) genişletilir ve tırnak içine alınır ancak takma adlar içindeki komutlar genişletilmez. Bu komut, argüman olarak komut alan komutlarla (örneğin, dbx ve sh -x) kullanışlıdır.

normalize-path (^X-n, ^X-N) symlinks kabuk değişkeninin expand ayarı altında açıklandığı gibi mevcut sözcüğü genişletir.

overwrite-mode (atanmamış) Ekleme (input) ve üzerine yazma (overwrite) modları arasında geçiş yapar.

run-fg-editor (M-^Z) Mevcut girdi satırını kaydeder ve ilk sözcüğünün dosya adı kısmının editors kabuk değişkeninde bulunduğu durdurulmuş bir işi arar. Eğer editors ayarlanmamışsa, EDITOR çevre değişkeninin dosya adı kısmı (ayarlanmamışsa ed) ve VISUAL çevre değişkeni (ayarlanmamışsa vi) kullanılacaktır. Böyle bir iş bulunursa, sanki fg %job yazılmış gibi yeniden başlatılır. Bu, bir düzenleyici ile kabuk arasında kolayca geçiş yapmak için kullanılır. Bazı insanlar bunu daha da kolaylaştırmak için bu komutu ^Z tuşuna atarlar.

run-help (M-h, M-H) Tamamlama rutinleriyle aynı mevcut komut kavramını kullanarak mevcut komutla ilgili belgeleri arar ve yazdırır. Bir sayfalayıcı (pager) kullanmanın yolu yoktur; run-help kısa yardım dosyaları için tasarlanmıştır. Özel helpcommand takma adı tanımlanmışsa, tek argüman olarak komut adıyla çalıştırılır. Aksi takdirde, belgeler HPATH çevre değişkeninde listelenen dizinlerden birinde bulunması gereken command.help, command.1, command.6, command.8 veya command adlı bir dosyada olmalıdır. Birden fazla yardım dosyası varsa yalnızca ilki yazdırılır.

self-insert-command (metin karakterleri) Ekleme modunda (varsayılan), yazılan karakteri girdi satırına, imlecin altındaki karakterden sonra ekler. Üzerine yazma modunda, imlecin altındaki karakteri yazılan karakterle değiştirir. Girdi modu normalde satırlar arasında korunur, ancak her satırın başında düzenleyiciyi o moda sokmak için inputmode kabuk değişkeni insert veya overwrite olarak ayarlanabilir. Ayrıca bkz. overwrite-mode.

sequence-lead-in (yön tuşu ön eki, meta ön eki, ^X) Aşağıdaki karakterlerin çoklu tuş dizisinin bir parçası olduğunu gösterir. Bir komutu çoklu tuş dizisine atamak aslında iki atama oluşturur: ilk karakter sequence-lead-in komutuna ve tüm dizi ilgili komuta atanır. sequence-lead-in komutuna atanan bir karakterle başlayan tüm diziler, başka bir komuta atanmadıkları sürece fiilen undefined-key komutuna atanır.

spell-line (M-$) spell-word gibi girdi arabelleğindeki her sözcüğün yazımını düzeltmeye çalışır, ancak anahtarlar, ikameler ve benzerleriyle ilgili sorunları önlemek için ilk karakteri -, !, ^ veya % olan ya da \, * or ? içeren sözcükleri yoksayar. Bkz. Yazım düzeltme.

spell-word (M-s, M-S) Yazım düzeltme altında açıklandığı gibi mevcut sözcüğün yazımını düzeltmeye çalışır. Bir yol adı gibi görünen bir sözcüğün her bir bileşenini kontrol eder.

toggle-literal-history (M-r, M-R) Girdi arabelleğindeki geçmiş ikamelerini genişletir veya genişletilmemiş haline geri döndürür. Ayrıca bkz. expand-history ve autoexpand kabuk değişkeni.

undefined-key (atanmamış herhangi bir tuş) Bip sesi çıkarır.

up-history (up-arrow, ^P) Geçmiş listesindeki önceki girdiyi girdi arabelleğine kopyalar. histlit ayarlanmışsa, girdinin tam (literal) biçimini kullanır. En üstte durarak geçmiş listesinde yukarı doğru ilerlemek için tekrarlanabilir.

upcase-word (M-u, M-U) İmleçten mevcut sözcüğün sonuna kadar olan karakterleri büyük harfe dönüştürür. Sözcük sınırı davranışı vimode tarafından değiştirilir.

vi-beginning-of-next-word (atanmamış) Vi bir sonraki sözcüğün başına gider. Sözcük sınırı ve imleç davranışı vimode tarafından değiştirilir.

vi-eword (atanmamış) Vi mevcut sözcüğün sonuna gider. Sözcük sınırı davranışı vimode tarafından değiştirilir.

vi-search-back (?) Bir arama dizesi (history-search-backward gibi bir dosya kalıbı olabilir) için ? ile bilgi istemi sunar, onu arar ve girdi arabelleğine kopyalar. Eşleşme bulunamazsa zil çalar. Return tuşuna basılması aramayı sonlandırır ve son eşleşmeyi girdi arabelleğinde bırakır. Escape tuşuna basılması aramayı sonlandırır ve eşleşmeyi yürütür. Yalnızca vi modu.

vi-search-fwd (/) vi-search-back gibidir, ancak ileriye doğru arar.

which-command (M-?) Girdi arabelleğinin ilk sözcüğü üzerinde bir which işlemi (yerleşik komutun açıklamasına bakın) gerçekleştirir.

yank-pop (M-y) Bir yapıştırma (yank) veya başka bir yank-pop işleminden hemen sonra yürütüldüğünde, yapıştırılan dizeyi kesme halkasındaki (killring) bir önceki dizeyle değiştirir. Bu ayrıca kesme halkasını döndürme etkisine de sahiptir, böylece bu dize daha sonraki bir yank komutuyla en son kesilen dize olarak kabul edilecektir. yank-pop işleminin tekrarlanması, kesme halkası içinde istenilen sayıda tur atacaktır.

Sözcüksel yapı Kabuk, girdi satırlarını boşluklar ve sekmeler üzerinden sözcüklere böler. &, |, ;, <, >, ( ve ) özel karakterleri ile ikilenmiş &&, ||, << ve >> karakterleri, etraflarında boşluk olup olmadığına bakılmaksızın her zaman ayrı sözcüklerdir.

Kabuğun girdisi bir terminal olmadığında, # karakterinin bir yorum başlattığı kabul edilir. Her bir # karakteri ve göründüğü girdi satırının geri kalanı, daha fazla ayrıştırma yapılmadan önce atılır.

Özel bir karakterin (boşluk veya sekme dahil) özel anlamı olması, önüne bir ters eğik çizgi (\) getirilerek veya tek ('), çift (") ya da ters (`) tırnak içine alınarak engellenebilir ve muhtemelen başka bir sözcüğün parçası haline getirilebilir. Başka bir şekilde tırnak içine alınmadığı sürece, önüne \ getirilmiş bir yeni satır bir boşluğa eşdeğerdir, ancak tırnak içinde bu dizi bir yeni satırla sonuçlanır.

Ayrıca, Geçmiş ikamesi hariç tüm İkameler (aşağıya bakın), göründükleri dizeleri (veya dizelerin kısımlarını) tek tırnak içine alarak veya kritik karakterlerin (örneğin Değişken ikamesi veya Komut ikamesi için sırasıyla $ veya `) önüne \ getirilerek engellenebilir. (Takma ad ikamesi de bir istisna değildir: Bir takma ad tanımlanmış bir sözcüğün herhangi bir karakterini herhangi bir şekilde tırnak içine almak takma adın ikame edilmesini engeller. Bir takma adı tırnak içine almanın olağan yolu, önüne bir ters eğik çizgi getirmektir.) Geçmiş ikamesi ters eğik çizgilerle engellenir ancak tek tırnakla engellenmez. Çift veya ters tırnakla tırnak içine alınan dizeler Değişken ikamesine ve Komut ikamesine tabi tutulur, ancak diğer ikameler engellenir.

Tek veya çift tırnak içindeki metin tek bir sözcük (veya bir parçası) haline gelir. Boşluklar ve sekmeler dahil olmak üzere bu dizelerdeki meta karakterler ayrı sözcükler oluşturmaz. Yalnızca özel bir durumda (aşağıdaki Komut ikamesine bakın) çift tırnaklı bir dize birden fazla sözcüğün parçalarını üretebilir; tek tırnaklı dizeler bunu asla yapmaz. Ters tırnaklar özeldir: Birden fazla sözcükle sonuçlanabilen Komut ikamesini (bkz.) tetiklerler.

Quoting complex strings, particularly strings which themselves contain quoting characters, can be confusing. Remember that quotes need not be used as they are in human writing! It may be easier to quote not an entire string, but only those parts of the string which need quoting, using different types of quoting to do so if appropriate.

backslash_quote kabuk değişkeni (bkz.) ayarlanarak ters eğik çizgilerin her zaman \, ' ve " karakterlerini tırnak içine alması sağlanabilir. (+) Bu, karmaşık tırnak içine alma görevlerini kolaylaştırabilir, ancak csh(1) betiklerinde sözdizimi hatalarına neden olabilir.

İkameler Şimdi kabuğun girdi üzerinde gerçekleştirdiği çeşitli dönüşümleri gerçekleşme sırasıyla açıklayacağız. Geçerken ilgili veri yapılarını ve bunları etkileyen komutları ve değişkenleri not edeceğiz. İkamelerin, Sözcüksel yapı altında açıklandığı gibi tırnak içine alınarak engellenebileceğini unutmayın.

Geçmiş ikamesi Terminalden girilen her komut veya ``olay'', geçmiş listesinde saklanır. Önceki komut her zaman saklanır ve history kabuk değişkeni o kadar komutu saklamak için bir sayıya ayarlanabilir. histdup kabuk değişkeni, yinelenen olayları veya ardışık yinelenen olayları kaydetmemek üzere ayarlanabilir.

Saved commands are numbered sequentially from 1 and stamped with the time. It is not usually necessary to use event numbers, but the current event number can be made part of the prompt by placing an `!' in the prompt shell variable.

Kabuk aslında geçmişi genişletilmiş ve tam (genişletilmemiş) biçimlerde saklar. histlit kabuk değişkeni ayarlanmışsa, geçmişi görüntüleyen ve saklayan komutlar tam biçimi kullanır.

history yerleşik komutu geçmiş listesini herhangi bir zamanda yazdırabilir, bir dosyada saklayabilir, geri yükleyebilir ve temizleyebilir; savehist ve histfile kabuk değişkenleri ise geçmiş listesini oturum kapatıldığında otomatik olarak saklayacak ve oturum açıldığında geri yükleyecek şekilde ayarlanabilir.

Geçmiş ikameleri, geçmiş listesindeki sözcükleri girdi akışına dahil ederek komutları tekrarlamayı, önceki bir komutun argümanlarını mevcut komutta tekrarlamayı veya önceki komuttaki yazım hatalarını az yazarak ve yüksek bir güven derecesiyle düzeltmeyi kolaylaştırır.

Geçmiş ikameleri ! karakteriyle başlar. Girdi akışının any number of times'ında başlayabilirler ancak iç içe geçmezler. ! karakterinin özel anlamını önlemek için önüne bir \ getirilebilir; kolaylık sağlamak amacıyla, bir boşluk, sekme, yeni satır, = veya ( karakteriyle takip edildiğinde ! değiştirilmeden aktarılır. Bir girdi satırı ^ ile başladığında da geçmiş ikameleri gerçekleşir. Bu özel kısaltma daha sonra açıklanacaktır. Geçmiş ikamesini tetiklemek için kullanılan karakterler (! ve ^) histchars kabuk değişkeni ayarlanarak değiştirilebilir. Geçmiş ikamesi içeren herhangi bir girdi satırı yürütülmeden önce yazdırılır.

Bir geçmiş ikamesi, hangi olaydan sözcüklerin alınacağını gösteren bir olay belirteci'', seçilen olaydan belirli sözcükleri seçen bir sözcük belirteci'' ve/veya seçilen sözcükleri manipüle eden bir ``değiştirici'' içerebilir.

Bir olay belirteci şunlar olabilir:

n Belirli bir olaya atıfta bulunan bir sayı

  • -n: Geçerli olaydan n önceki olaya atıfta bulunan bir fark (offset)

Geçerli olay. Bu, özyineleme (recursion) kontrolü olmayan csh(1) içinde dikkatlice kullanılmalıdır. tcsh 10 düzey özyinelemeye izin verir. (+)

! Önceki olay (-1 ile eşdeğerdir) s İlk sözcüğü s dizesiyle başlayan en son olay ?s? s dizesini içeren en son olay. İkinci ? işareti, hemen ardından bir yeni satır geliyorsa atlanabilir.

Örneğin, birinin geçmiş listesinden şu kesite bakın:

9 8:30 nroff -man wumpus.man 10 8:31 cp wumpus.man wumpus.man.old 11 8:36 vi wumpus.man 12 8:37 diff wumpus.man.old wumpus.man

Komutlar olay numaraları ve zaman damgalarıyla gösterilmiştir. Henüz yazmadığımız geçerli olay 13. olaydır. !11 ve !-2 ifadeleri 11. olaya atıfta bulunur. !! ifadesi önceki olay olan 12'ye atıfta bulunur. !! ifadesi, ardından : gelirse ! olarak kısaltılabilir (: aşağıda açıklanmıştır). !n ifadesi, n ile başlayan 9. olaya atıfta verir. !?old? ifadesi de old içeren 12. olaya atıfta bulunur. Sözcük belirteçleri veya değiştiriciler olmadan geçmiş referansları basitçe tüm olaya genişler, bu nedenle kopyalama komutunu yeniden yapmak için !cp veya diff çıktısı ekranın üstünden kaydıysa !!|more yazabiliriz.

Geçmiş referansları, gerekirse süslü parantezler kullanılarak etrafındaki metinden yalıtılabilir. Örneğin, !vdoc ifadesi vdoc ile başlayan bir komut arar ve bu örnekte bulamaz, ancak !{v}doc ifadesi belirsizlik olmadan vi wumpus.mandoc olarak genişler. Süslü parantez içinde bile geçmiş ikameleri iç içe geçmez.

(+) csh(1) örneğin !3d ifadesini arkasına d harfi eklenmiş olay 3'e genişletirken, tcsh bunu 3d ile başlayan son olaya genişletir; yalnızca tamamen sayısal argümanlar olay numarası olarak kabul edilir. Bu, sayılarla başlayan olayları geri çağırmayı mümkün kılar. !3d ifadesini csh(1) uygulamasındaki gibi genişletmek için !{3}d deyin.

To select words from an event we can follow the event specification by a `:' and a designator for the desired words. The words of an input line are numbered from 0, the first (usually command) word being 0, the second word (first argument) being 1, etc. The basic word designators are:

0 İlk (komut) sözcük n n. argüman ^ İlk argüman, 1 ile eşdeğerdir $ Son argüman % Bir ?s? aramasıyla eşleşen sözcük x-y Sözcük aralığı

  • -y: 0-y ile eşdeğerdir
  •   `^-$` ile eşdeğerdir, ancak olay yalnızca 1 sözcük içeriyorsa hiçbir şey döndürmez
    

x* x-$ ile eşdeğerdir x- x* gibidir, ancak son sözcük ($) hariç tutulur

Selected words are inserted into the command line separated by single blanks. For example, the diff' command in the previous example might have been typed as diff !!:1.old !!:1' (using :1' to select the first argument from the previous event) or diff !-2:2 !-2:1' to select and swap the arguments from the cp' command. If we didn't care about the order of the diff' we might have said diff !-2:1-2' or simply diff !-2:*'. The cp' command might have been written cp wumpus.man !#:1.old', using #' to refer to the current event. !n:-hurkle.man' would reuse the first two words from the nroff' command to say nroff -man hurkle.man'.

Olay belirtecini sözcük belirtecinden ayıran : işareti, argüman seçici bir ^, $, *, % veya - ile başlıyorsa atlanabilir. Örneğin, diff komutumuz diff !!^.old !!^ veya eşdeğer şekilde diff !!$.old !!$ olabilirdi. Ancak, !! ifadesi ! olarak kısaltılırsa, - ile başlayan bir argüman seçici olay belirteci olarak yorumlanacaktır.

A history reference may have a word designator but no event specification. It then references the previous command. Continuing our diff' example, we could have said simply diff !^.old !^' or, to get the arguments in the opposite order, just `diff !*'.

Bir geçmiş referansındaki sözcük veya sözcükler, ardından bir veya daha fazla değiştirici getirilerek düzenlenebilir veya ``değiştirilebilir'', her birinin önüne bir : gelir:

h Sondaki yol adı bileşenini kaldırarak baş kısmı bırakır. t Tüm baştaki yol adı bileşenlerini kaldırarak kuyruk kısmı bırakır. r Dosya adı uzantısını .xxx kaldırarak kök adı bırakır. e Uzantı dışındaki her şeyi kaldırır. u İlk küçük harfi büyük harfe dönüştürür. l İlk büyük harfi küçük harfe dönüştürür. s/l/r/ l yerine r ikame eder. l, tıpkı r gibi düz bir dizedir, aynı adlı ed(1) komutundaki gibi bir düzenli ifade (regular expression) değildir. / yerine herhangi bir karakter sınırlayıcı olarak kullanılabilir; l ve r içinde sınırlayıcıyı kaçırmak için \ kullanılabilir. r içindeki & karakteri l ile değiştirilir; \ ayrıca & işaretini de kaçırır. l boşsa (""), önceki bir ikameden alınan l veya önceki bir aramadan ya da olay belirtecindeki olay numarasından alınan s kullanılır. Sondaki sınırlayıcı, hemen ardından bir yeni satır geliyorsa atlanabilir. & Önceki ikameyi tekrarlar. g Aşağıdaki değiştiriciyi her bir sözcüğe bir kez uygular. a (+) Aşağıdaki değiştiriciyi tek bir sözcüğe mümkün olduğunca çok kez uygular. 'a' ve 'g' bir değiştiriciyi küresel olarak uygulamak için birlikte kullanılabilir. 's' değiştiricisi ile, yalnızca orijinal sözcükte bulunan şablonlar ikame edilir, herhangi bir ikame sonucunu içeren şablonlar değil. p Yeni komut satırını yazdırır ancak yürütmez. q İkame edilen sözcükleri tırnak içine alarak daha fazla ikameyi engeller. x q gibidir, ancak boşluklar, sekmeler ve yeni satırlarda sözcüklere böler.

Modifiers are applied to only the first modifiable word (unless `g' is used). It is an error for no word to be modifiable.

Örneğin, diff komutu, aynı satırdaki ilk argümandan (!#^) .old kısmını kaldırmak için :r kullanılarak diff wumpus.man.old !#^:r şeklinde yazılmış olabilirdi. echo hello out there dedikten sonra, hello sözcüğünü büyük harfle başlatmak için echo !*:u yazabilir, bunu yüksek sesle söylemek için echo !*:au veya gerçekten bağırmak için echo !*:agu diyebilirdik. mail -s "I forgot my password" rot komutunu, root yazımını düzeltmek için !:s/rot/root ile takip edebilirdik (ancak farklı bir yaklaşım için bkz. Yazım düzeltme).

İkameler için özel bir kısaltma vardır. Girdi satırındaki ilk karakter olduğunda ^, !:s^ ifadesine eşdeğerdir. Böylece önceki örnekteki yazım düzeltmesini yapmak için ^rot^root diyebilirdik. Bu, açıkça ! ile başlamayan tek geçmiş ikamesidir.

(+) Csh uygulamasında, her geçmiş veya değişken genişletmesine yalnızca tek bir değiştirici (modifier) uygulanabilir. tcsh uygulamasında birden fazlası kullanılabilir, örneğin

% mv wumpus.man /usr/man/man1/wumpus.1 % man !$:t:r man wumpus

csh uygulamasında sonuç wumpus.1:r olurdu. İki nokta üst üste ile takip edilen bir ikameyi ondan küme parantezleri ile yalıtmak gerekebilir:

mv a.out /usr/games/wumpus setenv PATH !$:h:$PATH Bad ! modifier: $. setenv PATH !{-2$:h}:$PATH setenv PATH /usr/games:/bin:/usr/bin:.

İlk deneme csh uygulamasında başarılı olur ancak tcsh uygulamasında başarısız olur, çünkü tcsh ikinci iki nokta üst üste işaretinden sonra $ yerine başka bir değiştirici bekler.

Son olarak, geçmişe, az önce açıklanan ikamelerin yanı sıra düzenleyici aracılığıyla da erişilebilir. up-history ve down-history, history-search-backward ve -forward, i-search-back and -fwd, vi-search-back and -fwd, copy-prev-word ve insert-last-word düzenleyici komutları geçmiş listesindeki olayları arar ve bunları girdi arabelleğine kopyalar. toggle-literal-history düzenleyici komutu, girdi arabelleğindeki geçmiş satırlarının genişletilmiş ve tam (literal) biçimleri arasında geçiş yapar. expand-history ve expand-line sırasıyla mevcut sözcükteki ve tüm girdi arabelleğindeki geçmiş ikamelerini genişletir.

Alias (Takma Ad) ikamesi Kabuk, alias ve unalias komutlarıyla ayarlanabilen, kaldırılabilen ve yazdırılabilen bir takma ad listesi tutar. Bir komut satırı basit komutlara ayrıştırıldıktan sonra (bkz. Komutlar), her komutun ilk sözcüğü, soldan sağa doğru, bir takma adı olup olmadığını kontrol etmek için incelenir. Eğer varsa, ilk sözcük takma adla değiştirilir. Takma ad bir geçmiş referansı içeriyorsa, orijinal komut bir önceki girdi satırıymış gibi Geçmiş ikamesine (bkz.) tabi tutulur. Takma ad bir geçmiş referansı içermiyorsa, argüman listesi el değmeden bırakılır.

Böylece ls için takma ad ls -l ise ls /usr komutu ls -l /usr haline gelir ve buradaki argüman listesi bozulmaz. Eğer lookup için takma ad grep !^ /etc/passwd ise lookup bill komutu grep bill /etc/passwd haline gelir. Takma adlar, ayrıştırıcı meta-sözdizimini (metasyntax) tanıtmak için kullanılabilir. Örneğin, alias print 'pr \!* | lpr', argümanlarını satır yazıcısına pr(1) ile gönderen bir ``komut'' (print) tanımlar.

Takma ad ikamesi, komutun ilk sözcüğünün bir takma adı kalmayana kadar tekrarlanır. Bir takma ad ikamesi ilk sözcüğü değiştirmiyorsa (önceki örnekte olduğu gibi), bir döngüyü önlemek için işaretlenir. Diğer döngüler algılanır ve bir hataya neden olur.

Bazı takma adlar kabuk tarafından kullanılır; bkz. Özel takma adlar.

Değişken ikamesi Kabuk, her birinin değeri sıfır veya daha fazla sözcükten oluşan bir liste olan değişkenlerin bir listesini tutar. Kabuk değişkenlerinin değerleri set ve unset komutlarıyla görüntülenebilir ve değiştirilebilir. Sistem kendi ``çevre'' (environment) değişkenleri listesini tutar. Bunlar printenv, setenv ve unsetenv ile görüntülenebilir ve değiştirilebilir.

(+) Değişkenler set -r (bkz.) ile salt okunur (read-only) hale getirilebilir. Salt okunur değişkenler değiştirilemez veya kaldırılamaz; bunu yapmaya çalışmak bir hataya neden olur. Salt okunur yapıldıktan sonra bir değişken yazılabilir hale getirilemez, bu nedenle set -r dikkatle kullanılmalıdır. Çevre değişkenleri salt okunur yapılamaz.

Bazı değişkenler kabuk tarafından ayarlanır veya kabuk tarafından referans alınır. Örneğin, argv değişkeni kabuğun argüman listesinin bir kopyasıdır ve bu değişkenin değerindeki sözcüklere özel şekillerde atıfta bulunulur. Kabuk tarafından atıfta bulunulan bazı değişkenler geçiş anahtarıdır (toggles); kabuk bunların değerinin ne olduğuyla ilgilenmez, yalnızca ayarlanıp ayarlanmadığına bakar. Örneğin, verbose değişkeni, komut girdisinin ekrana yansıtılmasını sağlayan bir geçiş anahtarıdır. -v komut satırı seçeneği bu değişkeni ayarlar. Özel kabuk değişkenleri, kabuk tarafından atıfta bulunulan tüm değişkenleri listeler.

Diğer işlemler değişkenleri sayısal olarak ele alır. @ komutu sayısal hesaplamaların yapılmasını ve sonucun bir değişkene atanmasını sağlar. Değişken değerleri ise her zaman (sıfır veya daha fazla) dize olarak temsil edilir. Sayısal işlemler amacıyla boş dize sıfır olarak kabul edilir ve çok sözcüklü değerlerin ikinci ve sonraki sözcükleri yoksayılır.

Girdi satırı takma adlandırıldıktan ve ayrıştırıldıktan sonra ve her komut yürütülmeden önce, $ karakterleriyle tetiklenen değişken ikamesi gerçekleştirilir. Bu genişletme, her zaman gerçekleştiği " işaretleri içi hariç ve hiçbir zaman gerçekleşmediği ' işaretleri içi hariç, $ işaretinin önüne bir \ getirilerek önlenebilir. ``' ile tırnak içine alınan dizeler daha sonra yorumlanır (bkz. aşağıdaki Komut ikamesi), bu nedenle orada $ ikamesi, gerçekleşirse daha sonraya kadar gerçekleşmez. Bir $ işareti, ardından bir boşluk, sekme veya satır sonu gelirse değiştirilmeden aktarılır.

Giriş/Çıkış yönlendirmeleri değişken genişletilmesinden önce algılanır ve ayrı olarak değişken genişletilmesine tabi tutulur. Aksi takdirde, komut adı ve tüm argüman listesi birlikte genişletilir. Dolayısıyla (bu noktaya kadar olan) ilk (komut) sözcüğün birden fazla sözcük üretmesi mümkündür; bunlardan ilki komut adı olur ve geri kalanı argümanlar haline gelir.

" içine alınmadıkça veya :q değiştiricisi verilmedikçe, değişken ikamesinin sonuçları en nihayetinde komut ve dosya adı ikamesine tabi tutulabilir. " içinde, değeri birden fazla sözcükten oluşan bir değişken, değişken değerinin sözcükleri boşluklarla ayrılmış olarak tek bir sözcüğün (bir kısmına) genişler. Bir ikameye :q değiştiricisi uygulandığında, değişken, her bir sözcük bir boşlukla ayrılmış ve daha sonraki komut veya dosya adı ikamesini önlemek için tırnak içine edilmiş olarak birden fazla sözcüğe genişler.

Kabuk girdisine değişken değerlerini dahil etmek için aşağıdaki meta diziler sağlanmıştır. Belirtilenler dışında, ayarlanmamış bir değişkene atıfta bulunmak bir hatadır.

$name ${name} Değişken name değerinin sözcüklerini, her biri bir boşlukla ayrılmış olarak ikame eder. Süslü parantezler, name değişkenini aksi takdirde onun bir parçası olacak olan sonraki karakterlerden yalıtır. Kabuk değişkenleri, bir harfle başlayan harf ve rakamlardan oluşan adlara sahiptir. Alt çizgi karakteri bir harf olarak kabul edilir. Eğer name bir kabuk değişkeni değilse ancak çevrede ayarlanmışsa, o değer döndürülür (ancak aşağıda verilen bazı diğer biçimler bu durumda kullanılamaz). $name[selector] ${name[selector]} Değişken name değerinden yalnızca seçilen sözcükleri ikame eder. Seçici $ ikamesine tabi tutulur ve tek bir sayıdan veya - ile ayrılmış iki sayıdan oluşabilir. Bir değişkenin değerindeki ilk sözcük 1 olarak numaralandırılır. Bir aralığın ilk sayısı atlanırsa varsayılan olarak 1 alınır. Bir aralığın son üyesi atlanırsa varsayılan olarak $#name alınır. * seçici tüm sözcükleri seçer. İkinci argüman atlanmışsa veya aralıktaysa, bir aralığın boş olması bir hata değildir. $0 Komut girdisinin okunduğu dosyanın adını ikame eder. Ad bilinmiyorsa bir hata oluşur. $number ${number} $argv[number] ifadesine eşdeğerdir. $* $argv ifadesine eşdeğerdir, bu da $argv[*] ifadesine eşdeğerdir.

Geçmiş ikamesi altında açıklanan : değiştiricileri, :p hariç, yukarıdaki ikamelere uygulanabilir. Birden fazlası kullanılabilir. (+) Geçmiş ikamesinde olduğu gibi (bkz.), bir değişken ikamesini gerçek bir iki nokta üst üste işaretinden yalıtmak için süslü parantezler gerekebilir; tüm değiştiriciler süslü parantezlerin içinde görünmelidir.

Aşağıdaki ikameler : değiştiricileri ile değiştirilemez.

$?name ${?name} name ayarlanmışsa 1 dizesini, ayarlanmamışsa 0 dizesini ikame eder. $?0 Mevcut girdi dosya adı biliniyorsa 1 dizesini, bilinmiyorsa 0 dizesini ikame eder. Etkileşimli kabuklarda her zaman 0 olur. $#name ${#name} name içindeki sözcük sayısını ikame eder. $# $#argv ifadesine eşdeğerdir. (+) $%name ${%name} name içindeki karakter sayısını ikame eder. (+) $%number ${%number} $argv[number] içindeki karakter sayısını ikame eder. (+) $? $status ifadesine eşdeğerdir. (+) $$ (Ana) kabuğun (ondalık) süreç numarasını ikame eder. $! Bu kabuk tarafından başlatılan son arka plan sürecinin (ondalık) süreç numarasını ikame eder. (+) $_ Yürütülen son komutun komut satırını ikame eder. (+) $< Standart girdiden bir satır ikame eder ve sonrasında başka bir yorumlama yapılmaz. Bir kabuk betiğinde klavyeden okuma yapmak için kullanılabilir. (+) csh her zaman < ifadesini sanki $<:q ifadesine eşdeğermiş gibi tırnak içine alırken, tcsh bunu yapmaz. Ayrıca, tcsh bir satırın yazılmasını beklerken kullanıcı, satırın ikame edileceği diziyi kesintiye uğratmak için bir kesme sinyali (interrupt) gönderebilir, ancak csh buna izin vermez.

Düzenleyici komutu expand-variables, normalde ^X-$ tuşuna atanmıştır, bireysel değişkenleri etkileşimli olarak genişletmek için kullanılabilir.

Komut, dosya adı ve dizin yığını ikamesi Geri kalan ikameler, yerleşik komutların argümanlarına seçici olarak uygulanır. Bu, ifadelerin değerlendirilmeyen kısımlarının bu genişletmelere tabi tutulmadığı anlamına gelir. Kabuğun dahili olmayan komutları için, komut adı argüman listesinden ayrı olarak ikame edilir. Bu işlem çok geç, giriş-çıkış yönlendirmesi yapıldıktan sonra ve ana kabuğun bir alt sürecinde (child) gerçekleşir.

Komut ikamesi Komut ikamesi, `` içinde yer alan bir komutla belirtilir. Böyle bir komutun çıktısı boşluklar, sekmeler ve yeni satır karakterlerinde ayrı sözcüklere bölünür ve boş sözcükler atılır. Çıktı, değişken ve komut ikamesine tabi tutulur ve orijinal dizenin yerine yerleştirilir.

Çift tırnak (") içindeki komut ikameleri boşlukları ve sekmeleri korur; yalnızca yeni satırlar yeni sözcüklere zorlar. Tek nihai yeni satır hiçbir durumda yeni bir sözcüğe zorlamaz. Dolayısıyla, komut tam bir satır çıktı verse bile, bir komut ikamesinin bir sözcüğün yalnızca bir kısmını üretmesi mümkündür.

Varsayılan olarak, sürüm 6.12'den beri kabuk, komuttaki tüm yeni satır ve satır başı karakterlerini boşluklarla değiştirir. Bu, csubstnonl değişkeninin kaldırılmasıyla kapatılırsa, yeni satırlar komutları her zamanki gibi ayırır.

Dosya adı ikamesi Bir sözcük *, ?, [ veya { karakterlerinden herhangi birini içeriyorsa veya ~ karakteriyle başlıyorsa, globbing'' olarak da bilinen dosya adı ikamesi için bir adaydır. Bu sözcük daha sonra bir kalıp (dosya kalıbı'') olarak kabul edilir ve kalıpla eşleşen dosya adlarının alfabetik olarak sıralanmış bir listesiyle değiştirilir.

Dosya adlarını eşleştirirken, bir dosya adının başındaki veya hemen bir / işaretini takip eden . karakteri ile / karakteri açıkça eşleştirilmelidir (globdot veya globstar ya da her ikisi birden ayarlanmadıkça(+)). * karakteri, boş dize dahil olmak üzere herhangi bir karakter dizisiyle eşleşir. ? karakteri herhangi bir tek karakterle eşleşir. [...] dizisi, köşeli parantez içine alınan karakterlerden herhangi biriyle eşleşir. [...] içinde, - ile ayrılmış bir karakter çifti, bu ikisi arasındaki sözlüksel olarak herhangi bir karakterle eşleşir.

(+) Bazı dosya kalıpları olumsuzlanabilir (negated): [^...] dizisi, köşeli parantez içindeki karakterler ve/veya karakter aralıkları tarafından belirtilmeyen herhangi bir tek karakterle eşleşir.

Tüm bir dosya kalıbı da ^ ile olumsuzlanabilir:

echo * bang crash crunch ouch echo ^cr* bang ouch

?, * veya [] kullanmayan ya da {} veya ~ (aşağıda) kullanan dosya kalıpları doğru şekilde olumsuzlanamaz.

a{b,c,d}e meta gösterimi abe ace ade için bir kısaltmadır. Soldan sağa sıra korunur: /usr/source/s1/{oldls,ls}.c ifadesi /usr/source/s1/oldls.c /usr/source/s1/ls.c olarak genişler. Eşleşme sonuçları, bu sırayı korumak için düşük bir seviyede ayrı olarak sıralanır: ../{memo,*box} ifadesi ../memo ../box ../mbox olarak genişleyebilir. (memo ifadesinin *box eşleşmesinin sonuçlarıyla birlikte sıralanmadığına dikkat edin.) Bu yapının mevcut olmayan dosyalara genişlemesi bir hata değildir, ancak genişletilmiş listenin aktarıldığı bir komuttan hata almak mümkündür. Bu yapı iç içe yerleştirilebilir. Özel bir durum olarak {, } ve {} sözcükleri bozulmadan aktarılır.

Bir dosya adının başındaki ~ karakteri ev dizinlerine atıfta bulunur. Tek başına durduğunda, yani ~, home kabuk değişkeninin değerinde yansıtıldığı gibi çağıranın ev dizinine genişler. Harfler, rakamlar ve - karakterlerinden oluşan bir adla takip edildiğinde, kabuk bu ada sahip bir kullanıcıyı arar ve onun ev dizinini ikame eder; böylece ~ken ifadesi /usr/ken olarak ve ~ken/chmach ifadesi /usr/ken/chmach olarak genişleyebilir. Eğer ~ karakterini bir harf veya / dışında bir karakter takip ederse veya bir sözcüğün başından başka bir yerde görünürse, bozulmadan bırakılır. Bu nedenle setenv MANPATH /usr/man:/usr/local/man:~/lib/man gibi bir komut, umulduğu gibi ev dizini ikamesi yapmaz.

^ ile veya ^ olmadan *, ?, [ veya ~ içeren bir dosya kalıbının hiçbir dosya ile eşleşmemesi bir hatadır. Ancak, bir dosya kalıbı listesindeki yalnızca tek bir kalıbın bir dosya ile eşleşmesi yeterlidir (böylece, örneğin, rm *.a *.c *.o komutu yalnızca geçerli dizinde .a, .c veya .o ile biten hiçbir dosya yoksa başarısız olur) ve nonomatch kabuk değişkeni ayarlanmışsa hiçbir şeyle eşleşmeyen bir kalıp (veya kalıp listesi) bir hataya neden olmak yerine değiştirilmeden bırakılır.

globstar kabuk değişkeni, herhangi bir mevcut alt dizini yinelemeli (recursive) olarak tarayarak / dahil herhangi bir karakter dizisiyle eşleşen bir dosya kalıbı olarak ** veya *** kullanımına izin vermek için ayarlanabilir. Örneğin, ls **.c geçerli dizin ağacındaki tüm .c dosyalarını listeleyecektir. Tek başına kullanılırsa, sıfır veya daha fazla alt dizinle eşleşecektir (örneğin, ls /usr/include/**/time.h /usr/include dizin ağacında time.h adlı herhangi bir dosyayı listeleyecektir; ls /usr/include/**time.h /usr/include dizin ağacında time.h ile biten herhangi bir dosyayla eşleşecektir; ve ls /usr/include/**time**.h ise bir alt dizin adında veya dosya adının kendisinde time geçen herhangi bir .h dosyasıyla eşleşecektir). Yineleme ile ilgili sorunları önlemek için, ** dosya kalıbı bir dizin içeren bir sembolik bağın (symbolic link) içine inmeyecektir. Bunu geçersiz kılmak için *** kullanın. (+)

noglob kabuk değişkeni dosya adı ikamesini önlemek için ayarlanabilir ve normalde ^X-* tuşuna atanan expand-glob düzenleyici komutu, bireysel dosya adı ikamelerini etkileşimli olarak genişletmek için kullanılabilir.

Dizin yığını ikamesi (+) Dizin yığını, pushd, popd ve dirs yerleşik komutları (bkz.) tarafından kullanılan, sıfırdan başlayarak numaralandırılmış bir dizin listesidir. dirs dizin yığınını istediğiniz zaman yazdırabilir, bir dosyada saklayabilir, geri yükleyebilir ve temizleyebilir; savedirs ve dirsfile kabuk değişkenleri ise oturum kapatıldığında dizin yığınını otomatik olarak saklayacak ve oturum açıldığında geri yükleyecek şekilde ayarlanabilir. dirstack kabuk değişkeni dizin yığınını incelemek için görüntülenebilir ve dizin yığınına rastgele dizinler koymak için ayarlanabilir.

= karakterini takip eden bir veya daha fazla rakam, dizin yığınındaki bir girdiye genişler. Özel durum olan =- yığındaki son dizine genişler. Örneğin,

dirs -v 0 /usr/bin 1 /usr/spool/uucp 2 /usr/accts/sys echo =1 /usr/spool/uucp echo =0/calendar /usr/bin/calendar echo =- /usr/accts/sys

noglob ve nonomatch kabuk değişkenleri ile expand-glob düzenleyici komutu, dosya adlarının yanı sıra dizin yığını ikameleri için de geçerlidir.

Diğer ikameler (+) Dosya adlarıyla ilgili olan, yukarıdakilerle kesin olarak ilişkili olmayan ancak eksiksiz olması açısından burada bahsedilen birkaç dönüşüm daha vardır. symlinks değişkeni (bkz.) expand olarak ayarlandığında herhangi bir dosya adı tam bir yola genişletilebilir. Tırnak içine alma bu genişletmeyi önler ve normalize-path düzenleyici komutu bunu talep üzerine yapar. normalize-command düzenleyici komutu, PATH içindeki komutları talep üzerine tam yollara genişletir. Son olarak, cd ve pushd, - karakterini eski çalışma dizini (owd kabuk değişkenine eşdeğer) olarak yorumlar. Bu bir ikame değil, yalnızca bu komutlar tarafından tanınan bir kısaltmadır. Yine de, bu da tırnak içine alınarak önlenebilir.

Komutlar Sonraki üç bölüm kabuğun komutları nasıl yürüttüğünü ve bunların girdi ve çıktılarıyla nasıl ilgilendiğini açıklamaktadır.

Basit komutlar, boru hatları (pipelines) ve diziler Basit bir komut, ilki yürütülecek komutu belirten bir sözcük dizisidir. | karakterleriyle birleştirilen bir dizi basit komut bir boru hattı (pipeline) oluşturur. Bir boru hattındaki her komutun çıktısı, bir sonrakinin girdisine bağlanır.

Basit komutlar ve boru hatları ; ile diziler halinde birleştirilebilir ve sırayla yürütülür. Komutlar ve boru hatları, C dilinde olduğu gibi, ikincisinin yalnızca birincisi sırasıyla başarısız olursa veya başarılı olursa yürütüleceğini belirtmek üzere || veya && ile diziler halinde de birleştirilebilir.

Basit bir komut, boru hattı veya dizi, bir boru hattının veya dizinin bir bileşeni olabilen basit bir komut oluşturmak üzere parantez () içine alınabilir. Bir komut, boru hattı veya dizi, sonuna bir & getirilerek sonlanması beklenmeden yürütülebilir.

Yerleşik (Builtin) ve yerleşik olmayan komutların yürütülmesi Yerleşik komutlar kabuk içinde yürütülür. Sonuncu hariç bir boru hattının herhangi bir bileşeni yerleşik bir komut ise, boru hattı bir alt kabukta (subshell) yürütülür.

Parantez içindeki komutlar her zaman bir alt kabukta yürütülür.

(cd; pwd); pwd

böylece sizi olduğunuz yerde bırakarak (bunu ev dizininden sonra yazdırarak) ev dizinini yazdırırken,

cd; pwd

sizi ev dizininde bırakır. Parantez içindeki komutlar çoğunlukla cd komutunun mevcut kabuğu etkilemesini önlemek için kullanılır.

Yürütülecek bir komutun yerleşik bir komut olmadığı anlaşıldığında, kabuk komutu execve(2) aracılığıyla yürütmeye çalışır. path değişkenindeki her sözcük, kabuğun komutu arayacağı bir dizini belirtir. Kabuğa -f seçeneği verilmemişse, kabuk bu dizinlerdeki adları dahili bir tabloya eşler (hash), böylece yalnızca komutun orada bulunma olasılığı olan bir dizinde execve(2) denemesi yapar. Bu, arama yolunda çok sayıda dizin bulunduğunda komut konumlandırmayı büyük ölçüde hızlandırır. Bu eşleme (hashing) mekanizması şu durumlarda kullanılmaz:

  1. Eşleme unhash aracılığıyla açıkça kapatılmışsa.

  2. Kabuğa bir -f argümanı verilmişse.

  3. path değişkeninin / ile başlamayan her dizin bileşeni için.

  4. Komut bir / içeriyorsa.

Yukarıdaki dört durumda kabuk, yürütmeye çalışacağı bir dosyanın yol adını oluşturmak için yol vektörünün her bir bileşenini verilen komut adıyla birleştirir. Yürütme başarılı olursa arama durur.

Dosya yürütme izinlerine sahipse ancak sistem için yürütülebilir bir dosya değilse (yani ne yürütülebilir bir ikili dosya ne de yorumlayıcısını belirten bir betik ise), kabuk komutları içeren bir dosya olduğu varsayılır ve bunu okumak için yeni bir kabuk oluşturulur (spawned). Kabuktan başka bir yorumlayıcı belirtmek için kabuk özel takma adı ayarlanabilir.

#! betik yorumlayıcı kuralını anlamayan sistemlerde, kabuk bunu taklit edecek şekilde derlenebilir; bkz. version kabuk değişkeni. Eğer öyleyse, kabuk dosyanın ilk satırını #!interpreter arg ... biçiminde olup olmadığını kontrol eder. Eğer öyleyse, kabuk verilen argümanlarla yorumlayıcıyı başlatır ve dosyayı standart girdiden ona besler.

Giriş/Çıkış Bir komutun standart girdisi ve standart çıktısı aşağıdaki sözdizimi ile yönlendirilebilir:

< name Standart girdi olarak (ilk olarak değişken, komut ve dosya adı genişletilmiş olan) name dosyasını açar. << word word ifadesiyle özdeş bir satıra kadar kabuk girdisini okur. word değişken, dosya adı veya komut ikamesine tabi tutulmaz ve bu girdi satırında herhangi bir ikame yapılmadan önce her girdi satırı word ile karşılaştırılır. word içinde bir \, ", ' veya tırnak işareti görünmedikçe, aradaki satırlarda değişken ve komut ikamesi gerçekleştirilir ve `\` işaretinin `$`, `\` ve işaretlerini kaçırmasına izin verilir. İkame edilen komutların tüm boşlukları, sekmeleri ve yeni satırları korunur, ancak sondaki yeni satır atılır. Sonuçta ortaya çıkan metin, komuta standart girdi olarak verilen anonim bir geçici dosyaya yerleştirilir.

name ! name & name &! name name dosyası standart çıktı olarak kullanılır. Dosya mevcut değilse oluşturulur; dosya mevcutsa kırpılır (truncated), önceki içeriği kaybolur.

noclobber kabuk değişkeni ayarlanmışsa, dosya mevcut olmamalıdır veya bir karakter özel dosyası (örneğin bir terminal veya /dev/null) olmalıdır, aksi takdirde bir hata oluşur. Bu, dosyaların kazara yok edilmesini önlemeye yardımcı olur. Bu durumda, bu kontrolü bastırmak için ! içeren biçimler kullanılabilir. noclobber içinde notempty verilmişse, boş dosyalarda > işlemine izin verilir; ask ayarlanmışsa, bir hata yerine etkileşimli bir onay sunulur.

& içeren biçimler, teşhis (diagnostic/stderr) çıktısını da standart çıktıyla birlikte belirtilen dosyaya yönlendirir. name, < girdi dosya adlarıyla aynı şekilde genişletilir.

name & name ! name &! name > gibidir, ancak çıktıyı name dosyasının sonuna ekler (append). noclobber kabuk değişkeni ayarlanmışsa, ! içeren biçimlerden biri verilmedikçe dosyanın mevcut olmaması bir hatadır.

Bir komut, kabuğun çağrıldığı ortamı, giriş-çıkış parametreleri ve komutun bir boru hattında bulunmasıyla değiştirilmiş olarak alır. Dolayısıyla, önceki bazı kabukların aksine, kabuk komutları içeren bir dosyadan çalıştırılan komutlar varsayılan olarak komutların metnine erişemez; bunun yerine kabuğun orijinal standart girdisini alırlar. Satır içi verileri sunmak için << mekanizması kullanılmalıdır. Bu, kabuk komut betiklerinin boru hatlarının bileşenleri olarak işlev görmesini sağlar ve kabuğun girdisini bloklar halinde okumasına izin verir. Bağlantısı kesilmiş (detached) olarak çalıştırılan bir komut için varsayılan standart girdinin boş /dev/null dosyası değil, kabuğun orijinal standart girdisi olduğuna dikkat edilmelidir. Eğer bu bir terminal ise ve süreç terminalden okumaya çalışırsa, süreç bloke olur ve kullanıcı bilgilendirilir (bkz. İşler).

Teşhis çıktısı, standart çıktıyla birlikte bir boru hattı üzerinden yönlendirilebilir. Sadece | yerine |& biçimini kullanın.

Kabuk şu anda standart çıktıyı da yönlendirmeden teşhis çıktısını tek başına yönlendiremez, ancak (komut > cikis-dosyasi) >& hata-dosyasi genellikle kabul edilebilir bir geçici çözümdür. Çıktıyı terminale göndermek için cikis-dosyasi veya hata-dosyasi /dev/tty olabilir.

Özellikler Kabuğun komut satırlarını nasıl kabul ettiğini, ayrıştırdığını ve yürüttüğünü açıkladıktan sonra, şimdi onun çeşitli yararlı özelliklerine dönüyoruz.

Denetim akışı Kabuk, komut dosyalarında (kabuk betikleri) ve (sınırlı ancak yararlı yollarla) terminal girdisinden denetim akışını düzenlemek için kullanılabilen bir dizi komut içerir. Bu komutların tümü kabuğu girdisinde yeniden okumaya veya atlamaya zorlayarak çalışır ve uygulamadan dolayı bazı komutların yerleşimini kısıtlar.

foreach, switch ve while ifadelerinin yanı sıra if ifadesinin if-then-else biçimi, ana anahtar sözcüklerin aşağıda gösterildiği gibi bir girdi satırında tek bir basit komut içinde görünmesini gerektirir.

Kabuğun girdisi aranabilir (seekable) değilse, kabuk bir döngü okunduğunda girdiyi arabelleğe alır ve döngünün gerektirdiği yeniden okumayı gerçekleştirmek için bu dahili arabellekte aramalar yapar. (Bunun izin verdiği ölçüde, aranabilir olmayan girdilerde geriye doğru gitmeler [gotos] başarılı olacaktır.)

İfadeler if, while ve exit yerleşik komutları ortak bir sözdizimine sahip ifadeler kullanır. İfadeler, sonraki üç bölümde açıklanan operatörlerden herhangi birini içerebilir. Yerleşik @ komutunun (bkz.) kendi ayrı sözdizimine sahip olduğuna dikkat edilmelidir.

Mantıksal, aritmetik ve karşılaştırma operatörleri Bu operatörler C dilindekilere benzer ve aynı önceliğe sahiptir. Şunları içerirler:

|| && | ^ & == != =~ !~ <= >= < > << >> + - * / % ! ~ ( )

Burada öncelik sağa doğru artar; == != =~ ve !~, <= >= < ve >, << ve >>, + ve -, * / ve % gruplar halinde aynı seviyededir. == != =~ ve !~ operatörleri argümanlarını dize olarak karşılaştırır; diğer tüm operatörler sayılar üzerinde çalışır. =~ ve !~ operatörleri, sağ tarafın, sol tarafındaki terimin eşleştirildiği bir dosya kalıbı (bkz. Dosya adı ikamesi) olması dışında != ve == gibidir. Bu, gerçekten tek gereken şablon eşleştirme olduğunda kabuk betiklerinde yerleşik switch komutunun kullanılması ihtiyacını azaltır.

Boş veya eksik argümanlar 0 olarak kabul edilir. Tüm ifadelerin sonuçları, ondalık sayıları temsil eden dizelerdir. Bir ifadenin hiçbir iki bileşeninin aynı sözcük içinde görünemeyeceğine dikkat etmek önemlidir; ayrıştırıcı için sözdizimsel olarak önemli olan ifadenin bileşenlerine (& | < > ( )) bitişik olmadıkları sürece, boşluklarla çevrelenmelidirler.

Komut çıkış durumu Komutlar ifadeler içinde yürütülebilir ve çıkış durumları süslü parantez ({}) içine alınarak döndürülebilir. Süslü parantezlerin komutun sözcüklerinden boşluklarla ayrılması gerektiği unutulmamalıdır. Komut yürütmeleri, komut 0 durumuyla çıkarsa başarılı olur ve true, yani 1 döndürür, aksi takdirde başarısız olur ve false, yani 0 döndürür. Daha ayrıntılı durum bilgisi gerekiyorsa, komut bir ifadenin dışında yürütülmeli ve status kabuk değişkeni incelenmelidir.

Dosya sorgulama operatörleri Bu operatörlerden bazıları dosyalar ve ilgili nesneler üzerinde doğru/yanlış testleri gerçekleştirir. -op dosya biçimindedirler, burada op aşağıdakilerden biridir:

r Okuma izni w Yazma izni x Yürütme izni X Yolda veya kabuk yerleşik komutunda yürütülebilir, örneğin, -X ls ve -X ls-F genellikle doğrudur, ancak -X /bin/ls değildir (+) e Varlık o Sahiplik z Sıfır boyut s Sıfır olmayan boyut (+) f Sıradan dosya d Dizin l Sembolik bağ (+) * b Blok özel dosyası (+) c Karakter özel dosyası (+) p Adlandırılmış boru (fifo) (+) * S Soket özel dosyası (+) * u Set-user-ID biti ayarlanmış (+) g Set-group-ID biti ayarlanmış (+) k Sticky biti ayarlanmış (+) t dosya (bir rakam olmalıdır) bir terminal cihazı için açık bir dosya tanımlayıcısıdır (+) R Taşınmış (yalnızca Convex) (+) L Çoklu operatörlü bir testte sonraki operatörleri, bağın işaret ettiği dosya yerine sembolik bağın kendisine uygular (+) *

dosya komut ve dosya adı genişletmesine tabi tutulur ve ardından gerçek kullanıcıyla belirtilen ilişkiye sahip olup olmadığını görmek için test edilir. dosya mevcut değilse veya erişilemezse veya * ile belirtilen operatörler için, belirtilen dosya türü mevcut sistemde mevcut değilse, tüm sorgulamalar false, yani 0 döndürür.

Bu operatörler kısaltma amacıyla birleştirilebilir: -xy dosya ifadesi -x dosya && -y dosya ifadesine eşdeğerdir. (+) Örneğin, -fx sıradan yürütülebilir dosyalar için doğrudur (1 döndürür), ancak dizinler için değildir.

L, sonraki operatörleri bağın işaret ettiği dosya yerine sembolik bağın kendisine uygulamak için çoklu operatörlü bir testte kullanılabilir. Örneğin, -lLo çağıran kullanıcının sahip olduğu bağlar için doğrudur. Lr, Lw ve Lx bağlar için her zaman doğru, bağ olmayanlar için yanlıştır. Çoklu operatörlü bir testte son operatör olduğunda L farklı bir anlama sahiptir; aşağıya bakın.

dosya parametresinin bir dosya olmasını bekleyen operatörleri, bunu beklemeyen operatörlerle (örneğin, X ve t) birleştirmek mümkündür ancak yararlı değildir ve bazen yanıltıcıdır. L operatörünü dosya olmayan bir operatörle takip etmek özellikle garip sonuçlara yol açabilir.

Diğer operatörler başka bilgiler döndürür, yani yalnızca 0 veya 1 değil. (+) Öncekiyle aynı biçime sahiptirler; op aşağıdakilerden biri olabilir:

A Epoch'tan beri geçen saniye sayısı olarak son dosya erişim zamanı A: A gibidir, ancak zaman damgası biçimindedir, örneğin, Fri May 14 16:36:10 1993 M Son dosya değiştirme zamanı M: M gibidir, ancak zaman damgası biçimindedir C Son inode değiştirme zamanı C: C gibidir, ancak zaman damgası biçimindedir D Cihaz numarası I Inode numarası F cihaz:inode biçiminde bileşik dosya tanımlayıcısı L Bir sembolik bağın işaret ettiği dosyanın adı N (Sabit) bağların sayısı P Sekizlik (octal) olarak, başında sıfır olmadan izinler P: P gibidir, başında sıfır ile Pmode -P dosya & mod ifadesine eşdeğerdir, örneğin, -P22 dosya, dosya grup ve diğerleri tarafından yazılabilirse 22, yalnızca grup tarafından yazılabilirse 20, hiçbiri tarafından yazılamazsa 0 döndürür Pmode: Pmode gibidir, başında sıfır ile U Sayısal kullanıcı kimliği (userid) U: Kullanıcı adı veya kullanıcı adı bilinmiyorsa sayısal kullanıcı kimliği G Sayısal grup kimliği (groupid) G: Grup adı veya grup adı bilinmiyorsa sayısal grup kimliği Z Bayt cinsinden boyut

Çoklu operatörlü bir testte bu operatörlerden yalnızca biri görünebilir ve en sonda olmalıdır. L operatörünün çoklu operatörlü bir testin sonunda ve başka bir yerinde farklı bir anlama sahip olduğuna dikkat edilmelidir. Bu operatörlerin birçoğu için 0 geçerli bir dönüş değeri olduğundan, başarısız olduklarında 0 döndürmezler: çoğu -1 döndürür ve F ise : döndürür.

Kabuk POSIX tanımlı olarak derlenmişse (bkz. version kabuk değişkeni), bir dosya sorgulamasının sonucu access(2) sistem çağrısının sonucuna değil, dosyanın izin bitlerine dayanır. Örneğin, izinleri normalde yazmaya izin veren ancak salt okunur olarak bağlanmış bir dosya sisteminde bulunan bir dosya -w ile test edilirse, test bir POSIX kabuğunda başarılı olur ancak POSIX olmayan bir kabukta başarısız olur.

Dosya sorgulama operatörleri yerleşik filetest komutuyla da değerlendirilebilir (bkz.) (+).

İşler Kabuk, her boru hattıyla bir işi ilişkilendirir. jobs komutuyla yazdırılan mevcut işlerin bir tablosunu tutar ve bunlara küçük tamsayı numaraları atar. Bir iş & ile eşzamansız (asynchronous) olarak başlatıldığında, kabuk şuna benzer bir satır yazdırır:

[1] 1234

bu, eşzamansız olarak başlatılan işin 1 numaralı iş olduğunu ve süreç kimliği (PID) 1234 olan bir (en üst düzey) sürece sahip olduğunu gösterir.

Bir işi çalıştırıyorsanız ve başka bir şey yapmak istiyorsanız, mevcut işe bir STOP sinyali gönderen askıya alma tuşuna (genellikle ^Z) basabilirsiniz. Kabuk daha sonra normalde işin Suspended (Askıya alındı) olduğunu belirtecek ve başka bir bilgi istemi yazdıracaktır. listjobs kabuk değişkeni ayarlanmışsa, tüm işler yerleşik jobs komutu gibi listelenecektir; long olarak ayarlanmışsa listeleme, jobs -l gibi uzun biçimde olacaktır. Daha sonra askıya alınan işin durumunu değiştirebilirsiniz. bg komutuyla onu arka plana'' atabilir veya başka bazı komutlar çalıştırabilir ve en nihayetinde fg ile işi tekrar ön plana'' getirebilirsiniz. (Ayrıca bkz. run-fg-editor düzenleyici komutu.) Bir ^Z anında yürürlüğe girer ve yazıldığında bekleyen çıktının ve okunmamış girdinin atılması açısından bir kesme (interrupt) gibidir. Yerleşik wait komutu, kabuğun tüm arka plan işlerinin tamamlanmasını beklemesini sağlar.

^] tuşu, bir program ondan okuma yapmaya (read(2)) çalışana kadar bir STOP sinyali üretmeyen gecikmeli bir askıya alma sinyalini mevcut işe gönderir. Bu, okumasını yaptıktan sonra durdurmak istediğiniz bir iş için bazı komutlar hazırladığınızda yararlı bir şekilde önceden yazılabilir. ^Y tuşu bu işlevi csh(1) içinde gerçekleştirir; tcsh içinde ^Y bir düzenleme komutudur. (+)

Arka planda çalıştırılan bir iş, terminalden okumaya çalışırsa durur. Arka plan işlerinin normalde çıktı üretmesine izin verilir, ancak bu stty tostop komutu verilerek devre dışı bırakılabilir. Bu tty seçeneğini ayarlarsanız, arka plan işleri girdi okumaya çalıştıklarında olduğu gibi çıktı üretmeye çalıştıklarında da duracaktır.

Kabukta işlere atıfta bulunmanın birkaç yolu vardır. % karakteri bir iş adını tanıtır. 1 numaralı işe atıfta bulunmak istiyorsanız, onu %1 olarak adlandırabilirsiniz. Sadece bir işi adlandırmak onu ön plana getirir; dolayısıyla %1, 1 numaralı işi tekrar ön plana getiren fg %1 komutunun bir eşanlamlısıdır. Benzer şekilde, %1 & demek, tıpkı bg %1 gibi 1 numaralı işi arka planda devam ettirir. Bir iş, onu başlatmak için yazılan dizenin benzersiz bir ön ekiyle de adlandırılabilir: %ex normalde askıya alınmış bir ex(1) işini, adı ex dizesiyle başlayan yalnızca tek bir askıya alınmış iş varsa yeniden başlatır. Metni dize içeren bir işi belirtmek için, yalnızca böyle tek bir iş varsa %?dize demek de mümkündür.

Kabuk, mevcut ve önceki işler kavramını korur. İşlerle ilgili çıktılarda, mevcut iş bir + ile ve önceki iş bir - ile işaretlenir. %+, % ve (geçmiş mekanizmasının sözdizimiyle analoji kurularak) %% kısaltmalarının tümü mevcut işi, %- ise önceki işi belirtir.

İş denetim mekanizması, bazı sistemlerde stty(1) seçeneği new parametresinin ayarlanmasını gerektirir. Bu, işlerin durmasını söylemek için klavyeden kesme karakterlerinin üretilmesine izin veren tty sürücüsünün 'yeni' bir uygulamasından kalan bir yapıttır. Yeni tty sürücüsünde seçeneklerin ayarlanmasıyla ilgili ayrıntılar için stty(1) ve yerleşik setty komutuna bakın.

Durum raporlama Kabuk, bir sürecin durumu değiştiğinde anında bilgi alır. Bir iş bloke olduğunda ve daha fazla ilerleme mümkün olmadığında sizi normalde bilgilendirir, ancak bunu yalnızca bir bilgi istemi yazdırmadan hemen önce yapar. Bu, çalışmanızı başka türlü rahatsız etmemek için yapılır. Ancak, notify kabuk değişkenini ayarlarsanız, kabuk arka plan işlerindeki durum değişikliklerini size anında bildirecektir. Ayrıca, durum değişikliklerinin anında raporlanması için tek bir süreci işaretleyen bir notify kabuk komutu da vardır. Varsayılan olarak notify mevcut süreci işaretler; bir arka plan işini başlattıktan sonra onu işaretlemek için sadece notify deyin.

İşler durdurulmuşken kabuktan çıkmaya çalıştığınızda, There are suspended jobs. (Askıya alınmış işler var.) şeklinde uyarılacaksınız. Bunların ne olduğunu görmek için jobs komutunu kullanabilirsiniz. Bunu yaparsanız veya hemen tekrar çıkmaya çalışırsanız, kabuk sizi ikinci kez uyarmaz ve askıya alınan işler sonlandırılır.

Otomatik, periyodik ve zamanlanmış olaylar (+) Kabuğun ``yaşam döngüsü'' içindeki çeşitli zamanlarda komutları çalıştırmanın ve otomatik olarak başka eylemler gerçekleştirmenin çeşitli yolları vardır. Bunlar burada özetlenmiştir ve ilgili Yerleşik komutlar, Özel kabuk değişkenleri ve Özel takma adlar altında ayrıntılı olarak açıklanmıştır.

Yerleşik sched komutu, komutları kabuk tarafından belirli bir zamanda yürütülmek üzere zamanlanmış olaylar listesine koyar.

beepcmd, cwdcmd, periodic, precmd, postcmd ve jobcmd Özel takma adları, sırasıyla kabuk zili çalmak istediğinde, çalışma dizini değiştiğinde, her tperiod dakikada bir, her bilgi isteminden önce, her komut yürütülmeden önce, her komut yürütüldükten sonra ve bir iş başlatıldığında veya ön plana getirildiğinde komutları yürütmek üzere ayarlanabilir.

autologout kabuk değişkeni, belirli bir dakika hareketsizlikten sonra oturumu kapatmak veya kabuğu kilitlemek için ayarlanabilir.

mail kabuk değişkeni, periyodik olarak yeni e-postaları kontrol etmek için ayarlanabilir.

printexitvalue kabuk değişkeni, sıfır dışındaki bir durumla çıkan komutların çıkış durumunu yazdırmak için ayarlanabilir.

rmstar kabuk değişkeni, rm * yazıldığında kullanıcıya gerçekten bunun mu kastedildiğini sormak için ayarlanabilir.

time kabuk değişkeni, belirli bir CPU saniyesinden daha fazla süren herhangi bir sürecin tamamlanmasından sonra yerleşik time komutunu yürütmek için ayarlanabilir.

watch ve who kabuk değişkenleri, seçilen kullanıcılar oturum açtığında veya kapattığında rapor vermek üzere ayarlanabilir ve yerleşik log komutu bu kullanıcıları herhangi bir zamanda rapor eder.

Yerel Dil Sistemi (NLS) desteği (+) Kabuk sekiz bit temizdir (eğer öyle derlenmişse; bkz. version kabuk değişkeni) ve bu nedenle bu yeteneğe ihtiyaç duyan karakter kümelerini destekler. NLS desteği, kabuğun sistemin NLS'sini kullanmak üzere derlenip derlenmediğine bağlı olarak değişir (yine, bkz. version). Her iki durumda da, 7-bit ASCII varsayılan karakter kodudur (örneğin, hangi karakterlerin yazdırılabilir olduğunun sınıflandırılması) ve sıralamadır; LANG veya LC_CTYPE çevre değişkenlerinin değiştirilmesi bu yönlerden olası değişikliklerin kontrol edilmesine neden olur.

Sistemin NLS'si kullanıldığında, uygun karakter kodunu/sınıflandırmasını ve sıralamasını belirlemek için setlocale(3) işlevi çağrılır (örneğin, bir 'en_CA.UTF-8' karakter kodu olarak "UTF-8" sonucunu verecektir). Bu işlev tipik olarak LANG ve LC_CTYPE çevre değişkenlerini inceler; daha fazla ayrıntı için sistem belgelerine bakın. Sistemin NLS'si kullanılmadığında kabuk, LANG ve LC_CTYPE değişkenlerinden biri ayarlandığında, değerlerine bakılmaksızın ISO 8859-1 karakter kümesinin kullanıldığını varsayarak bunu taklit eder. Simüle edilen NLS için sıralama etkilenmez.

Ek olarak, hem gerçek hem de simüle edilen NLS ile, \200-\377 aralığındaki tüm yazdırılabilir karakterler, yani M-karakter atamalarına sahip olanlar, otomatik olarak self-insert-command komutuna yeniden atanır. Varsa, kaçış karakteri (escape) dizisi için karşılık gelen atama olduğu gibi bırakılır. NOREBIND çevre değişkeni ayarlanmışsa bu karakterler yeniden atanmaz. Bu, simüle edilen NLS veya tam ISO 8859-1 varsayan ilkel bir gerçek NLS için yararlı olabilir. Aksi takdirde, \240-\377 aralığındaki tüm M-karakter atamaları fiilen iptal edilir. İlgili tuşların bindkey ile açıkça yeniden atanması elbette hala mümkündür.

Bilinmeyen karakterler (yani ne yazdırılabilir ne de kontrol karakteri olanlar) \nnn biçiminde yazdırılır. tty 8 bit modunda değilse, diğer 8 bit karakterler ASCII'ye dönüştürülerek ve belirginleştirme (standout) modu kullanılarak yazdırılır. Kabuk hiçbir zaman tty'nin 7/8 bit modunu değiştirmez ve kullanıcının başlattığı 7/8 bit modu değişikliklerini takip eder. NLS kullanıcılarının (veya bu konuda bir meta tuşu kullanmak isteyenlerin), e.g., ~/.login dosyasındaki uygun stty(1) komutu aracılığıyla tty'yi açıkça 8 bit moduna ayarlamaları gerekebilir.

İşletim sistemi varyant desteği (+) Belirli işletim sistemlerindeki özellikleri desteklemek için bir dizi yeni yerleşik komut sağlanmıştır. Tümü Yerleşik komutlar bölümünde ayrıntılı olarak açıklanmıştır.

TCF'yi destekleyen sistemlerde (aix-ibm370, aix-ps2), getspath ve setspath sistem yürütme yolunu alır ve ayarlar, getxvers ve setxvers deneysel sürüm ön ekini alır ve ayarlar ve migrate süreçleri siteler arasında taşır. Yerleşik jobs komutu, her işin yürütüldüğü siteyi yazdırır.

BS2000 altında, bs2cmd temel BS2000/OSD işletim sisteminin komutlarını yürütür.

Domain/OS altında, inlib paylaşılan kitaplıkları (shared libraries) mevcut ortama ekler, rootnode kök düğümü (rootnode) değiştirir ve ver sistem türünü (systype) değiştirir.

Mach altında, setpath Mach'ın setpath(1) komutuna eşdeğerdir.

Masscomp/RTU ve Harris CX/UX altında, universe evreni (universe) ayarlar.

Harris CX/UX altında, ucb veya att belirtilen evren altında bir komut çalıştırır.

Convex/OS altında, warp evreni yazdırır veya ayarlar.

VENDOR, OSTYPE ve MACHTYPE çevre değişkenleri, kabuğun üzerinde çalıştığını düşündüğü sistemin sırasıyla satıcısını, işletim sistemini ve makine tipini (mikroişlemci sınıfı veya makine modeli) belirtir. Bunlar, ev dizinini birkaç tip makine arasında paylaşırken özellikle yararlıdır; örneğin kişi,

set path = (~/bin.$MACHTYPE /usr/ucb /bin /usr/bin .)

~/.login dosyasına koyabilir ve her makine için derlenmiş yürütülebilir dosyaları uygun dizine yerleştirebilir.

version kabuk değişkeni, kabuk derlendiğinde hangi seçeneklerin seçildiğini gösterir.

Ayrıca newgrp yerleşik komutuna, afsuser ve echo_style kabuk değişkenlerine ve kabuğun girdi dosyalarının sisteme bağlı konumlarına bakın (bkz. DOSYALAR).

Sinyal işleme Giriş kabukları ~/.logout dosyasını okurken kesmeleri (interrupts) yoksayar. -q ile başlatılmadıkça kabuk çıkış sinyallerini (quit signals) yoksayar. Giriş kabukları sonlandırma (terminate) sinyalini yakalar, ancak giriş kabuğu olmayan kabuklar sonlandırma davranışını ebeveynlerinden miras alır. Diğer sinyaller, kabuğun ebeveyninden miras aldığı değerlere sahiptir.

Kabuk betiklerinde, kabuğun kesme ve sonlandırma sinyallerini işlemesi onintr ile kontrol edilebilir ve hangups (kapatma) işlemleri hup ve nohup ile kontrol edilebilir.

Kabuk bir hangup sinyaliyle çıkar (ayrıca bkz. logout kabuk değişkeni). Varsayılan olarak kabuğun alt süreçleri de öyle yapar, ancak kabuk çıkarken onlara bir hangup sinyali göndermez. hup, kabuğun çıkarken bir alt sürece hangup sinyali göndemesini ayarlar ve nohup bir alt süreci hangup sinyallerini yoksayacak şekilde ayarlar.

Terminal yönetimi (+) Kabuk üç farklı terminal (``tty'') modu kümesi kullanır: düzenleme yaparken kullanılan edit, birebir karakterleri tırnak içine alırken kullanılan quote ve komutları yürütürken kullanılan execute. Kabuk her moddaki bazı ayarları sabit tutar, böylece tty'yi karışık bir durumda bırakan komutlar kabuğa müdahale etmez. Kabuk ayrıca tty'nin hız ve dolgu değişikliklerini de eşleştirir. Sabit tutulan tty modlarının listesi yerleşik setty komutuyla incelenebilir ve değiştirilebilir. Düzenleyici CBREAK modunu (veya eşdeğerini) kullansa da, yine de önceden yazılmış karakterleri alır.

echotc, settc ve telltc komutları, komut satırından terminal yeteneklerini manipüle etmek ve hata ayıklamak için kullanılabilir.

SIGWINCH veya SIGWINDOW sinyallerini destekleyen sistemlerde, kabuk pencere yeniden boyutlandırmasına otomatik olarak uyum sağlar ve ayarlanmışsa LINES ve COLUMNS çevre değişkenlerini ayarlar. TERMCAP çevre değişkeni li# ve co# alanları içeriyorsa, kabuk bunları yeni pencere boyutunu yansıtacak şekilde ayarlar.

Referans

Bu kılavuzun sonraki bölümleri, mevcut tüm Yerleşik komutları, Özel takma adları ve Özel kabuk değişkenlerini açıklamaktadır.

Yerleşik komutlar %job fg yerleşik komutunun bir eşanlamlısıdır.

%job & bg yerleşik komutunun bir eşanlamlısıdır.

: Başarıyla hiçbir şey yapmaz.

@ @ name = expr @ name[index] = expr @ name++|-- @ name[index]++|-- İlk biçim tüm kabuk değişkenlerinin değerlerini yazdırır.

İkinci biçim expr değerini name değişkenine atar. Üçüncü biçim expr değerini name değişkeninin index'inci bileşenine atar; hem name hem de index'inci bileşeni zaten mevcut olmalıdır.

expr, C'de olduğu gibi *, + vb. operatörleri içerebilir. expr <, >, & veya ' içeriyorsa, en azından expr'in o kısmı () içine alınmalıdır. expr sözdiziminin İfadeler altında açıklananla hiçbir ilgisi olmadığına dikkat edilmelidir.

Dördüncü ve beşinci biçimler name değişkenini veya onun index'inci bileşenini artırır (++) veya azaltır (--).

@ ile name arasındaki boşluk zorunludur. name ile = arasındaki ve = ile expr arasındaki boşluklar isteğe bağlıdır. expr bileşenleri boşluklarla ayrılmalıdır.

alias [name [wordlist]] Argümansız olarak tüm takma adları yazdırır. name ile name için takma adı yazdırır. name ve wordlist ile, wordlist listesini name için takma ad olarak atar. wordlist komut ve dosya adı ikamesine tabi tutulur. name, alias veya unalias olamaz. Ayrıca yerleşik unalias komutuna bakın.

alloc Kullanılan ve boş belleğe bölünmüş olarak edinilen dinamik bellek miktarını gösterir. Bir argümanla, her boyut kategorisindeki boş ve kullanılan blokların sayısını gösterir. Kategoriler 8 boyutundan başlar ve her adımda ikiye katlanır. Bu komutun çıktısı sistem türlerine göre değişiklik gösterebilir, çünkü VAX dışındaki sistemler farklı bir bellek ayırıcı kullanabilir.

bg [%job ...] Belirtilen işleri (veya argümansız olarak mevcut işi) arka plana atar ve durdurulmuşlarsa her birini devam ettirir. job, İşler altında açıklandığı gibi bir sayı, bir dize, ``, %, + veya - olabilir.

bindkey [-l|-d|-e|-v|-u] (+) bindkey [-a] [-b] [-k] [-r] [--] key (+) bindkey [-a] [-b] [-k] [-c|-s] [--] key command (+) Seçeneksiz olarak, ilk biçim tüm atanan tuşları ve her birinin atandığı düzenleyici komutunu listeler, ikinci biçim key tuşunun atandığı düzenleyici komutunu listeler ve üçüncü biçim command düzenleyici komutunu key tuşuna atar. Seçenekler şunlardır:

  • -l: Tüm düzenleyici komutlarını ve her birinin kısa bir açıklamasını listeler.
  • -d: Aşağıdaki -e ve -v seçeneklerine göre tüm tuşları varsayılan düzenleyici için standart atamalara atar.
  • -e: Tüm tuşları emacs(1) tarzı atamalara atar. vimode değişkenini kaldırır.
  • -v: Tüm tuşları vi(1) tarzı atamalara atar. vimode değişkenini ayarlar.
  • -a: Alternatif tuş haritasındaki tuş atamalarını listeler veya değiştirir. Bu, vimode komut modunda kullanılan tuş haritasıdır.
  • -b: key, ^karakter (örneğin ^A) veya C-karakter (örneğin C-A) şeklinde yazılan bir kontrol karakteri, M-karakter (örneğin M-A) şeklinde yazılan bir meta karakter, F-dize (örneğin F-dize) şeklinde yazılan bir fonksiyon tuşu veya X-karakter (örneğin X-A) şeklinde yazılan genişletilmiş bir ön ek tuşu olarak yorumlanır.
  • -k: key, down, up, left veya right yön tuşu sembolik adlarından biri olarak yorumlanır.
  • -r: key tuşunun atamasını kaldırır. Dikkatli olun: bindkey -r key tuşunu self-insert-command (bkz.) komutuna atamaz, atamasını tamamen kaldırır.
  • -c: command, bir düzenleyici komutu yerine yerleşik veya harici bir komut olarak yorumlanır.
  • -s: key tuşuna basıldığında, command düz dize (literal string) olarak alınır ve terminal girdisi gibi işlem görür. command içindeki atanan tuşlar kendi içlerinde yeniden yorumlanır ve bu yorumlama on seviyeye kadar devam eder.
  • --: Seçenek işlemeden kesin bir çıkış yapılmasını zorlar, böylece bir sonraki sözcük '-' ile başlasa bile key olarak alınır.
  • -u (veya geçersiz herhangi bir seçenek): Kullanım mesajını yazdırır.

key tek bir karakter veya bir dize olabilir. Bir komut bir dizeye atanırsa, dizenin ilk karakteri sequence-lead-in komutuna atanır ve tüm dize komuta atanır.

key içindeki kontrol karakterleri tam (literal) olabilir (düzenleyicinin normalde ^V tuşuna atanan quoted-insert komutuyla önlerine ekleme yapılarak yazılabilirler) veya caret-karakter tarzında yazılabilirler, örneğin ^A. Delete ^? (caret-soru işareti) şeklinde yazılır. key ve command, System V echo(1) tarzında aşağıdaki gibi ters eğik çizgili kaçış dizileri içerebilir:

\a Zil \b Geri silme (Backspace) \e Kaçış (Escape) \f Sayfa besleme (Form feed) \n Yeni satır (Newline) \r Satır başı (Carriage return) \t Yatay sekme (Horizontal tab) \v Dikey sekme (Vertical tab) \nnn nnn sekizlik sayısına karşılık gelen ASCII karakteri

\ işareti, ardından gelen karakterin özel bir anlamı varsa (özellikle \ ve ^), bu anlamı geçersiz kılar.

bs2cmd bs2000-command (+) bs2000-command komutunu yürütülmek üzere BS2000 komut yorumlayıcısına iletir. Yalnızca etkileşimli olmayan komutlar yürütülebilir ve /EXECUTE veya /CALL-PROCEDURE gibi mevcut sürecin görüntüsünün üzerine yazacak hiçbir komutun yürütülmesi mümkün değildir. (Yalnızca BS2000)

break En yakın kapsayan foreach veya while döngüsünün bitişinden sonra yürütmenin devam etmesini sağlar. Mevcut satırdaki kalan komutlar yürütülür. Böylece hepsini tek bir satıra yazarak çok seviyeli çıkışlar (breaks) yapmak mümkündür.

breaksw Bir switch ifadesinden çıkış yapılmasını sağlar, endsw sonrasından devam eder.

builtins (+) Tüm yerleşik komutların adlarını yazdırır.

bye (+) logout yerleşik komutunun bir eşanlamlısıdır. Yalnızca kabuk bu şekilde derlenmişse kullanılabilir; bkz. version kabuk değişkeni.

case label: Aşağıda açıklandığı gibi bir switch ifadesindeki etikettir.

cd [-p] [-l] [-n|-v] [--] [name] Bir dizin adı verilmişse, kabuğun çalışma dizinini name olarak değiştirir. Verilmemişse, cdtohome değişkeni ayarlanmamış olmadıkça ev dizinine (home) değiştirir; ayarlanmamışsa bir name argümanı zorunludur. Eğer name - ise, önceki çalışma dizini olarak yorumlanır (bkz. Diğer ikameler). (+) Eğer name geçerli dizinin bir alt dizini değilse (ve /, ./ veya ../ ile başlamıyorsa), cdpath değişkeninin her bir bileşeni, bu ada sahip bir alt dizine sahip olup olmadığını görmek için kontrol edilir. Son olarak, her şey başarısız olursa ancak name, değeri / veya . ile başlayan bir kabuk değişkeniyse, bunun bir dizin olup olmadığı denenir ve -p seçeneği ima edilir.

-p ile, tıpkı dirs gibi nihai dizin yığınını yazdırır. -l, -n ve -v bayrakları, dirs komutunda olduğu gibi cd üzerinde aynı etkiye sahiptir ve -p seçeneğini ima ederler. (+) -- kullanımı, seçenek işlemeden kesin bir çıkış yapılmasını zorlar, böylece bir sonraki sözcük '-' ile başlasa bile dizin adı olarak alınır. (+)

Ayrıca implicitcd ve cdtohome kabuk değişkenlerine bakın.

chdir cd yerleşik komutunun bir eşanlamlısıdır.

complete [command [word/pattern/list[:select]/[[suffix]/] ...]] (+) Argümansız olarak tüm tamamlamaları listeler. command ile command için tamamlamaları listeler. command ve word vb. ile tamamlamaları tanımlar.

command tam bir komut adı veya bir dosya kalıbı (bkz. Dosya adı ikamesi) olabilir. Yalnızca command belirsiz (ambiguous) olduğunda tamamlamanın kullanılacağını belirtmek için - ile başlayabilir.

word, tamamlanacak olan mevcut sözcüğe göre hangi sözcüğün tamamlanacağını belirtir ve aşağıdakilerden biri olabilir:

c Mevcut sözcük (current-word) tamamlama. pattern, komut satırındaki mevcut sözcüğün başlangıcıyla eşleşmesi gereken bir dosya kalıbıdır. Mevcut sözcük tamamlanırken pattern yoksayılır. C c gibidir, ancak mevcut sözcük tamamlanırken pattern kalıbını da dahil eder. n Bir sonraki sözcük (next-word) tamamlama. pattern, komut satırındaki önceki sözcüğün başlangıcıyla eşleşmesi gereken bir dosya kalıbıdır. N n gibidir, ancak mevcut sözcükten iki önceki sözcüğün başlangıcıyla eşleşmelidir. p Konuma bağlı (position-dependent) tamamlama. pattern, kabuk değişkenlerini dizinlemek için kullanılanla aynı sözdizimine sahip olan ve mevcut sözcüğü içermesi gereken sayısal bir aralıktır.

list, olası tamamlamaların listesidir ve aşağıdakilerden biri olabilir:

a Takma adlar (Aliases) b Atamalar (Bindings - düzenleyici komutları) c Komutlar (Commands - yerleşik veya harici komutlar) C Belirtilen yol ön ekiyle başlayan harici komutlar d Dizinler D Belirtilen yol ön ekiyle başlayan dizinler e Çevre değişkenleri f Dosya adları F Belirtilen yol ön ekiyle başlayan dosya adları g Grup adları j İşler (Jobs) l Limitler (Limits) n Hiçbir şey s Kabuk değişkenleri S Sinyaller t Düz (metin'') dosyalar T Belirtilen yol ön ekiyle başlayan düz (metin'') dosyalar v Herhangi bir değişken u Kullanıcı adları x n gibidir, ancak list-choices kullanıldığında select yazdırır. X Tamamlamalar $var var değişkenindeki sözcükler (...) Verilen listedeki sözcükler ... Komutun çıktısındaki sözcükler

select isteğe bağlı bir dosya kalıbıdır. Verilirse, yalnızca list içinden select ile eşleşen sözcükler dikkate alınır ve fignore kabuk değişkeni yoksayılır. Son üç tamamlama türü bir select şablonuna sahip olamaz ve list-choices düzenleyici komutu kullanıldığında x, select ifadesini açıklayıcı bir mesaj olarak kullanır.

suffix, başarılı bir tamamlamaya eklenecek tek bir karakterdir. Boş ise hiçbir karakter eklenmez. Atlanırsa (bu durumda dördüncü sınırlayıcı da atlanabilir), dizinlerin sonuna bir eğik çizgi (slash) ve diğer sözcüklerin sonuna bir boşluk eklenir.

... sürümünden çağrılan komutun ek bir çevre değişkeni ayarlanmıştır; değişkenin adı COMMAND_LINE'dır ve (adından da anlaşılacağı gibi) mevcut (zaten yazılmış olan) komut satırının içeriğini içerir. Daha gelişmiş tamamlamalar oluşturmak için özel betikte COMMAND_LINE değişkeninin içeriği incelenebilir ve kullanılabilir (bu pakete dahil olan svn(1) için tamamlamaya bakın).

Şimdi bazı örnekler. Bazı komutlar argüman olarak yalnızca dizinleri alır, bu nedenle düz dosyaları tamamlamanın bir anlamı yoktur.

complete cd 'p/1/d/'

yalnızca cd komutunu takip eden ilk sözcüğü (p/1) bir dizinle tamamlar. p-tipi tamamlama, komut tamamlamayı daraltmak için de kullanılabilir:

co[^D] complete compress complete -co* 'p/0/(compress)/' co[^D] compress

Bu tamamlama, co ile başlayan komutları (0. konumdaki sözcükler, p/0, dolayısıyla co* ile eşleşenler) compress (listedeki tek sözcük) olarak tamamlar. Baştaki - işareti, bu tamamlamanın yalnızca belirsiz komutlarla kullanılacağını gösterir.

complete find 'n/-user/u/'

n-tipi tamamlamaya bir örnektir. find komutunu takip eden ve hemen -user sonrasında gelen herhangi bir sözcük, kullanıcılar listesinden tamamlanır.

complete cc 'c/-I/d/'

c-tipli tamamlamayı gösterir. cc komutunu takip eden ve -I ile başlayan herhangi bir sözcük dizin olarak tamamlanır. Küçük c kullandığımız için -I dizinin bir parçası olarak alınmaz.

Farklı komutlarla farklı listeler yararlıdır.

complete alias 'p/1/a/' complete man 'p/*/c/' complete set 'p/1/s/' complete true 'p/1/x:Truth has no options./'

Bunlar alias komutunu takip eden sözcükleri takma adlarla, man komutunu takip edenleri komutlarla ve set komutunu takip edenleri kabuk değişkenleriyle tamamlar. true komutunun hiçbir seçeneği yoktur, bu nedenle tamamlama denendiğinde x hiçbir şey yapmaz ve tamamlama seçenekleri listelendiğinde Truth has no options. yazdırır.

man örneğinin ve aşağıdaki diğer birkaç örneğin 'p/' yerine 'c/' veya 'n/*' de kullanabileceğine dikkat edin.

Sözcükler, tamamlama zamanında değerlendirilen bir değişkenden tamamlanabilir,

complete ftp 'p/1/$hostnames/' set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu) ftp [^D] rtfm.mit.edu tesla.ee.cornell.edu ftp [^C] set hostnames = (rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net) ftp [^D] rtfm.mit.edu tesla.ee.cornell.edu uunet.uu.net

veya tamamlama zamanında çalıştırılan bir komuttan:

complete kill 'p/*/ps | awk \{print\ \$1\}/' kill -9 [^D] 23113 23377 23380 23406 23429 23529 23530 PID

complete komutunun kendisinin argümanlarını tırnak içine almadığına dikkat edilmelidir, bu nedenle {print $1} içindeki süslü parantezler, boşluk ve $ açıkça kaçırılmalıdır.

Tek bir komut birden fazla tamamlamaya sahip olabilir:

complete dbx 'p/2/(core)/' 'p/*/c/'

dbx komutuna verilen ikinci argümanı core sözcüğüyle ve diğer tüm argümanları komutlarla tamamlar. Konumsal tamamlamanın sonraki sözcük (next-word) tamamlamasından önce belirtildiğine dikkat edin. Tamamlamalar soldan sağa doğru değerlendirildiğinden, bir sonraki sözcük tamamlaması ilk sırada belirtilseydi her zaman o eşleşirdi ve konumsal tamamlama asla çalıştırılmazdı. Bu, bir tamamlama tanımlarken yapılan yaygın bir hatadır.

select şablonu, bir komut yalnızca belirli biçimlerdeki dosyaları argüman olarak aldığında yararlıdır. Örneğin,

complete cc 'p//f:.[cao]/'

cc argümanlarını yalnızca .c, .a veya .o ile biten dosyalarla tamamlar. select, Dosya adı ikamesi altında açıklandığı gibi bir dosya kalıbının olumsuzlanması kullanılarak dosyaları hariç de tutabilir. Biri şunu kullanabilir:

complete rm 'p//f:^.{c,h,cc,C,tex,1,man,l,y}/'

değerli kaynak kodlarını rm tamamlamasından hariç tutmak için. Elbette, hariç tutulan adlar yine de manuel olarak yazılabilir veya complete-word-raw veya list-choices-raw düzenleyici komutları (bkz.) kullanılarak tamamlama mekanizması geçersiz kılınabilir.

C, D, F ve T listeleri sırasıyla c, d, f ve t gibidir, ancak select argümanını farklı bir şekilde kullanırlar: tamamlamayı belirli bir yol ön eki ile başlayan dosyalarla sınırlamak için. Örneğin, Elm e-posta programı kişinin e-posta dizini için bir kısaltma olarak = kullanır. Biri şunu kullanabilir:

complete elm c@=@F:$HOME/Mail/@

elm -f = komutunu sanki elm -f ~/Mail/ imiş gibi tamamlamak için. select argümanıyla karışıklığı önlemek için / yerine @ kullandığımıza ve ev dizini ikamesi yalnızca bir sözcüğün başında çalıştığı için ~ yerine $HOME kullandığımıza dikkat edin.

suffix, tamamlanan sözcüklere standart olmayan bir sonek (dizinler için boşluk veya / değil) eklemek için kullanılır.

complete finger 'c/*@/$hostnames/' 'p/1/u/@'

finger argümanlarını kullanıcılar listesinden tamamlar, bir @ ekler ve ardından @ işaretinden sonrasını hostnames değişkeninden tamamlar. Tamamlamaların belirtildiği sıraya yine dikkat edin.

Son olarak, ilham vermesi için karmaşık bir örnek:

complete find
'n/-name/f/' 'n/-newer/f/' 'n/-{,n}cpio/f/'
'n/-exec/c/' 'n/-ok/c/' 'n/-user/u/'
'n/-group/g/' 'n/-fstype/(nfs 4.2)/'
'n/-type/(b c d f l p s)/'
'c/-/(name newer cpio ncpio exec ok user
group fstype type atime ctime depth inum
ls mtime nogroup nouser perm print prune
size xdev)/'
'p/*/d/'

Bu örnek, -name, -newer, -cpio veya ncpio (her ikisiyle de eşleşen şablona dikkat edin) sonrasındaki sözcükleri dosyalara, -exec veya -ok sonrasındaki sözcükleri komutlara, user ve group sonrasındaki sözcükleri sırasıyla kullanıcılara ve gruplara ve -fstype veya -type sonrasındaki sözcükleri verilen listelerin üyelerine tamamlar. Ayrıca anahtarların kendilerini verilen listeden tamamlar (c-tipi tamamlamanın kullanımına dikkat edin) ve başka hiçbir şekilde tamamlanmayan her şeyi bir dizine tamamlar. Of be.

Tamamlanacak sözcük bir tilde ikamesi (~ ile başlayan) veya bir değişken ($ ile başlayan) ise programlanmış tamamlamaların yoksayıldığını unutmayın. Ayrıca uncomplete yerleşik komutuna bakın.

continue En yakın kapsayan while veya foreach döngüsünün yürütülmesine devam edilmesini sağlar. Mevcut satırdaki diğer komutlar yürütülür.

default: Bir switch ifadesindeki varsayılan durumu (default case) etiketler. Tüm case etiketlerinden sonra gelmelidir.

dirs [-l] [-n|-v] dirs -S|-L [filename] (+) dirs -c (+) İlk biçim dizin yığınını yazdırır. Yığının üstü soldadır ve yığındaki ilk dizin geçerli dizindir. -l ile, çıktıdaki ~ veya ~name açıkça ev dizinine (home) veya user name kullanıcısının ev dizininin yol adına genişletilir. (+) -n ile, girdiler ekranın kenarına ulaşmadan önce kaydırılır. (+) -v ile, girdiler önlerinde yığın konumları olacak şekilde her satıra bir tane gelecek şekilde yazdırılır. (+) -n veya -v seçeneklerinden birden fazı verilirse, -v önceliklidir. -p kabul edilir ancak hiçbir şey yapmaz.

-S ile, ikinci biçim dizin yığınını cd ve pushd komutları dizisi olarak filename dosyasına kaydeder. -L ile, kabuk, muhtemelen -S seçeneği veya savedirs mekanizması tarafından kaydedilmiş bir dizin yığınından oluşan filename dosyasını kaynak alır (source). Her iki durumda da, filename verilmemişse dirsfile kullanılır ve dirsfile ayarlanmamışsa ~/.cshdirs kullanılır.

Giriş kabuklarının başlangıçta dirs -L eşdeğerini yaptığını ve savedirs ayarlanmışsa çıkmadan önce dirs -S yaptığını unutmayın. ~/.cshdirs dosyasından önce normalde yalnızca ~/.tcshrc kaynak alındığından, dirsfile ~/.login yerine ~/.tcshrc içinde ayarlanmalıdır.

Son biçim dizin yığınını temizler.

echo [-n] word ... Her bir word'ü aralarında boşluklarla ve sonunda bir yeni satırla kabuğun standart çıktısına yazar. echo_style kabuk değişkeni, echo'nun BSD ve/veya System V sürümlerinin bayraklarını ve kaçış dizilerini taklit edecek (veya etmeyecek) şekilde ayarlanabilir; bkz. echo(1).

echotc [-sv] arg ... (+) arg içindeki terminal yeteneklerini (bkz. termcap(5)) çalıştırır. Örneğin, 'echotc home' imleci ana konuma gönderir, 'echotc cm 3 10' onu 3. sütuna ve 10. satıra gönderir ve 'echotc ts 0; echo "This is a test."; echotc fs' durum satırına "This is a test." yazdırır.

arg 'baud', 'cols', 'lines', 'meta' veya 'tabs' ise, o yeteneğin değerini yazdırır (terminalin o yeteneğe sahip olup olmadığını gösteren "yes" or "no"). Biri bunu yavaş terminallerde bir kabuk betiğinin çıktısını daha az ayrıntılı hale getirmek veya komut çıktısını ekrandaki satır sayısıyla sınırlamak için kullanabilir:

set history=echotc lines @ history--

Termcap dizeleri, düzgün yansıtılmayacak joker karakterler içerebilir. Bir kabuk değişkenini bir terminal yetenek dizesine ayarlarken, tarihi durum satırına yerleştiren aşağıdaki örnekte olduğu gibi çift tırnak kullanılmalıdır:

set tosl="echotc ts 0" set frsl="echotc fs" echo -n "$tosl";date; echo -n "$frsl"

-s seçeneğiyle, mevcut olmayan yetenekler hata vermek yerine boş dize döndürür. -v ile mesajlar ayrıntılıdır.

else end endif endsw Aşağıdaki foreach, if, switch ve while ifadelerinin açıklamalarına bakın.

eval arg ... Argümanları kabuğa girdi olarak kabul eder ve ortaya çıkan komutları mevcut kabuğun bağlamında yürütür. Ayrıştırma bu ikamelerden önce gerçekleştiğinden, bu genellikle komut veya değişken ikamesinin sonucu olarak üretilen komutları yürütmek için kullanılır. eval'in örnek bir kullanımı için bkz. tset(1).

exec command Belirtilen command'ı mevcut kabuğun yerinde yürütür.

exit [expr] Kabuk, belirtilen expr (İfadeler altında açıklandığı gibi bir ifade) değeriyle veya expr olmadan 0 değeriyle çıkar.

fg [%job ...] Belirtilen işleri (veya argümansız olarak mevcut işi) ön plana getirir ve durdurulmuşlarsa her birini devam ettirir. job, İşler altında açıklandığı gibi bir sayı, bir dize, ``, %, + veya - olabilir. Ayrıca bkz. run-fg-editor düzenleyici komutu.

filetest -op file ... (+) op işlemini (Dosya sorgulama operatörleri altında açıklandığı gibi bir dosya sorgulama operatörüdür) her bir file dosyasına uygular ve sonuçları boşlukla ayrılmış bir liste olarak döndürür.

foreach name (wordlist) ... end Sırasıyla name değişkenini wordlist listesinin her bir üyesine ayarlar ve bu komut ile eşleşen end arasındaki komut dizisini yürütür. (Hem foreach hem de end ayrı satırlarda tek başlarına görünmelidir.) Döngüyü zamanından önce devam ettirmek için yerleşik continue komutu ve zamanından önce sonlandırmak için yerleşik break komutu kullanılabilir. Bu komut terminalden okunduğunda, döngüdeki herhangi bir ifade yürütülmeden önce döngü bir kez foreach? (veya prompt2) ile bilgi istemi verilerek okunur. Terminalde bir döngü yazarken hata yaparsanız bunu silebilirsiniz.

getspath (+) Sistem yürütme yolunu yazdırır. (Yalnızca TCF)

getxvers (+) Deneysel sürüm ön ekini yazdırır. (Yalnızca TCF)

glob wordlist echo gibidir, ancak -n parametresi tanınmaz ve çıktıda sözcükler boş (null) karakterlerle sınırlandırılır. Bir sözcük listesinin dosya adını genişletmek amacıyla kabuğu kullanmak isteyen programlar için kullanışlıdır.

goto word word, label biçiminde bir dize üretmek üzere dosya adı ve komut ikamesine tabi tutulur. Kabuk girdisini olabildiğince başa sarar, önünde boşluklar veya sekmeler bulunabilen label: biçimindeki bir satırı arar ve o satırdan sonra yürütmeye devam eder.

hashstat Dahili hash tablosunun komutları bulmada (ve exec denemelerinden kaçınmada) ne kadar etkili olduğunu gösteren bir istatistik satırı yazdırır. Hash işlevinin olası bir eşleşme gösterdiği path'in her bileşeni için ve / ile başlamayan her bileşende bir exec denenir.

vfork(2) olmayan makinelerde yalnızca hash kovalarının sayısını ve boyutunu yazdırır.

history [-hTr] [n] history -S|-L|-M [filename] (+) history -c (+) İlk biçim geçmiş olay listesini yazdırır. n verilirse yalnızca en son n olay yazdırılır veya kaydedilir. -h ile geçmiş listesi başında sayılar olmadan yazdırılır. -T belirtilirse, zaman damgaları da yorum biçiminde yazdırılır. (Bu, 'history -L' veya 'source -h' ile yüklemeye uygun dosyalar üretmek için kullanılabilir.) -r ile yazdırma sırası en eskiden en yeniye değil, en yeniden en eskiye doğrudur.

-S ile, ikinci biçim geçmiş listesini filename dosyasına kaydeder. savehist kabuk değişkeninin ilk sözcüğü bir sayıya ayarlanmışsa, en fazla o kadar satır kaydedilir. savehist'in ikinci sözcüğü merge olarak ayarlanmışsa, geçmiş listesi mevcut geçmiş dosyasının üzerine yazılmak yerine onunla birleştirilir (varsa) ve zaman damgasına göre sıralanır. (+) Birleştirme, aynı anda kullanılan birkaç kabuğa sahip X Window System gibi bir ortam için tasarlanmıştır. savehist'in ikinci sözcüğü merge ve üçüncü sözcüğü lock olarak ayarlanmışsa, geçmiş dosyası güncellemesi, tam olarak aynı anda geçmişi birleştirmek isteyebilecek diğer kabuk oturumlarıyla sıralı (serialized) hale getirilecektir.

-L ile, kabuk, muhtemelen -S seçeneği veya savehist mekanizması tarafından kaydedilmiş bir geçmiş listesi olan filename dosyasını geçmiş listesine ekler. -M, -L gibidir, ancak filename içeriği geçmiş listesine birleştirilir ve zaman damgasına göre sıralanır. Her iki durumda da, filename verilmemişse histfile kullanılır ve histfile ayarlanmamışsa ~/.history kullanılır. history -L, bir filename gerektirmemesi dışında 'source -h' ile tamamen aynıdır.

Giriş kabuklarının başlangıçta history -L eşdeğerini yaptığını ve savehist ayarlanmışsa çıkmadan önce history -S yaptığını unutmayın. ~/.history dosyasından önce normalde yalnızca ~/.tcshrc kaynak alındığından, histfile ~/.login yerine ~/.tcshrc içinde ayarlanmalıdır.

histlit ayarlanmışsa, birinci ve ikinci biçimler geçmiş listesinin tam (literal, genişletilmemiş) biçimini yazdırır ve kaydeder.

Son biçim geçmiş listesini temizler.

hup [command] (+) command ile, command'ı bir hangup sinyalinde çıkacak şekilde çalıştırır ve kabuk çıktığında kabuğun ona bir hangup sinyali göndermesini ayarlar. Komutların hangups'a kendi yanıtlarını ayarlayarak hup'ı geçersiz kılabileceğini unutmayın. Bir argüman olmadan, etkileşimli olmayan kabuğun betiğin geri kalanı için yalnızca bir hangup durumunda çıkmasına neden olur. Ayrıca bkz. Sinyal işleme ve yerleşik nohup komutu.

if (expr) command Eğer expr (İfadeler altında açıklandığı gibi bir ifadedir) doğru olarak değerlendirilirse, command yürütülür. command üzerindeki değişken ikamesi erkenden, if komutunun geri kalanıyla aynı zamanda gerçekleşir. command basit bir komut olmalıdır; bir takma ad, bir boru hattı, bir komut listesi veya parantez içine alınmış bir komut listesi olamaz, ancak argümanları olabilir. expr yanlış olsa ve command bu nedenle yürütülmese bile girdi/çıktı yönlendirmesi gerçekleşir; bu bir hatadır (bug).

if (expr) then ... else if (expr2) then ... else ... endif Belirtilen expr doğru ise ilk else'e kadar olan komutlar yürütülür; aksi takdirde expr2 doğru ise ikinci else'e kadar olan komutlar yürütülür, vb. Herhangi bir sayıda else-if çifti mümkündür; yalnızca tek bir endif gereklidir. else kısmı da benzer şekilde isteğe bağlıdır. (else ve endif sözcükleri girdi satırlarının başında görünmelidir; if, girdi satırında tek başına veya bir else'ten sonra görünmelidir.)

inlib shared-library ... (+) Her bir shared-library paylaşılan kitaplığını mevcut ortama ekler. Bir paylaşılan kitaplığı kaldırmanın bir yolu yoktur. (Yalnızca Domain/OS)

jobs [-l] Aktif işleri listeler. -l ile, normal bilgilere ek olarak süreç kimliklerini (PIDs) listeler. TCF sistemlerinde, her işin yürütüldüğü siteyi yazdırır.

kill [-s signal] %job|pid ... kill -l Birinci ve ikinci biçimler belirtilen sinyali (veya hiçbiri verilmemişse TERM (sonlandırma) sinyalini) belirtilen işlere veya süreçlere gönderir. job, İşler altında açıklandığı gibi bir sayı, bir dize, ``, %, + veya - olabilir. Sinyaller sayı olarak ya da ad olarak (ön eki SIG olmadan, /usr/include/signal.h dosyasında verildiği gibi) verilir. Varsayılan bir iş yoktur; yalnızca kill demek mevcut işe bir sinyal göndermez. Gönderilen sinyal TERM (sonlandırma) veya HUP (hangup) ise, işe veya sürece bir CONT (devam et) sinyali de gönderilir. Üçüncü biçim sinyal adlarını listeler.

limit [-h] [resource [maximum-use]] Mevcut süreç ve onun oluşturduğu her süreç tarafından yapılan tüketimi, belirtilen resource üzerinde maximum-use değerini bireysel olarak aşmayacak şekilde sınırlar. maximum-use verilmemişse geçerli sınır yazdırılır; resource verilmemişse tüm sınırlamalar verilir. -h bayrağı verilirse, geçerli sınırlar yerine sert (hard) limitler kullanılır. Sert limitler geçerli limitlerin değerlerine bir tavan getirir. Yalnızca süper-kullanıcı (super-user) sert limitleri yükseltebilir, ancak bir kullanıcı yasal aralık dahilinde geçerli limitleri düşürebilir veya yükseltebilir.

Şu anda kontrol edilebilir kaynaklar şunları içerir (işletim sistemi tarafından destekleniyorsa):

cputime her bir süreç tarafından kullanılacak maksimum cpu-saniyesi sayısı

filesize oluşturulabilecek en büyük tek dosya

datasize sbrk(2) aracılığıyla data+stack bölgesinin program metninin sonunun ötesindeki maksimum büyümesi

stacksize otomatik olarak genişletilen stack bölgesinin maksimum boyutu

coredumpsize oluşturulacak en büyük core dump boyutu

memoryuse bir sürece belirli bir zamanda tahsis edilebilecek maksimum fiziksel bellek miktarı

vmemoryuse bir sürece belirli bir zamanda tahsis edilebilecek maksimum sanal bellek miktarı (adres alanı)

vmemoryuse bir sürece belirli bir zamanda tahsis edilebilecek maksimum sanal bellek miktarı

heapsize bir sürecin brk() sistem çağrısı başına tahsis edebileceği maksimum bellek miktarı

descriptors veya openfiles bu süreç için maksimum açık dosya sayısı

pseudoterminals bu kullanıcı için maksimum sahte-terminal (pseudo-terminal) sayısı

kqueues bu süreç için tahsis edilen maksimum kqueue sayısı

concurrency bu süreç için maksimum iş parçacığı (thread) sayısı

memorylocked bir sürecin mlock(2) kullanarak belleğe kilitleyebileceği maksimum boyut

maxproc bu kullanıcı kimliği için maksimum eşzamanlı süreç sayısı

maxthread bu kullanıcı kimliği için maksimum eşzamanlı iş parçacığı (hafif süreçler - lightweight processes) sayısı

threads bu süreç için maksimum iş parçacığı sayısı

sbsize bu kullanıcı için maksimum soket arabelleği (socket buffer) kullanım boyutu

swapsize bu kullanıcı için ayrılan veya kullanılan maksimum takas (swap) alanı miktarı

maxlocks bu kullanıcı için maksimum kilit sayısı

posixlocks bu kullanıcı için maksimum POSIX danışsal (advisory) kilit sayısı

maxsignal bu kullanıcı için maksimum bekleyen sinyal sayısı

maxmessage bu kullanıcı için POSIX mqueue'larındaki maksimum bayt sayısı

maxnice bu kullanıcı için kullanıcının yükseltmesine izin verilen, [19...-20] aralığından [0...39] aralığına eşlenen maksimum nice önceliği

maxrtprio bu kullanıcı için maksimum gerçek zamanlı öncelik maxrttime bu kullanıcı için mikro saniye cinsinden RT görevleri için zaman aşımı süresi.

maximum-use, ardından bir ölçek faktörü gelen bir (ondalık veya tam) sayı olarak verilebilir. cputime dışındaki tüm limitler için varsayılan ölçek k veya kilobytes (1024 bayt) şeklindedir; bir ölçek faktörü olarak m veya megabytes ya da g veya gigabytes da kullanılabilir. cputime için varsayılan ölçeklendirme seconds iken, dakikalar için m veya saatler için h ya da dakika ve saniyeleri veren mm:ss biçiminde bir zaman kullanılabilir.

maximum-use unlimited ise, belirtilen kaynak üzerindeki sınırlama kaldırılır (bu, unlimit yerleşik komutuna eşdeğerdir).

Hem kaynak adları hem de ölçek faktörleri için, adların belirsiz olmayan ön ekleri yeterlidir.

log (+) watch kabuk değişkenini yazdırır ve watch içinde belirtilen ve en son ne zaman oturum açtıklarına bakılmaksızın oturum açmış olan her kullanıcı hakkında rapor verir. Ayrıca bkz. watchlog.

login Bir giriş kabuğunu sonlandırır ve onu /bin/login örneğiyle değiştirir. Bu, sh(1) ile uyumluluk sağlamak amacıyla dahil edilmiş, oturumu kapatmanın yollarından biridir.

logout Bir giriş kabuğunu sonlandırır. Özellikle ignoreeof ayarlanmışsa kullanışlıdır.

ls-F [-switch ...] [file ...] (+) Dosyaları ls -F gibi ama çok daha hızlı listeler. Listedeki her özel dosya türünü özel bir karakterle tanımlar:

/ Dizin

  • Yürütülebilir dosya

Blok cihazı

% Karakter cihazı | Adlandırılmış boru (yalnızca adlandırılmış borulara sahip sistemlerde) = Soket (yalnızca soketlere sahip sistemlerde) @ Sembolik bağ (yalnızca sembolik bağlara sahip sistemlerde)

  • Gizli dizin (yalnızca AIX) veya bağlama bağlı (yalnızca HP/UX) : Ağ özel (yalnızca HP/UX)

listlinks kabuk değişkeni ayarlanmışsa, sembolik bağlar daha ayrıntılı olarak tanımlanır (tabii ki yalnızca bunlara sahip sistemlerde):

@ Dizin olmayan bir dosyaya sembolik bağ

Bir dizine sembolik bağ & Hiçbir yere işaret etmeyen (orphaned) sembolik bağ

listlinks ayrıca ls-F komutunu yavaşlatır ve sembolik bağların işaret ettiği dosyaları barındıran bölümlerin bağlanmasına (mount) neden olur.

listflags kabuk değişkeni x, a veya A ya da bunların herhangi bir kombinasyonuna (örneğin xA) ayarlanmışsa, bunlar ls-F için bayraklar olarak kullanılır ve ls -xF, ls -Fa, ls -FA veya bir kombinasyon (örneğin ls -FxA) gibi davranmasını sağlar. ls -C seçeneğinin varsayılan olmadığı makinelerde ls-F, listflags bir x içermedikçe ls -CF gibi davranır, içermesi durumunda ise ls -xF gibi davranır. ls-F, kendisine herhangi bir switch verilirse argümanlarını ls(1) komutuna iletir, bu nedenle alias ls ls-F genellikle doğru şeyi yapar.

ls-F yerleşiği, dosya türüne veya uzantısına bağlı olarak farklı renkler kullanarak dosyaları listeleyebilir. Bkz. color kabuk değişkeni ve LS_COLORS çevre değişkeni.

migrate [-site] pid|%jobid ... (+) migrate -site (+) İlk biçim süreci veya işi belirtilen siteye veya sistem yolu tarafından belirlenen varsayılan siteye taşır (migrate). İkinci biçim migrate -site $$ ifadesine eşdeğerdir: mevcut süreci belirtilen siteye taşır. Kabuğun kendisini taşımak beklenmedik davranışlara neden olabilir, çünkü kabuk tty'sini kaybetmeyi sevmez. (Yalnızca TCF)

newgrp [-] [group] (+) exec newgrp ifadesine eşdeğerdir; bkz. newgrp(1). Yalnızca kabuk bu şekilde derlenmişse kullanılabilir; bkz. version kabuk değişkeni.

nice [+number] [command] Kabuk için zamanlama önceliğini number değerine, number yoksa 4 değerine ayarlar. command ile, command'ı uygun öncelikte çalıştırır. Sayı ne kadar büyük olursa süreç o kadar az cpu alır. Süper-kullanıcı (super-user), nice -number ... kullanarak negatif öncelik belirtebilir. Command her zaman bir alt kabukta yürütülür ve basit if ifadelerindeki komutlara uygulanan kısıtlamalar geçerlidir.

nohup [command] command ile, command'ı hangup sinyallerini yoksayacak şekilde çalıştırır. Komutların hangups'a kendi yanıtlarını ayarlayarak nohup'ı geçersiz kılabileceğini unutmayın. Bir argüman olmadan, etkileşimli olmayan kabuğun betiğin geri kalanı için yalnızca hangups'ı yoksaymasına neden olur. Ayrıca bkz. Sinyal işleme ve yerleşik hup komutu.

notify [%job ...] Kabuğun, normalde olduğu gibi bir sonraki prompts'a kadar beklemek yerine, belirtilen işlerden herhangi birinin (veya %job olmadan mevcut işin) durumu değiştiğinde kullanıcıyı eşzamansız olarak bilgilendirmesini sağlar. job, İşler altında açıklandığı gibi bir sayı, bir dize, ``, %, + veya - olabilir. Ayrıca bkz. notify kabuk değişkeni.

onintr [-|label] Kesmelerde (interrupts) kabuğun eylemini kontrol eder. Argümansız olarak, kabuğun kesmelerdeki varsayılan eylemini geri yükler; bu eylem kabuk betiklerini sonlandırmak veya terminal komut girdi seviyesine geri dönmektir. - ile tüm kesmelerin yoksayılmasına neden olur. label ile, bir kesme alındığında veya bir çocuk süreç kesintiye uğradığı için sonlandığında kabuğun bir goto label yürütmesini sağlar.

onintr, kabuk arka planda (detached) çalışıyorsa ve kesmelerin zaten devre dışı bırakıldığı sistem başlangıç dosyalarında (bkz. DOSYALAR) yoksayılır.

popd [-p] [-l] [-n|-v] [+n] Argümansız olarak dizin yığınını pop eder (çıkarır) ve yeni üst dizine geri döner. Bir +n sayısı ile, yığındaki n. girdiyi atar.

Son olarak, popd'nin tüm biçimleri, tıpkı dirs gibi nihai dizin yığınını yazdırır. pushdsilent kabuk değişkeni bunu önlemek için ayarlanabilir ve pushdsilent'ı geçersiz kılmak için -p flag'i verilebilir. -l, -n ve -v bayrakları popd üzerinde dirs ile aynı etkiye sahiptir. (+)

printenv [name] (+) Tüm çevre değişkenlerinin adlarını ve değerlerini veya name ile name çevre değişkeninin değerini yazdırır.

pushd [-p] [-l] [-n|-v] [name|+n] Argümansız olarak dizin yığınının en üstteki iki öğesini yer değiştirir. pushdtohome ayarlanmışsa, argümansız pushd, cd gibi pushd ~ yapar. (+) name ile, geçerli çalışma dizinini dizin yığınına iter ve name olarak değiştirir. name - ise, önceki çalışma dizini olarak yorumlanır (bkz. Dosya adı ikamesi). (+) dunique ayarlanmışsa, pushd name'i yığına itmeden önce yığındaki tüm name örneklerini kaldırır. (+) Bir +n sayısı ile, dizin yığınının n. öğesini en üst öğe olacak şekilde döndürür ve ona geçer. Ancak dextract ayarlanmışsa, pushd +n n. dizini çıkarır, yığının en üstüne iter ve ona geçer. (+)

Son olarak, pushd'nin tüm biçimleri, tıpkı dirs gibi nihai dizin yığınını yazdırır. pushdsilent kabuk değişkeni bunu önlemek için ayarlanabilir ve pushdsilent'ı geçersiz kılmak için -p flag'i verilebilir. -l, -n ve -v bayrakları pushd üzerinde dirs ile aynı etkiye sahiptir. (+)

rehash path değişkenindeki dizinlerin içeriklerinin dahili hash tablosunun yeniden hesaplanmasına neden olur. Oturum açmış durumdayken path içindeki dizinlere yeni komutlar eklendiğinde ve autorehash kabuk değişkeni ayarlanmamışsa bu gereklidir. autorehash ile, hash tablosunda farklı bir dizinde bulunan aynı ada sahip başka bir komutun zaten var olduğu özel durum hariç, yeni bir komut otomatik olarak bulunacaktır. Ayrıca tilde genişletmesi tarafından oluşturulan ev dizinleri önbelleğini de temizler (flush).

repeat count command Bir satırlık if ifadesindeki komutla aynı kısıtlamalara tabi olan belirtilen komut, count kez yürütülür. Girdi/Çıktı yönlendirmeleri, count 0 olsa bile tam olarak bir kez gerçekleşir.

rootnode //nodename (+) Kök düğümü (rootnode) //nodename olarak değiştirir, böylece /' //nodename' olarak yorumlanacaktır. (Yalnızca Domain/OS)

sched (+) sched [+]hh:mm command (+) sched -n (+) İlk biçim zamanlanmış olay listesini yazdırır. Zamanlanmış olay listesinin yazdırılacağı biçimi tanımlamak için sched kabuk değişkeni ayarlanabilir. İkinci biçim command'ı zamanlanmış olay listesine ekler. Örneğin,

sched 11:00 echo It's eleven o'clock.

kabuğun sabah 11'de It's eleven o'clock. yazmasını sağlar. Zaman 12 saatlik AM/PM biçiminde olabilir

sched 5pm set prompt='[%h] It's after 5; go home: >'

veya geçerli saate göre göreceli olabilir:

sched +2:15 /usr/lib/uucp/uucico -r1 -sother

Göreceli bir zaman belirtimi AM/PM biçimini kullanamaz. Üçüncü biçim olay listesinden n. öğeyi kaldırır:

sched 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico -r1 -sother 2 Wed Apr 4 17:00 set prompt=[%h] It's after 5; go home: > sched -2 sched 1 Wed Apr 4 15:42 /usr/lib/uucp/uucico -r1 -sother

Zamanlanmış olay listesindeki bir komut, komutun zamanlandığı saatten sonra yazdırılan ilk prompts'tan hemen önce yürütülür. Komutun çalıştırılacağı tam zamanı kaçırmak mümkündür, ancak gecikmiş bir komut bir sonraki prompts'ta yürütülecektir. Kabuk kullanıcı girdisi beklerken zamanı gelen bir komut hemen yürütülür. Ancak, zamanlanmış olay listesi öğesinin çalıştırılabilmesi için halihazırda çalışan bir komutun normal işleyişi kesintiye uğratılmayacaktır.

Bu mekanizma, bazı Unix sistemlerindeki at(1) komutuna benzer ancak onunla aynı değildir. En büyük dezavantajı, bir komutu tam olarak belirtilen zamanda çalıştıramayabilmesidir. En büyük avantajı ise sched doğrudan kabuktan çalıştığı için kabuk değişkenlerine ve diğer yapılara erişimi olmasıdır. Bu, günün saatine göre çalışma ortamını değiştirmek için bir mekanizma sağlar.

set set name ... set name=word ... set [-r] [-f|-l] name=(wordlist) ... (+) set name[index]=word ... set -r (+) set -r name ... (+) set -r name=word ... (+) Komutun ilk biçimi tüm kabuk değişkenlerinin değerini yazdırır. Birden fazla sözcük içeren değişkenler, parantez içine alınmış bir sözcük listesi olarak yazdırılır. İkinci biçim name değişkenini boş dizeye ayarlar. Üçüncü biçim name değişkenini tek bir word'e ayarlar. Dördüncü biçim name değişkenini wordlist içindeki sözcük listesine ayarlar. Tüm durumlarda değer komut ve dosya adı genişletmesine tabi tutulur. -r belirtilirse değer salt okunur olarak ayarlanır. -f veya -l belirtilirse, sıralarını koruyarak yalnızca benzersiz sözcükleri ayarlayın. -f bir sözcüğün ilk görünümünü tercih eder, -l ise sonuncuyu. Beşinci biçim name değişkeninin index. bileşenini word olarak ayarlar; bu bileşen zaten mevcut olmalıdır. Altıncı biçim yalnızca salt okunur olan tüm kabuk değişkenlerinin adlarını listeler. Yedinci biçim bir değeri olup olmadığına bakılmaksızın name değişkenini salt okunur yapar. Sekizinci biçim üçüncü biçim gibidir, ancak aynı zamanda name değişkenini salt okunur yapar.

Tek bir set komutunda birden fazla değişkeni ayarlamak ve/veye salt okunur yapmak için bu argümanlar tekrarlanabilir. Ancak, herhangi bir ayarlama gerçekleşmeden önce tüm argümanlar için değişken genişletmesinin gerçekleştiğini unutmayın. Ayrıca `=' işaretinin hem name hem de word'e bitişik olabileceğini veya her ikisinden boşlukla ayrılabileceğini, ancak yalnızca birine veya diğerine bitişik olamayacağını unutmayın. Ayrıca yerleşik unset komutuna bakın.

setenv [name [value]] Argümansız olarak tüm çevre değişkenlerinin adlarını ve değerlerini yazdırır. name verildiğinde name çevre değişkenini value değerine ayarlar, value yoksa boş dizeye ayarlar.

setpath path (+) setpath(1) komutuna eşdeğerdir. (Yalnızca Mach)

setspath LOCAL|site|cpu ... (+) Sistem yürütme yolunu ayarlar. (Yalnızca TCF)

settc cap value (+) Kabuğa cap terminal yeteneğinin (termcap(5) içinde tanımlandığı gibi) value değerine sahip olduğuna inanmasını söyler. Hiçbir mantık kontrolü yapılmaz. Concept terminal kullanıcıları, en sağdaki sütunda düzgün satır sarma elde etmek için settc xn no yapmak zorunda kalabilirler.

setty [-d|-q|-x] [-a] [[+|-]mode] (+) Kabuğun değişmesine izin vermediği tty modlarını (bkz. Terminal yönetimi) kontrol eder. -d, -q veya -x sırasıyla edit, quote veya execute tty modları kümesi üzerinde işlem yapmasını söyler; -d, -q veya -x olmadan execute kullanılır.

Diğer argümanlar olmadan setty, seçilen kümede açık (+mode) veya kapalı (-mode) olarak sabitlenmiş olan modları listeler. Kullanılabilir modlar ve dolayısıyla ekran görünümü sistemden sisteme değişiklik gösterir. -a ile, sabitlenip sabitlenmediklerine bakılmaksızın seçilen kümedeki tüm tty modlarını listeler. +mode, -mode veya mode ile, modu açık veya kapalı olarak sabitler ya da seçilen kümedeki mod üzerindeki denetimi kaldırır. Örneğin, setty +echok echoe kabuk komutları yürütürken echok modunu açık olarak sabitler ve komutların echoe modunu açıp kapatmasına izin verir.

setxvers [string] (+) Deneysel sürüm ön ekini string olarak ayarlar veya string atlanırsa kaldırır. (Yalnızca TCF)

shift [variable] Argümansız olarak, argv[1]'i atar ve argv'nin üyelerini sola kaydırır. argv'nin ayarlanmamış olması veya değer olarak birden az sözcük içermesi bir hatadır. variable ile, aynı işlemi belirtilen variable üzerinde gerçekleştirir.

source [-h] name [args ...] Kabuk, name dosyasındaki komutları okur ve yürütür. Komutlar geçmiş listesine yerleştirilmez. Herhangi bir args verilmişse, bunlar argv içine yerleştirilir. (+) source komutları iç içe yerleştirilebilir; çok derine yerleştirilirlerse kabuğun dosya tanımlayıcıları (file descriptors) tükenebilir. Herhangi bir düzeydeki bir source dosyasındaki hata, tüm iç içe geçmiş source komutlarını sonlandırır. -h ile, komutlar yürütülmek yerine tıpkı history -L gibi geçmiş listesine yerleştirilir.

stop %job|pid ... Arka planda yürütülen belirtilen işleri veya süreçleri durdurur. job, İşler altında açıklandığı gibi bir sayı, bir dize, ``, %, + veya - olabilir. Varsayılan bir iş yoktur; yalnızca stop demek mevcut işi durdurmaz.

suspend Kabuğun, sanki ^Z ile bir durdurma sinyali gönderilmiş gibi olduğu yerde durmasına neden olur. Bu en çok su(1) tarafından başlatılan kabukları durdurmak için kullanılır.

switch (string) case str1:

... breaksw ... default:

... breaksw endsw Her bir case etiketi, sırasıyla, önce komut ve dosya adı genişletmesine tabi tutulmuş olan belirtilen string ile eşleştirilir. case etiketlerinde değişken genişletmesine tabi tutulan *, ? ve [...] dosya meta karakterleri kullanılabilir. Bir default etiketi bulunmadan önce etiketlerin hiçbiri eşleşmezse, yürütme default etiketinden sonra başlar. Her bir case etiketi ve default etiketi bir satırın başında görünmelidir. breaksw komutu, yürütmenin endsw sonrasından devam etmesini sağlar. Aksi takdirde, C'de olduğu gibi denetim case etiketleri ve default etiketleri üzerinden aşağıya doğru akabilir (fall through). Hiçbir etiket eşleşmezse ve bir default yoksa, yürütme endsw sonrasından devam eder.

telltc (+) Tüm terminal yeteneklerinin (bkz. termcap(5)) değerlerini listeler.

termname [terminal type] (+) terminal type türünün (veya terminal type verilmemişse TERM'in geçerli değerinin) ana bilgisayarın termcap(5) veya terminfo(5) veritabanında bir girdisi olup olmadığını test eder. Girdi mevcutsa terminal türünü standart çıktıya yazdırır ve 0 döndürür, aksi takdirde 1 döndürür.

time [command] command komutunu (basit bir komut olmalıdır; bir takma ad, bir boru hattı, bir komut listesi veya parantez içine alınmış bir komut listesi olmamalıdır) yürütür ve time değişkeni altında açıklandığı gibi bir zaman özeti yazdırır. Gerekirse, komut tamamlandığında zaman istatistiğini yazdırmak için ek bir kabuk oluşturulur. command olmadan, geçerli kabuk ve çocukları için bir zaman özeti yazdırır.

umask [value] Dosya oluşturma maskesini sekizlik (octal) olarak verilen value değerine ayarlar. Maske için yaygın değerler şunlardır: gruba tüm erişimi, diğerlerine ise okuma ve yürütme erişimini veren 002 ve gruba ve diğerlerine okuma ve yürütme erişimi veren 022. value olmadan, geçerli dosya oluşturma maskesini yazdırır.

unalias pattern Adları pattern ile eşleşen tüm takma adları kaldırır. Böylece unalias * tüm takma adları kaldırır. Hiçbir takma adın kaldırılmaması bir hata değildir.

uncomplete pattern (+) Adları pattern ile eşleşen tüm tamamlamaları kaldırır. Böylece uncomplete * tüm tamamlamaları kaldırır. Hiçbir tamamlamanın kaldırılmaması bir hata değildir.

unhash Yürütülen programların konumunu hızlandırmak için dahili hash tablosunun kullanımını devre dışı bırakır.

universe universe (+) Evreni (universe) universe olarak ayarlar. (Yalnızca Masscomp/RTU)

unlimit [-hf] [resource] resource üzerindeki sınırlamayı veya hiçbir resource belirtilmemişse tüm kaynak sınırlamalarını kaldırır. -h ile, ilgili sert limitler (hard limits) kaldırılır. Bunu yalnızca süper-kullanıcı yapabilir. Çoğu sistem dosya tanımlayıcılarının sınırsız olmasına izin vermediğinden, unlimit işleminin başarıyla çıkamayabileceğini unutmayın. -f ile hatalar yoksayılır.

unset pattern Read-only olmadıkları sürece adları pattern ile eşleşen tüm değişkenleri kaldırır. Böylece unset * read-only olmayan tüm değişkenleri kaldırır; bu kötü bir fikirdir. Hiçbir değişkenin kaldırılmaması bir hata değildir.

unsetenv pattern Adları pattern ile eşleşen tüm çevre değişkenlerini kaldırır. Böylece unsetenv * tüm çevre değişkenlerini kaldırır; bu kötü bir fikirdir. Hiçbir çevre değişkeninin kaldırılmaması bir hata değildir.

ver [systype [command]] (+) Argümansız olarak SYSTYPE değerini yazdırır. systype ile, SYSTYPE değerini systype olarak ayarlar. systype ve command ile, command komutunu systype altında yürütür. systype bsd4.3 veya sys5.3 olabilir. (Yalnızca Domain/OS)

wait Kabuk tüm arka plan işlerini bekler. Kabuk etkileşimliyse, bir kesme (interrupt) bekleme işlemini böler ve kabuğun tüm bekleyen işlerin adlarını ve iş numaralarını yazdırmasına neden olur.

warp universe (+) Evreni (universe) universe olarak ayarlar. (Yalnızca Convex/OS)

watchlog (+) log yerleşik komutunun (bkz.) alternatif bir adıdır. Yalnızca kabuk bu şekilde derlenmişse kullanılabilir; bkz. version kabuk değişkeni.

where command (+) Takma adlar, yerleşikler ve path içindeki yürütülebilir dosyalar dahil olmak üzere command komutunun bilinen tüm örneklerini rapor eder.

which command (+) İkamelerden, yol aramasından vb. sonra kabuk tarafından yürütülecek olan komutu görüntüler. Bu yerleşik komut tıpkı which(1) gibidir, ancak tcsh takma adlarını ve yerleşiklerini doğru şekilde rapor eder ve 10 ila 100 kat daha hızlıdır. Ayrıca which-command düzenleyici komutuna bakın.

while (expr) ... end expr (İfadeler altında açıklandığı gibi sıfır dışı bir değer üreten bir ifadedir) doğru olduğu sürece while ile eşleşen end arasındaki komutları yürütür. while ve end kendi girdi satırlarında tek başlarına görünmelidir. Döngüyü zamanından önce sonlandırmak veya devam ettirmek için break ve continue kullanılabilir. Girdi bir terminal ise, kullanıcı foreach döngüsünde olduğu gibi döngüde ilk kez geçilirken uyarılır.

Özel takma adlar (Special aliases) (+) Ayarlanmışsa, bu takma adların her biri belirtilen zamanda otomatik olarak yürütülür. Başlangıçta hepsi tanımsızdır.

beepcmd Kabuk terminal zilini çalmak istediğinde çalışır.

cwdcmd Çalışma dizininin her değişiminden sonra çalışır. Örneğin, kullanıcı twm(1) gibi başlık çubuklarını destekleyen bir pencere yöneticisi ve xterm(1) kullanarak bir X pencere sisteminde çalışıyorsa ve şunu yaparsa

alias cwdcmd 'echo -n "^[]2;${HOST}:$cwd ^G"'

o zaman kabuk çalışan xterm(1) başlığını makinenin adı, iki nokta üst üste ve geçerli çalışma dizininin tam yolu olacak şekilde değiştirecektir. Bunu yapmanın daha şık bir yolu şudur:

alias cwdcmd 'echo -n "^[]2;${HOST}:$cwd^G^[]1;${HOST}^G"'

Bu, makine adını ve çalışma dizinini başlık çubuğuna koyacaktır ancak simge yöneticisi (icon manager) menüsüne yalnızca makine adını koyacaktır.

cwdcmd içine bir cd, pushd veya popd koymanın sonsuz döngüye neden olabileceğini unutmayın. Yazara göre bunu yapan herkes hak ettiğini bulacaktır.

jobcmd Her komut yürütülmeden önce veya komut durum değiştirdiğinde çalışır. Bu postcmd komutuna benzer, ancak yerleşikleri yazdırmaz.

alias jobcmd 'echo -n "^[]2;!#:q^G"'

yazıldıktan sonra vi foo.c komutunu yürütmek xterm başlık çubuğuna komut dizesini yerleştirecektir.

helpcommand run-help düzenleyici komutu tarafından çağrılır. Yardımı aranan komut adı tek argüman olarak aktarılır. Örneğin, biri şunu yaparsa

alias helpcommand '!:1 --help'

o zaman GNU yardım çağırma kuralı kullanılarak komutun kendisinin yardım ekranı çağrılacaktır. Şu anda, birçok komuttan oluşan bir tablo kullanmak dışında, çeşitli çağırma kurallarını (örneğin geleneksel Unix -h seçeneği) hesaba katmanın kolay bir yolu yoktur.

periodic Her tperiod dakikada bir çalışır. Bu, yeni e-postalar gibi yaygın ancak seyrek değişiklikleri kontrol etmek için uygun bir araç sağlar. Örneğin, biri şunu yaparsa

set tperiod = 30 alias periodic checknews

o zaman checknews(1) programı her 30 dakikada bir çalışır. Eğer periodic ayarlanmış ancak tperiod ayarlanmamış veya 0 olarak ayarlanmışsa, periodic tıpkı precmd gibi davranır.

precmd Her prompts yazdırılmadan hemen önce çalışır. Örneğin, biri şunu yaparsa

alias precmd date

o zaman kabuk her komut için prompts sunmadan hemen önce date(1) çalışır. precmd'nin ne yapacak şekilde ayarlanabileceği konusunda bir sınır yoktur, ancak sağduyulu davranılmalıdır.

postcmd Her komut yürütülmeden önce çalışır.

alias postcmd 'echo -n "^[]2;!#:q^G"'

yazıldıktan sonra vi foo.c komutunu yürütmek xterm başlık çubuğuna komut dizesini yerleştirecektir.

shell Kendileri bir yorumlayıcı belirtmeyen yürütülebilir betikler için yorumlayıcıyı belirtir. İlk sözcük istenen yorumlayıcının tam yolu olmalıdır (örneğin /bin/csh veya /usr/local/bin/tcsh).

Özel kabuk değişkenleri Bu bölümde açıklanan değişkenlerin kabuk için özel bir anlamı vardır.

Kabuk; addsuffix, argv, autologout, csubstnonl, command, echo_style, edit, gid, group, home, loginsh, oid, path, prompt, prompt2, prompt3, shell, shlvl, tcsh, term, tty, uid, user ve version değişkenlerini başlangıçta ayarlar; kullanıcı tarafından değiştirilmedikçe bunlar daha sonra değişmez. Kabuk gerektiğinde cwd, dirstack, owd ve status değişkenlerini günceller ve oturum kapatılırken logout değişkenini ayarlanmış duruma getirir.

Kabuk; group, home, path, shlvl, term ve user değişkenlerini aynı adlara sahip çevre değişkenleriyle senkronize eder: çevre değişkeni her değiştiğinde kabuk buna karşılık gelen kabuk değişkenini eşleşecek şekilde değiştirir (kabuk değişkeni read-only olmadıkça) ve tersi de geçerlidir. cwd ve PWD değişkenlerinin aynı anlamlara sahip olmasına rağmen bu şekilde senkronize edilmediklerini ve kabuğun path ile PATH değişkenlerinin farklı biçimleri arasında otomatik olarak dönüşüm yaptığını unutmayın.

addsuffix (+) Ayarlanmışsa, dosya adı tamamlama tam olarak eşleştiğinde dizinlerin sonuna bir / ve normal dosyaların sonuna bir boşluk ekler. Varsayılan olarak ayarlıdır.

afsuser (+) Ayarlanmışsa, autologout'un autolock özelliği kerberos kimlik doğrulaması için yerel kullanıcı adı yerine bu değeri kullanır.

ampm (+) Ayarlanmışsa, tüm saatler 12 saatlik AM/PM biçiminde gösterilir.

anyerror (+) Bu değişken, status değişkeninin değerine neyin aktarılacağını seçer. Daha fazla bilgi için aşağıdaki status değişkeninin açıklamasına bakın.

argv Kabuğa iletilen argümanlar. Konumsal parametreler argv içinden alınır, yani $1 yerine $argv[1] konur vb. Varsayılan olarak ayarlıdır, ancak etkileşimli kabuklarda genellikle boştur.

autocorrect (+) Ayarlanmışsa, her tamamlama girişiminden önce spell-word düzenleyici komutu otomatik olarak çağrılır.

autoexpand (+) Ayarlanmışsa, her tamamlama girişiminden önce expand-history düzenleyici komutu otomatik olarak çağrılır. Bu onlyhistory olarak ayarlanmışsa, yalnızca geçmiş genişletilecek ve ikinci bir tamamlama dosya adlarını genişletecektir.

autolist (+) Ayarlanmışsa, belirsiz bir tamamlamadan sonra olası seçenekler listelenir. ambiguous olarak ayarlanmışsa, seçenekler yalnızca tamamlamayla hiçbir yeni karakter eklenmediğinde listelenir.

autologout (+) İlk sözcük, otomatik oturum kapatılmadan önceki hareketsizlik süresidir (dakika cinsinden). İsteğe bağlı ikinci sözcük, otomatik kilitlenmeden önceki hareketsizlik süresidir (dakika cinsinden). Kabuk otomatik olarak oturum kapattığında, auto-logout yazdırır, logout değişkenini automatic olarak ayarlar ve çıkar. Kabuk otomatik olarak kilitlendiğinde, kullanıcının çalışmaya devam etmesi için şifresini girmesi gerekir. Beş yanlış deneme otomatik oturum kapatmayla sonuçlanır. Giriş (login) ve süper-kullanıcı kabuklarında varsayılan olarak 60 (60 dakika sonra otomatik oturum kapatma ve kilitleme yok) değerine ayarlıdır, ancak kabuk bir pencere sistemi altında çalıştığını düşünüyorsa (yani DISPLAY çevre değişkeni ayarlanmışsa), tty bir sahte-tty (pty) ise veya kabuk bu şekilde derlenmemişse (bkz. version kabuk değişkeni) ayarlı değildir. Ayrıca afsuser ve logout kabuk değişkenlerine bakın.

autorehash (+) Ayarlanmışsa, hash tablosunda bir komut bulunamazsa path değişkenindeki dizinlerin içeriklerinin dahili hash tablosu yeniden hesaplanacaktır. Ek olarak, sırasıyla complete veya correct olarak ayarlanmışsa, her komut tamamlama veya yazım düzeltme girişiminde kullanılabilir komutlar listesi yeniden oluşturulacaktır; always olarak ayarlanmışsa, bu her iki durum için de yapılacaktır.

backslash_quote (+) Ayarlanmışsa, ters eğik çizgiler (\) her zaman \, ' ve " karakterlerini tırnak içine alır (kaçırır). Bu, karmaşık tırnak içine alma görevlerini kolaylaştırabilir, ancak csh(1) betiklerinde sözdizimi hatalarına neden olabilir.

catalog İleti kataloğunun (message catalog) dosya adı. Ayarlanmışsa tcsh varsayılan tcsh yerine bir ileti kataloğu olarak tcsh.${catalog} kullanır.

cdpath Mevcut dizinde bulunamazlarsa, cd komutunun alt dizinleri araması gereken dizinlerin listesi.

cdtohome (+) Ayarlanmamışsa, cd bir dizin adı gerektirir ve bu ad atlanırsa ev dizinine gitmez. Bu varsayılan olarak ayarlıdır.

color Ayarlanmışsa, yerleşik ls-F için renkli gösterimi etkinleştirir ve ls komutuna --color=auto seçeneğini iletir. Alternatif olarak, rengi yalnızca tek bir komut için etkinleştirmek amacıyla yalnızca ls-F veya yalnızca ls olarak ayarlanabilir. Hiçbir şeye ayarlanmaması, (ls-F ls) olarak ayarlanmasıyla eşdeğerdir.

colorcat Ayarlanmışsa, NLS ileti dosyaları için renk kaçış dizilerini etkinleştirir ve renkli NLS iletileri görüntüler.

command (+) Ayarlanmışsa, kabuğa -c bayrağıyla (bkz.) iletilen komuttur.

compat_expr (+) Ayarlanmışsa, kabuk ifadeleri tıpkı orijinal csh gibi sağdan sola doğru değerlendirecektir.

complete (+) igncase olarak ayarlanmışsa, tamamlama büyük/küçük harfe duyarsız hale gelir. enhance olarak ayarlanmışsa, tamamlama büyük/küçük harfi yoksayar ve kısa çizgiler ile alt çizgileri eşdeğer kabul eder; ayrıca noktaları, kısa çizgileri ve alt çizgileri (., - ve _) sözcük ayırıcıları olarak ele alır. Enhance olarak ayarlanmışsa, tamamlama büyük harf ve alt çizgi karakterlerini açıkça eşleştirir ve küçük harf ile kısa çizgileri büyük/küçük harfe duyarsız bir şekilde eşleştirir; noktaları, kısa çizgileri ve alt çizgileri sözcük ayırıcıları olarak ele alır.

continue (+) Bir komut listesine ayarlanmışsa, kabuk yeni bir komut başlatmak yerine listelenen komutlara devam edecektir.

continue_args (+) continue ile aynıdır, ancak kabuk şunu yürütecektir:

echo pwd $argv > ~/._pause; %

correct (+) cmd olarak ayarlanmışsa, komutların yazımı otomatik olarak düzeltilir. complete olarak ayarlanmışsa, komutlar otomatik olarak tamamlanır. all olarak ayarlanmışsa, tüm komut satırı düzeltilir.

csubstnonl (+) Ayarlanmışsa, komut ikamesindeki yeni satırlar ve satır başı karakterleri boşluklarla değiştirilir. Varsayılan olarak ayarlıdır.

cwd Geçerli dizinin tam yol adı. Ayrıca dirstack ve owd kabuk değişkenlerine bakın.

dextract (+) Ayarlanmışsa, pushd +n n. dizini dizin yığınından en üste döndürmek yerine yığından çıkarır (extracts).

dirsfile (+) dirs -S ve dirs -L komutlarının bir geçmiş dosyası arayacağı varsayılan konum. Ayarlanmamışsa ~/.cshdirs kullanılır. ~/.cshdirs dosyasından önce normalde yalnızca ~/.tcshrc kaynak alındığından, dirsfile ~/.login yerine ~/.tcshrc içinde ayarlanmalıdır.

dirstack (+) Dizin yığınındaki tüm dizinlerin bir dizisi. $dirstack[1] geçerli çalışma dizindir, $dirstack[2] yığındaki ilk dizindir vb. Geçerli çalışma dizininin $dirstack[1] olduğunu ancak dizin yığın ikamelerinde vb. =-0 olduğunu unutmayın. Dirstack ayarlanarak yığın keyfi olarak değiştirilebilir, ancak ilk öğe (geçerli çalışma dizini) her zaman doğrudur. Ayrıca cwd ve owd kabuk değişkenlerine bakın.

dspmbyte (+) Sadece version kabuk değişkeninin bir parçası olarak 'dspm' listelenmişse bir etkisi vardır. euc olarak ayarlanmışsa, EUC-kanji (Japonca) kodunun görüntülenmesini ve düzenlenmesini etkinleştirir. sjis olarak ayarlanmışsa, Shift-JIS (Japonca) kodunun görüntülenmesini ve düzenlenmesini etkinleştirir. big5 olarak ayarlanmışsa, Big5 (Çince) kodunun görüntülenmesini ve düzenlenmesini etkinleştirir. utf8 olarak ayarlanmışsa, UTF-8 (Unicode) kodunun görüntülenmesini ve düzenlenmesini etkinleştirir. Aşağıdaki biçimde ayarlanmışsa, orijinal çoklu bayt kod biçiminin görüntülenmesini ve düzenlenmesini etkinleştirir:

set dspmbyte = 0000....(256 bayt)....0000

Tablo tam olarak 256 bayt gerektirir. 256 karakterin her bir karakteri (soldan sağa doğru) 0x00, 0x01, ... 0xff ASCII kodlarına karşılık gelir. Each character is set to number 0,1,2 and 3. Each number has the following meaning: 0 ... çoklu baytlı karakterler için kullanılmaz. 1 ... çoklu baytlı bir karakterin ilk baytı için kullanılır. 2 ... çoklu baytlı bir karakterin ikinci baytı için kullanılır. 3 ... çoklu baytlı bir karakterin hem ilk hem de ikinci baytı için kullanılır.

Örnek: 001322 olarak ayarlanmışsa, 1. karakter (ASCII kodunun 0x00'ı anlamına gelir) ve 2. karakter (ASCII kodunun 0x01'i anlamına gelir) 0 olarak ayarlanır. O zaman çoklu baytlı karakterler için kullanılmaz. 3. karakter (0x02) '1' olarak ayarlanır, bu da çoklu baytlı bir karakterin ilk baytı için kullanıldığını gösterir. 4. karakter (0x03) '3' olarak ayarlanır. Çoklu baytlı bir karakterin hem ilk hem de ikinci baytı için kullanılır. 5. ve 6. karakterler (0x04, 0x05) '2' olarak ayarlanır, bu da çoklu baytlı bir karakterin ikinci baytı için kullanıldıklarını gösterir.

ls programının GNU fileutils sürümü, -N ( --literal ) seçeneği olmadan çoklu baytlı dosya adlarını görüntüleyemez. Bu sürümü kullanıyorsanız, dspmbyte'ın ikinci sözcüğünü "ls" olarak ayarlayın. Aksi takdirde, örneğin, "ls-F -l" çoklu baytlı dosya adlarını görüntüleyemez.

Not: Bu değişken yalnızca derleme zamanında KANJI ve DSPMBYTE tanımlanmışsa kullanılabilir.

dunique (+) Ayarlanmışsa, pushd name'i yığına itmeden önce yığındaki tüm name örneklerini kaldırır.

echo Ayarlanmışsa, her komut argümanlarıyla birlikte yürütülmeden hemen önce ekrana yansıtılır. Yerleşik olmayan komutlar için tüm genişletmeler ekrana yansıtılmadan önce gerçekleşir. Yerleşik komutlar, komut ve dosya adı ikamesinden önce ekrana yansıtılır, çünkü bu ikameler daha sonra seçici olarak yapılır. -x komut satırı seçeneğiyle ayarlanır.

echo_style (+) echo yerleşik komutunun stili. Şunlara ayarlanabilir:

bsd İlk argüman -n ise bir yeni satır yansıtmaz; csh için varsayılan. sysv echo dizelerindeki ters eğik çizgili kaçış dizilerini tanır. both Hem -n bayrağını hem de ters eğik çizgili kaçış dizilerini tanır; tcsh için varsayılan. none Hiçbirini tanımaz.

Varsayılan olarak yerel sistem varsayılanına ayarlıdır. BSD ve System V seçenekleri, ilgili sistemlerdeki echo(1) kılavuz sayfalarında açıklanmıştır.

edit (+) Ayarlanmışsa, komut satırı düzenleyicisi kullanılır. Etkileşimli kabuklarda varsayılan olarak ayarlıdır.

editors (+) run-fg-editor düzenleyici komutunun eşleştireceği komut adlarının bir listesi. Ayarlanmamışsa, bunun yerine EDITOR (ayarlanmamışsa ed) ve VISUAL (ayarlanmamışsa vi) çevre değişkenleri kullanılacaktır.

ellipsis (+) Ayarlanmışsa, %c / % ve %C prompts dizileri (bkz. prompt kabuk değişkeni) atlanan dizinleri /<skipped> yerine bir üç nokta (...) ile gösterir.

euid (+) Kullanıcının etkin kullanıcı kimliği (effective user ID).

euser (+) Etkin kullanıcı kimliğine karşılık gelen ilk eşleşen passwd girdi adı.

fignore (+) Tamamlama tarafından yoksayılacak dosya adı soneklerini listeler.

filec tcsh'de tamamlama her zaman kullanılır ve bu değişken varsayılan olarak yoksayılır. Eğer edit ayarlanmamışsa, geleneksel csh tamamlaması kullanılır. csh içinde ayarlanmışsa, dosya adı tamamlama kullanılır.

gid (+) Kullanıcının gerçek grup kimliği (real group ID).

globdot (+) Ayarlanmışsa, joker karakterli glob şablonları . ve .. hariç, . ile başlayan dosya ve dizinlerle eşleşecektir.

globstar (+) Ayarlanmışsa, ** ve *** dosya glob şablonları, mevcut alt dizinleri tarayarak / dahil herhangi bir karakter dizisiyle eşleşecektir. (Örneğin, ls **.c geçerli dizin ağacındaki tüm .c dosyalarını listeleyecektir). Tek başına kullanılırsa, sıfır veya daha fazla alt dizinle eşleşecektir (örneğin, ls /usr/include/**/time.h /usr/include dizin ağacındaki time.h adlı herhangi bir dosyayı listeleyecektir; ls /usr/include/**time.h ise /usr/include dizin ağacındaki time.h ile biten herhangi bir dosyayla eşleşecektir). Yineleme ile ilgili sorunları önlemek için, ** glob şablonu bir dizin içeren bir sembolik bağın içine inmeyecektir. Bunu geçersiz kılmak için *** kullanın.

group (+) Kullanıcının grup adı.

highlight Ayarlanmışsa, artımlı arama eşleşmesi (i-search-back ve i-search-fwd içinde) ve işaret ile imleç arasındaki bölge ters videoda (reverse video) vurgulanır.

Vurgulama daha sık terminal yazımları gerektirir, bu da ekstra bir genel gider (overhead) oluşturur. Terminal performansını önemsiyorsanız bunu ayarlanmamış olarak bırakmak isteyebilirsiniz.

histchars Geçmiş ikamesinde (bkz.) kullanılan karakterleri belirleyen bir dize değeri. Değerinin ilk karakteri, varsayılan ! karakterinin yerini alarak geçmiş ikamesi karakteri olarak kullanılır. Değerinin ikinci karakteri hızlı ikamelerde ^ karakterinin yerini alır.

histdup (+) Geçmiş listesindeki yinelenen girdilerin işlenmesini kontrol eder. all olarak ayarlanmışsa, geçmiş listesine yalnızca benzersiz geçmiş olayları girilir. prev olarak ayarlanmışsa ve son geçmiş olayı geçerli komutla aynıysa, geçerli komut geçmişe girilmez. erase olarak ayarlanmışsa ve geçmiş listesinde aynı olay bulunursa, o eski olay silinir ve geçerli olan eklenir. prev ve all seçeneklerinin geçmiş olaylarını yeniden numaralandırdığını, böylece boşluk kalmadığını unutmayın.

histfile (+) history -S ve history -L komutlarının bir geçmiş dosyası arayacağı varsayılan konum. Ayarlanmamışsa ~/.history is used. histfile, aynı ev dizinini farklı makineler arasında paylaşırken veya farklı terminallerde ayrı geçmişler kaydederken kullanışlıdır. ~/.history dosyasından önce normalde yalnızca ~/.tcshrc kaynak alındığından, histfile ~/.login yerine ~/.tcshrc içinde ayarlanmalıdır.

histlit (+) Ayarlanmışsa, yerleşik ve düzenleyici komutları ile savehist mekanizması geçmiş listesindeki satırların tam (literal, genişletilmemiş) biçimini kullanır. Ayrıca toggle-literal-history düzenleyici komutuna bakın.

history İlk sözcük kaydedilecek geçmiş olaylarının sayısını belirtir. İsteğe bağlı ikinci sözcük (+) geçmişin yazdırılacağı biçimi belirtir; verilmemişse %h\t%T\t%R\n kullanılır. Biçim dizileri aşağıda prompt altında açıklanmıştır; %R değişkeninin anlamına dikkat edin. Varsayılan olarak 100 değerine ayarlıdır.

home Çağıranın ev dizine başlatılır. ~ dosya adı genişletmesi bu değişkene atıfta bulunur.

ignoreeof Boş dizeye veya 0 değerine ayarlanmışsa ve girdi aygıtı bir terminal ise, dosya sonu (EOF) komutu (genellikle boş bir satırda kullanıcının ^D yazmasıyla üretilir) kabuğun çıkması yerine Use "exit" to leave tcsh. yazmasına neden olur. Bu kabuğun kazara sonlandırılmasını önler. Tarihsel olarak bu ayar, sonsuz döngüleri önlemek için ardışık 26 EOF'tan sonra çıkardı. Bir n sayısına ayarlanmışsa, kabuk n - 1 ardışık dosya sonunu yoksayar ve n. de çıkar. (+) Ayarlanmamışsa 1 kullanılır, yani kabuk tek bir ^D ile çıkar.

implicitcd (+) Ayarlanmışsa, kabuk bir komut olarak yazılan dizin adını o dizine geçme talebi olarak ele alır. verbose olarak ayarlanmışsa, dizin değişimi standart çıktıya yansıtılır. Bu davranış etkileşimli olmayan kabuk betiklerinde veya birden fazla sözcük içeren komut dizelerinde engellenir. Dizin değiştirmek, aynı adlı bir komutu yürütmekten önceliklidir, ancak takma ad ikamelerinden sonra yapılır. Tilde ve değişken genişletmeleri beklendiği gibi çalışır.

inputmode (+) insert veya overwrite olarak ayarlanmışsa, her satırın başında düzenleyiciyi o girdi moduna sokar.

killdup (+) Kesme halkasındaki (kill ring) yinelenen girdilerin işlenmesini kontrol eder. all olarak ayarlanmışsa, kesme halkasına yalnızca benzersiz dizeler girilir. prev olarak ayarlanmışsa ve son kesilen dize geçerli kesilen dizeyle aynıysa, geçerli dize halkaya girilmez. erase olarak ayarlanmışsa ve kesme halkasında aynı dize bulunursa, eski dize silinir ve geçerli olan eklenir.

killring (+) Bellekte tutulacak kesilen dize sayısını gösterir. Varsayılan olarak 30 değerine ayarlıdır. Ayarlanmamışsa veya 2 değerinden daha küçük bir değere ayarlanmışsa, kabuk yalnızca en son kesilen dizeyi tutacaktır. backward-delete-word, kill-line vb. gibi metin dizelerini silen (kesen) düzenleyici komutlarının yanı sıra copy-region-as-kill komutu da dizeleri kesme halkasına yerleştirir. yank düzenleyici komutu en son kesilen dizeyi komut satırına yapıştırırken, yank-pop (bkz. Düzenleyici komutları) daha önce kesilen dizeleri yapıştırmak için kullanılabilir.

listflags (+) x, a veya A ya da bunların herhangi bir kombinasyonuna (örneğin xA) ayarlanmışsa, ls-F için bayraklar olarak kullanılır ve ls -xF, ls -Fa, ls -FA veya bir kombinasyon (örneğin ls -FxA) gibi davranmasını sağlar: a tüm dosyaları gösterir (. ile başlasalar bile), A . ve .. hariç tüm dosyaları gösterir ve x aşağıya doğru değil enlemesine sıralar. Listflags'in ikinci sözcüğü ayarlanmışsa, ls(1) yolu olarak kullanılır.

listjobs (+) Ayarlanmışsa, bir iş askıya alındığında tüm işler listelenir. long olarak ayarlanmışsa, listeleme uzun biçimdedir.

listlinks (+) Ayarlanmışsa, yerleşik ls-F komutu her sembolik bağın işaret ettiği dosya türünü gösterir.

listmax (+) list-choices düzenleyici komutunun önce sormadan listeleyeceği maksimum öğe sayısı.

listmaxrows (+) list-choices düzenleyici komutunun önce sormadan listeleyeceği maksimum öğe satırı sayısı.

loginsh (+) Kabuk bir giriş kabuğu ise kabuk tarafından ayarlanır. Kabuk içinden ayarlanması veya kaldırılmasının bir etkisi yoktur. Ayrıca shlvl değişkenine bakın.

logout (+) Normal bir oturum kapatmadan önce kabuk tarafından normal olarak, otomatik oturum kapatmadan önce automatic olarak ve kabuk bir hangup sinyaliyle sonlandırılmışsa hangup olarak ayarlanır (bkz. Sinyal işleme). Ayrıca autologout kabuk değişkenine bakın.

mail Gelen postaları kontrol etmek için bir dosya ve dizin listesi, isteğe bağlı olarak başında sayısal bir sözcük bulunabilir. Her prompts'tan önce, son kontrolden bu yana 10 dakika geçmişse, kabuk her dosyayı kontrol eder ve dosya boyutu sıfırdan büyükse ve değişiklik zamanı erişim zamanından daha büyükse You have new mail. (veya mail birden fazla dosya içeriyorsa You have new mail in name.) der.

Gereksiz bildirimleri önlemek için bir giriş kabuğundaysanız, kabuk başladıktan sonra değiştirilmemiş hiçbir posta dosyası bildirilmez. Çoğu giriş programı, oturum açtığınızda postanız olup olmadığını size söyleyecektir.

mail içinde belirtilen bir dosya bir dizin ise, kabuk o dizin içindeki her dosyayı ayrı bir ileti olarak sayacak ve duruma göre You have n mails. veya You have n mails in name. raporu verecektir. Bu işlevsellik, öncelikle postaları bu şekilde saklayan Andrew Mail System gibi sistemler için sağlanmıştır.

mail değişkeninin ilk sözcüğü sayısal ise, bu saniye cinsinden farklı bir posta kontrol aralığı olarak alınır.

Çok nadir durumlarda kabuk You have new mail. yerine You have mail. raporu verebilir.

matchbeep (+) never olarak ayarlanmışsa, tamamlama hiçbir zaman bip sesi çıkarmaz. nomatch olarak ayarlanmışsa, yalnızca eşleşme olmadığında bip sesi çıkarır. ambiguous olarak ayarlanmışsa, birden fazla eşleşme olduğunda bip sesi çıkarır. notunique olarak ayarlanmışsa, bir kesin ve diğer daha uzun eşleşmeler olduğunda bip sesi çıkarır. Ayarlanmamışsa ambiguous kullanılır.

nobeep (+) Ayarlanmışsa, bip sesi tamamen devre dışı bırakılır. Ayrıca bkz. visiblebell.

noclobber Ayarlanmışsa, dosyaların kazara yok edilmemesini ve >> yönlendirmelerinin Giriş/Çıkış bölümünde açıklandığı gibi mevcut dosyalara atıfta bulunmasını sağlamak amacıyla çıktı yönlendirmesine kısıtlamalar getirilir.

noding Ayarlanmışsa, saat başlarında prompts saat belirteçlerinde DING! yazdırılmasını devre dışı bırakır.

noglob Ayarlanmışsa, Dosya adı ikamesi ve Dizin yığın ikamesi (bkz.) engellenir. Bu en çok dosya adlarıyla ilgilenmeyen kabuk betiklerinde veya bir dosya adı listesi elde edildikten sonra daha fazla genişletme yapılması istenmediğinde kullanışlıdır.

nokanji (+) Ayarlanmışsa ve kabuk Kanji'yi destekliyorsa (bkz. version kabuk değişkeni), meta tuşunun kullanılabilmesi için bu destek devre dışı bırakılır.

nonomatch Ayarlanmışsa, hiçbir mevcut dosyayla eşleşmeyen bir Dosya adı ikamesi veya Dizin yığın ikamesi (bkz.) bir hataya neden olmak yerine olduğu gibi bırakılır. İkamenin hatalı biçimlendirilmiş olması hala bir hatadır, örneğin echo [ hala bir hata verir.

nostat (+) Bir tamamlama işlemi sırasında stat(2) çağrısı yapılmaması gereken dizinlerin (veya dizinlerle eşleşen glob şablonlarının; bkz. Dosya adı ikamesi) listesi. Bu genellikle stat(2) yapılması çok fazla zaman alan dizinleri, örneğin /afs'yi hariç tutmak için kullanılır.

notify Ayarlanmışsa, kabuk iş tamamlanmalarını eşzamansız olarak duyurur. Varsayılan davranış, iş tamamlanmalarını bir prompts yazdırılmadan hemen önce sunmaktır.

oid (+) Kullanıcının gerçek kuruluş kimliği (organization ID). (Yalnızca Domain/OS)

owd (+) cd ve pushd tarafından kullanılan `-' işaretine eşdeğer olan eski çalışma dizini. Ayrıca cwd ve dirstack kabuk değişkenlerine bakın.

padhour Ayarlanmışsa, 24 ve 12 saatlik biçimlerde saatler için dolgu '0' karakterinin yazdırılmasını etkinleştirir. Örneğin: 7:45:42 yerine 07:45:42.

parseoctal Eski sürümlerle uyumluluğu korumak amacıyla 0 ile başlayan sayısal değişkenler sekizlik (octal) olarak yorumlanmaz. Bu değişkenin ayarlanması düzgün sekizlik ayrıştırmayı etkinleştirir.

path Yürütülebilir komutların aranacağı dizinlerin listesi. Boş bir sözcük geçerli dizini belirtir. Hiçbir path değişkeni yoksa yalnızca tam yol adları yürütülür. path, başlangıçta kabuk tarafından PATH çevre değişkeninden veya PATH mevcut değilse, (/usr/local/bin /usr/bsd /bin /usr/bin .) gibi sisteme bağlı bir varsayılandan ayarlanır. Kabuk, derlenme şekline bağlı olarak . karakterini path içinde ilk veya son sıraya koyabilir ya da tamamen çıkarabilir; bkz. version kabuk değişkeni. Ne -c ne de -t seçeneği verilmeyen bir kabuk, ~/.tcshrc okunduktan sonra ve path her sıfırlandığında path içindeki dizinlerin içeriğini hash tablosuna eşler. Kabuk etkinken path içindeki bir dizine yeni bir komut eklerseniz, kabuğun bunu bulabilmesi için bir rehash yapmanız gerekebilir.

printexitvalue (+) Ayarlanmışsa ve etkileşimli bir program sıfır olmayan bir durumla çıkarsa kabuk Exit status yazar.

prompt Terminalden her komut okunmadan önce yazdırılan dize. prompt, verilen bilgilerle değiştirilen aşağıdaki biçimlendirme dizilerinden (+) herhangi birini içerebilir:

%/ Geçerli çalışma dizini. %~ Geçerli çalışma dizini, ancak Dosya adı ikamesine göre kişinin ev dizini ~ ile ve diğer kullanıcıların ev dizinleri ~user ile temsil edilir. ~user ikamesi, yalnızca kabuk geçerli oturumda bir yol adında ~user ifadesini zaten kullanmışsa gerçekleşir. %c[[0]n], %.[[0]n] Geçerli çalışma dizininin son bileşeni veya bir n basamağı verilmişse sondaki n bileşen. Eğer n 0 ile başlıyorduysa, atlanan bileşen sayısı sondaki bileşen(ler)in önünde /<skipped>trailing biçiminde yer alır. Eğer ellipsis kabuk değişkeni ayarlanmışsa, atlanan bileşenler bir üç nokta ile temsil edilir, böylece tamamı ...trailing haline gelir. ~ ikamesi yukarıdaki %~ ifadesinde olduğu gibi yapılır, ancak sondaki bileşenler sayılırken ~ bileşeni yoksayılır. %C %c gibidir, ancak ~ ikamesi yoktur. %h, %!, ! Geçerli geçmiş olay numarası. %M Tam makine adı (hostname). %m İlk . karakterine kadar makine adı. %S (%s) Belirginleştirme (standout) modunu başlat (durdur). %B (%b) Kalın yazma (bold) modunu başlat (durdur). %U (%u) Altı çizili yazma (underline) modunu başlat (durdur). %t, %@ 12 saatlik AM/PM biçiminde günün saati. %T %t gibidir, ancak 24 saatlik biçimdedir (ancak ampm kabuk değişkenine bakın). %p Saniyelerle birlikte 12 saatlik AM/PM biçiminde günün ``kesin'' saati. %P %p gibidir, ancak 24 saatlik biçimdedir (ancak ampm kabuk değişkenine bakın). \c c, bindkey içinde olduğu gibi ayrıştırılır. ^c c, bindkey içinde olduğu gibi ayrıştırılır. %% Tek bir %. %n Kullanıcı adı. %N Etkin kullanıcı adı. %j İşlerin sayısı. %d Day biçiminde haftanın günü. %D dd biçiminde gün. %w Mon biçiminde ay. %W mm biçiminde ay. %y yy biçiminde yıl. %Y yyyy biçiminde yıl. %l Kabuğun tty'si. %L Prompts'un sonundan ekranın sonuna veya satırın sonuna kadar temizler. %$ Hemen $ sonrasındaki kabuk veya çevre değişkeni adını genişletir. %# Normal kullanıcılar için > (veya promptchars kabuk değişkeninin ilk karakteri), süper-kullanıcı için # (veya promptchars'ın ikinci karakteri). %{string%} Düz bir kaçış dizisi olarak string içerir. Yalnızca terminal özelliklerini değiştirmek için kullanılmalı ve imleç konumunu hareket ettirmemelidir. Bu, prompt içindeki son dizi olamaz. %? Prompts'tan hemen önce yürütülen komutun dönüş kodu (return code). %R prompt2 içinde ayrıştırıcının durumu. prompt3 içinde düzeltilen dize. history içinde geçmiş dizesi.

%B, %S, %U ve %{string%} yalnızca sekiz bit temiz kabuklarda kullanılabilir; bkz. version kabuk değişkeni.

Kalın, belirginleştirme ve altı çizili dizileri genellikle bir süper-kullanıcı kabuğunu ayırt etmek için kullanılır. Örneğin,

set prompt = "%m [%h] %B[%@]%b [%/] you rang? " tut [37] [2:54pm] [/usr/accts/sys] you rang? _

Eğer %t, %@, %T, %p veya %P kullanılıyorsa ve noding ayarlanmamışsa, gerçek zaman yerine saat değişiminde (yani :00 dakikalarda) DING! yazdırın.

Etkileşimli kabuklarda varsayılan olarak %# değerine ayarlıdır.

prompt2 (+) while ve foreach döngülerinde ve \ ile biten satırlardan sonra prompts olarak kullanılacak dize. prompt (bkz.) ile aynı biçimlendirme dizileri kullanılabilir; %R değişkeninin anlamına dikkat edin. Etkileşimli kabuklarda varsayılan olarak %R? değerine ayarlıdır.

prompt3 (+) Otomatik yazım düzeltmesini onaylarken prompts olarak kullanılacak dize. prompt (bkz.) ile aynı biçimlendirme dizileri kullanılabilir; %R değişkeninin anlamına dikkat edin. Etkileşimli kabuklarda varsayılan olarak CORRECT>%R (y|n|e|a)? değerine ayarlıdır.

promptchars (+) Ayarlanmışsa (iki karakterli bir dizeye), prompt kabuk değişkenindeki %# biçimlendirme dizisi normal kullanıcılar için ilk karakterle, süper-kullanıcı için ikinci karakterle değiştirilir.

pushdtohome (+) Ayarlanmışsa, argümansız pushd cd gibi pushd ~ yapar.

pushdsilent (+) Ayarlanmışsa, pushd ve popd dizin yığınını yazdırmaz.

recexact (+) Ayarlanmışsa, daha uzun bir eşleşme mümkün olsa bile tamamlama kesin bir eşleşme üzerinde tamamlanır.

recognize_only_executables (+) Ayarlanmışsa, komut listeleme path içinde yalnızca yürütülebilir olan dosyaları görüntüler. Yavaştır.

rmstar (+) Ayarlanmışsa, rm * yürütülmeden önce kullanıcı uyarılır.

rprompt (+) Prompts ekranın sol tarafında görüntülenirken, ekranın sağ tarafında (komut girdisinden sonra) yazdırılacak dize. prompt ile aynı biçimlendirme karakterlerini tanır. Komut girdisinin kapanmamasını sağlamak amacıyla gerektiğinde otomatik olarak kaybolur ve yeniden belirir ve yalnızca prompts, komut girdisi ve kendisi ilk satıra birlikte sığacaksa görünür. edit ayarlanmamışsa, rprompt prompts'tan sonra ve komut girdisinden önce yazdırılacaktır.

savedirs (+) Ayarlanmışsa, kabuk çıkmadan önce dirs -S yapar. İlk sözcük bir sayıya ayarlanmışsa, en fazla o kadar dizin yığını girdisi kaydedilir.

savehist Ayarlanmışsa, kabuk çıkmadan önce history -S yapar. İlk sözcük bir sayıya ayarlanmışsa, en fazla o kadar satır kaydedilir. (Bu sayı geçmiş girdilerinin sayısından küçük veya ona eşit olmalıdır; geçmiş ayarlarının sayısından büyük ayarlanırsa yalnızca geçmiş girdileri kaydedilecektir). İkinci sözcük merge olarak ayarlanmışsa, geçmiş listesi mevcut geçmiş dosyasının üzerine yazılmak yerine onunla birleştirilir (varsa), zaman damgasına göre sıralanır ve en son olaylar korunur. savehist'in ikinci sözcüğü merge ve üçüncü sözcüğü lock olarak ayarlanmışsa, geçmiş dosyası güncellemesi, tam olarak aynı anda geçmişi birleştirmek isteyebilecek diğer kabuk oturumlarıyla sıralı (serialized) hale getirilecektir. (+)

sched (+) sched yerleşik komutunun zamanlanmış olayları yazdıracağı biçim; verilmemişse %h\t%T\t%R\n kullanılır. Biçim dizileri yukarıda prompt altında açıklanmıştır; %R değişkeninin anlamına dikkat edin.

shell Kabuğun içinde bulunduğu dosya. Bu, yürütme bitleri ayarlanmış olan ancak sistem tarafından doğrudan yürütülemeyen dosyaları yorumlamak amacıyla kabuklar oluştururken (forking) kullanılır. (See the description of Builtin and non-builtin command execution.) Kabuğun (sisteme bağlı) ev dizine başlatılır.

shlvl (+) İç içe geçmiş kabukların sayısı. Giriş kabuklarında 1 değerine sıfırlanır. Ayrıca bkz. loginsh.

status Son komuttan veya geri tırnak (backquote) genişletmesinden elde edilen çıkış durumu ya da bir boru hattındaki herhangi bir komutun çıkış durumu status değişkenine aktarılır. (This is also the default csh behavior.) Bu varsayılan davranış, POSIX'in zorunlu kıldığı davranışla (yalnızca son komutun durumunu döndürmek) eşleşmez. POSIX davranışıyla eşleşmesi için anyerror değişkenini kaldırmanız gerekir.

anyerror değişkeni kaldırılmışsa, bir boru hattının çıkış durumu yalnızca boru hattındaki son komuttan belirlenir ve bir geri tırnak genişletmesinin çıkış durumu status değişkenine aktarılmayacaktır.

Bir komut anormal şekilde sonlandırıldıysa, status değişkenine 0200 eklenir. Başarısız olan yerleşik komutlar çıkış durumu olarak 1 döndürür, diğer tüm yerleşik komutlar 0 döndürür.

symlinks (+) Sembolik bağ (symlink) çözümlemesini kontrol etmek amacıyla birkaç farklı değere ayarlanabilir:

chase olarak ayarlanmışsa, geçerli dizin ne zaman bir sembolik bağ içeren bir dizine değişirse, bağın işaret ettiği dizinin gerçek adına genişletilir. Bu kullanıcının ev dizini için çalışmaz; bu bir hatadır.

ignore olarak ayarlanmışsa, kabuk, geçerli dizini sembolik bağ geçilmeden önceki geçerli dizine göre oluşturmaya çalışır. Bu, sembolik bir bağ üzerinden cd yapıp ardından cd .. yapmanın kişiyi orijinal dizine döndüreceği anlamına gelir. Bu yalnızca yerleşik komutları ve dosya adı tamamlamayı etkiler.

expand olarak ayarlanmışsa, kabuk yol adlarına benzeyen argümanları gerçekten genişleterek sembolik bağları düzeltmeye çalışır. Bu, yalnızca yerleşikleri değil her komutu etkiler. Maalesef, komut seçeneklerine yerleştirilmiş olanlar gibi tanınması zor olan dosya adları için bu çalışmaz. Tırnak içine alma (quoting) ile genişletme engellenebilir. Bu ayar genellikle en kullanışlı olanı olsa da bazen yanıltıcıdır ve genişletilmesi gereken bir argümanı tanıyamadığında kafa karıştırıcı olabilir. Orta yol, ignore kullanmak ve gerektiğinde normalize-path düzenleyici komutunu (varsayılan olarak ^X-n tuşuna atalıdır) kullanmaktır.

Bazı örnekler vermek gerekirse. İlk olarak, bazı deneme dizinleri oluşturalım:

cd /tmp mkdir from from/src to ln -s from/src to/dst

symlinks ayarlanmamışken davranış şöyledir,

cd /tmp/to/dst; echo $cwd /tmp/to/dst cd ..; echo $cwd /tmp/from

symlinks chase olarak ayarlanmışken davranış şöyledir,

cd /tmp/to/dst; echo $cwd /tmp/from/src cd ..; echo $cwd /tmp/from

symlinks ignore olarak ayarlanmışken davranış şöyledir,

cd /tmp/to/dst; echo $cwd /tmp/to/dst cd ..; echo $cwd /tmp/to

ve symlinks expand olarak ayarlanmışken davranış şöyledir.

cd /tmp/to/dst; echo $cwd /tmp/to/dst cd ..; echo $cwd /tmp/to cd /tmp/to/dst; echo $cwd /tmp/to/dst cd ".."; echo $cwd /tmp/from /bin/echo .. /tmp/to /bin/echo ".." ..

expand genişletmesinin 1) cd gibi yerleşikler için tıpkı ignore gibi çalıştığını, 2) tırnak içine alarak engellenebildiğini ve 3) dosya adları yerleşik olmayan komutlara aktarılmadan önce gerçekleştiğini unutmayın.

tcsh (+) Kabuğun R.VV.PP biçimindeki sürüm numarası; burada R ana yayın numarası, VV geçerli sürüm ve PP yama düzeyidir.

term Terminal türü. Genellikle Başlangıç ve kapanış altında açıklandığı gibi ~/.login içinde ayarlanır.

time Bir sayıya ayarlanmışsa, time yerleşik komutu (bkz.) bu sayıdan daha fazla CPU saniyesi alan her komuttan sonra otomatik olarak yürütülür. İkinci bir sözcük varsa, time yerleşik komutunun çıktısı için bir biçim dizesi olarak kullanılır. (u) Biçim dizesinde aşağıdaki diziler kullanılabilir:

%U Sürecin kullanıcı modunda (user mode) harcadığı CPU saniyesi cinsinden süre. %S Sürecin çekirdek modunda (kernel mode) harcadığı CPU saniyesi cinsinden süre. %E Saniye cinsinden geçen (duvar saati) süre. %P (%U + %S) / %E olarak hesaplanan CPU yüzdesi. %W Sürecin takas (swap) edilme sayısı. %X Kilobayt cinsinden kullanılan (paylaşılan) ortalama metin alanı miktarı. %D Kilobayt cinsinden kullanılan (paylaşılmayan) veri/yığın alanı miktarı. %K Kilobayt cinsinden kullanılan toplam alan (%X + %D). %M Sürecin herhangi bir zamanda kullanımda sahip olduğu kilobayt cinsinden maksimum bellek miktarı. %F Büyük sayfa hatası (diskten getirilmesi gereken sayfa) sayısı. %R Küçük sayfa hatası sayısı. %I Girdi işlemlerinin sayısı. %O Çıktı işlemlerinin sayısı. %r Alınan soket iletilerinin sayısı. %s Gönderilen soket iletilerinin sayısı. %k Alınan sinyallerin sayısı. %w İsteğe bağlı bağlam anahtarlamalarının (beklemelerin) sayısı. %c İsteğe bağlı olmayan bağlam anahtarlamalarının sayısı.

BSD kaynak sınırı işlevleri olmayan sistemlerde yalnızca ilk dört dizi desteklenir. Varsayılan zaman biçimi, kaynak kullanımı raporlamasını destekleyen sistemler için %Uu %Ss %E %P %X+%Dk %I+%Oio %Fpf+%Ww ve desteklemeyen sistemler için %Uu %Ss %E %P şeklindedir.

Sequent'in DYNIX/ptx işletim sistemi altında %X, %D, %K, %r ve %s kullanılamaz, ancak aşağıdaki ek diziler mevcuttur:

%Y Yürütülen sistem çağrısı sayısı. %Z İsteğe bağlı olarak sıfırla doldurulan sayfa sayısı. %i Bir sürecin yerleşik küme boyutunun çekirdek tarafından artırılma sayısı. %d Bir sürecin yerleşik küme boyutunun çekirdek tarafından azaltılma sayısı. %l Yürütülen okuma sistem çağrısı sayısı. %m Yürütülen yazma sistem çağrısı sayısı. %p Ham disk cihazlarından yapılan okuma sayısı. %q Ham disk cihazlarına yapılan yazma sayısı.

ve varsayılan zaman biçimi %Uu %Ss %E %P %I+%Oio %Fpf+%Ww şeklindedir. Çoklu işlemcilerde CPU yüzdesinin %100'den yüksek olabileceğini unutmayın.

tperiod (+) periodic özel takma adının yürütülmesi arasındaki dakika cinsinden süre.

tty (+) tty adı, bir tty'ye bağlı değilse boş dizedir.

uid (+) Kullanıcının gerçek kullanıcı kimliği (real user ID).

user Kullanıcının oturum açma adı.

verbose Ayarlanmışsa, geçmiş ikamesinden (varsa) sonra her komutun sözcüklerinin yazdırılmasına neden olur. -v komut satırı seçeneğiyle ayarlanır.

version (+) Sürüm kimlik damgası. Kabuğun sürüm numarasını (bkz. tcsh), kökenini, yayın tarihini, satıcısını, işletim sistemini ve makinesini (bkz. VENDOR, OSTYPE ve MACHTYPE) ve derleme zamanında ayarlanan seçeneklerin virgülle ayrılmış bir listesini içerir. Dağıtımda varsayılan olarak ayarlanan seçenekler belirtilmiştir.

8b Kabuk sekiz bit temizdir; varsayılan 7b Kabuk sekiz bit temiz değildir wide Kabuk çoklu bayt kodlama temizdir (UTF-8 gibi) nls Sistemin NLS'si kullanılır; NLS'li sistemler için varsayılan lf Giriş kabukları /etc/csh.login dosyasını /etc/csh.cshrc dosyasından önce (sonra değil) ve ~/.login dosyasını ~/.tcshrc ile ~/.history dosyalarından önce yürütür. dl Güvenlik amacıyla . path içinde en sona konur; varsayılan nd Güvenlik amacıyla . path dışı bırakılır vi Düzenleme emacs(1) stili yerine varsayılan olarak vi(1) stilidir dtr Giriş kabukları çıkarken DTR hattını düşürür bye bye, logout'un eşanlamlısıdır ve log, watchlog'un alternatif adıdır al autologout etkindir; varsayılan kan nokanji kabuk değişkeni ayarlanmadığı sürece yerel ayarlara uygun şekilde Kanji kullanılır sm Sistemin malloc(3) işlevi kullanılır hb Kabuk betiklerini yürütürken #!<program> <args> kuralı taklit edilir ng newgrp yerleşik komutu kullanılabilir rh Kabuk REMOTEHOST çevre değişkenini ayarlamaya çalışır afs Yerel kimlik doğrulaması başarısız olursa kabuk şifrenizi kerberos sunucusuyla doğrular. afsuser kabuk değişkeni veya AFSUSER çevre değişkeni, ayarlanmışsa yerel kullanıcı adınızın yerine geçer.

Yönetici yerel sürümdeki farklılıkları belirtmek için ek dizeler girebilir.

vimode (+) Ayarlanmamışsa, çeşitli tuş atamaları davranışlarını emacs(1) stiline daha yakın olacak şekilde değiştirir: sözcük sınırları, wordchars'a karşı diğer karakterler tarafından belirlenir.

Ayarlanmışsa, çeşitli tuş atamaları davranışlarını vi(1) stiline daha yakın olacak şekilde değiştirir: sözcük sınırları wordchars'a karşı boşluklara karşı diğer karakterler tarafından belirlenir; imleç davranışı geçerli vi moduna bağlıdır (komut, silme, ekleme, değiştirme).

Bu değişken bindkey -e ile kaldırılır ve bindkey -v ile ayarlanır. vimode, gerekirse bu bindkey işlemlerinden sonra kullanıcı tarafından açıkça ayarlanabilir veya kaldırılabilir.

visiblebell (+) Ayarlanmışsa, sesli zil yerine ekran flaşı kullanılır. Ayrıca bkz. nobeep.

watch (+) Oturum açma ve kapatma işlemleri için izlenecek kullanıcı/terminal çiftlerinin listesi. Eğer kullanıcı any ise, verilen kullanıcı için tüm terminaller izlenir ve tersi de geçerlidir. watch değişkenini (any any) olarak ayarlamak tüm kullanıcıları ve terminalleri izler. Örneğin,

set watch = (george ttyd1 any console $user any)

george kullanıcısının ttyd1 üzerindeki etkinliğini, konsoldaki herhangi bir kullanıcıyı ve herhangi bir terminaldeki kendinizi (veya bir davetsiz misafiri) rapor eder.

Oturum açmalar ve kapatmalar varsayılan olarak her 10 dakikada bir kontrol edilir, ancak watch değişkeninin ilk sözcüğü her kaç dakikada bir kontrol edileceğini belirtmek için bir sayıya ayarlanabilir. Örneğin,

set watch = (1 any any)

her bir dakikada bir herhangi bir oturum açma/kapatma işlemini rapor eder. Sabırsızlar için, log yerleşik komutu herhangi bir zamanda bir izleme raporunu tetikler. watch ilk kez ayarlandığında tüm mevcut oturum açmalar rapor edilir (log yerleşik komutunda olduğu gibi).

who kabuk değişkeni watch raporlarının biçimini kontrol eder.

who (+) watch mesajlarının biçim dizesidir. Aşağıdaki diziler verilen bilgilerle değiştirilir:

%n Oturum açan/kapatan kullanıcının adı. %a Gözlemlenen eylem, yani logged on, logged off veya replaced olduser on. %l Kullanıcının oturum açtığı/kapattığı terminal (tty). %M Uzak ana bilgisayarın tam makine adı veya oturum açma/kapatma yerel makinedense local. %m Uzak ana bilgisayarın ilk . karakterine kadar olan makine adı. IP adresi veya X Window System ekranı ise tam adı yazdırılır.

%M ve %m yalnızca uzak makine adını /etc/utmp içinde saklayan sistemlerde mevcuttur. Ayarlanmamışsa, %n has %a %l from %m. kullanılır, uzak makine adını saklamayan sistemlerde ise %n has %a %l. kullanılır.

wordchars (+) forward-word, backward-word vb. düzenleyici komutları tarafından bir sözcüğün parçası olarak kabul edilecek alfanümerik olmayan karakterlerin listesi. Ayarlanmamışsa, varsayılan değer vimode durumuna göre belirlenir: vimode ayarlanmamışsa varsayılan olarak *?_-.[]~= kullanılır; vimode ayarlanmışsa varsayılan olarak _ kullanılır.

Çevre (Environment)

AFSUSER (+) afsuser kabuk değişkenine eşdeğerdir.

COLUMNS Terminaldeki sütun sayısı. Bkz. Terminal yönetimi.

DISPLAY X Window System tarafından kullanılır (bkz. X(1)). Ayarlanmışsa, kabuk autologout (bkz.) değişkenini ayarlamaz.

EDITOR Varsayılan düzenleyicinin yol adı. editors kabuk değişkeni ayarlanmamışsa run-fg-editor düzenleyici komutu tarafından kullanılır. Ayrıca VISUAL çevre değişkenine bakın.

GROUP (+) group kabuk değişkenine eşdeğerdir.

HOME home kabuk değişkenine eşdeğerdir.

HOST (+) gethostname(2) sistem çağrısı tarafından belirlendiği üzere kabuğun çalıştığı makinenin adına başlatılır.

HOSTTYPE (+) Derleme zamanında belirlendiği üzere kabuğun çalıştığı makinenin türüne başlatılır. Bu değişken kullanımdan kaldırılmıştır (obsolete) ve gelecekteki bir sürümde kaldırılacaktır.

HPATH (+) run-help düzenleyici komutunun komut belgelerini arayacağı dizinlerin iki nokta üst üste ile ayrılmış bir listesi.

LANG Tercih edilen karakter ortamını verir. Bkz. Yerel Dil Sistemi (Native Language System) desteği.

LC_CTYPE Ayarlanmışsa, yalnızca ctype karakter işleme değiştirilir. Bkz. Yerel Dil Sistemi desteği.

LINES Terminaldeki satır sayısı. Bkz. Terminal yönetimi.

LS_COLORS Bu değişkenin biçimi termcap(5) dosya biçimini andırır; "xx=string" biçimindeki ifadelerin iki nokta üst üste ile ayrılmış bir listesidir; burada "xx" iki karakterli bir değişken adıdır. İlişkili varsayılanlarıyla birlikte değişkenler şunlardır:

no 0 Normal (dosya adı olmayan) metin fi 0 Normal dosya di 01;34 Dizin ln 01;36 Sembolik bağ pi 33 Adlandırılmış boru (FIFO) so 01;35 Soket do 01;35 Door (Kapı) bd 01;33 Blok cihazı cd 01;32 Karakter cihazı ex 01;32 Yürütülebilir dosya mi (yok) Eksik dosya (varsayılanı fi) or (yok) Sahipsiz sembolik bağ (varsayılanı ln) lc ^[[ Sol kod rc m Sağ kod ec (yok) Bitiş kodu (lc+no+rc yerine geçer)

Yalnızca varsayılandan değiştirmek istediğiniz değişkenleri eklemeniz gerekir.

Dosya adları, dosya uzantısına göre de renklendirilebilir. Bu, LS_COLORS değişkeninde "ext=string" sözdizimi kullanılarak belirtilir. Örneğin, ISO 6429 kodlarını kullanarak, tüm C dili kaynak dosyalarını maviye boyamak için ".c=34" belirtirsiniz. Bu, .c ile biten tüm dosyaları mavi (34) renkle renklendirir.

Kontrol karakterleri C-stili kaçışlı notasyonla veya stty benzeri ^-notasyonuyla yazılabilir. C-stili notasyon Escape için ^[, normal bir boşluk karakteri için _, ve Delete için ? ekler. Ek olarak, ^[ kaçış karakteri ^[, ^, : ve = karakterlerinin varsayılan yorumunu geçersiz kılmak için kullanılabilir.

Her dosya olarak yazılacaktır. kodu tanımlanmamışsa, bunun yerine dizisi kullanılacaktır. Bu genellikle kullanımı daha uygun ama daha az geneldir. Sol, sağ ve bitiş kodları, ortak parçaları tekrar tekrar yazmak zorunda kalmamanız ve tuhaf terminalleri desteklemek için sağlanmıştır; terminaliniz ISO 6429 renk dizilerini değil de farklı bir sistemi kullanmadığı sürece bunları değiştirmeniz gerekmeyecektir.

Terminaliniz ISO 6429 renk kodlarını kullanıyorsa, tip kodlarını (yani lc, rc ve ec kodları hariç tümü) noktalı virgülle ayrılmış sayısal komutlardan oluşturabilirsiniz. En yaygın komutlar şunlardır:

0 varsayılan rengi geri yüklemek için 1 daha parlak renkler için 4 altı çizili metin için 5 yanıp sönen metin için 30 siyah ön plan için 31 kırmızı ön plan için 32 yeşil ön plan için 33 sarı (veya kahverengi) ön plan için 34 mavi ön plan için 35 mor ön plan için 36 turkuaz (cyan) ön plan için 37 beyaz (veya gri) ön plan için 40 siyah arka plan için 41 kırmızı arka plan için 42 yeşil arka plan için 43 sarı (veya kahverengi) arka plan için 44 mavi arka plan için 45 mor arka plan için 46 turkuaz (cyan) arka plan için 47 beyaz (veya gri) arka plan için

Tüm komutlar tüm sistemlerde veya görüntüleme cihazlarında çalışmayacaktır.

Birkaç terminal programı varsayılan bitiş kodunu düzgün şekilde tanımaz. Bir dizin listesi yaptıktan sonra tüm metin renklendirilirse, no ve fi kodlarını 0'dan standart ön ve arka plan renklerinizin sayısal kodlarına değiştirmeyi deneyin.

MACHTYPE (+) Derleme zamanında belirlendiği üzere makine türü (mikroişlemci sınıfı veya makine modeli).

NOREBIND (+) Ayarlanmışsa, yazdırılabilir karakterler self-insert-command komutuna yeniden atanmaz. Bkz. Yerel Dil Sistemi desteği.

OSTYPE (+) Derleme zamanında belirlendiği üzere operating system.

PATH Yürütülebilir dosyaların aranacağı dizinlerin iki nokta üst üste ile ayrılmış bir listesi. path kabuk değişkenine eşdeğerdir, ancak farklı bir biçimdedir.

PWD (+) cwd kabuk değişkenine eşdeğerdir, ancak onunla senkronize değildir; yalnızca gerçek bir dizin değişikliğinden sonra güncellenir.

REMOTEHOST (+) Eğer durum buysa ve kabuk bunu belirleyebiliyorsa, kullanıcının uzaktan oturum açtığı ana bilgisayar. Yalnızca kabuk bu şekilde derlenmişse ayarlanır; bkz. version kabuk değişkeni.

SHLVL (+) shlvl kabuk değişkenine eşdeğerdir.

SYSTYPE (+) Geçerli sistem türü. (Yalnızca Domain/OS)

TERM term kabuk değişkenine eşdeğerdir.

TERMCAP Terminal yetenek dizesi. Bkz. Terminal yönetimi.

USER user kabuk değişkenine eşdeğerdir.

VENDOR (+) Derleme zamanında belirlendiği üzere satıcı (vendor).

VISUAL Varsayılan tam ekran düzenleyicinin yol adı. editors kabuk değişkeni ayarlanmamışsa run-fg-editor düzenleyici komutu tarafından kullanılır. Ayrıca EDITOR çevre değişkenine bakın.

Dosyalar (Files)

/etc/csh.cshrc Her kabuk tarafından ilk olarak okunur. ConvexOS, Stellix ve Intel /etc/cshrc dosyasını, NeXT /etc/cshrc.std dosyasını kullanır. A/UX, AMIX, Cray ve IRIX csh(1) içinde bir eşdeğere sahip değildir, ancak yine de tcsh içinde bu dosyayı okur. Solaris 2.x de buna sahip değildir, ancak tcsh /etc/.cshrc dosyasını okur. (+) /etc/csh.login Giriş kabukları tarafından /etc/csh.cshrc dosyasından sonra okunur. ConvexOS, Stellix ve Intel /etc/login dosyasını, NeXT /etc/login.std dosyasını, Solaris 2.x /etc/.login dosyasını ve A/UX, AMIX, Cray ve IRIX /etc/cshrc dosyasını kullanır. ~/.tcshrc (+) /etc/csh.cshrc veya eşdeğerinden sonra her kabuk tarafından okunur. ~/.cshrc ~/.tcshrc mevcut değilse, /etc/csh.cshrc veya eşdeğerinden sonra her kabuk tarafından okunur. Bu kılavuz ~/.tcshrc ifadesini ~/.tcshrc veya ~/.tcshrc bulunamazsa ~/.cshrc anlamında kullanır. ~/.history savehist ayarlanmışsa, ~/.tcshrc dosyasından sonra giriş kabukları tarafından okunur, ancak histfile değişkenine de bakın. ~/.login ~/.tcshrc veya ~/.history dosyasından sonra giriş kabukları tarafından okunur. Kabuk, ~/.login dosyasını ~/.tcshrc ve ~/.history dosyalarından önce (sonra değil) okuyacak şekilde derlenmiş olabilir; bkz. version kabuk değişkeni. ~/.cshdirs (+) savedirs ayarlanmışsa, ~/.login dosyasından sonra giriş kabukları tarafından okunur, ancak dirsfile değişkenine de bakın. /etc/csh.logout Giriş kabukları tarafından oturum kapatılırken okunur. ConvexOS, Stellix ve Intel /etc/logout dosyasını, NeXT /etc/logout.std dosyasını kullanır. A/UX, AMIX, Cray ve IRIX csh(1) içinde bir eşdeğere sahip değildir, ancak tcsh içinde yine de bu dosyayı okur. Solaris 2.x de buna sahip değildir, ancak tcsh /etc/.logout dosyasını okur. (+) ~/.logout Oturum kapatılırken /etc/csh.logout veya eşdeğerinden sonra giriş kabukları tarafından okunur. /bin/sh # ile başlamayan kabuk betiklerini yorumlamak için kullanılır. /tmp/sh* << için geçici dosya. /etc/passwd ~name ikameleri için ev dizinlerinin kaynağı.

Kabuk bu şekilde derlenmişse başlangıç dosyalarının okunma sırası farklılık gösterebilir; bkz. Başlangıç ve kapanış ve version kabuk değişkeni.

YENİ ÖZELLİKLER (+) Bu kılavuz tcsh'yi tek bir bütün olarak açıklamaktadır, ancak deneyimli csh(1) kullanıcıları tcsh'nin yeni özelliklerine özel olarak dikkat etmek isteyeceklerdir.

Emacs(1) stili veya vi(1) stili tuş atamalarını destekleyen bir komut satırı düzenleyicisi. Bkz. Komut satırı düzenleyicisi ve Düzenleyici komutları.

Programlanabilir, etkileşimli sözcük tamamlama ve listeleme. Bkz. Tamamlama ve listeleme ile complete ve uncomplete yerleşik komutları.

Dosya adları, komutlar ve değişkenlerin yazım düzeltmesi (bkz.).

Yazılan komutların ortasında diğer yararlı işlevleri gerçekleştiren düzenleyici komutları (bkz.); belge arama (run-help), hızlı düzenleyiciyi yeniden başlatma (run-fg-editor) ve komut çözümleme (which-command) dahil.

Geliştirilmiş bir geçmiş (history) mekanizması. Geçmiş listesindeki olaylar zaman damgalıdır. Ayrıca bkz. history komutu ve ilişkili kabuk değişkenleri, geçmiş ikamesi altındaki daha önce belgelenmemiş # olay belirteci ve yeni değiştiriciler, -history, history-search-, i-search-, vi-search- ve toggle-literal-history düzenleyici komutları ve histlit kabuk değişkeni.

Geliştirilmiş dizin ayrıştırma ve dizin yığını yönetimi. Bkz. cd, pushd, popd ve dirs komutları ile ilişkili kabuk değişkenleri, Dizin yığın ikamesinin açıklaması, dirstack, owd ve symlinks kabuk değişkenleri ile normalize-command ve normalize-path düzenleyici komutları.

Glob şablonlarında olumsuzlama. Bkz. Dosya adı ikamesi.

Yeni dosya sorgulama operatörleri (bkz.) ve bunları kullanan bir filetest yerleşik komutu.

Zamanlanmış olaylar, özel takma adlar, otomatik oturum kapatma ve terminal kilitleme, komut zamanlaması ve oturum açma ve kapatmaları izleme dahil olmak üzere çeşitli otomatik, periyodik ve zamanlanmış olaylar (bkz.).

Yerel Dil Sistemi (Native Language System) desteği (bkz. Yerel Dil Sistemi desteği), işletim sistemi varyant özellikleri (bkz. İşletim sistemi varyant desteği ve echo_style kabuk değişkeni) ve sisteme bağlı dosya konumları (bkz. DOSYALAR).

Kapsamlı terminal yönetimi yetenekleri. Bkz. Terminal yönetimi.

builtins, hup, ls-F, newgrp, printenv, which ve where dahil olmak üzere yeni yerleşik komutlar (bkz.).

Yararlı bilgileri kabuğa kolayca sunan yeni değişkenler. Bkz. gid, loginsh, oid, shlvl, tcsh, tty, uid ve version kabuk değişkenleri ile HOST, REMOTEHOST, VENDOR, OSTYPE ve MACHTYPE çevre değişkenleri.

İstenen bilgileri prompts dizesine dahil etmek için yeni bir sözdizimi (bkz. prompt) ve döngüler ile yazım düzeltme için özel prompts'lar (bkz. prompt2 ve prompt3).

Salt okunur (read-only) değişkenler. Bkz. Değişken ikamesi.

Hatalar (Bugs)

Askıya alınmış bir komut yeniden başlatıldığında, geçerli dizinden farklıysa kabuk komutun başladığı dizini yazdırır. İş dahili olarak dizinleri değiştirmiş olabileceğinden bu yanıltıcı (yani yanlış) olabilir.

Kabuk yerleşik işlevleri durdurulabilir/yeniden başlatılabilir değildir. Durdurma denendiğinde a ; b ; c biçimindeki komut dizileri de düzgün şekilde işlenmez. Eğer b askıya alınırsa, kabuk hemen c komutunu yürütecektir. Bu genişletme bir takma addan kaynaklanıyorsa özellikle fark edilir. Komut dizisini bir alt kabuğa zorlamak için () içine almak, yani ( a ; b ; c ) şeklinde yazmak yeterlidir.

Süreçler başladıktan sonra tty çıktısı üzerindeki denetim ilkeldir; belki bu birilerine iyi bir sanal terminal arabirimi üzerinde çalışmak için ilham verir. Bir sanal terminal arabiriminde çıktı denetimiyle çok daha ilginç şeyler yapılabilir.

Takma ad ikamesi çoğunlukla kabuk prosedürlerini beceriksizce taklit etmek için kullanılır; takma adlar yerine kabuk prosedürleri sağlanmalıdır.

Denetim yapıları yerleşik komutlar olarak tanınmak yerine ayrıştırılmalıdır. Bu, denetim komutlarının herhangi bir yere yerleştirilmesine, | ile birleştirilmesine ve & ve ; meta sözdizimi ile kullanılmasına izin verecektir.

foreach, bitişini ararken here belgelerini yoksaymez.

Komut ikamelerinin çıktısında : değiştiricilerini kullanmak mümkün olmalıdır.

Ekran genişliğinden daha uzun satırlar için ekran güncellemesi, terminal imleci yukarı hareket ettiremiyorsa (yani terminal türü dumb ise) çok zayıftır.

HPATH ve NOREBIND değişkenlerinin çevre değişkenleri olması gerekmez.

?, * veya [] kullanmayan veya {} ya da ~ kullanan glob şablonları doğru şekilde olumsuzlanmaz.

if ifadesinin tek komutlu biçimi, ifade yanlış olsa ve komut yürütülmese bile çıktı yönlendirmesi yapar.

ls-F, dosya adlarını sıralarken dosya tanımlama karakterlerini dahil eder ve dosya adlarındaki kontrol karakterlerini iyi işlemez. Kesintiye uğratılamaz.

Komut ikamesi birden çok komutu ve koşulu destekler, ancak döngüleri veya geriye doğru goto'ları desteklemez.

Hataları tercihen düzeltmeleriyle birlikte https://bugs.astron.com/ adresine bildirin. tcsh'nin bakımına ve test edilmesine yardımcı olmak istiyorsanız, kendinizi https://mailman.astron.com/ adresindeki e-posta listesine ekleyin.

Tcsh İçindeki T Harfi

In 1964, DEC produced the PDP-6. The PDP-10 was a later re-implementation. It was re-christened the DECsystem-10 in 1970 or so when DEC brought out the second model, the KI10.

TENEX was created at Bolt, Beranek & Newman (a Cambridge, Massachusetts think tank) in 1972 as an experiment in demand-paged virtual memory operating systems. They built a new pager for the DEC PDP-10 and created the OS to go with it. It was extremely successful in academia.

In 1975, DEC brought out a new model of the PDP-10, the KL10; they intended to have only a version of TENEX, which they had licensed from BBN, for the new box. They called their version TOPS-20 (their capitalization is trademarked). A lot of TOPS-10 users (`The OPerating System for PDP-10') objected; thus DEC found themselves supporting two incompatible systems on the same hardware--but then there were 6 on the PDP-11!

TENEX, and TOPS-20 to version 3, had command completion via a user-code-level subroutine library called ULTCMD. With version 3, DEC moved all that capability and more into the monitor (kernel' for you Unix types), accessed by the COMND% JSYS (Jump to SYStem' instruction, the supervisor call mechanism).

tcsh'nin geliştiricisi, bu özellikten ve TENEX ile TOPS-20'nin diğer birkaç özelliğinden etkilenerek csh'nin bunları taklit eden bir sürümünü geliştirdi.

Sınırlamalar

Sistem, argüman listelerini ARG_MAX karakterle sınırlar.

Dosya adı genişletmesini içeren bir komuta verilen argüman sayısı, bir argüman listesinde izin verilen karakter sayısının 1/6'sı ile sınırlıdır.

Komut ikameleri, bir argüman listesinde izin verilenden daha fazla karakter ikame edemez.

Döngüleri tespit etmek için kabuk, tek bir satırdaki takma ad ikamelerinin sayısını 20 ile sınırlar.

Ayrıca Bakınız

csh(1), emacs(1), ls(1), newgrp(1), sh(1), setpath(1), stty(1), su(1), tset(1), vi(1), x(1), access(2), execve(2), fork(2), killpg(2), pipe(2), setrlimit(2), sigvec(2), stat(2), umask(2), vfork(2), wait(2), malloc(3), setlocale(3), tty(4), a.out(5), termcap(5), environ(7), termio(7), Introduction to the C Shell

Sürüm

Bu kılavuz tcsh 6.21.00 (Astron) 2019-05-08 sürümünü belgelemektedir.

Yazarlar

William Joy csh(1) komutunun asıl yazarı J.E. Kulp, IIASA, Laxenburg, Avusturya İş denetimi ve dizin yığını özellikleri Ken Greer, HP Labs, 1981 Dosya adı tamamlama Mike Ellis, Fairchild, 1983 Komut adı tanıma/tamamlama Paul Placeway, Ohio State CIS Dept., 1983-1993 Komut satırı düzenleyicisi, prompts rutinleri, yeni glob sözdizimi ve çok sayıda düzeltme ve hızlandırma Karl Kleinpaste, CCI 1983-4 Özel takma adlar, dizin yığını çıkarma işleri, giriş/çıkış izleme, zamanlanmış olaylar ve yeni prompts biçimi fikri Rayan Zachariassen, University of Toronto, 1984 ls-F ve which yerleşikleri ve çok sayıda hata düzeltmesi, değişiklik ve hızlandırma Chris Kingsley, Caltech Hızlı bellek tahsis edici rutinleri Chris Grevstad, TRW, 1987 4.3BSD csh'yi tcsh içine dahil etti Christos S. Zoulas, Cornell U. EE Dept., 1987-94 HPUX, SVR2 ve SVR3 platformlarına taşıma işleri, getwd.c'nin bir SysV sürümü, SHORT_STRINGS desteği ve sh.glob.c'nin yeni bir sürümü James J Dempsey, BBN ve Paul Placeway, OSU, 1988 A/UX platformuna taşıma Daniel Long, NNSC, 1988 wordchars Patrick Wolfe, Kuck and Associates, Inc., 1988 vi modu temizliği David C Lawrence, Rensselaer Polytechnic Institute, 1989 autolist ve belirsiz tamamlama listeleme Alec Wolman, DEC, 1989 Prompts'ta yeni satırlar Matt Landau, BBN, 1989 ~/.tcshrc Ray Moody, Purdue Physics, 1989 Sihirli boşluk tuşu geçmiş genişletmesi Mordechai ????, Intel, 1989 printprompt() düzeltmeleri ve eklemeleri Kazuhiro Honda, Dept. of Computer Science, Keio University, 1989 Otomatik yazım düzeltmesi ve prompt3 Per Hedeland, Ellemtel, İsveç, 1990- Çeşitli hata düzeltmeleri, iyileştirmeler ve kılavuz güncellemeleri Hans J. Albertsson (Sun İsveç) ampm, settc ve telltc Michael Bloom Kesme işleme düzeltmeleri Michael Fine, Digital Equipment Corp Genişletilmiş tuş desteği Eric Schnoebelen, Convex, 1990 Convex desteği, çok sayıda csh hata düzeltmesi, dizin yığınının kaydedilmesi ve geri yüklenmesi Ron Flax, Apple, 1990 A/UX 2.0 platformuna yeniden taşıma Dan Oscarsson, LTH İsveç, 1990 NLS desteği ve NLS olmayan siteler için taklit NLS desteği, düzeltmeler Johan Widen, SICS İsveç, 1990 shlvl, Mach desteği, correct-line, 8-bit yazdırma Matt Day, Sanyo Icon, 1990 POSIX termio desteği, SysV limit düzeltmeleri Jaap Vermeulen, Sequent, 1990-91 Vi modu düzeltmeleri, expand-line, pencere değişimi düzeltmeleri, Symmetry platformuna taşıma Martin Boyer, Institut de recherche d'Hydro-Quebec, 1991 autolist bip seçenekleri, geçmiş aramasını satır başından imlece kadar olan tüm diziyi arayacak şekilde değiştirdi. Scott Krotz, Motorola, 1991 Minix platformuna taşıma David Dawes, Sydney U. Avustralya, Physics Dept., 1991 SVR4 iş denetimi düzeltmeleri Jose Sousa, Interactive Systems Corp., 1991 Gelişmiş vi düzeltmeleri ve vi silme komutu Marc Horowitz, MIT, 1991 ANSI uyumluluğu düzeltmeleri, yeni exec hashing kodu, imake düzeltmeleri, where Bruce Sterling Woodcock, sterling@netcom.com, 1991-1995 ETA ve Pyramid platformlarına taşıma, Makefile ve lint düzeltmeleri, ignoreeof=n eklemesi ve diğer çeşitli taşınabilirlik değişiklikleri ile hata düzeltmeleri Jeff Fink, 1992 complete-word-fwd and complete-word-back Harry C. Pulley, 1992 Coherent platformuna taşıma Andy Phillips, Mullard Space Science Lab U.K., 1992 VMS-POSIX platformuna taşıma Beto Appleton, IBM Corp., 1992 Yürüyen süreç grubu düzeltmeleri, csh hata düzeltmeleri, POSIX dosya testleri, POSIX SIGHUP Scott Bolte, Cray Computer Corp., 1992 CSOS platformuna taşıma Kaveh R. Ghazi, Rutgers University, 1992 Tek, m88k, Titan ve Masscomp platformlarına taşıma işleri ve düzeltmeleri. autoconf desteği eklendi. Mark Linderman, Cornell University, 1992 OS/2 platformuna taşıma Mika Liljeberg, liljeber@kruuna.Helsinki.FI, 1992 Linux platformuna taşıma Tim P. Starrin, NASA Langley Research Center Operations, 1993 Salt okunur değişkenler Dave Schweisguth, Yale University, 1993-4 Yeni kılavuz sayfası ve tcsh.man2html Larry Schwimmer, Stanford University, 1993 AFS ve HESIOD yamaları Luke Mewburn, RMIT University, 1994-6 Prompts'ta gelişmiş dizin yazdırma, ellipsis ve rprompt eklemeleri. Edward Hutchins, Silicon Graphics Inc., 1996 implicit cd eklendi. Martin Kraemer, 1997 Siemens Nixdorf EBCDIC makinesine taşıdı Amol Deshpande, Microsoft, 1997 WIN32 (Windows/95 ve Windows/NT) platformuna taşıdı; Windows arabirimi için tüm eksik kitaplık ve ileti kataloğu kodlarını yazdı. Taga Nayuta, 1998 Renkli ls eklemeleri.

Teşekkürler (Thanks To)

Bryan Dunlap, Clayton Elwell, Karl Kleinpaste, Bob Manson, Steve Romig, Diana Smetters, Bob Sutterfield, Mark Verber, Elizabeth Zwicky ve önerileri ile teşvikleri için Ohio State'deki diğer tüm insanlara

Tüm internet camiasına; her bir sürüme katlandıkları, hata bildirdikleri ve yeni eklemeler önerdikleri için

Richard M. Alderson III'e, tcsh İçindeki T Harfi bölümünü yazdığı için

Astron 6.21.00 8 Mayıs 2019 TCSH(1)