ткш
Разработчик(и) | Кен Грир, Пол Плейсуэй, Христос Зулас и др. |
---|---|
Стабильная версия | 6.24.13 [1]
/ 12 июня 2024 г |
Репозиторий | |
Написано в | С |
Операционная система | Кросс-платформенный |
Тип | оболочка Unix |
Лицензия | 2002: Пункт BSD-3 [2] [3] 1991: Статья BSD-4 [4] |
Веб-сайт | www |
tcsh ( / ˌ t iː ˈ s iː ʃ ɛ l / «tee-see-shell», / ˈ t iː ʃ ɛ l / «tee-shell», или как «teesee ess aitch», tcsh
) — это оболочка Unix , основанная на и обратно совместимая с ней оболочке C ( csh
).
Оболочка
[ редактировать ]По сути, это оболочка C с программируемым завершением командной строки , редактированием командной строки и некоторыми другими функциями. В отличие от других распространенных оболочек, функции не могут быть определены в сценарии tcsh, и вместо этого пользователь должен использовать псевдонимы (как в csh). Это собственная корневая оболочка для некоторых систем на базе BSD, включая FreeBSD 13 и более ранние версии. (В FreeBSD 14 корневая оболочка по умолчанию изменена на sh
чтобы соответствовать пользовательской оболочке по умолчанию [5] тогда как OpenBSD использует оболочку Korn ksh
как для root, так и для обычных пользователей. [6] )
В tcsh добавлены концепции завершения имен файлов и команд, а также редактирования командной строки, заимствованные из операционной системы АО «Техснабэкспорт» , которая является источником буквы «t». [7] Поскольку он только добавлял функциональность и не менял того, что было, tcsh оставался обратно совместимым. [8] с оригинальной оболочкой C. Несмотря на то, что tcsh начинался как побочная ветвь исходного дерева исходного кода csh, Биллом Джоем созданного , сейчас tcsh является основной ветвью для продолжающейся разработки.
tcsh очень стабилен, но новые выпуски продолжают появляться примерно раз в год и состоят в основном из мелких исправлений ошибок. [9]
Во многих системах, таких как macOS и Red Hat Linux , csh
на самом деле tcsh
. Часто один из двух файлов является либо жесткой ссылкой , либо символической ссылкой на другой, так что любое имя относится к одной и той же улучшенной версии оболочки C (хотя поведение может быть изменено в зависимости от того, какое имя используется).
В Debian и некоторых его производных (включая Ubuntu ) есть два разных пакета: csh
и tcsh
. Первый основан на оригинальной версии csh для BSD. [10] [11] и последний — улучшенный tcsh. [12] [13]
История
[ редактировать ]Буква «т» в tcsh
происходит от буквы «T» в TENEX , операционной системе , которая вдохновила Кена Грира из Университета Карнеги-Меллона , автора tcsh, с его функцией завершения команд. [14] Грир начал работать над своим кодом для реализации завершения имен файлов в стиле Tenex в сентябре 1975 года и, наконец, объединил его с оболочкой C в декабре 1981 года. [7] Майк Эллис из Fairchild AI Labs добавил завершение команд в сентябре 1983 года. [7] 3 октября 1983 года Грир разместил источник в группе новостей net.sources. [7]
Важные особенности
[ редактировать ]- История команд
- Встроенный
history
команда отображает ранее введенные команды - Использование ↑ / ↓ в командной строке, чтобы позволить пользователю выбрать команду из истории для редактирования/выполнения
- Вызов предыдущих команд с использованием истории команд
!!
выполняет предыдущую команду!n
выполняет n-ю команду, которая была выполнена ранее!-n
выполняет команду, которая была выполнена n команд назад!string
выполняет последнюю выполненную команду, которая начинается со строки!?string
выполняет последнюю выполненную команду, содержащую строку
- Использование истории в новых командах
!*
- относится ко всем аргументам предыдущей команды!$
- относится к последнему аргументу предыдущей команды!^
- относится к первому аргументу предыдущей команды!:n
- относится к н. й аргумент из предыдущей команды!:m-n
- относится к м й через н й аргументы из предыдущей команды!:n-$
- относится к н. й через последний аргумент предыдущей команды
- Встроенный
- Редактирование командной строки
- Автодополнение имен файлов и переменных, а также программируемое завершение в командной строке.
- Селекторы аргументов псевдонимов; возможность определять псевдоним, чтобы принимать предоставленные ему аргументы и применять их к командам, на которые он ссылается. Tcsh — единственная оболочка, предоставляющая эту возможность (вместо функций).
\!#
- селектор аргументов для всех аргументов, включая сам псевдоним/команду; аргументы приводить не нужно.\!*
- селектор аргументов для всех аргументов, за исключением псевдонима/команды; аргументы приводить не нужно.\!$
- селектор аргумента для последнего аргумента; Аргумент указывать не обязательно, но если он не указан, псевдоним считается последним аргументом.\!^
- селектор аргумента для первого аргумента; аргумент ДОЛЖЕН быть указан.\!:n
- селектор аргументов для n й аргумент; аргумент ДОЛЖЕН быть указан; n=0 относится к псевдониму/имени команды.\!:m-n
- селектор аргументов из m й к н й ; аргументы ДОЛЖНЫ быть предоставлены.\!:n-$
- селектор аргументов для аргументов из n й до последнего; ДОЛЖЕН быть указан как минимум аргумент n.\!:n*
- селектор аргументов для аргументов из n й до последнего; достаточные аргументы не требуются.#Alias the cd command so that when you change directories, the contents are immediately displayed. alias cd 'cd \!* && ls'
- Соответствие подстановочным знакам
if ( "$input" =~ [0-9]* ) then echo "the input starts with an integer" else echo "the input does NOT start with an integer" endif
- Контроль заданий
- Встроенный
where
команда. Работает какwhich
команда, но показывает все местоположения целевой команды в каталогах, указанных в$PATH
а не только тот, который будет использоваться.
Развертывание
[ редактировать ]Ранние версии Mac OS X поставлялись с tcsh в качестве оболочки по умолчанию, но по умолчанию для новых учетных записей стал bash с версии 10.3 , а — zsh с версии 10.15 . (tcsh по-прежнему предоставляется, и обновление ОС не меняет оболочку существующих учетных записей). tcsh был корневой оболочкой по умолчанию во FreeBSD до версии 14.0 (текущая оболочка и пользовательская оболочка по умолчанию в более старых версиях основаны на POSIX ) [15] [16] [17] и его потомки, такие как DragonFly BSD и DesktopBSD .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Релиз 6.24.13» . 12 июня 2024 г. Проверено 26 июня 2024 г.
- ^ "удалить пункт 3 авторских прав" . Гитхаб . 8 марта 2002 г.
- ^ "Удалить пункт 3 авторских прав (изменён в других файлах 8 марта 2002 г.)" . Гитхаб . 14 июля 2014 г.
- ^ «Выпуск Tcsh-6.00» . Гитхаб . 04.07.1991.
- ^ «Краткое руководство FreeBSD для пользователей Linux» .
- ^ «OpenBSD для пользователей Linux» .
- ^ Jump up to: а б с д Кен Грир (3 октября 1983 г.). «Оболочка C с распознаванием/дополнением команд и имен файлов» . Группа новостей : net.sources . Проверено 29 декабря 2010 г.
- ^ Справочная страница tcsh(1) . ткш.
- ↑ Файл исправлений в tcsh-17 июня 2000 г.
- ^ Ubuntu — Подробная информация о пакете csh . Пакеты.ubuntu.com.
- ^ Debian — Подробная информация о пакете csh . Пакеты.debian.org.
- ^ Ubuntu — Подробная информация о пакете tcsh . Пакеты.ubuntu.com.
- ^ Debian — Подробная информация о пакете tcsh . Пакеты.debian.org.
- ^ «Т в tcsh» . Архивировано из оригинала 14 апреля 2012 года . Проверено 31 октября 2013 г.
- ^ Майкл Урбан; Брайан Тиманн (2002). Сэмс изучит FreeBSD за 24 часа . Издательство Самс. п. 56. ИСБН 978-0-672-32424-6 .
- ^ Командный язык оболочки POSIX 2008 «Оболочка System V была выбрана в качестве отправной точки для тома «Оболочка и утилиты» POSIX.1-2008. Оболочка BSD C была исключена из рассмотрения»
- ^ «Краткое руководство FreeBSD для пользователей Linux» . Портал документации FreeBSD . Проверено 4 февраля 2024 г.