Tcsh
![]() Örnek bir tcsh oturumu | |
Geliştirici(ler) | Ken Greer, Paul Placeway, Christos Zoulas, et al. |
---|---|
Güncel sürüm | 6.24.13[1] ![]() |
Programlama dili | C |
Tür | Unix shell |
Lisans | 2002: BSD-3-Clause[2][3] 1991: BSD-4-Clause[4] |
Resmî sitesi | tcsh.org |
Kod deposu |
![]() |
tcsh (/ˌtiːˈsiːʃɛl/ “tee-see-shell”, /ˈtiːʃɛ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
- Yerleşik
- 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
- ^ "Release 6.24.13". 12 Haziran 2024. Erişim tarihi: 26 Haziran 2024. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)
- ^ "remove clause 3 of the copyright". GitHub. 8 Mart 2002. 7 Nisan 2023 tarihinde kaynağından arşivlendi.
- ^ "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.
- ^ "Tcsh-6.00 release". GitHub. 4 Temmuz 1991. 7 Nisan 2023 tarihinde kaynağından arşivlendi.
- ^ a b c d Ken Greer (3 Ekim 1983). "C shell with command and filename recognition/completion". Haber grubu: net.sources. 9 Kasım 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Aralık 2010.
- ^ tcsh(1) man page. tcsh.
- ^ Fixes file in tcsh-17 June 2000.
- ^ Ubuntu - Details of package csh.
- ^ Debian - Details of package csh 11 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi..
- ^ Ubuntu - Details of package tcsh.
- ^ Debian - Details of package tcsh.
- ^ "The T in tcsh". 14 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ekim 2013.
- ^ Michael Urban, Brian Tiemann (2002). Sams teach yourself FreeBSD in 24 hours. Sams Publishing. s. 56. ISBN 978-0-672-32424-6.
- ^ 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
- Resmî site
- tcsh releases 10 Nisan 2023 tarihinde Wayback Machine sitesinde arşivlendi.
- tcsh mailing list 7 Nisan 2023 tarihinde Wayback Machine sitesinde arşivlendi.
- tcsh manual page
- Archive for the O'Reilly book "Using csh and tcsh" 25 Şubat 2011 tarihinde Wayback Machine sitesinde arşivlendi. Archived 2011-02-25 at the Wayback Machine