tcsh
tcsh ( / ˌ tiː ˈ siː ʃ ɛ l / “tee-see-shell”, / ˈ tiː ʃ ɛ l / “ tee-shell”, or as “tee see ess aitch”, ) tcshهو غلاف يونكس مبني على غلاف C ومتوافق مع الإصدارات السابقة منه .csh
صدَفَة
tcsh هو في الأساس غلاف C مع إمكانية برمجة إكمال سطر الأوامر ، وتحرير سطر الأوامر ، وبعض الميزات الأخرى. على عكس الأغلفة الشائعة الأخرى، لا يمكن تعريف الدوال في نص برمجي لـ tcsh، ويجب على المستخدم استخدام أسماء مستعارة (كما هو الحال في csh). وهو غلاف الجذر الأصلي لبعض الأنظمة المبنية على BSD، بما في ذلك FreeBSD 13 والإصدارات الأقدم. (غيّر FreeBSD 14 غلاف الجذر الافتراضي shليتوافق مع غلاف المستخدم الافتراضي [ 5 ]، بينما يستخدم OpenBSD غلاف Kornksh لكل من مستخدمي الجذر والمستخدمين العاديين. [ 6 ] )
أضافت tcsh ميزاتٍ مثل إكمال أسماء الملفات والأوامر وتحرير سطر الأوامر، مُستعارةً من نظام التشغيل TENEX ، وهو مصدر حرف "t". [ 7 ] ولأنها أضافت وظائف جديدة فقط دون تغيير ما هو موجود، حافظت tcsh على توافقها مع الإصدارات السابقة [ 8 ] من C shell الأصلي. ورغم أنها بدأت كفرع جانبي من شجرة مصدر csh الأصلية التي أنشأها بيل جوي ، إلا أن tcsh أصبحت الآن الفرع الرئيسي للتطوير المستمر.
يتميز برنامج tcsh باستقراره الشديد، لكن الإصدارات الجديدة تستمر في الظهور مرة واحدة تقريبًا في السنة، وتتألف في الغالب من إصلاحات طفيفة للأخطاء. [ 9 ]
في العديد من الأنظمة، مثل macOS و Red Hat Linux ، cshيكون الأمر في الواقع tcsh. غالبًا ما يكون أحد الملفين إما رابطًا ثابتًا أو رابطًا رمزيًا للآخر، بحيث يشير أي من الاسمين إلى نفس الإصدار المحسن من C shell (على الرغم من أن السلوك قد يتغير اعتمادًا على الاسم المستخدم).
في نظام دبيان وبعض مشتقاته (بما في ذلك أوبونتو )، توجد حزمتان مختلفتان: csh و tcsh. تعتمد الأولى على نسخة BSD الأصلية من csh [ 10 ] [ 11 ] ، بينما الثانية هي نسخة محسّنة من tcsh. [ 12 ] [ 13 ]
تاريخ
The “t” in tcsh comes from the “T” in TENEX, an operating system which inspired Ken Greer at Carnegie Mellon University, the author of tcsh, with its command-completion feature.[14] Greer began working on his code to implement Tenex-style file name completion in September 1975, finally merging it into the C shell in December 1981.[7] Mike Ellis at Fairchild A.I. Labs added command completion in September 1983.[7] On October 3, 1983, Greer posted source to the net.sources newsgroup.[7]
Significant features
- Command history
- The built-in
historycommand displays the previously entered commands - Use of ↑ / ↓ at the command line to allow the user to select a command from the history to edit/execute
- Invoking previous commands using command history
!!executes the previous command!nexecutes the nth command that was previously executed!-nexecutes the command that was executed n commands ago!stringexecutes the most recently executed command that starts with string!?stringexecutes the most recently executed command that contains string
- Using history in new commands
!*- refers to all of the arguments from the previous command!$- refers to the last argument from the previous command!^- refers to the first argument from the previous command!:n- refers to the nth argument from the previous command!:m-n- refers to the mth through nth arguments from the previous command!:n-$- refers to the nth through the last argument from the previous command
- The built-in
- Command line editing
- Auto-completion of file names and variables as well as programmable completion at the command line
- Alias argument selectors; the ability to define an alias to take arguments supplied to it and apply them to the commands that it refers to. Tcsh is the only shell that provides this feature (in lieu of functions).
\!#- argument selector for all arguments, including the alias/command itself; arguments need not be supplied.\!*- argument selector for all arguments, excluding the alias/command; arguments need not be supplied.\!$- argument selector for the last argument; argument need not be supplied, but if none is supplied, the alias name is considered to be the last argument.\!^- argument selector for first argument; argument MUST be supplied.\!:n- argument selector for the nth argument; argument MUST be supplied; n=0 refers to the alias/command name.\!:m-n- argument selector for the arguments from the mth to the nth; arguments MUST be supplied.\!:n-$- مُحدد الوسائط للوسائط من الوسيط رقم n إلى الأخير؛ يجب توفير الوسيط رقم n على الأقل.\!:n*- مُحدد الوسائط للوسائط من الوسيط رقم n إلى الأخير؛ لا يلزم توفير عدد كافٍ من الوسائط.# قم بتعريف اسم مستعار لأمر cd بحيث يتم عرض محتويات المجلدات فورًا عند تغييرها. alias cd 'cd \!* && ls'
- مطابقة الأحرف البديلة
إذا كان ( المدخل = ~ [ 0-9 ] * ) فاطبع "المدخل يبدأ بعدد صحيح" وإلا فاطبع "المدخل لا يبدأ بعدد صحيح "
- التحكم في الوظيفة
- الأمر المدمج
where. يعمل مثلwhichالأمر السابق ولكنه يعرض جميع مواقع الأمر المستهدف في الدلائل المحددة$PATHبدلاً من الموقع الذي سيتم استخدامه فقط.
الانتشار
لطالما كان tcsh هو الصدفة الافتراضية لنظام FreeBSD وأنظمة التشغيل المشتقة منه، بما في ذلك DragonFly BSD و Mac OS X. مع ذلك، اعتبارًا من يوليو 2026، لم يعد tcsh الصدفة الافتراضية في FreeBSD منذ الإصدار 14.0. [ 15 ] قبل هذا الإصدار، كان tcsh الصدفة الافتراضية لمستخدم الجذر، على الرغم من أنه لم يكن الصدفة الافتراضية للمستخدمين العاديين. بدءًا من FreeBSD 14.0، تُستخدم صدفة Almquist [ 16 ] كصدفة افتراضية لكل من المستخدمين العاديين والمستخدمين ذوي الصلاحيات. [ 15 ] مع ذلك، اعتبارًا من يوليو 2026، لا يزال FreeBSD يُضمّن tcsh افتراضيًا في عمليات التثبيت الجديدة. [ 17 ]
كانت إصدارات نظام التشغيل Mac OS X السابقة للإصدار 10.3 توفر tcsh كصدفة افتراضية لحسابات المستخدمين [ 18 ] [ 19 ] ، نظرًا لكونها مشتقة من FreeBSD. مع إصدار Mac OS X 10.3، تم تغيير الصدفة الافتراضية لحسابات المستخدمين الجديدة إلى bash [ 20 ] [ 21 ] ، واستمر هذا الوضع حتى الإصدار 10.15 ، حيث تم تغييرها لاحقًا إلى zsh . [ 22 ] [ 23 ]
انظر أيضاً
مراجع
- ↑ "إصدار 24/6/2016" . 9 يوليو 2025. تم الاطلاع عليه في 18 يوليو 2025 .
- ↑ "إزالة البند 3 من حقوق النشر" . GitHub . 2002-03-08.
- ↑ "إزالة البند 3 من حقوق النشر (تم تغييره في ملفات أخرى بتاريخ 2002-03-08)" . GitHub . 2014-07-14.
- ↑ "إصدار Tcsh-6.00" . GitHub . 1991-07-04.
- ↑ "دليل البدء السريع لنظام FreeBSD لمستخدمي Linux" .
- ↑ "OpenBSD لمستخدمي لينكس" .
- 1 2 3 4 كين جرير (3 أكتوبر 1983). "واجهة سطر أوامر C مع التعرف على الأوامر وأسماء الملفات وإكمالها" . مجموعة الأخبار : net.sources . تاريخ الاسترجاع: 29 ديسمبر 2010 .
- ↑ صفحة دليل tcsh(1) . tcsh.
- ↑ إصلاح الملف في tcsh-17 يونيو 2000.
- ↑ أوبونتو - تفاصيل حزمة csh.launchpad.net .
- ↑ دبيان - تفاصيل حزمة csh . tracker.debian.org.
- ↑ أوبونتو - تفاصيل حزمة tcsh.launchpad.net .
- ↑ دبيان - تفاصيل حزمة tcsh . tracker.debian.org.
- ↑ "حرف T في tcsh" . مؤرشف من الأصل بتاريخ 14 أبريل 2012. تم الاطلاع عليه بتاريخ 31 أكتوبر 2013 .
- 1 2 "ملاحظات إصدار FreeBSD 14.0-RELEASE" . مشروع FreeBSD . تم الاطلاع عليه بتاريخ 15 يوليو 2026 .
- ↑ "sh(1)" . man.freebsd.org . تم الاطلاع عليه بتاريخ 15-07-2026 .
- ↑ "الفصل 3. أساسيات نظام FreeBSD" . بوابة توثيق نظام FreeBSD . تم الاطلاع عليه بتاريخ 15-07-2026 .
- ↑ "أوامر يونكس على نظام التشغيل ماك أو إس إكس" . scottlab.ucsc.edu . تم الاطلاع عليه بتاريخ 15 يوليو 2026 .
- ↑ "استخدام سطر الأوامر (Terminal) في نظام التشغيل Mac OS X" . aplawrence.com . تم الاطلاع عليه بتاريخ 15 يوليو 2026 .
- ↑ "أبل تنتقل من tcsh إلى bash - OSnews" . www.osnews.com . تاريخ الاطلاع: 15 يوليو 2026 .
- ↑ "تقييد طول موجه أوامر باش" . ماكوورلد . تم الاطلاع عليه بتاريخ 15 يوليو 2026 .
- ↑ ab (2019-06-05). "الانتقال إلى zsh" . برمجة نظام التشغيل OS X. تم الاسترجاع في 2026-07-15 .
- ↑ وارن، توم (4 يونيو 2019). "أبل تستبدل باش بـ zsh كصدفة افتراضية في نظام macOS Catalina" . ذا فيرج . تم الاطلاع عليه بتاريخ 15 يوليو 2026 .
روابط خارجية
- إصدارات tcsh
- قائمة بريدية tcsh
- صفحة دليل tcsh
- أرشيف كتاب O'Reilly "استخدام csh و tcsh" مؤرشف بتاريخ 25 فبراير 2011 على موقع Wayback Machine
- أنظمة يونكس
- برامج مجانية متعددة المنصات
- برنامج مجاني مكتوب بلغة C
- لغات البرمجة النصية
- البرامج التي تستخدم ترخيص BSD
- لغات البرمجة النصية
