tcsh ( / ˌ t i s i ʃ ɛ l / “tee-ver-shell”, / t i ʃ ɛ l / “tee-shell”, o como “tee ver aitch ess”, tcsh
) es un Unix Shell basa encendido y compatible con versiones anteriores del shell C ( csh
).
Desarrollador (es) | Ken Greer, Paul Placeway, Christos Zoulas y col. |
---|---|
Lanzamiento estable | 6.22.03 / 18 de noviembre de 2020 [1] |
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Shell de Unix |
Licencia | Licencia BSD |
Sitio web | www |
Cáscara
Se trata esencialmente de la carcasa C con programable terminación de línea de comandos , de línea de comandos de edición, y algunas otras características. A diferencia de los otros shells comunes, las funciones no se pueden definir en un script tcsh y el usuario debe usar alias en su lugar (como en csh). Es el shell raíz nativo para sistemas basados en BSD como FreeBSD .
tcsh agregó conceptos de edición de línea de comando y nombre de archivo y finalización de comando tomados del sistema operativo TENEX , que es la fuente de la “t”. [2] Debido a que solo agregó funcionalidad y no cambió lo que estaba allí, tcsh siguió siendo compatible con versiones anteriores [3] con el shell C original. Aunque comenzó como una rama lateral del árbol de fuentes csh original que había creado Bill Joy , tcsh es ahora la rama principal para el desarrollo continuo.
tcsh es muy estable, pero las nuevas versiones siguen apareciendo aproximadamente una vez al año, y consisten principalmente en correcciones de errores menores. [4]
En muchos sistemas, como Mac OS X y Red Hat Linux , en csh
realidad lo es tcsh
. A menudo, uno de los dos archivos es un enlace físico o un enlace simbólico al otro, de modo que cualquiera de los nombres se refiere a la misma versión mejorada del shell C.
En Debian y algunos derivados (incluido Ubuntu ), hay dos paquetes diferentes: csh
y tcsh
. El primero se basa en la versión BSD original de csh [5] [6] y el segundo es el tcsh mejorado. [7] [8]
Historia
La "t" en tcsh
proviene de la "T" en TENEX , un sistema operativo que inspiró a Ken Greer en la Universidad Carnegie Mellon , el autor de tcsh, con su función de finalización de comandos. [9] Greer comenzó a trabajar en su código para implementar la finalización de nombres de archivo al estilo Tenex en septiembre de 1975, finalmente fusionándolo en el shell C en diciembre de 1981. [2] Mike Ellis de Fairchild AI Labs añadió la finalización de comandos en septiembre de 1983. [2 ] El 3 de octubre de 1983, Greer publicó la fuente en el grupo de noticias net.sources. [2]
Características importantes
- Historial de comandos
- El
history
comando incorporado muestra los comandos ingresados previamente - Uso de ↑/ ↓en la línea de comando para permitir al usuario seleccionar un comando del historial para editar / ejecutar
- Invocar comandos anteriores usando el historial de comandos
!!
ejecuta el comando anterior!n
ejecuta el enésimo comando que se ejecutó previamente!-n
ejecuta el comando que se ejecutó hace n comandos!string
ejecuta el comando ejecutado más recientemente que comienza con una cadena!?string
ejecuta el comando ejecutado más recientemente que contiene una cadena
- Usando el historial en nuevos comandos
!*
- se refiere a todos los argumentos del comando anterior!$
- se refiere al último argumento del comando anterior!^
- se refiere al primer argumento del comando anterior!:n
- se refiere al enésimo argumento del comando anterior!:m-n
- se refiere a la m º a través de N th argumentos de la orden anterior!:n-$
- se refiere desde el enésimo hasta el último argumento del comando anterior
- El
- Edición de línea de comando
- Finalización automática de nombres de archivo y variables, así como finalización programable en la línea de comando
- Selectores de argumentos de alias; la capacidad de definir un alias para tomar los argumentos que se le proporcionan y aplicarlos a los comandos a los que hace referencia. Tcsh es el único shell que proporciona esta característica.
\!#
- selector de argumentos para todos los argumentos, incluido el alias / comando en sí; no es necesario proporcionar argumentos.\!*
- selector de argumentos para todos los argumentos, excluyendo el alias / comando; no es necesario proporcionar argumentos.\!$
- selector de argumentos para el último argumento; no es necesario proporcionar un argumento, pero si no se proporciona ninguno, el nombre de alias se considera el último argumento.\!^
- selector de argumentos para el primer argumento; DEBE proporcionarse el argumento.\!:n
- selector de argumentos para el n- ésimo argumento; DEBE proporcionarse el argumento; n = 0 se refiere al alias / nombre del comando.\!:m-n
- selector de argumentos para los argumentos del mes al enésimo ; DEBEN proporcionarse argumentos.\!:n-$
- selector de argumentos para los argumentos desde el enésimo hasta el último; DEBE proporcionarse al menos el argumento n.\!:n*
- selector de argumentos para los argumentos desde el enésimo hasta el último; No es necesario proporcionar suficientes argumentos.# Alias el comando cd para que cuando cambie de directorio, el contenido se muestre inmediatamente. alias cd 'cd \! * && ls'
- Coincidencia de comodines
if ( "$ input" = ~ [ 0-9 ] * ) then echo "la entrada comienza con un entero" si no echo "la entrada NO comienza con un entero" endif
- Control de trabajos
- El
where
comando incorporado . Funciona como elwhich
comando, pero muestra todas las ubicaciones del comando de destino en los directorios especificados en$PATH
lugar de solo el que se utilizará.
Despliegue
Las primeras versiones de Mac OS X se enviaban con tcsh como shell predeterminado, pero el valor predeterminado para las nuevas cuentas se convirtió en bash a partir de la 10.3 y luego a zsh a partir de la 10.15 . (Todavía se proporciona tcsh, y la actualización del sistema operativo no cambia el shell de ninguna cuenta existente). tcsh es el shell raíz predeterminado de FreeBSD (el shell de usuario predeterminado está basado en POSIX ) [10] [11] y sus descendientes como DragonFly BSD y DesktopBSD .
Ver también
- Comparación de proyectiles de comando
Referencias
- ^ Christos Zoulas. "¡tcsh-6.22.03 ya está disponible!" . mailman.astron.com . Consultado el 28 de noviembre de 2019 .
- ^ a b c d Ken Greer (3 de octubre de 1983). "C shell con comando y reconocimiento / finalización de nombre de archivo" . Grupo de noticias : net.sources . Consultado el 29 de diciembre de 2010 .
- ^ Página de manual de tcsh (1) . tcsh.
- ^ Archivo de arreglos en tcsh-17 de junio de 2000.
- ^ Ubuntu - Detalles del paquete csh . Packages.ubuntu.com.
- ^ Debian - Detalles del paquete csh . Packages.debian.org.
- ^ Ubuntu - Detalles del paquete tcsh . Packages.ubuntu.com.
- ^ Debian - Detalles del paquete tcsh . Packages.debian.org.
- ^ "La T en tcsh" . Archivado desde el original el 14 de abril de 2012 . Consultado el 31 de octubre de 2013 .
- ^ Michael Urban; Brian Tiemann (2002). Sams aprende FreeBSD por tu cuenta en 24 horas . Sams Publishing. pag. 56. ISBN 978-0-672-32424-6.
- ^ POSIX 2008 Shell Command Language "El shell System V se seleccionó como punto de partida para el volumen Shell and Utilities de POSIX.1-2008. El shell BSD C se excluyó de la consideración"
enlaces externos
- Página web oficial
- lanzamientos de tcsh
- lista de correo tcsh
- tcsh página de manual
- Archivo del libro de O'Reilly "Uso de csh y tcsh"