lenguaje_del_interprete_de_comandos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
lenguaje_del_interprete_de_comandos [2023/03/02 00:44] peronlenguaje_del_interprete_de_comandos [2023/08/13 04:58] (actual) – [Desactivar la Interpretación de meta-caracteres] peron
Línea 12: Línea 12:
  
   * ''*'' ''?'' ''['' '']'' se interpretan como "**comodines**", y se pueden operar como "atajos" en los nombres de fichero o directorio.   * ''*'' ''?'' ''['' '']'' se interpretan como "**comodines**", y se pueden operar como "atajos" en los nombres de fichero o directorio.
-  * ''&'' Este carácter envía la ejecución del comandos en [[creacion de trabajos en texto-plano|segundo plano]], y mientras la shell ejecuta dicha órden, tu terminal quedará libre para que puedas continuar realizando otras operaciones. 
   * '';'' Este carácter permite ingresar varios comandos seguidos, y hacerlo en una sola orden. Cada comando debe estar intercedido por un '';''. Cuando presiones la **tecla Intro** cada comando que compone la orden resultará introducido secuencialmente (desde comienzo de la línea hasta el final).   * '';'' Este carácter permite ingresar varios comandos seguidos, y hacerlo en una sola orden. Cada comando debe estar intercedido por un '';''. Cuando presiones la **tecla Intro** cada comando que compone la orden resultará introducido secuencialmente (desde comienzo de la línea hasta el final).
