105.1 - Comandos clave: Entorno del shell

Variables y entorno

ComandoDescripcion
setMuestra todas las variables (locales + entorno) y funciones
unset VARElimina una variable o funcion (unset -f func)
export VAR=valorCrea/exporta variable de entorno (heredada por hijos)
export -n VARDes-exporta variable (la vuelve local)
exportSin argumentos: lista variables exportadas
envMuestra solo variables de entorno
env VAR=val cmdEjecuta comando con variable de entorno temporal
printenvMuestra variables de entorno
printenv VARMuestra valor de una variable especifica

Alias

ComandoDescripcion
alias nombre='comando'Crea un alias
aliasLista todos los alias definidos
alias nombreMuestra la definicion de un alias
unalias nombreElimina un alias
unalias -aElimina todos los alias
\comandoEjecuta el comando original, ignorando el alias

Funciones

ComandoDescripcion
function nombre { cmds; }Define funcion (sintaxis bash)
nombre() { cmds; }Define funcion (sintaxis POSIX)
declare -fMuestra todas las funciones con su cuerpo
declare -FMuestra solo nombres de funciones
unset -f nombreElimina una funcion

source y ejecucion

ComandoDescripcion
source archivoEjecuta archivo en el shell actual
. archivoIdentico a source
bash script.shEjecuta en un subshell (cambios no afectan al padre)
./script.shEjecuta en un subshell (requiere permiso de ejecucion)

Archivos de inicio - Login shell (orden de ejecucion)

OrdenArchivoAmbito
1/etc/profileGlobal
1.1/etc/profile.d/*.shGlobal (invocados por /etc/profile)
2~/.bash_profileUsuario (1ra opcion)
2 alt~/.bash_loginUsuario (2da opcion, si no hay .bash_profile)
2 alt~/.profileUsuario (3ra opcion, si no hay anteriores)
Cierre~/.bash_logoutUsuario (al cerrar login shell)

Archivos de inicio - Non-login shell

OrdenArchivoAmbito
1/etc/bash.bashrcGlobal
2~/.bashrcUsuario

Otros archivos importantes

ArchivoDescripcion
/etc/skel/Plantilla para directorio home de nuevos usuarios
/etc/environmentVariables globales (formato VAR=valor, no es script)

Personalizacion del prompt PS1

SecuenciaSignificado
\uNombre de usuario
\hHostname corto
\HHostname completo
\wDirectorio actual (ruta completa)
\WDirectorio actual (solo nombre)
\dFecha
\tHora 24h (HH:MM:SS)
\$$ para usuario, # para root
\nSalto de linea

PATH

OperacionComando
Ver PATHecho $PATH
Agregar al finalexport PATH="$PATH:/nuevo/dir"
Agregar al inicioexport PATH="/nuevo/dir:$PATH"
Hacer permanenteAgregar la linea export PATH=... en ~/.bashrc o ~/.profile

Identificar tipo de shell

ComandoResultado
echo $0-bash = login shell, bash = non-login
shopt login_shellon = login, off = non-login