GNU/Linux >> Linux Esercitazione >  >> Linux

Suggerimenti e trucchi per le variabili di ambiente Linux

Esistono variabili di ambiente per migliorare e standardizzare il tuo ambiente shell sui sistemi Linux. Esistono variabili di ambiente standard che il sistema imposta per te, ma puoi anche impostare le tue variabili di ambiente o, facoltativamente, modificare quelle predefinite per soddisfare le tue esigenze.

[ Download gratuito:cheat sheet dei comandi avanzati di Linux. ]

A partire da env comando

Se vuoi vedere le tue variabili d'ambiente, usa env comando e cerca le parole in maiuscolo nell'estrema sinistra dell'output. Queste sono le tue variabili di ambiente e i loro valori sono a destra:

 $ 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 

Ho omesso l'output di LS_COLORS variabile perché è così lungo. Prova questo comando sul tuo sistema per vedere come appare l'output completo.

Molte variabili di ambiente vengono impostate e quindi esportate da /etc/profile e il /etc/bashrc file. C'è una riga in /etc/profile che recita:

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

Per apportare modifiche permanenti alle variabili di ambiente per tutti i nuovi account, vai al tuo /etc/skel file, come .bashrc , e cambia quelli che sono già presenti o inserisci quelli nuovi. Quando crei nuovi utenti, questi /etc/skel i file verranno copiati nella home directory del nuovo utente.

Esplorazione dei livelli della shell (SHLVL )

Per chiamare il valore di una singola variabile di ambiente, immetti il ​​seguente comando, utilizzando SHLVL (Livello shell) ad esempio:

 $ echo $SHLVL 1

Questa variabile cambia a seconda di quante subshell hai aperto. Ad esempio, inserisci bash due volte e quindi emettere nuovamente il comando:

 $ bash 
$ bash echo $SHLVL 3

Un livello di shell di tre significa che hai due subshell in profondità, quindi digita exit due volte per tornare alla normale shell.

[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.] 

Manipolazione del tuo PATH variabile

Il PATH variabile contiene il percorso di ricerca per l'esecuzione di comandi e script. Per vedere il tuo PATH , inserisci:

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

Modifica temporaneamente il tuo PATH immettendo il seguente comando per aggiungere /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

La modifica è temporanea per la sessione corrente. Non è permanente perché non è inserito nel .bashrc file. Per rendere permanente la modifica, inserisci il comando PATH=$PATH:/opt/bin nel .bashrc della tua home directory file.

Quando lo fai, stai creando un nuovo PATH variabile aggiungendo una directory al PATH corrente variabile, $PATH . I due punti (: ) separa PATH voci.

Scoprire $USER , $PWD e $LOGNAME

Avevo una teoria che penso sia stata sfatata dal mio stesso buon io. La mia teoria era che i comandi pwd e whoami probabilmente ha appena letto e riprodotto il contenuto delle variabili della shell $PWD e $USER o $LOGNAME , rispettivamente. Con mia sorpresa, dopo aver esaminato il codice sorgente, non lo fanno. Forse dovrei riscriverli per fare proprio questo. Non c'è motivo di aggiungere più librerie e quasi 400 righe di codice C per visualizzare la directory di lavoro. Puoi semplicemente leggere $PWD ed echeggialo sullo schermo (stdout). Lo stesso vale per whoami con $USER o $LOGNAME .

Se vuoi dare un'occhiata al codice sorgente per te stesso, è su GitHub e in altri posti. Se trovi che questi programmi (o altri) usano variabili di shell, mi piacerebbe saperlo. Certo, non sono così bravo a leggere il codice sorgente C, quindi potrebbero benissimo usare le variabili della shell e non lo saprei mai. Semplicemente non sembravano da quello che ho letto e ho potuto capire.

Riproduzione di $SHELL gioco

In quest'ultima panoramica delle variabili d'ambiente, voglio mostrarti come il $SHELL la variabile torna utile. Non devi rimanere nella tua shell predefinita, che è probabilmente Bash. Puoi entrare e lavorare in qualsiasi shell installata sul sistema. Per scoprire quali shell sono installate sul tuo sistema, usa il seguente comando:

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

Tutti quelli sono in realtà Bash, quindi non eccitarti. Se sei fortunato, potresti anche vedere le voci per /bin/tcsh , /bin/csh , /bin/mksh , /bin/ksh e /bin/rksh .

Puoi usare una di queste shell e avere cose diverse in ognuna di esse se sei così incline. Ma supponiamo che tu sia un amministratore Solaris e desideri utilizzare la shell Korn. Puoi cambiare la tua shell predefinita in /bin/ksh usando il chsh comando:

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

Ora, se digiti echo $SHELL , la risposta sarà /bin/bash , quindi devi disconnetterti e accedere di nuovo per vedere la modifica. Dopo esserti disconnesso e aver effettuato l'accesso, riceverai una risposta diversa a echo $SHELL .

Puoi inserire altre shell e echo $SHELL dovrebbe segnala la tua shell attuale e $SHLVL , che ti manterrà orientato su quante conchiglie sei profondo.

Impostazione delle proprie variabili di ambiente

Puoi impostare le tue variabili dalla riga di comando per sessione, o renderle permanenti inserendole nel ~/.bashrc file, ~/.profile o qualsiasi file di avvio che utilizzi per la tua shell predefinita. Sulla riga di comando, inserisci la tua variabile d'ambiente e il suo valore come hai fatto in precedenza quando hai cambiato il PATH variabile.

Conclusione

Le variabili di shell o di ambiente sono utili per utenti, amministratori di sistema e programmatori allo stesso modo. Sono utili sulla riga di comando e negli script. Li ho usati nel corso degli anni per molti scopi diversi e, sebbene alcuni di loro siano probabilmente un po' non convenzionali, hanno funzionato e continuano a funzionare. Crea il tuo o usa quelli forniti dal sistema e dalle applicazioni installate. Possono davvero arricchire la tua esperienza utente Linux.

Come nota a margine su variabili e shell, qualcuno pensa che coloro che programmano in JSON dovrebbero essere autorizzati solo a utilizzare Bourne Shell? Discuti.


Linux
  1. Suggerimenti e trucchi per l'utilizzo di CUPS per la stampa con Linux

  2. 10 interessanti trucchi e suggerimenti per la riga di comando di Linux che vale la pena conoscere

  3. Variabili d'ambiente Linux:come leggere e impostare su un VPS Linux

  4. accessibilità delle variabili d'ambiente in Linux

  5. Suggerimenti e trucchi preferiti per rsync

Suggerimenti e trucchi per usare Ctrl+Z in Ubuntu Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Miglior ambiente desktop Linux:15 recensiti e confrontati

19 Suggerimenti e trucchi utili per la riga di comando di Linux

Le migliori combinazioni di distribuzione Linux e ambiente desktop

L'anno di Linux sul desktop (Windows) - Suggerimenti e trucchi WSL