acemu:articulos:articulos_tecnicos:software:introduccion_a_gnu-linux:linux_inicio:terminal
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
acemu:articulos:articulos_tecnicos:software:introduccion_a_gnu-linux:linux_inicio:terminal [2012/01/13 17:39] – [Introducción] luis | acemu:articulos:articulos_tecnicos:software:introduccion_a_gnu-linux:linux_inicio:terminal [2012/01/15 12:07] (actual) – [Estructuras de control de flujo] luis | ||
---|---|---|---|
Línea 25: | Línea 25: | ||
Para acceder a una terminal se puede hacer de dos formas, una es con una aplicación como el terminal de [[http:// | Para acceder a una terminal se puede hacer de dos formas, una es con una aplicación como el terminal de [[http:// | ||
+ | Mostramos a continuación una imágen de la GUI o emulador de terminal en interfaz gráfica, en este caso, el escritorio de GNOME. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | \\ | ||
Otra forma es salirse del entorno gráfico y acceder a un entorno completamente en modo texto, algo así como entrar en sólo símbolo de sistema en [[http:// | Otra forma es salirse del entorno gráfico y acceder a un entorno completamente en modo texto, algo así como entrar en sólo símbolo de sistema en [[http:// | ||
+ | La interfase de línea de comandos o CLI, accedemos a ella a través de la **Barra de Herramientas-> | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | \\ | ||
Linux tiene al menos 2 interfases para comunicarse con el usuario la **CLI** (Command line interfase - interfase de línea de comandos) y la **GUI** (interfase de modo " | Linux tiene al menos 2 interfases para comunicarse con el usuario la **CLI** (Command line interfase - interfase de línea de comandos) y la **GUI** (interfase de modo " | ||
Línea 143: | Línea 153: | ||
< | < | ||
NOTA : | NOTA : | ||
- | Como se puede observar para poder asignar la cadena a la variable | + | Como se puede observar para poder asignar la cadena a la variable '' |
hemos tenido que utilizar las dobles comillas. | hemos tenido que utilizar las dobles comillas. | ||
- | Si no lo hubiésemos hecho (escribiendo | + | Si no lo hubiésemos hecho (escribiendo '' |
habríamos obtenido un error ya que el intérprete de órdenes sólo habría asignado | habríamos obtenido un error ya que el intérprete de órdenes sólo habría asignado | ||
- | '' | + | '' |
</ | </ | ||
Línea 192: | Línea 202: | ||
* **''' | * **''' | ||
+ | |||
+ | Debemos((idem)) dejar claro que las variables de entorno son propias del entorno en el que estamos, por lo tanto quedan, son propias del entorno. | ||
+ | |||
+ | Ahora bien, hay un tema muy importante y sutil, que es el alcance de las variables de entorno.\\ | ||
+ | Hay dos tipos de variables de entorno : | ||
+ | * las que podríamos definir como **locales** | ||
+ | * y las que podríamos definir como **globales** | ||
+ | |||
+ | Las **locales** solo son accesibles a los comandos que se ejecutan en el shell local, o el shell que nos está atendiendo.\\ | ||
+ | Las **globales** se trasmiten de padres a hijos... | ||
+ | |||
+ | |||
+ | En realidad cuando nos referimos a procesos hijos en LINUX, nos referimos a los procesos que son resultado de otro proceso del cual se genera. | ||
+ | |||
+ | Por ejemplo, si corro un comando **ls**, el shell es el proceso padre y el ls es el proceso hijo, de hecho, lo que en realidad ocurrió internamente es un **fork**(bifurcación). Lo que hace LINUX cuando larga a correr un programa, es lo siguiente : | ||
+ | |||
+ | Primero duplica el proceso que está ejecutando, por ejemplo, si es un shell, lo duplica ejecutando la función **fork()** del sistema, y luego el proceso hijo realiza un **exec()** con lo cual se transforma en el comando **ls** que es lo que queríamos ejecutar. | ||
+ | |||
+ | Al ejecutar un **fork()**, el proceso original se duplica, pero cada uno sabe si es padre o es hijo; y es el hijo el que finalmente se transforma en el nuevo proceso que se quería ejecutar. | ||
+ | |||
+ | En el proceso de ejecución del **fork()**, se trasmiten sólo las variables **globales** que son las variables que propiamente uno dice que son las variables de entorno. | ||
+ | |||
+ | Para que una variable sea de entorno, uno debe exportarla. Uno puede primero crear la variable | ||
+ | |||
+ | < | ||
+ | pepe=123 | ||
+ | </ | ||
+ | |||
+ | y luego exportarla, | ||
+ | |||
+ | < | ||
+ | export pepe | ||
+ | </ | ||
+ | |||
+ | o se pueden hacer las dos cosas juntas, | ||
+ | |||
+ | < | ||
+ | export pepe=123 | ||
+ | </ | ||
+ | |||
+ | De esa manera, los procesos hijos del proceso donde se creó la variable pepe, también podrán disponer de esa variable. Y ese, es el mecanismo más sencillo de comunicación entre procesos.\\ | ||
+ | Uno puede invocar un nuevo programa, pasándole argumentos, o simplemente creamos un conjunto de variables de entorno con los datos que el nuevo proceso requiere y el nuevo proceso los toma allí. | ||
+ | |||
== Órdenes == | == Órdenes == | ||
Línea 332: | Línea 385: | ||
//**== Caso de estudio ==**// | //**== Caso de estudio ==**// | ||
- | Un ejemplo práctico del uso de las tuberías o pipes es el siguiente ((aportado por **Kenneth Irving**)): | + | Un ejemplo práctico del uso de las tuberías o pipes es el siguiente ((Idem)): |
Se puede encadenar la salida de un comando a la entrada de otro (tal como lo vimos anteriormente), | Se puede encadenar la salida de un comando a la entrada de otro (tal como lo vimos anteriormente), | ||
Línea 430: | Línea 483: | ||
1 converso\\ | 1 converso\\ | ||
- | 1 perverso\\ | + | 1 preverso\\ |
2 verso\\ | 2 verso\\ | ||
Línea 449: | Línea 502: | ||
== Named Pipes - otro caso de Tuberías == | == Named Pipes - otro caso de Tuberías == | ||
- | Las tuberías o pipes ((sección aportada por **Kenneth Irving**))de las que hablamos, que permiten conectar **stdout** de un proceso, con el **stdin** de otro, se puede decir que son pipes anónimos, pues existen entre estos dos procesos y mientras estos procesos se están ejecutando.\\ Cuando termina la ejecución desaparecen, | + | Las tuberías o pipes ((Idem))de las que hablamos, que permiten conectar **stdout** de un proceso, con el **stdin** de otro, se puede decir que son pipes anónimos, pues existen entre estos dos procesos y mientras estos procesos se están ejecutando.\\ Cuando termina la ejecución desaparecen, |
Un nuevo ejemplo muy sencillo : | Un nuevo ejemplo muy sencillo : |
acemu/articulos/articulos_tecnicos/software/introduccion_a_gnu-linux/linux_inicio/terminal.1326505185.txt.gz · Última modificación: 2012/01/13 17:39 por luis