GNU/Linux >> Tutoriales Linux >  >> Linux

Consejos y trucos de variables de entorno de Linux

Las variables de entorno existen para mejorar y estandarizar su entorno de shell en sistemas Linux. Hay variables de entorno estándar que el sistema configura para usted, pero también puede configurar sus propias variables de entorno u, opcionalmente, cambiar las predeterminadas para satisfacer sus necesidades.

[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]

Empezando con el env comando

Si desea ver sus variables de entorno, use el env comando y busque las palabras en mayúsculas en el extremo izquierdo de la salida. Estas son sus variables de entorno y sus valores están a la derecha:

 $ env
LS_COLORS=(long output)
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=rhel8t
XDG_SESSION_ID=5
USER=khess
SELINUX_ROLE_REQUESTED=
PWD=/home/khess
HOME=/home/khess
SSH_CLIENT=192.168.1.94 53911 22
SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_TTY=/dev/pts/1
MAIL=/var/spool/mail/khess
TERM=xterm-256color
SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE=
SHLVL=1
LOGNAME=khess
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
HISTSIZE=1000
LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env 

He omitido la salida de LS_COLORS variable porque es muy largo. Pruebe este comando en su sistema para ver cómo se ve la salida completa.

Muchas variables de entorno se configuran y luego se exportan desde /etc/profile archivo y el /etc/bashrc expediente. Hay una línea en /etc/profile que dice:

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

Para realizar cambios permanentes en las variables de entorno de todas las cuentas nuevas, vaya a su /etc/skel archivos, como .bashrc , y cambiar los que ya hay o introducir los nuevos. Cuando crea nuevos usuarios, estos /etc/skel los archivos se copiarán en el directorio de inicio del nuevo usuario.

Explorando niveles de shell (SHLVL )

Para llamar al valor de una sola variable de entorno, ingrese el siguiente comando, usando SHLVL (Nivel de carcasa) como ejemplo:

 $ echo $SHLVL 1

Esta variable cambia según la cantidad de subcapas que tenga abiertas. Por ejemplo, ingrese bash dos veces y luego emita el comando nuevamente:

 $ bash 
$ bash echo $SHLVL 3

Un nivel de capa de tres significa que tiene dos subcapas de profundidad, así que escriba exit dos veces para volver a su caparazón normal.

[¿Quiere probar Red Hat Enterprise Linux? Descárguelo ahora gratis.] 

Manipular tu PATH variables

El PATH La variable contiene la ruta de búsqueda para ejecutar comandos y scripts. Para ver tu PATH , introduce:

 $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Cambia temporalmente tu PATH ingresando el siguiente comando para agregar /opt/bin :

 $ PATH=$PATH:/opt/bin
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

El cambio es temporal para la sesión actual. No es permanente porque no se ingresa en el .bashrc expediente. Para hacer que el cambio sea permanente, ingrese el comando PATH=$PATH:/opt/bin en el .bashrc de su directorio de inicio archivo.

Cuando haces esto, estás creando un nuevo PATH variable agregando un directorio al PATH actual variable, $PATH . Dos puntos (: ) separa PATH entradas.

Desentrañando $USER , $PWD y $LOGNAME

Tenía una teoría que creo que ha sido disipada por mi propio bien. Mi teoría era que los comandos pwd y whoami probablemente solo leyó y repitió el contenido de las variables de shell $PWD y $USER o $LOGNAME , respectivamente. Para mi sorpresa, después de mirar el código fuente, no es así. Tal vez debería reescribirlos para hacer precisamente eso. No hay motivo para agregar varias bibliotecas y casi 400 líneas de código C para mostrar el directorio de trabajo. Puedes simplemente leer $PWD y repetir eso en la pantalla (stdout). Lo mismo ocurre con whoami con $USER o $LOGNAME .

Si desea echar un vistazo al código fuente por sí mismo, está en GitHub y en otros lugares. Si encuentra que estos programas (u otros) usan variables de shell, me encantaría saberlo. Es cierto que no soy tan bueno leyendo el código fuente de C, por lo que muy bien podrían usar variables de shell y nunca lo sabría. Simplemente no parecían entender por lo que leí y pude entender.

Tocando el $SHELL juego

En esta última descripción general de las variables de entorno, quiero mostrarle cómo $SHELL variable viene muy bien. No tiene que permanecer en su shell predeterminado, que probablemente sea Bash. Puede ingresar y trabajar en cualquier shell que esté instalado en el sistema. Para averiguar qué shells están instalados en su sistema, use el siguiente comando:

 $ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash

Todos esos son en realidad Bash, así que no te emociones. Si tiene suerte, es posible que también vea entradas para /bin/tcsh , /bin/csh , /bin/mksh , /bin/ksh y /bin/rksh .

Puede usar cualquiera de estos caparazones y tener diferentes cosas en cada uno si así lo desea. Pero supongamos que es un administrador de Solaris y desea utilizar el shell de Korn. Puede cambiar su shell predeterminado a /bin/ksh usando el chsh comando:

 $ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.

Ahora, si escribe echo $SHELL , la respuesta será /bin/bash , por lo que debe cerrar sesión y volver a iniciar sesión para ver el cambio. Una vez que cierre sesión e inicie sesión, recibirá una respuesta diferente a echo $SHELL .

Puede ingresar otros shells y echo $SHELL debería informe su shell actual y $SHLVL , que te mantendrá informado sobre cuántas conchas tienes de profundidad.

Configurar sus propias variables de entorno

Puede configurar sus propias variables en la línea de comando por sesión, o hacerlas permanentes colocándolas en ~/.bashrc archivo, ~/.profile , o cualquier archivo de inicio que use para su shell predeterminado. En la línea de comando, ingrese su variable de entorno y su valor como lo hizo anteriormente al cambiar el PATH variables.

Conclusión

Las variables de shell o de entorno son útiles para usuarios, administradores de sistemas y programadores por igual. Son útiles en la línea de comandos y en scripts. Los he usado a lo largo de los años para muchos propósitos diferentes, y aunque algunos de ellos son probablemente un poco poco convencionales, funcionaron y todavía lo hacen. Cree los suyos propios o utilice los que le proporcione el sistema y las aplicaciones instaladas. Realmente pueden enriquecer su experiencia de usuario de Linux.

Como nota al margen sobre variables y shells, ¿alguien piensa que aquellos que programan en JSON solo deberían poder usar Bourne Shell? Discutir.


Linux
  1. Consejos y trucos para usar CUPS para imprimir con Linux

  2. 10 trucos y consejos interesantes sobre la línea de comandos de Linux que vale la pena conocer

  3. Variables de entorno de Linux:cómo leer y configurar en un VPS de Linux

  4. Consejos y trucos de Linux .htaccess

  5. Accesibilidad de variables de entorno en Linux.

Consejos y trucos para usar Ctrl+Z en Ubuntu Linux

Cómo configurar y desactivar variables de entorno en Linux

Mejor entorno de escritorio Linux:15 revisados ​​y comparados

19 consejos y trucos útiles para la línea de comandos de Linux

Las mejores combinaciones de distribución de Linux y entorno de escritorio

El año de Linux en el escritorio (Windows) - Consejos y trucos de WSL