Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Tcsh ( / ˌ т я ы я ʃ ɛ л / «тройник-см-оболочка», / т я ʃ ɛ л / «тройник-оболочка», или как «тройник см ESS крестцовой», tcsh) является Unix - оболочки на основе включена и обратно совместима с оболочкой C ( csh).

Shell [ править ]

Это, по существу, 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 .

См. Также [ править ]

  • Сравнение командных оболочек

Ссылки [ править ]

  1. ^ Христос Зулас. "tcsh-6.22.03 уже доступен!" . mailman.astron.com . Проверено 28 ноября 2019 .
  2. ^ a b c d Кен Грир (3 октября 1983 г.). «Оболочка C с распознаванием / завершением команд и имен файлов» . Группа новостейnet.sources . Проверено 29 декабря 2010 года .
  3. ^ tcsh (1) справочная страница . tcsh.
  4. ^ Файл исправлений в tcsh-17 июня 2000 г.
  5. ^ Ubuntu - Подробная информация о пакете csh . Packages.ubuntu.com.
  6. ^ Debian - Подробная информация о пакете csh . Packages.debian.org.
  7. ^ Ubuntu - Подробная информация о пакете tcsh . Packages.ubuntu.com.
  8. ^ Debian - Подробная информация о пакете tcsh . Packages.debian.org.
  9. ^ "Т в tcsh" . Архивировано из оригинального 14 апреля 2012 года . Проверено 31 октября 2013 года .
  10. ^ Майкл Урбан; Брайан Тиманн (2002). Самс научится FreeBSD за 24 часа . Самс Паблишинг. п. 56. ISBN 978-0-672-32424-6.
  11. ^ POSIX 2008 Shell Command Language «Оболочка System V была выбрана в качестве отправной точки для тома Shell и Utilities POSIX.1-2008. Оболочка BSD C была исключена из рассмотрения»

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • релизы tcsh
  • список рассылки tcsh
  • страница руководства tcsh
  • Архив книги О'Рейли "Использование csh и tcsh"