Tutorial de configuración de variables de entorno de Shell Las variables de entorno de

  
recuerdan el último capítulo, he mencionado: Cuando iniciamos sesión en el sistema, primero obtenemos una shell, y también realiza un viaje (proceso) y luego ingresamos Los comandos pertenecen a la subrutina (proceso hijo) de este shell. Si es lo suficientemente cuidadoso, no es difícil encontrar que nuestro shell está configurado en el archivo /etc /passwd, que es la última columna de la configuración de la cuenta. El valor predeterminado es /bin /bash.
De hecho, cuando obtenemos una shell, realmente podemos comunicarnos con el sistema, como ingresar sus comandos, ejecutar su programa, etc. También puede ingresar otro shell (es decir, iniciar una subrutina) después de obtener un shell, y luego puede ir a un shell más profundo (y luego a la subrutina de la subrutina) hasta que ingrese exit. En el shell anterior (devuelve el programa padre del nivel anterior). Si ha leído los conceptos de subrutinas mencionados en el capítulo anterior, debería ser fácil de entender. Sin embargo, su comportamiento no es ilimitado, y muchas configuraciones deben definirse de antemano. Por lo tanto, cuando obtiene el shell, también obtiene algunas configuraciones de entorno o "Variables de entorno". La llamada variable (variable) es para guardar un determinado valor establecido con un nombre específico (o etiqueta), y luego usarlo para su uso futuro. Por ejemplo, surname = chen; name = kenny, luego ‘ apellido ’ &‘ name ’ es el nombre de la variable, y chen y kenny son los valores que tiene la variable. Las variables definidas y administradas por el shell se denominan variables de entorno porque pueden ser utilizadas por todas las subrutinas generadas por el shell. Los nombres de las variables de entorno generalmente están representados por letras mayúsculas. Por ejemplo, nuestras variables de entorno comunes tienen estas: (Nota: es decir, la variable de entorno es la variable utilizada por todos los procesos secundarios generados por el shell) El nombre de la variable representa el comando actual de HISTCMD. Número de registro. Comando HISTFILE archivo de almacenamiento de archivos de registro. El comando HISTSIZE registra el volumen de la tabla. HOME directorio de inicio de sesión predeterminado. Separador de presets IFS. LINENO El número actual de líneas en el script de shell. La ruta al buzón de correo. La cantidad de segundos que MAILCHECK verifica el mensaje. La ruta al directorio donde OLDPWD ingresó por última vez. OSTYPE OS
tipo. La ruta de búsqueda de comando predeterminada PATH. PID del programa de padres PPID. PWD actual ruta de directorio de trabajo. El tiempo de inicio continuo de la shell actual de SECONDS. Ruta de ejecución de shell actual de SHELL. El tiempo máximo de inactividad para que TMOUT se desconecte automáticamente. UID del usuario UID. $ Shell actual PID. ? El estado de retorno del último comando. Si desea ver cuáles son estos valores de variables, simplemente coloque un símbolo " $ " delante del nombre de la variable, y luego use el comando echo para verlo: # echo $ PWD /root # echo $$ 1206 # echo $ El primer comando es mostrar la ruta del directorio actual, que es el mismo que el resultado de ejecutar el comando pwd. El segundo comando muestra el PID del shell actual, que es 1206. Si ingresa kill -9 1206 en este momento, el shell actual se cortará, luego tendrá que iniciar sesión nuevamente para obtener otro shell, y su PID también es nuevo; el comando de la tercera línea es el estado de retorno del comando anterior. : Si el comando se ejecuta con éxito y no hay ningún error, generalmente es 0; si el comando encuentra un error, el estado de retorno es distinto de cero y su valor depende del programador (lo introduciremos más adelante en el script de shell). Para el último comando, compare los siguientes resultados: # ls mbox mbox # echo $? 0 # ls no_mbox ls: no_mbox: No existe tal archivo o directorio # echo $? 1 Encontrará: el primer comando se ejecutó con éxito, por lo que regresa El estado es 0, el segundo comando no se ejecuta y su estado de retorno es 1. Si el programador establece un nivel de estado de retorno diferente para diferentes errores, entonces puede derivar del valor de retorno qué tipo de error está causando el problema. Sugerencias: si escribe un programa o un script más tarde, debe desarrollar el hábito de establecer el estado de retorno para cada resultado de comando. Esto es muy importante, especialmente cuando se depura. Vamos a hablar de esto cuando aprendamos guión más tarde.
(¡Esto es importante para llamar la atención!) Siempre podemos usar a = (signo igual) para definir una nueva variable o cambiar una variable existente. Por ejemplo: # MYNAME = kenny # echo $ MYNAME kenny Si desea cancelar una variable definida, puede usar el comando unset: # unset MYNAME Sin embargo, una de las características de la variable de entorno es la salida en un solo sentido. Es decir: una variable específica del shell solo se puede utilizar en este shell. Si desea compartirlo con otros programas, scripts, comandos o sus subrutinas en el mismo shell, debe usar el comando export para generar esta variable. Pero de todos modos, si define una variable en una subrutina, el valor de esta variable solo afecta a la subrutina y a su propia subrutina, y nunca a los padres u otros hijos generados por el padre. El programa (Esta es la razón por la que usualmente usamos el comando de exportación para modificar la ruta PATH. Por ejemplo, define una nueva variable en un programa o cambia el valor de una variable existente. Al final del programa, está establecido. Todas las variables se cancelan; si desea compartir el valor de la variable con la subrutina generada por el programa, debe usar el comando de exportación para conservar el valor de la variable, a menos que la subrutina lo redefine. Pero en cualquier caso, el valor de la variable definida por el programa actual no se puede pasar al programa principal. Hagamos el siguiente experimento: # MYNAME = kenny # echo $ MYNAME kenny # export MYNAME # Establecer una variable. # # Valor actual establecido. # Use exportar para generar valores de variables. # /bin /bash # Abra otro shell, que es para ingresar a la subrutina. # echo $ MYNAME kenny # # Mantener la configuración original. # export MYNAME = netman # echo $ MYNAME netman # Redefina el valor establecido y también use el resultado de exportación. # # El valor variable es reemplazado por el nuevo valor. # exit # Salga de la subrutina y regrese al programa principal. # echo $ MYNAME kenny # # El valor variable del programa principal no ha cambiado. Con respecto a otra propiedad de una variable, el valor de la variable es heredable. Es decir, puede establecer un valor de variable para establecer otro nombre de variable. Digamos: # FIRST_NAME = " Kenny " # MYNAME = $ FIRST_NAME # echo $ MYNAME Kenny # Defina una variable. # Definir otra variable, pero su valor es la primera variable. # # La segunda variable hereda el valor de la primera variable. Además, la definición de las variables cuando también prestar atención a algunas reglas:
y middot; Cuando se define una variable, y " = " no hay números en ambos lados de la barra espaciadora; Hotel · como el nombre de la variable, sólo se Las letras y los números, pero no los números; si el nombre es demasiado largo, se pueden separar con " _ ";
· Las variables predefinidas están todas en mayúsculas, y las variables personalizadas se pueden mezclar para distinguirlas mejor; Br> · Solo las variables definidas por el propio shell pueden llamarse variables de entorno;
· Si la variable tiene caracteres especiales, primero debe omitirse con " \\ ";
· Hay espacios en blanco, debe usar comillas, o puede saltar.
Acerca de los dos últimos, tal vez encontremos algunos ejemplos para experimentar: # TOPIC = 'Q &A' # Mantenga símbolos especiales y espacios en blanco con comillas simples # Q1 = What \\ 's \\ your \\ \\ quot quot topic \\ " \\? # echo $ Q1 ¿Cuál es su " tema "? # Use \\ para saltar de símbolos especiales (con comillas) y espacios en blanco # # Después de saltar, se conservan los símbolos especiales y los espacios en blanco. # ANS = " Itis $ TOPIC. &Quot; ------ Este lugar llama la atención: ¡las cadenas entre comillas dobles pueden hacer referencia a variables! # echo $ ANS ------ Este uso es más común, y las siguientes comillas simples no son comunes. Es Q &. A. # Use comillas dobles para retener los valores de las variables ($) # # Use comillas dobles para mostrar los valores de las variables. # WRONG_ANS = 'Itis " $ TOPIC ".' ----- Tenga en cuenta el uso razonable de comillas simples y dobles # echo $ WRONG_ANS Es " $ TOPIC ". # Mantenga símbolos y espacios en blanco especiales con comillas simples (igual que la primera Línea) # # Use comillas simples, todas reservadas; al mismo tiempo: # $ también se reserva como un símbolo general, no un valor variable. ------ Este lugar llama la atención. ¡Cuando las comillas simples, $ se reservan como un símbolo general! # ALT_ANS = 'the $ TOPIC' \\ is \\ " '$ TOPIC' " \\. ------ Mezclar comillas simples y dobles ayuda a entender. # echo $ ALT_ANS El $ TOPIC es 'Q &A'. # Las comillas dobles mixtas, las comillas dobles y los caracteres de escape \\ # # 单 引号 留 所有; las comillas dobles retienen valores variables; # \\ Salta los símbolos especiales . Permítanme explicar el último ejemplo aquí: 'el $ TEMA es' " $ TÓPICO " \\. Primero, encierre el texto 'the $ TOPIC is' entre comillas simples, con 3 espacios y un símbolo $, luego use comillas dobles para retener el valor de $ TOPIC y finalmente use \\ para escapar del punto decimal. Cuando se hace referencia a los símbolos " " y '', básicamente, el contenido encerrado por '' se convertirá en una única cadena, y cualquier carácter especial perderá su función especial y se convertirá en un carácter general, pero Ya no puede usar el 'símbolo, pero en medio de " ", no hay' 'tan estricto, algunos caracteres especiales, como $, aún conservan sus características especiales. También deberías echar un vistazo a la diferencia entre echo '" $ HOME "' y echo " '$ HOME' " Sugerencias: el carácter de escape en la línea de comando de shell " \\ " De hecho, a menudo lo usaremos. Por ejemplo, si uno de sus comandos es demasiado largo, puede ser más de una línea, o si desea ingresar la línea de comandos de forma ordenada, puede presionar Entrar para escribir la siguiente línea para continuar escribiendo. Sin embargo, cuando presiona la tecla Intro, realmente ingresa un carácter CR (Retorno de carro). Una vez que el shell lee el carácter CR, intentará ejecutar el comando. En este punto, puede escribir el símbolo \\ antes de ingresar Intro, y podrá saltar del carácter CR, por lo que el shell no ejecutará el comando inmediatamente. Esta línea de comando se ve a menudo en scripts, pero debes saber qué significa eso.
Copyright © Conocimiento de Windows All Rights Reserved