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/14 08:52] – [Estructuras de control de flujo] 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 153: | 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 202: | 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 440: | Línea 483: | ||
1 converso\\ | 1 converso\\ | ||
- | 1 perverso\\ | + | 1 preverso\\ |
2 verso\\ | 2 verso\\ | ||
acemu/articulos/articulos_tecnicos/software/introduccion_a_gnu-linux/linux_inicio/terminal.1326559938.txt.gz · Última modificación: 2012/01/14 08:52 por luis