Снимок экрана с примером сеанса tcsh | |
Разработчик (и) | Кен Грир, Пол Плейсвей, Христос Зулас и др. |
---|---|
Стабильный выпуск | 6.22.00 / 28 ноября 2019 г.; 11 месяцев назад (28.11.2019) |
Репозиторий | |
Написано на | C |
Операционной системе | Cross- платформа |
Тип | оболочка Unix |
Лицензия | Лицензия BSD |
Веб-сайт | www.tcsh.org |
tcsh («tee-see-shell», «tee-shell» или как «tee see ess aitch», tcsh
) - это Unix. оболочка на основе и обратно совместимая с оболочкой C (csh
).
По сути, это оболочка C с программируемым завершением командной строки, редактированием командной строки и некоторыми другими функциями. В отличие от других распространенных оболочек, функции не могут быть определены в сценарии tcsh, и вместо этого пользователь должен использовать псевдонимы (как в csh). Это нативная корневая оболочка для систем на основе BSD, таких как FreeBSD.
tcsh с добавленным именем файла и концепциями завершения команд и редактирования командной строки, заимствованными из операционной системы TENEX, которая является источником «Т». Поскольку он только добавлял функциональность и не менял того, что было, tcsh оставался обратно совместимым с исходной оболочкой C. Хотя он начинался как побочная ветвь от исходного дерева исходных текстов csh, созданного Биллом Джоем, теперь tcsh является основной ветвью для продолжающейся разработки.
tcsh очень стабилен, но примерно раз в год продолжают появляться новые выпуски, состоящие в основном из мелких исправлений ошибок.
Во многих системах, таких как Mac OS X и Red Hat Linux, csh
на самом деле является tcsh
. Часто один из двух файлов представляет собой жесткую ссылку или символическую ссылку на другой, так что любое имя относится к одной и той же улучшенной версии оболочки C.
В Debian и некоторых производных (включая Ubuntu ) есть два разных пакета: csh
и tcsh
. Первый основан на исходной версии csh для BSD, а второй - на улучшенном tcsh.
Буква «t» в tcsh
происходит от «T» в TENEX, операционной системе, которая вдохновила Кена Грира из Университета Карнеги-Меллона, автора tcsh, с его функцией завершения команд. Грир начал работать над своим кодом для реализации автозавершения имени файла в стиле Tenex в сентябре 1975 года, окончательно объединив его с оболочкой C в декабре 1981 года. Майк Эллис из Fairchild A.I. Лаборатория добавила завершение команд в сентябре 1983 года. 3 октября 1983 года Грир разместила исходный код в группе новостей net.sources.
Команда history
отображает ранее введенные команды!!
выполняет предыдущую команду!n
выполняет n-ю команду, которая была выполнена ранее! -n
выполняет команду, которая была выполнена n команд назад! string
выполняет последнюю выполненную команду, которая начинается со строки!? string
выполняет последнюю выполненную команду, содержащую строку!*
- относится ко всем аргументам из предыдущей команды!$
- относится к последнему аргументу предыдущей команды!^
- относится к первому аргументу предыдущей команды!: N
- относится к n аргументам t из предыдущей команды!: mn
- относится к аргументам от m до n из предыдущей команды!: n- $
- относится к n до последнего аргумента предыдущей команды\! #
- селектор аргументов для всех аргументов, включая сам псевдоним / команду; аргументы указывать не нужно.\! *
- селектор аргументов для всех аргументов, кроме псевдонима / команды; аргументы указывать не нужно.\! $
- селектор аргументов для последнего аргумента; аргумент указывать не обязательно, но если он не указан, псевдоним считается последним аргументом.\! ^
- селектор аргумента для первого аргумента; ДОЛЖЕН быть указан аргумент.\ !: n
- селектор аргументов для аргумента n; ДОЛЖЕН быть указан аргумент; n = 0 относится к псевдониму / имени команды.\ !: m-n
- селектор аргументов для аргументов от m до n; ДОЛЖНЫ быть предоставлены аргументы.\ !: n- $
- селектор аргументов для аргументов от n до последнего; ДОЛЖЕН быть предоставлен как минимум аргумент n.\ !: n *
- селектор аргументов для аргументов от n до последнего; не требуется указывать достаточные аргументы. # Использует команду cd, чтобы при смене каталогов сразу же отображалось содержимое. alias cd 'cd \! * ls'
if ("$ input" = ~ [0-9] *) then echo "ввод начинается с целого числа" else echo " ввод НЕ начинается с целого числа "endif
where
. Работает аналогично команде which
, но показывает все местоположения целевой команды в каталогах, указанных в $ PATH
, а не только в том, который будет использоваться.Ранние версии Mac OS X поставлялись с tcsh в качестве оболочки по умолчанию, но по умолчанию для новых учетных записей стало bash с 10.3, затем zsh от 10.15. (tcsh все еще предоставляется, и обновление ОС не меняет оболочку существующих учетных записей). tcsh - это корневая оболочка по умолчанию для FreeBSD (пользовательская оболочка по умолчанию на основе POSIX ) и ее потомков, таких как DragonFly BSD и DesktopBSD.