Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| tutorial_de_shell_de_bourne [2024/08/11 16:41] – [Tutorial de Shell de Bourne (sh)] peron | tutorial_de_shell_de_bourne [2026/04/21 16:09] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | =======Tutorial de Shell de Bourne | + | =======Tutorial de Shell de Bourne======== |
| Este tutorial histórico presenta algunos métodos y comandos que lo ayudarán a hacer expeditas las tareas diarias que se realizan con el [[intérpretes de comandos|intérprete de comandos]] en [[versiones de unix#unix system v|UNIX System V]], la [[bourne shell|Bourne Shell]]. Lógicamente al ser una shell de 1985, no todos se aplican a los actuales [[BSD]] o GNU con Linux, pero si la mayoría de ellos. | Este tutorial histórico presenta algunos métodos y comandos que lo ayudarán a hacer expeditas las tareas diarias que se realizan con el [[intérpretes de comandos|intérprete de comandos]] en [[versiones de unix#unix system v|UNIX System V]], la [[bourne shell|Bourne Shell]]. Lógicamente al ser una shell de 1985, no todos se aplican a los actuales [[BSD]] o GNU con Linux, pero si la mayoría de ellos. | ||
| La primer sección de este tutorial " | La primer sección de este tutorial " | ||
| + | |||
| ===== Lenguaje de Comandos de la Shell ====== | ===== Lenguaje de Comandos de la Shell ====== | ||
| El lenguaje de la shell tiene caracteres especiales que le ofrecen algunos atajos para realizar tareas en la shell. Estos caracteres especiales se listan abajo y se discuten en esta sección del tutorial. | El lenguaje de la shell tiene caracteres especiales que le ofrecen algunos atajos para realizar tareas en la shell. Estos caracteres especiales se listan abajo y se discuten en esta sección del tutorial. | ||
| - | + | Estos son //metacaracteres//. Un metacaracter es un caracter que tiene un significado especial en el lenguaje de comandos | |
| - | Estos son metacaracteres. Un metacaracter es un caracter que tiene un significado especial en el lenguaje de ocmandos | + | |
| ^ Metacaracter ^ Significado ^ | ^ Metacaracter ^ Significado ^ | ||
| Línea 21: | Línea 21: | ||
| - | El significado de los metacaracteres es similar a decir "etc, etc, etc", "todo lo anterior", | + | El significado de los metacaracteres es similar a decir "etc, etc, etc", "todo lo anterior", |
| ===*=== | ===*=== | ||
| - | '' | + | '' |
| El '' | El '' | ||
| Línea 123: | Línea 123: | ||
| Intente el siguiente ejemplo | Intente el siguiente ejemplo | ||
| - | - Haga un fichero corto llamado '' | + | - Escriba |
| - ingresa mv prueba prueba**^g**1 (recuerda que **^g** se hace con **Ctrl+g**) | - ingresa mv prueba prueba**^g**1 (recuerda que **^g** se hace con **Ctrl+g**) | ||
| - ls prueba1 | - ls prueba1 | ||
| Línea 137: | Línea 137: | ||
| le indicará | le indicará | ||
| - | <codeprueba1</ | + | <code> |
| === [...] === | === [...] === | ||
| Línea 171: | Línea 171: | ||
| El caracter ''&'' | El caracter ''&'' | ||
| - | Algunos comandos de shell requieren tiempo considerable para su cumplimiento. Es conveniente dejar que dichos comandos corran en //segundo plano// para dejar libre su terminal de manera que pueda continuar haciendo otras tareas mientras tanto. | + | Algunos comandos de shell requieren tiempo considerable para su cumplimiento. Es conveniente dejar que dichos comandos corran en //segundo plano// para dejar libre su terminal de manera que pueda continuar haciendo otras tareas mientras tanto. |
| <code bash> | <code bash> | ||
| Línea 177: | Línea 177: | ||
| </ | </ | ||
| - | El comando [[grep]] puede desarrollar búsquedas | + | El comando [[grep]] puede desarrollar búsquedas |
| <code bash> | <code bash> | ||
| $ grep palabra * & | $ grep palabra * & | ||
| - | 2190 | + | 21940 |
| $ | $ | ||
| </ | </ | ||
| Línea 193: | Línea 193: | ||
| El metacaracter '';'' | El metacaracter '';'' | ||
| - | Si desea tipear | + | Si desea introducir |
| <code bash> | <code bash> | ||
| Línea 208: | Línea 208: | ||
| ^ Orden ^ Comando ^ Acción ^ | ^ Orden ^ Comando ^ Acción ^ | ||
| - | |1 |cd |cambia al directorio de usuario | | + | |1 |'' |
| - | |2 |pwd |imprime el directorio actual | | + | |2 |'' |
| - | |3 |ls |lista los ficheros en el directorio actual | | + | |3 |'' |
| - | |4 |ed |prueba ingresar al editor de líneas [[ed]] y comenzar por editar el fichero '' | + | |4 |'' |
| ¿Notó la rápida ráfaga de comandos? Podría no querer que estas veloces respuestas se presenten en su terminal. La sección de [[# | ¿Notó la rápida ráfaga de comandos? Podría no querer que estas veloces respuestas se presenten en su terminal. La sección de [[# | ||
| Línea 229: | Línea 229: | ||
| ===Desactivar caracteres especiales por Citado=== | ===Desactivar caracteres especiales por Citado=== | ||
| - | Todos los caracters | + | Todos los caracteres |
| Todos los caracteres entrecomillados ''< | Todos los caracteres entrecomillados ''< | ||
| - | Los metacaracteres en la shell pierden | + | Los metacaracteres en la shell pierden |
| - | Un delimitador separa argumentos, diciéndole a la shell donde termina un argumento y comienza otro. El espacio en blanco tiene un significado especial para la shell porque se usa como delimitador entre los argumentos de un comando. | + | Un //delimitador// separa argumentos, diciéndole a la shell donde termina un argumento y comienza otro. El espacio en blanco tiene un significado especial para la shell porque se usa como delimitador entre los argumentos de un comando. |
| - | El comando //banner// usa espacios | + | El comando //banner// usa los caracteres de espacio |
| <code bash> | <code bash> | ||
| Línea 334: | Línea 334: | ||
| El caracter ''<'' | El caracter ''<'' | ||
| - | El formato | + | La sintaxis |
| <code bash> | <code bash> | ||
| Línea 357: | Línea 357: | ||
| El caracter ''>'' | El caracter ''>'' | ||
| - | Un símbolo único de redirección creará un nuevo fichero, o borrará un fichero viejo y reemplazará sus contenidos con la nueva salida. | + | Un símbolo único de redirección creará un nuevo fichero, o borrará un fichero viejo y reemplazará sus contenidos con la nueva salida. |
| <code bash> | <code bash> | ||
| Línea 437: | Línea 437: | ||
| Si dos comandos o mas están interconectados por medio de un caracter caño '' | Si dos comandos o mas están interconectados por medio de un caracter caño '' | ||
| - | El formato | + | La sintaxis |
| <code bash> | <code bash> | ||
| Línea 512: | Línea 512: | ||
| El comando //batch// es útil si está ejecutando un proceso o programa de shell que requiere una cantidad mayor a la normal de tiempo de cómputo. El comando //batch// produce un trabajo "en lote", que consiste en comandos a ser ejecutados por la computadora. El trabajo forma una cola, y se ejecutará no bien la carga del procesador del sistema descienda hasta un nivel aceptable. Esto libera a la computadora para poder responder rápidamente a otras entradas que le pudiesen efectuar otros o usted mismo. | El comando //batch// es útil si está ejecutando un proceso o programa de shell que requiere una cantidad mayor a la normal de tiempo de cómputo. El comando //batch// produce un trabajo "en lote", que consiste en comandos a ser ejecutados por la computadora. El trabajo forma una cola, y se ejecutará no bien la carga del procesador del sistema descienda hasta un nivel aceptable. Esto libera a la computadora para poder responder rápidamente a otras entradas que le pudiesen efectuar otros o usted mismo. | ||
| - | El formato | + | La sintaxis |
| <code bash> | <code bash> | ||
| $ batch | $ batch | ||
| primer comando | primer comando | ||
| - | " | + | . |
| - | " | + | . |
| - | " | + | . |
| último comando | último comando | ||
| ^d | ^d | ||
| Línea 540: | Línea 540: | ||
| </ | </ | ||
| - | El comando //at// indica a la computadora un momento específico para ejecutar dicho comando. | + | El comando //at// indica a la computadora un momento específico para ejecutar dicho comando. |
| <code bash> | <code bash> | ||
| $ at hora | $ at hora | ||
| primer comando | primer comando | ||
| - | | + | |
| - | | + | |
| - | | + | |
| último comando | último comando | ||
| ^d | ^d | ||
| Línea 563: | Línea 563: | ||
| </ | </ | ||
| - | Tanto el comando //batch// y el comando //at// le proporcionarán un número de trabajo. Si decide que no desea ejecutar los comandos //batch// o //at// que ya están a la espera en una cola de procesos por lote, puede borrarlos con la opción **-r** del comando //at//, proporcionando el número de trabajo. | + | Tanto el comando //batch// y el comando //at// le proporcionarán un número de trabajo. Si decide que no desea ejecutar los comandos //batch// o //at// que ya están a la espera en una cola de procesos por lote, puede borrarlos con la opción **-r** del comando //at//, proporcionando el número de trabajo. |
| <code bash> | <code bash> | ||
| Línea 615: | Línea 615: | ||
| === Terminar Procesos Activos === | === Terminar Procesos Activos === | ||
| - | El comando //kill// se utiliza para detener procesos activos de la shell. | + | El comando //kill// se utiliza para detener procesos activos de la shell. |
| <code bash> | <code bash> | ||
| Línea 621: | Línea 621: | ||
| </ | </ | ||
| - | ¿Que hace si decide que no necesita ejecutar el comando que está ejecutándose en segundo plano? Si presiona la **tecla BREAK** o la **tecla DEL**, decubrirá que no detiene los procesos en segundo plano de la misma forma que lo hace con los comandos interactivos. Para ello se utiliza | + | ¿Que hace si decide que no necesita ejecutar el comando que está ejecutándose en segundo plano? Si presiona la **tecla BREAK** o la **tecla DEL**, decubrirá que no detiene los procesos en segundo plano de la misma forma que lo hace con los comandos interactivos. Para ello debe utilizar |
| <code bash> | <code bash> | ||
| Línea 958: | Línea 958: | ||
| ===Asignar Valores con el comando read === | ===Asignar Valores con el comando read === | ||
| - | Puede establecer su programa de forma que ingrese el comando, y luego que le solicite ingresar el valor para la variable. El comando //read// asigna la entrada a la variable espeficiada. | + | Puede establecer su programa de forma que ingrese el comando, y luego que le solicite ingresar el valor para la variable. El comando //read// asigna la entrada a la variable espeficiada. |
| <code bash> | <code bash> | ||
| Línea 1046: | Línea 1046: | ||
| Otra forma de asignar un valor a una variable es sustituir la salida de un comando por el valor. Esto será muy útil en la siguiente sección, donde intentaremos bucles y construcciones condicionales. | Otra forma de asignar un valor a una variable es sustituir la salida de un comando por el valor. Esto será muy útil en la siguiente sección, donde intentaremos bucles y construcciones condicionales. | ||
| - | El formato | + | La sintaxis |
| <code bash> | <code bash> | ||
| Línea 1137: | Línea 1137: | ||
| === Comentarios=== | === Comentarios=== | ||
| | | ||
| - | Antes de comenzar a escribir programas de la shell con bucles, querrá sabner cómo poner comentarios sobre su programa en el mismo fichero, los cuales son ignorados por el sistema. Para poner comandos en un programa, comience el comentario con ''#'' | + | Antes de comenzar a escribir programas de la shell con bucles, querrá sabner cómo poner comentarios sobre su programa en el mismo fichero, los cuales son ignorados por el sistema. Para poner comandos en un programa, comience el comentario con ''#'' |
| | | ||
| < | < | ||
| Línea 1154: | Línea 1154: | ||
| ===El Documento Aquí=== | ===El Documento Aquí=== | ||
| - | El Documento Aquí le permite redirigir líneas de entrada | + | El Documento |
| <code bash> | <code bash> | ||
| Línea 1162: | Línea 1162: | ||
| </ | </ | ||
| - | El documento Aqui puede usarse en un programa de shell, para redirigir | + | El documento |
| <code bash> | <code bash> | ||
| Línea 1186: | Línea 1186: | ||
| </ | </ | ||
| - | Para recibir | + | Para recibir |
| <code bash> | <code bash> | ||
| - | + | ||
| - | De fulana Lun May 14 14:31 CDT 1984 | + | De fulana |
| Que los cumplas muy feliz! | Que los cumplas muy feliz! | ||
| $ | $ | ||
