Tcsh ( / ˌ т я ы я ʃ ɛ л / «тройник-см-оболочка», / т я ʃ ɛ л / «тройник-оболочка», или как «тройник см ESS крестцовой», tcsh
) является Unix - оболочки на основе включена и обратно совместима с оболочкой C ( csh
).
Разработчики) | Кен Грир, Пол Плейсвей, Христос Зулас и др. |
---|---|
Стабильный выпуск | 6.22.03 / 18 ноября 2020 г . [1] |
Репозиторий | |
Написано в | C |
Операционная система | Кроссплатформенность |
Тип | Оболочка Unix |
Лицензия | Лицензия BSD |
Веб-сайт | www |
Оболочка
Это, по существу, C оболочка с программируемым завершения командной строки , командной строки редактирования, и несколько других функций. В отличие от других распространенных оболочек, функции не могут быть определены в сценарии tcsh, и вместо этого пользователь должен использовать псевдонимы (как в csh). Это собственная корневая оболочка для систем на основе BSD, таких как FreeBSD .
В tcsh добавлены концепции завершения имени файла и команд и редактирования командной строки, заимствованные из операционной системы TENEX , которая является источником символа «t». [2] Поскольку tcsh только добавлял функциональность и не менял того, что там было, он оставался обратно совместимым [3] с исходной оболочкой C. Хотя он начинался как побочная ветвь исходного дерева исходных текстов csh, созданного Биллом Джоем , теперь tcsh является основной ветвью для продолжающейся разработки.
tcsh очень стабилен, но новые выпуски продолжают появляться примерно раз в год, в основном состоящие из мелких исправлений ошибок. [4]
Во многих системах, таких как Mac OS X и Red Hat Linux , csh
это действительно так tcsh
. Часто один из двух файлов представляет собой жесткую или символическую ссылку на другой, так что любое имя относится к одной и той же улучшенной версии оболочки C.
В Debian и некоторых производных (включая Ubuntu ) есть два разных пакета: csh
и tcsh
. Первый основан на оригинальной BSD-версии csh [5] [6], а второй является улучшенным tcsh. [7] [8]
История
Буква «t» tcsh
происходит от буквы «T» в TENEX , операционной системе, которая вдохновила Кена Грира из Университета Карнеги-Меллона , автора tcsh, своей функцией завершения команд. [9] Грир начал работу над своим кодом для реализации автозавершения имени файла в стиле Tenex в сентябре 1975 года, окончательно объединив его с оболочкой C в декабре 1981 года. [2] Майк Эллис из Fairchild AI Labs добавил завершение команд в сентябре 1983 года. [2] ] 3 октября 1983 года Грир разместила источник в группе новостей net.sources. [2]
Важные особенности
- История команд
- Встроенная
history
команда отображает ранее введенные команды - Использование ↑/ ↓в командной строке, чтобы позволить пользователю выбрать команду из истории для редактирования / выполнения
- Вызов предыдущих команд с использованием истории команд
!!
выполняет предыдущую команду!n
выполняет n-ю команду, которая была выполнена ранее!-n
выполняет команду, которая была выполнена n команд назад!string
выполняет последнюю выполненную команду, которая начинается со строки!?string
выполняет последнюю выполненную команду, содержащую строку
- Использование истории в новых командах
!*
- относится ко всем аргументам предыдущей команды!$
- относится к последнему аргументу предыдущей команды!^
- относится к первому аргументу предыдущей команды!:n
- относится к n- му аргументу предыдущей команды!:m-n
- относится к аргументам с m- го по n- й из предыдущей команды!:n-$
- относится к аргументу с n- го по последний из предыдущей команды
- Встроенная
- Редактирование командной строки
- Автозаполнение имен файлов и переменных, а также программируемое завершение в командной строке
- Селекторы аргументов псевдонима; возможность определять псевдоним, чтобы принимать предоставленные ему аргументы и применять их к командам, на которые он ссылается. Tcsh - единственная оболочка, которая предоставляет эту функцию.
\!#
- селектор аргументов для всех аргументов, включая сам псевдоним / команду; аргументы приводить не нужно.\!*
- селектор аргументов для всех аргументов, кроме псевдонима / команды; аргументы приводить не нужно.\!$
- селектор аргументов для последнего аргумента; Аргумент указывать не обязательно, но если он не указан, псевдоним считается последним аргументом.\!^
- селектор аргументов для первого аргумента; ДОЛЖЕН быть указан аргумент.\!:n
- селектор аргументов для n- го аргумента; ДОЛЖЕН быть указан аргумент; n = 0 относится к псевдониму / имени команды.\!:m-n
- селектор аргументов для аргументов от m- го до n- го ; ДОЛЖНЫ быть предоставлены аргументы.\!:n-$
- селектор аргументов для аргументов от n- го до последнего; ДОЛЖЕН быть предоставлен как минимум аргумент n.\!:n*
- селектор аргументов для аргументов от n- го до последнего; Достаточные аргументы приводить не нужно.# Использует команду cd, чтобы при смене директорий сразу отображалось содержимое. псевдоним 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 ) [10] [11] и ее потомков, таких как DragonFly BSD и DesktopBSD .
Смотрите также
- Сравнение командных оболочек
Рекомендации
- ^ Христос Зулас. "tcsh-6.22.03 уже доступен!" . mailman.astron.com . Проверено 28 ноября 2019 .
- ^ а б в г Кен Грир (3 октября 1983 г.). «Оболочка C с распознаванием / завершением команд и имен файлов» . Группа новостей : net.sources . Проверено 29 декабря 2010 года .
- ^ tcsh (1) справочная страница . tcsh.
- ^ Файл исправлений в tcsh-17 июня 2000 г.
- ^ Ubuntu - Подробная информация о пакете csh . Packages.ubuntu.com.
- ^ Debian - Подробная информация о пакете csh . Packages.debian.org.
- ^ Ubuntu - Подробная информация о пакете tcsh . Packages.ubuntu.com.
- ^ Debian - Подробная информация о пакете tcsh . Packages.debian.org.
- ^ "Т в тчш" . Архивировано из оригинального 14 апреля 2012 года . Проверено 31 октября 2013 года .
- ^ Майкл Урбан; Брайан Тиманн (2002). Самс научится FreeBSD за 24 часа . Самс Паблишинг. п. 56. ISBN 978-0-672-32424-6.
- ^ POSIX 2008 Shell Command Language «Оболочка System V была выбрана в качестве отправной точки для тома Shell и Utilities POSIX.1-2008. Оболочка BSD C была исключена из рассмотрения»
Внешние ссылки
- Официальный веб-сайт
- релизы tcsh
- список рассылки tcsh
- страница руководства tcsh
- Архив книги О'Рейли "Использование csh и tcsh"