İçeriğe atla

Tcsh

TENEX C Shell
Örnek bir tcsh oturumu
Geliştirici(ler)Ken Greer, Paul Placeway, Christos Zoulas, et al.
Güncel sürüm6.24.13[1] Bunu Vikiveri'de düzenleyin / 12 Haziran 2024 (4 ay önce) (12 Haziran 2024)
Programlama diliC
TürUnix shell
Lisans2002: BSD-3-Clause[2][3]
1991: BSD-4-Clause[4]
Resmî sitesitcsh.org
Kod deposu Bunu Vikiveri'de düzenleyin

tcsh (/ˌtˈsʃɛl/ “tee-see-shell”, /ˈtʃɛl/ “tee-shell” veya “tee see ess aitch”, tcsh ) C kabuğuna (csh) temelli ve geriye dönük uyumlu bir Unix kabuğudur.

Kabuk (Shell)

Temelde programlanabilir komut satırı tamamlama, komut satırı düzenleme ve diğer birkaç özelliğe sahip C kabuğudur. Diğer yaygın kabuklardan farklı olarak, işlevler bir tcsh betiğinde tanımlanamaz ve kullanıcının bunun yerine (csh'de olduğu gibi) takma ad kullanması gerekir. FreeBSD gibi BSD tabanlı sistemler için yerel kök kabuğudur.

tcsh, "t" nin kaynağı olan TENEX işletim sisteminden ödünç alınan dosya adı ve komut tamamlama ve komut satırı düzenleme kavramlarını ekledi.[5] Yalnızca işlevsellik eklediğinden ve orada olanı değiştirmediğinden, tcsh orijinal C kabuğuyla geriye dönük uyumlu[6] kaldı. Bill Joy'un yarattığı orijinal csh kaynak ağacından bir yan dal olarak başlasa da, tcsh artık devam eden geliştirme için ana daldır.

tcsh çok kararlı, ancak çoğunlukla küçük hata düzeltmelerinden oluşan yeni sürümler kabaca yılda bir kez çıkmaya devam ediyor.[7]

macOS ve Red Hat Linux gibi birçok sistemde csh aslında tcsh. Genellikle iki dosyadan biri diğerine ya bir sabit bağlantı ya da sembolik bir bağlantıdır, bu nedenle her iki ad da C kabuğunun aynı geliştirilmiş sürümüne atıfta bulunur (ancak hangi adın kullanıldığına bağlı olarak davranış değişebilir).

Debian ve bazı türevlerde (Ubuntu dahil), iki farklı paket vardır: csh ve tcsh . İlki, csh [8][9] 'nin orijinal BSD sürümünü temel alır ve ikincisi, geliştirilmiş tcsh'dir.[10][11]

Geçmiş

tcsh "t", komut tamamlama özelliğiyle tcsh'nin yazarı Carnegie Mellon Üniversitesi'nden Ken Greer'e ilham veren bir işletim sistemi olan TENEX'teki "T" harfinden gelir.[12] Greer, Eylül 1975'te Tenex tarzı dosya adı tamamlamayı uygulamak için kodu üzerinde çalışmaya başladı ve sonunda Aralık 1981'de C kabuğuyla birleştirdi.[5] Fairchild AI Labs'tan Mike Ellis, Eylül 1983'te komut tamamlamayı ekledi.[5] 3 Ekim 1983'te Greer, net.sources haber grubuna kaynak gönderdi.[5]

Önemli özellikler

  • Komut geçmişi
    • Yerleşik history komutu, daha önce girilen komutları görüntüler.
    • Kullanımı / kullanıcının düzenlemek/yürütmek için geçmişten bir komut seçmesine izin vermek için komut satırında
    • Komut geçmişini kullanarak önceki komutları çağırma
      • !! önceki komutu yürütür
      • !n daha önce yürütülen nth komutunu yürütür
      • !-n n komut önce yürütülen komutu yürütür
      • ! string string ile başlayan en son çalıştırılan komutu yürütür
      • !? string string içeren en son çalıştırılan komutu yürütür
    • Yeni komutlarda geçmişi kullanma
      • !* - önceki komuttaki tüm bağımsız değişkenleri ifade eder
      • !$ - önceki komutun son bağımsız değişkenini ifade eder
      • !^ - önceki komutun ilk bağımsız değişkenini ifade eder
      • !:n - önceki komuttaki n'inci bağımsız değişkeni ifade eder
      • !:mn - önceki komuttaki m'den n'ye kadar olan argümanları ifade eder
      • !:n-$ - önceki komutun n'inci argümanından son argümanına değinir
  • Komut satırı düzenleme
  • Dosya adlarının ve değişkenlerin otomatik tamamlanması ve komut satırında programlanabilir tamamlama
  • Takma ad bağımsız değişken seçicileri; kendisine sağlanan bağımsız değişkenleri almak ve bunları atıfta bulunduğu komutlara uygulamak için bir takma ad tanımlama yeteneği. Tcsh, bu özelliği sağlayan tek kabuktur (işlevlerin yerine).
    • \!# - diğer ad/komutun kendisi dahil olmak üzere tüm bağımsız değişkenler için bağımsız değişken seçici; argümanların sağlanması gerekmez.
    • \!* - takma ad/komut hariç tüm bağımsız değişkenler için bağımsız değişken seçici; argümanların sağlanması gerekmez.
    • \!$ - son bağımsız değişken için bağımsız değişken seçici; bağımsız değişkenin sağlanmasına gerek yoktur, ancak hiçbiri sağlanmazsa takma ad son bağımsız değişken olarak kabul edilir.
    • \!^ - ilk bağımsız değişken için bağımsız değişken seçici; bağımsız değişken sağlanmalıdır ZORUNLU.
    • \!:n - n'inci bağımsız değişken için bağımsız değişken seçici; bağımsız değişken sağlanmalıdır ZORUNLU; n=0, diğer adı/komut adını ifade eder.
    • \!:mn - m'den n'ye kadar olan bağımsız değişkenler için bağımsız değişken seçici; bağımsız değişkenler sağlanmalıdır ZORUNLU.
    • \!:n-$ - n.'den sonuncuya kadar olan bağımsız değişkenler için bağımsız değişken seçici; en azından bağımsız değişken n sağlanmalıdır ZORUNLU.
    • \!:n* - n.'den sonuncuya kadar olan bağımsız değişkenler için bağımsız değişken seçici; yeterli argümanların sağlanmasına gerek yoktur.
      #Alias the cd command so that when you change directories, the contents are immediately displayed.
      alias cd 'cd \!* && ls'
      
  • Wildcard eşleştirme
    if ( "$input" =~ [0-9]* ) then
     echo "the input starts with an integer"
    else
     echo "the input does NOT start with an integer"
    endif
    
  • iş kontrolü
  • Yerleşik where komutu. which komut gibi çalışır, ancak hedef komutun yalnızca kullanılacak dizin yerine $PATH içinde belirtilen dizinlerdeki tüm konumlarını gösterir.

Dağıtım

Mac OS X'in ilk sürümleri, varsayılan kabuk olarak tcsh ile birlikte gelirdi,ancak yeni hesaplar için varsayılan, 10.3'ten itibaren bash ve 10.15'ten itibaren zsh oldu. (tcsh hala sağlanmaktadır ve işletim sisteminin yükseltilmesi mevcut hesapların kabuğunu değiştirmez). tcsh, FreeBSD'nin varsayılan kök kabuğudur (varsayılan kullanıcı kabuğu POSIX tabanlıdır) [13][14] ve onun DragonFly BSD ve DesktopBSD gibi soyundan gelenlerdir.

Ayrıca bakınız

  • Komut kabuklarının karşılaştırılması

Kaynakça

  1. ^ "Release 6.24.13". 12 Haziran 2024. Erişim tarihi: 26 Haziran 2024. 
  2. ^ "remove clause 3 of the copyright". GitHub. 8 Mart 2002. 7 Nisan 2023 tarihinde kaynağından arşivlendi. 
  3. ^ "Remove clause 3 of the copyright (changed in other files 2002-03-08)". GitHub. 14 Temmuz 2014. 10 Kasım 2022 tarihinde kaynağından arşivlendi. 
  4. ^ "Tcsh-6.00 release". GitHub. 4 Temmuz 1991. 7 Nisan 2023 tarihinde kaynağından arşivlendi. 
  5. ^ a b c d Ken Greer (3 Ekim 1983). "C shell with command and filename recognition/completion". Haber grubunet.sources. 9 Kasım 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Aralık 2010. 
  6. ^ tcsh(1) man page. tcsh.
  7. ^ Fixes file in tcsh-17 June 2000.
  8. ^ Ubuntu - Details of package csh.
  9. ^ Debian - Details of package csh 11 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi..
  10. ^ Ubuntu - Details of package tcsh.
  11. ^ Debian - Details of package tcsh.
  12. ^ "The T in tcsh". 14 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ekim 2013. 
  13. ^ Michael Urban, Brian Tiemann (2002). Sams teach yourself FreeBSD in 24 hours. Sams Publishing. s. 56. ISBN 978-0-672-32424-6. 
  14. ^ POSIX 2008 Shell Command Language 26 Mart 2018 tarihinde Wayback Machine sitesinde arşivlendi. "The System V shell was selected as the starting point for the Shell and Utilities volume of POSIX.1-2008.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Unix</span>

UNIX türevi işletim sistemleri çok işlemcili çok pahalı makinelerden tek işlemcili, basit ve çok ucuz ev bilgisayarlarına kadar pek çok cihaz üzerinde çalışabilen esnek ve sağlamlığı çok değişik koşullarda test edilmiş sistemlerdir. Fakat özellikle kararlı yapısı ve çok kullanıcılı-çok görevli yapısıyla çok işlemcili sunucularda adeta standart haline gelmiştir ve özellikle akademik dünyada iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. UNIX, Interdata 7/32, VAX ve Motorola 68000 arasında hızla yayıldı.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

<span class="mw-page-title-main">Bash</span>

Bash, Brian Fox tarafından GNU Projesi için Bourne kabuğuna özgür yazılım alternatifi olarak yazılmış, Unix ve benzeri işletim sistemlerinde kullanılan komut satırı kabuğu ve bu kabuğun betik dilidir. GNU Tasarısı'nın parçasıdır ve birçok GNU/Linux dağıtımında ön tanımlı kabuk olarak gelir. Ayrıca bir versiyonu Windows 10 için Linux İçin Windows Alt Sistemi aracılığıyla mevcuttur. Solaris 11'in de varsayılan kullanıcı betiğidir. Bash ayrıca 2019 öncesinde çıkan tüm MacOS sürümlerinde varsayılan kabuktu.

Berkeley r-komutları, bir Unix sisteminin kullanıcılarının TCP/IP bilgisayar ağı üzerinden başka bir Unix bilgisayarında oturum açmasını veya komutlar vermesini sağlamak için tasarlanmış bir bilgisayar programları paketidir. Berkeley r-komutları, 1982'de Berkeley'deki Kaliforniya Üniversitesi'ndeki Computer Systems Research Group (CSRG) tarafından, TCP/IP'nin erken uygulanmasına dayanarak geliştirildi.

<span class="mw-page-title-main">Make</span>

Make dosyaları bir formdan diğerini çevirme işlemini otomatikleştiren bir araçtır. Bu işlemi, çevrilecek programların ihtiyaç duyacağı diğer programları kontrol ettikten sonra gerekli programları çalıştırarak çevirme işlemini gerçekleştirir. Çevrilen programı çalıştırmak için ihtiyaç duyulan diğer programlara bağımlılıklar denir. Unix/Linux tabanlı işletim sistemlerinde, kaynak kodu nesne koduna derlerken ve nesne kodlarını çalıştırılabilir (executable) ve kütüphane (library) dosyalarına bağlarken (linking) sıklıkla kullanılır. Bağımlılık grafiğini çıkarmak için "Makefile" ismi verilen bir dosya kullanır ve shell'e geçirilmek üzere kullanılan betikleri (script) oluşturur.

sed, bir akım düzenleyicisi, dosya ya da borudan gelen girdideki temel metin dönüştürmelerini gerçekleştirir. Yani dosya ya da standart girdiden metni okur ve bunu kullanıcının istediği biçime dönüştürerek standart çıktıya okur.

Java platformu dillerinden olan BeanShell, kendi sözdiziminin yanı sıra Java programlama dili sözdiziminin büyük bir bölümünü desteklemesi nedeniyle, Java programlama dilinin komut kabuğu olarak da görülebilir. BeanShell'in bu özelliği, küçük Java kod parçalarının denenmesinde ve Java platformu için yazılmış sınıf dosyalarının yüklenip, birim sınamalarının yapılmasında, düzenle-derle-çalıştır döngüsünü kısaltması sayesinde, büyük kolaylık sağlar.

cat (Unix) komut satırı programı

cat, dosyaları sırasıyla okuyan ve standart çıktıya yazan POSIX standartlı bir Unix komutudur.

Çevre değişkenleri, çevresel değişkenler ya da ortam değişkenleri, işletim sistemi seviyesinde konfigüre edilebilen ve bilgisayar işlemleri tarafından erişilebilen değişkenlerdir. Çoğu kez belli programların ve dosyaların konumlarını ve birden fazla işlem tarafından kullanılabilen bilgi ve ayarları tutmak için kullanılırlar. Çoğunlukla bir karakter dizisi olurlar.

tmux

tmux, bir kullanıcının birden fazla ayrı terminal oturumuna tek bir terminal penceresinde veya uzak bir terminal oturumundan izin vermek için, birden fazla sanal terminali çoğaltmak amacıyla kullanılabilen bir terminal yazılımıdır. Bir terminalde birden çok programla uğraşmak ve programları başlatan Unix kabuğundan programları ayırmak için oldukça kullanışlıdır. GNU Screen ile aynı işlevselliği sağlar, ancak bir BSD lisansı altında dağıtılmaktadır.

ps (Unix)

Çoğu Unix benzeri işletim sisteminde, ps programı o anda çalışan işlemleri görüntüler. "top" adındaki bir başka Unix yardımcı programı ise çalışan süreçlerin gerçek zamanlı bir görünümünü sağlar.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.

cmd.exe Windows komut satırı uygulaması

cmd.exe, Microsoft Windows, Windows NT, Windows CE, OS/2, EComStation ve ReactOS'un varsayılan Komut satırı uygulamasıdır. Uygulama çeşitli işletim sistemlerinde farklılık gösterebilir ancak kullanımı ve komutları hemen hemen aynıdır.

Bilgi işlemde gettext, Unix benzeri bilgisayar işletim sistemlerinde çok dilli programlar yazmak için yaygın olarak kullanılan bir uluslararasılaştırma ve yerelleştirme sistemidir. Gettext'in temel faydalarından biri, programlamayı çevirmekten ayırmasıdır. Gettext'in en sık kullanılan uygulaması, 1995 yılında GNU Projesi tarafından yayınlanan GNU gettext'idir .Çalışma zamanı kitaplığı libintl'dir. Gettext, çok sayıda isim türü için farklı dizeler kullanma seçeneği sunar, ancak dilbilgisel cinsiyet için desteği yoktur.

Kod enjeksiyonu, geçersiz verilerin işlenmesinden kaynaklanan bilgisayar hatasından yararlanmadır. Enjeksiyon, saldırgan tarafından savunmasız bir bilgisayar programına kod enjekte etmek ve yürütmenin seyrini değiştirmek için kullanılır. Başarılı kod eklemenin sonucu felaket olabilir. Örneğin, bilgisayar virüslerinin ya da solucanların yayılmasına izin verilebilir.

<span class="mw-page-title-main">Zsh</span>

Zsh, etkileşimli oturum açma kabuğu ve kabuk betikleri oluşturmak için komut yorumlayıcısı olarak kullanılabilen bir Unix kabuğudur. Bash, ksh ve tcsh'nin bazı özelliklerinin yanı sıra, birçok iyileştirme içeren, genişletilmiş bir Bourne kabuğudur.

<span class="mw-page-title-main">Unix shell</span> Unix işletim sistemi için yorumlayıcı program

Unix shell, Unix benzeri işletim sistemleri için bir komut satırı kullanıcı arabirimi sağlayan bir komut satırı yorumlayıcısı veya kabuğudur. Kabuk, hem etkileşimli bir komut dili hem de bir komut dosyası dilidir ve işletim sistemi tarafından sistemin kabuk komut dosyalarını kullanarak yürütülmesini kontrol etmek için kullanılır.

Stand-alone shell (sash), belirli sistem arızaları, hata türlerinden kurtarma ve benzeri olaylarda kullanılmak üzere tasarlanmış bir Unix kabuğudur.

A/UX, Macintosh bilgisayarlar için Apple Computer tarafından geliştirilmiş Unix tabanlı bir işletim sistemidir ve System 7'nin grafik arayüzü ve uygulama uyumluluğu ile entegredir. Apple'ın 1988'de başlatılan ve 3.1.1 sürümüyle 1995'te kullanımdan kaldırılan ilk resmi Unix tabanlı işletim sistemidir. A/UX, Macintosh II, SE/30, Quadra ve Centris serileri dahil olmak üzere bir FPU'ya ve disk belleği yönetim birimine (PMMU) sahip belirli 68k tabanlı Macintosh modellerini gerektirir.