-  * ''%%\%%'' El caracter de barra invertida permite desactivar la interpretación de los meta-caracteres tales como ''*'', ''[]'', ''&'', y '';''+  * ''&'' Este carácter envía la ejecución del comandos en [[creacion de trabajos en texto-plano|segundo plano]], y mientras la shell ejecuta dicha órden, tu terminal quedará libre para que puedas continuar realizando otras operaciones. 
-  * ''%%"%%''...''%%"%%'' ''<nowiki>'</nowiki>''...''<nowiki>'</nowiki>'' Los entrecomillados y los interdiéresis ocultan contenido al shell, desactivando tanto el significado delimitador del espacio entre ellos, así como la interpretación de los caracteres especiales. Sin embargo, las comillas permiten que los caracteres ''$'' y ''%%\%%'' retengan su significado especial. +  * ''%%\%%'' El caracter de barra invertida permite [[#desactivar_la_interpretacion_de_metacaracteres|desactivar la interpretación de los meta-caracteres]] tales como ''*'', ''[]'', ''&'', y '';''
-  * Las interdiéresis invertidas ''<nowiki>`</nowiki>''..''<nowiki>`</nowiki>'' se utilizan para expansión de comandos.+  * ''%%"%%''...''%%"%%'' ''<nowiki>'</nowiki>''...''<nowiki>'</nowiki>'' Los entrecomillados y los entreapóstrofos ocultan contenido al shell, desactivando tanto el significado delimitador del espacio entre ellos, así como la interpretación de los caracteres especiales. Sin embargo, las comillas permiten que los caracteres ''$'' y ''%%\%%'' retengan su significado especial. 
 +  * El acento agudo ''<nowiki>`</nowiki>''..''<nowiki>`</nowiki>'' se utilizan para [[#expansión de comandos|expansión de comandos]](ver [[acentos_y_enes_en_texto-plano.xyz#caracteres_especiales_en_el_teclado_espanol|caracteres especiales en el teclado español]]
  
 > Los caracteres ''$'' y ''%%\%%'' se discutirán más adelante y son importante para los programas interpretados. > Los caracteres ''$'' y ''%%\%%'' se discutirán más adelante y son importante para los programas interpretados.
  
 +====Metacaracteres Comodines====
 +Los comodines son caracteres "de inclusión".
  
-=== * ===+=== Comodín para cualesquiera caracteres (*===
  
-El caracter asterisco ''*'' representa **todos los ficheros en el directorio actual**.+El carácter asterisco ''*'' representa **todo el contenido de caracteres**, y en el contexto de archivaje, denota la inclusión de "**todos los ficheros en el directorio actual**".
  
-Por ejemplo, podrías utilizar el comando **echo** - capaz de presentar una cadena de texto en la terminal - y combinarlo con el ''*'' para lograr el resultado deseado. Por ejemplo, introduce en tu terminal:+Por ejemplo, podrías utilizar el comando //echo// - capaz de presentar una cadena de texto en la terminal - y combinarlo con el ''*'' para lograr el resultado deseado. Por ejemplo, introduce en tu terminal:
  
 <code bash> <code bash>
Línea 33: Línea 35:
 ...y recibirás como eco de respuesta una lista con todos los ficheros del directorio actual. ...y recibirás como eco de respuesta una lista con todos los ficheros del directorio actual.
  
-Por favor, ten especial cuidado al emplear el metacaracter ''*'' pues significa "**todo lo contenido**". Por ejemplo, si indicas:+Por favor, ten especial cuidado al emplear el metacaracter ''*'' pues significa "**todo cualesquiera**". Por ejemplo, si indicas:
  
 <code bash> <code bash>
Línea 39: Línea 41:
 </code> </code>
  
-...listará todos los ficheros en el directorio actual que tengan cualquier nombre y la extensión ''.txt''. +...listará todos los ficheros en el directorio actual (cualesquier nombre que tengan), cuya extensión sea ''.txt''.
- +
  
-Podrías indicar que devuelva una liste de todos los ficheros que contienen una letra ''s'' en su nombre de archivo, de esta manera:+Podrías indicar que liste cualesquier ficheros que contiengan una letra ''s'' incorporada en cierto lugar de su nombre de archivo, de esta manera:
  
 <code bash> <code bash>
Línea 55: Línea 55:
 </code> </code>
  
-Podría sería interpretado como "lista los ficheros contenidos en el directorio actual, cuyo nombre contenga cualquier letra a continuación de ''reporte'' inclusive". Esto incluiría, por ejemplo:+Será interpretado como "lista cualesquier fichero contenido en el directorio actual, cuyo nombre contenga cualquier letra a continuación de ''reporte'' inclusive". Esto incluiría, por ejemplo:
  
 <code bash> <code bash>
Línea 67: Línea 67:
  
  
 +=== Comodín para un caracter (?) ===
  
-=== ? === 
  
- +El signo //cierre de interrogación// ''?'' se interpreta como la inclusión de "**un caracter único cualquiera**"
-El signo de interrogación cerrado ''?'' se interpreta como "**cualquier único carácter**"+
  
 Por ejemplo, podrías ordenar: Por ejemplo, podrías ordenar:
Línea 93: Línea 92:
 </code> </code>
  
-...pero no listará el capitulo10.+...pero no listará el ''capitulo10''.
  
-Afortunadamente podrás listar //capitulo10// hasta el //capitulo99//. simplemente ingresando doble signo interrogación ''??'' para buscar dos caracteres cualquiera. Si indincas ''???'' podrías encontrar tres caracteres cualquiera.+Afortunadamente, si utilizas //__doble__ cierre de interrogación// (''??''), el intérprete buscará __dos__ caracteres cualesquiera:
  
 <code bash> <code bash>
Línea 101: Línea 100:
 </code> </code>
  
 +...y podría dar desde ''capitulo10'' hasta ''capitulo99''. De la misma forma, procediendo con  ''???'' se buscarán tres caracteres cualquiera, etc, etc.
  
-=== [] === 
  
  
-Los corchetes ''[]'' permiten delimitar un **rango de caracteres** determinado. Por ejemplo, si introduces la siguiente delimitación dada:+ 
 +=== Rangos ([]) === 
 + 
 +Utiliza los //corchetes// ''[]'' para incluir cierto **rango de cualquier caracter delimitado**. Por ejemplo, si introduces la siguiente delimitación:
  
 <code bash> <code bash>
Línea 111: Línea 113:
 </code> </code>
  
-...podría recibir en tu terminal el siguiente listado de ficheros:+...el intérprete podría listarte los ficheros ''gata'', ''pata'' y ''rata'' (si existiesen en el directorio actual, claro está).
  
-<code bash> +Puedes utilizar también el encorchetado si deseas manifestar **rangos numéricos**. Esto es muy útil. En este sentido podrías ordenar:
-gata +
-pata +
-rata +
-</code> +
- +
-También podrías indicar __rangos entrecorchetados__. Esto es muy útil. Por ejemplo, podrías indicar:+
  
 <code bash> <code bash>
Línea 125: Línea 121:
 </code> </code>
  
-...y con ello lograrías presentar en tu terminal los contenidos de los ficheros ''capitulo2'', ''capitulo3'' y ''capitulo4''.+...lo que lograría concatenar los contenidos de los ficheros ''capitulo2'', ''capitulo3'' y ''capitulo4'' en tu terminal.
  
-No sólo los números pueden usarse como rango, ya que también podrás delimitar letras. ''[a-z]'' responderá a minúsculas, mientras que ''<nowiki>[A-Z]</nowiki>'' lo hará con mayúsculas. El resultado suele mostrarse en orden alfabético.+También podrás delimitar **letras alfabéricos**. ''[a-z]'' responderá a letras minúsculas, mientras que ''<nowiki>[A-Z]</nowiki>'' lo hará con letras mayúsculas. El resultado suele presentarse en orden alfabético.
  
 +==== Metacaracteres de redirección ====
 +El uso de metacaracteres simples permite obrar la función de redirección.
  
-==== Ejecución en Segundo Plano& ====+El metacaracter de redirección //signo mayor que// ''>'' redirige el resultado (salida) a una localización distinta a la terminal. Podrás redirigir la salida hacia un fichero (si existiese tal fichero previamente, lo reemplazará). Por ejemplo:
  
-Algunos comandos ejecutados en el //shell// podrían tardar mucho tiempo en ejecutarse. Podría ser conveniente que dejes esos comandos en segundo plano y liberes tu terminal de modo que puedas continuar ingresando otras órdenes al intérprete+<code bash> 
- +who > ~/reporte_logueo.txt 
-El carácter et o "ampersand", el ''&'', se agrega al final de un comando, para provocar su **procesamiento en segundo plano**. +</code>
- +
-Esto se hace ingresando:+
  
 <code bash> <code bash>
-comando &+(date ; who) > reporte_logueo.txt
 </code> </code>
  
-Por ejemplo, el comando ''[[grep]]'' se utiliza para realizar búsquedas de cadenas de textoPodrías usarlo para buscar en segundo plano todas las existencias de la cadena ''Mengana'' en todos los ficheros del directorio, de la siguiente manera:+Esto ejecutará el comando date (fecha)luego el comando who, y sus resultados secuencial será escrito en el fichero ''~/reporte.logueo.txt''. 
 + 
 +Si en lugar de usar ''>'' utilizas ''%%>>%%'', el significado cambia de "sobreescribir en" a "agregar a". 
 + 
 +Revisa el resultado y borra el fichero con:
  
 <code bash> <code bash>
-grep Mengana * &+cat ~/reporte_logueo.txt ; rm  ~/reporte_logueo.txt
 </code> </code>
  
-La terminal devolverá un identificador de proceso, el cual estará activo mientras se trabaja. Este número de proceso es esencial para poder eliminarlo.+ 
  
 ==== Ejecución Secuencial ==== ==== Ejecución Secuencial ====
Línea 165: Línea 166:
 </code> </code>
  
-==== Ejecución Condicional ====+ 
 +=== Ejecución Condicional ===
 El uso de __metacaracteres dobles__ denota diferentes funciones __condicionales__. El uso de __metacaracteres dobles__ denota diferentes funciones __condicionales__.
  
Línea 180: Línea 182:
 </code> </code>
  
-==== Metacaracteres de redirección ====+==== Ejecución en Segundo Plano: & ==== 
 +El carácter et o "ampersand", el ''&'', se agrega al final de un comando, para provocar su **procesamiento en segundo plano**.
  
-El metacaracter de redirección //signo mayor que// ''>'' permite redirigir el resultado (salida) a una localización distinta a la terminal. Podrás redirigir la salida hacia un fichero (si existiese tal fichero previamente, lo reemplazará). Por ejemplo:+Esto se hace ingresando:
  
 <code bash> <code bash>
-who > ~/reporte_logueo.txt+comando &
 </code> </code>
  
-<code bash> +__**Ver también**__: [[creacion_de_trabajos_en_texto-plano|Multitarea en texto-plano.xyz]]
-(date ; who) > reporte_logueo.txt +
-</code>+
  
-Esto ejecutará el comando date (fecha), luego el comando who, y sus resultados secuencial será escrito en el fichero ''~/reporte.logueo.txt''.+>Algunos comandos ejecutados en el //shell// podrían tardar mucho tiempo en ejecutarsePodría ser conveniente que dejes esos comandos en segundo plano y liberes tu terminal de modo que puedas continuar ingresando otras órdenes al intérprete.
  
-Si en lugar de usar ''>'' utilizas ''%%>>%%'', el significado cambia de "sobreescribir en" a "agregar a". +Por ejemplo, el comando ''[[grep]]'' se utiliza para realizar búsquedas de cadenas de texto. Podrías usarlo para buscar en segundo plano todas las existencias de la cadena ''Mengana'' en todos los ficheros del directorio, de la siguiente manera:
- +
-Revisa el resultado y borra el fichero con:+
  
 <code bash> <code bash>
-cat ~/reporte_logueo.txt ; rm  ~/reporte_logueo.txt+grep Mengana * &
 </code> </code>
  
 +La terminal devolverá un identificador de proceso, el cual estará activo mientras se trabaja. Este número de proceso es esencial para poder eliminarlo.
  
-Las diéresis abierta ''`'' puede utilizarse para referir un comando. Si se deseara crear una lista de logueos con la fecha, podrías programarla usando todas estas funcionalidades del intérprete de comandos. Por ejemplo, estudia esta secuencia de comandos: 
  
-<code bash> 
-(echo Se loguearon en `date` >> ~/reporte_logueo.txt) ; who >> ~/reporte_logueo.txt 
-</code> 
  
 ==== Desactivar la Interpretación de meta-caracteres === ==== Desactivar la Interpretación de meta-caracteres ===
Línea 215: Línea 211:
 === Desactivar los caracteres especiales entrecomillando === === Desactivar los caracteres especiales entrecomillando ===
    
-  * ''%%''%%'' Si usas diéresis todos los metacaracteres contenidos entre ellas no serán interpretados.+  * ''%%''%%'' Si usas apóstrofos todos los metacaracteres contenidos entre ellas no serán interpretados.
  
   * ''%%""%%'' Si usas comillas todos los metacaracteres contenidos entre ellas no serán interpretados, exceptuando ''$'', ''%%\%%'' y ''%%'%%''.   * ''%%""%%'' Si usas comillas todos los metacaracteres contenidos entre ellas no serán interpretados, exceptuando ''$'', ''%%\%%'' y ''%%'%%''.
  
  
-Los meta-caracteres no serán interpretados cuando aparecen entrecomillados. La diéresis simple desactiva todos los meta-caracteres, mientras que las comillas lo hacen con todos con excepción de ''$'', ''%%\%%'' y ''%%'%%''.+Los meta-caracteres no serán interpretados cuando aparecen entrecomillados. El apóstrofo simple desactiva todos los meta-caracteres, mientras que las comillas lo hacen con todos con excepción de ''$'', ''%%\%%'' y ''%%'%%''.
  
 Estos delimitadores separan argumentos, y le dicen al intérprete cuando termina un argumento y cuando inicia otro.  Estos delimitadores separan argumentos, y le dicen al intérprete cuando termina un argumento y cuando inicia otro. 
Línea 237: Línea 233:
  
 $ echo "\"El juego de la \$Plata\"" $ echo "\"El juego de la \$Plata\""
 +"El juego de la $Plata"
 +
 +#tAmbién podría ignorarse su interpretación parcial del contenido entre apóstrofes:
 +$ echo '"El juego de la $Plata"'
 "El juego de la $Plata" "El juego de la $Plata"
 </code> </code>
  
-=== Expansión de comandos (`..`) === +==== Expansión de comandos (`..`) ==== 
-Las interdiéresis inversas ''<nowiki>`</nowiki>'' se utiliza para la expansión de lso comandos anidados.+Los acentos agudos ''<nowiki>`</nowiki>'' se utilizan para definir una expansión de comandos anidados.
  
-Cuando se utilizan las diéresis inversas alrededor de un texto, el intérprete reemplaza el texto entre las diéresis inversas con la devolución de la ejecución del comando anidado.+Cuando se utilizan los acentos graves ''`...`'' alrededor de un texto, el intérprete reemplaza el texto entre los acentos graves con la devolución de la ejecución del comando anidado.
  
 Por ejemplo, este comando anidará una solicitud del navegador w3m para conocer la IP local, y la devolución la incorporará dentro de una cadena de texto informativa personalizada, gracias al comando Echo. Por ejemplo, este comando anidará una solicitud del navegador w3m para conocer la IP local, y la devolución la incorporará dentro de una cadena de texto informativa personalizada, gracias al comando Echo.
 +
 <code bash> <code bash>
 echo "Hola ~$USER, la IP de salida de $HOSTNAME es `w3m http://ipecho.net/plain`" echo "Hola ~$USER, la IP de salida de $HOSTNAME es `w3m http://ipecho.net/plain`"
  • lenguaje_del_interprete_de_comandos.1677717880.txt.gz
  • Última modificación: 2023/03/02 00:44
  • por peron