<Precedenti | Contenuti | Succ.>
Cosa c'è in un file di avvio?
Se diamo un'occhiata all'interno di un tipico .bash_profilo (preso da un sistema CentOS 6), appare più o meno così:
# .bash_profile
# Ottieni gli alias e le funzioni if [ -f ~/.bashrc ]; then
. ~ / .bashrc
fi
# Ambiente specifico dell'utente e programmi di avvio PATH=$PATH:$HOME/bin
esporta PATH
# .bash_profile
# Ottieni gli alias e le funzioni if [ -f ~/.bashrc ]; then
. ~ / .bashrc
fi
# Ambiente specifico dell'utente e programmi di avvio PATH=$PATH:$HOME/bin
esporta PATH
Le righe che iniziano con "#" sono Commenti e non vengono letti dalla shell. Sono lì per la leggibilità umana. La prima cosa interessante si verifica sulla quarta riga, con il seguente codice:
se [ -f ~/.bashrc ]; allora
se [ -f ~/.bashrc ]; allora
Come è stabilito l'ambiente?
. ~ / .bashrc
fi
. ~ / .bashrc
fi
Questo si chiama un se comando composto, che tratteremo in dettaglio quando arriveremo allo scripting della shell nella Parte 4, ma per ora ecco una traduzione:
Se il file "~/.bashrc" esiste, allora leggi il file "~/.bashrc".
Se il file "~/.bashrc" esiste, allora leggi il file "~/.bashrc".
Possiamo vedere che questo pezzo di codice è il modo in cui una shell di login ottiene il contenuto di .bashrcLa prossima cosa nel nostro file di avvio ha a che fare con il PERCORSO variabile.
Ti sei mai chiesto come la shell sappia dove trovare i comandi quando li digitiamo sulla riga di comando? Ad esempio, quando digitiamo ls, la shell non cerca nell'intero computer per trovare / bin / ls (il percorso completo del ls comando), piuttosto, cerca un elenco di directory contenute nel PERCORSO variabile.
. PERCORSO la variabile è spesso (ma non sempre, a seconda della distribuzione) impostata dal
File di avvio /etc/profile e con questo codice:
PERCORSO=$PERCORSO:$HOME/bin
PERCORSO=$PERCORSO:$HOME/bin
PATH viene modificato per aggiungere la directory $HOME/bin alla fine dell'elenco. Questo è un esempio di espansione dei parametri, che abbiamo accennato nel Capitolo 7. Per dimostrare come funziona, prova quanto segue:
[io@linuxbox~]$ foo="Questo è un po' "
[io@linuxbox~]$ echo $foo
Questo è un po '
[io@linuxbox~]$ foo=$foo"testo."
[io@linuxbox~]$ echo $foo
Questo è un testo.
[io@linuxbox~]$ foo="Questo è un po' "
[io@linuxbox~]$ echo $foo
Questo è un po '
[io@linuxbox~]$ foo=$foo"testo."
[io@linuxbox~]$ echo $foo
Questo è un testo.
Utilizzando questa tecnica, possiamo aggiungere del testo alla fine del contenuto di una variabile.
Aggiungendo la stringa $HOME/bin alla fine del PERCORSO contenuto della variabile, la directory $HOME/bin viene aggiunto all'elenco delle directory cercate quando viene inserito un comando. Ciò significa che quando vogliamo creare una directory all'interno della nostra directory home per memorizzare i nostri programmi privati, la shell è pronta ad accoglierci. Tutto ciò che dobbiamo fare è chiamare
it bidonee siamo pronti a partire.
Note:: Molte distribuzioni forniscono questo PERCORSO impostazione predefinita. Le distribuzioni basate su Debian, come Ubuntu, verificano l'esistenza di ~/bin directory al momento dell'accesso e aggiungerla dinamicamente alla PERCORSO variabile se la directory viene trovata.
Infine abbiamo:
esporta PATH
esporta PATH
. export il comando dice alla shell di creare il contenuto di PERCORSO disponibile per i processi figlio di questa shell.