Entorno
- ¿Qué es el entorno?
- Comandos
- env y printenv
- [set]
- [export]
- [alias]
- Variables del entorno
El entorno
Cuando ingresamos en el sistema se leen una serie de scripts de configuración, denominados startup files, los cuales establecen el entorno compartido por los usuarios. Esto es seguido por otros scripts ubicados en el directorio home del usuario, los cuales personalizarán el ambiente.
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
Los datos/variables establecidos en el entorno servirán al sistema tanto como a algunos programas que utilizan las variables de entorno para conocer el sistema en el que se encuentran y definir algunos comportamientos propios de la aplicación.
En el entorno se guardan dos tipos básicos de datos; Las variables de entorno y las variables de la shell. Dentro de los datos almacenados por la shell además de variables se cuenta con aliases
(alias) y shell functions
funciones.
Scripts para sesiones sin login
- /etc/bash.bashrc
- ~/.bashrc
Comandos
env y printenv
El comando env lista todas las variables del ambiente. Para ver una variable en particular se utiliza el comando echo y el nombre de la variable con un simbolo de pesos adelante. printenv funciona de un modo similar, y permite imprimir el valor de una determinada variable.
Ejemplo: echo $PATH
o printenv PATH
set
El comando set
es un builtin de shell y tiene una función similar a printenv, permitiendonos ver las variables almacenadas en el entorno, pero además mostrará los datos almacenados en la shell.
EJ: set | less
Redirigimos la salida de set mediante el uso de pipes
al comando less
para poder ver de forma más práctica la salida del comando. A diferencia de printenv
, aquí se nos desplegará el contenido ordenado de forma alfabética.
export
Al ejecutar el comando export se les habilita el valor de la variable a los procesos hijo.
export PATH
alias
Los alias
son útiles para modificar el comportamiento por defecto de un comando o programa, o para crear nuestros propios comandos combinando otros o escribiendo pequeños scripts. Estos alias
no son mostrados ni por printenv
ni por set
, pero fácilmente pueden ser desplegados mediante el comando alias
sin argumentos.
Variables del entorno
Variable | Contenido |
---|---|
SHELL | El nombre del programa shell por defecto para el usuario |
HOME | El pathname del directorio home del usuario |
PWD | El directorio de trabajo actual |
OLDPWD | El directorio de trabajo anterior |
PAGER | El nombre del programa utilizado para paginar, por lo general /usr/bin/less |
TERM | El nombre del tipo de terminal utilizado |
TZ | Time zone, en la mayoria de los sistemas tipo UNIX el reloj interno se maneja mediante UTC, y el tiempo es desplegado al usuario dependiendo de su TZ |
USER | nombre del usuario actual |
PATH | Listado de directorios separados por dos puntos, donde la shell buscará un programa al intentar ser ejecutado por su nombre |
PS1 | Define el contenido del shell prompt |
PATH
Al ingresar un comando el shell busca el programa a ejecutar en la lista de caminos que contiene la variable PATH.
Ejemplo de PATH en el ~/.bashrc PATH=$PATH:$HOME/bin
PS1
Variable de entorno que define el prompt
a utilizar.
Ejemplo:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[\033[01;32m\]$(parse_git_branch)\[\033[00m\] \n $(date +%X) \$