tcsh ( / ˌ t iː ˈ s iː ʃ ɛ l / “tee-see-shell”, / ˈ t iː ʃ ɛ l / “tee-shell”, o como “tee see ess aitch”, tcsh) es un intérprete de comandos de Unix basado en el intérprete de comandos C y compatible con versiones anteriores del mismo ( ).csh
Caparazón
tcsh es esencialmente el intérprete de comandos C con autocompletado de línea de comandos programable , edición de línea de comandos y algunas otras características. A diferencia de otros intérpretes de comandos comunes, no se pueden definir funciones en un script de tcsh y el usuario debe usar alias (como en csh). Es el intérprete de comandos raíz nativo para algunos sistemas basados en BSD, incluyendo FreeBSD 13 y versiones anteriores. (FreeBSD 14 cambió el intérprete de comandos raíz predeterminado para shque coincidiera con el intérprete de comandos de usuario predeterminado [ 5 ] , mientras que OpenBSD usa el intérprete de comandos Kornksh tanto para el usuario raíz como para los usuarios regulares [ 6 ] ).
tcsh añadió autocompletado de nombres de archivo y comandos, así como conceptos de edición de línea de comandos tomados del sistema operativo TENEX , del cual proviene la letra "t". [ 7 ] Debido a que solo añadió funcionalidad y no modificó lo existente, tcsh mantuvo la compatibilidad con versiones anteriores [ 8 ] del intérprete de comandos C original. Aunque comenzó como una rama secundaria del árbol de código fuente original de csh creado por Bill Joy , tcsh es ahora la rama principal para el desarrollo continuo.
tcsh es muy estable, pero siguen apareciendo nuevas versiones aproximadamente una vez al año, que consisten principalmente en correcciones de errores menores. [ 9 ]
En muchos sistemas, como macOS y Red Hat Linux , cshen realidad es tcsh. A menudo, uno de los dos archivos es un enlace físico o un enlace simbólico al otro, de modo que ambos nombres se refieren a la misma versión mejorada del intérprete de comandos C (aunque el comportamiento puede variar según el nombre utilizado).
En Debian y algunos derivados (incluido Ubuntu ), existen dos paquetes diferentes: csh y tcsh. El primero se basa en la versión original de csh de BSD [ 10 ] [ 11 ] y el segundo es la versión mejorada de tcsh. [ 12 ] [ 13 ]
Historia
La “t” tcshproviene de la “T” de TENEX , un sistema operativo que inspiró a Ken Greer en la Universidad Carnegie Mellon , autor de tcsh, con su función de autocompletado de comandos. [ 14 ] Greer comenzó a trabajar en su código para implementar el autocompletado de nombres de archivo al estilo Tenex en septiembre de 1975, y finalmente lo integró en el shell C en diciembre de 1981. [ 7 ] Mike Ellis en Fairchild AI Labs agregó el autocompletado de comandos en septiembre de 1983. [ 7 ] El 3 de octubre de 1983, Greer publicó el código fuente en el grupo de noticias net.sources. [ 7 ]
Características significativas
- Historial de comandos
- El comando integrado
historymuestra los comandos introducidos previamente. - El uso de ↑/ en la línea de comandos permite al usuario seleccionar un comando del historial para editarlo/ejecutarlo.↓
- Invocar comandos anteriores usando el historial de comandos
!!ejecuta el comando anterior!nejecuta el enésimo comando que se ejecutó previamente!-nejecuta el comando que se ejecutó hace n comandos!stringejecuta el comando ejecutado más recientemente que comienza con cadena!?stringejecuta el comando ejecutado más recientemente que contiene la cadena
- Uso del 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 los argumentos m al n del comando anterior.!:n-$- se refiere al enésimo argumento hasta el último del comando anterior.
- El comando integrado
- Edición de línea de comandos
- Autocompletado de nombres de archivo y variables, así como autocompletado programable en la línea de comandos.
- 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 intérprete de comandos que ofrece esta característica (en lugar de funciones).
\!#- 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 ningún argumento, pero si no se proporciona ninguno, el nombre del alias se considera el último argumento.\!^- Selector de argumentos para el primer argumento; el argumento DEBE proporcionarse.\!:n- selector de argumentos para el n- ésimo argumento; el argumento DEBE proporcionarse; n=0 se refiere al alias/nombre del comando.\!:m-n- selector de argumentos para los argumentos del m al n ; los argumentos DEBEN ser proporcionados.\!:n-$- selector de argumentos para los argumentos desde el n hasta el último; se DEBE proporcionar al menos el argumento n.\!:n*- Selector de argumentos para los argumentos desde el n- ésimo hasta el último; no es necesario proporcionar argumentos suficientes.#Añade un alias al comando cd para que, al cambiar de directorio, se muestre inmediatamente el contenido. alias cd 'cd \!* && ls'
- Coincidencia de comodines
if ( "$input" = ~ [ 0-9 ] * ) then echo "La entrada comienza con un número entero" else echo "La entrada NO comienza con un número entero" endif
- Control de trabajo
- El comando integrado
where. Funciona como elwhichcomando pero muestra todas las ubicaciones del comando de destino en los directorios especificados en$PATHlugar de solo la que se utilizará.
Despliegue
Las primeras versiones de Mac OS X venían con tcsh como shell predeterminado, pero el predeterminado para las nuevas cuentas pasó a ser bash a partir de la versión 10.3 , y luego zsh a partir de la versión 10.15 . (tcsh todavía se proporciona, y actualizar el sistema operativo no cambia el shell de ninguna cuenta existente). tcsh era el shell raíz predeterminado de FreeBSD antes de la versión 14.0 (cuando cambió a un derivado del shell Almquist que ya era el shell de usuario predeterminado) [ 15 ] y sus descendientes como DragonFly BSD y DesktopBSD .
Véase también
Referencias
- ↑ "Versión 6.24.16" . 9 de julio de 2025. Consultado el 18 de julio de 2025 .
- ↑ "eliminar la cláusula 3 de los derechos de autor" . GitHub . 8 de marzo de 2002.
- ↑ "Eliminar la cláusula 3 de los derechos de autor (modificados en otros archivos el 8 de marzo de 2002)" . GitHub . 14 de julio de 2014.
- ↑ "Lanzamiento de Tcsh-6.00" . GitHub . 4 de julio de 1991.
- ↑ "Guía de inicio rápido de FreeBSD para usuarios de Linux" .
- ↑ "OpenBSD para usuarios de Linux" .
- 1 2 3 4 Ken Greer (3 de octubre de 1983). "C shell con reconocimiento/completado de comandos y nombres de archivo" . Grupo de noticias : net.sources . Recuperado el 29 de diciembre de 2010 .
- ↑ Página man de tcsh(1) . tcsh.
- ↑ Corrige el archivo en tcsh-17 de junio de 2000.
- ↑ Ubuntu - Detalles del paquete csh . launchpad.net.
- ↑ Debian - Detalles del paquete csh . tracker.debian.org.
- ↑ Ubuntu - Detalles del paquete tcsh . launchpad.net.
- ↑ Debian - Detalles del paquete tcsh . tracker.debian.org.
- ↑ "La T en tcsh" . Archivado del original el 14 de abril de 2012. Recuperado el 31 de octubre de 2013 .
- ↑ "Notas de la versión de FreeBSD 14.0" .
Enlaces externos
- tcsh libera
- lista de correo tcsh
- Página del manual de tcsh
- Archivo del libro de O'Reilly "Using csh and tcsh". Archivado el 25 de febrero de 2011 en Wayback Machine.
- shells de Unix
- Software libre multiplataforma
- Software libre programado en C
- Lenguajes de scripting
- Software que utiliza la licencia BSD.
- Lenguajes de programación orientados a texto
