Il file Linux .bashrc: cos'è e 6 cose che puoi fare con esso
Riepilogo
- Il file .bashrc è fondamentale per configurare i comandi all'avvio della shell Linux.
- Conoscere la shell che stai utilizzando ti aiuta a configurare correttamente .bashrc.
- Personalizza la tua shell con .bashrc definendo nuove funzioni, impostando alias e altro ancora.
La shell è così importante per Linux che ha il proprio processo di avvio. Scopri come configurare la shell all'avvio, come eseguire i comandi automaticamente e cosa puoi fare con tutta questa potenza.
Cosa fa .bashrc e perché
Il file .bashrc è generalmente nascosto nella tua home directory. È un file "run control" che ha avuto origine con Bash (Bourne Again Shell), la shell Linux più popolare e ampiamente utilizzata. Linux utilizza i file di controllo di esecuzione per creare script e configurare i comandi all'avvio, quindi .bashrc è uno script di avvio per la shell stessa.
.bashrc dovrebbe fare tutto il necessario per configurare il tuo ambiente per una sessione di shell interattiva. Ciò include l'impostazione delle variabili di ambiente, la definizione delle funzioni e l'esecuzione di programmi di utilità. Una volta che sai come funziona, troverai vari usi per personalizzare e semplificare la tua esperienza con la shell.
Come funziona .bashrc
Prima di tutto sappi che Bash non è l'unica shell. Su macOS probabilmente stai utilizzando zsh, una potente alternativa. La maggior parte delle distribuzioni Linux usa Bash, ma non c'è garanzia che la tua lo faccia. Per scoprire quale shell stai utilizzando, apri una finestra di terminale ed esegui questo comando:
echo $0
L'output dovrebbe essere qualcosa come "bash" o "-zsh", che identifica la tua shell specifica.
Successivamente, potresti non avere già un file .bashrc (o equivalente), a seconda della tua distribuzione. Prova a eseguire quanto segue:
ls -l ~/.*rc
Questo comando ti mostrerà tutti i file nascosti nella tua directory home che terminano con "rc":
Se non vedi .bashrc, puoi creare un file vuoto con quel nome. Puoi anche copiare un modello da /etc/skel/.bashrc se ce l'hai:
cp /etc/skel/.bashrc ~/.bashrc
Il processo di avvio può essere piuttosto complicato, quindi potresti voler leggere le differenze tra .bashrc e .profile prima di iniziare o se riscontri problemi.
Nel caso generale, tuttavia, puoi aspettarti che il file .bashrc venga eseguito quando apri un nuovo terminale, inclusa una nuova finestra o scheda.
6 cose che puoi fare con .bashrc
Poiché .bashrc è di per sé uno script Bash, puoi usarlo per molti scopi diversi. Il limite è davvero la tua immaginazione, ma i seguenti usi sono comuni.
Esegui neofetch e Alternative
Dato che .bashrc viene eseguito quando apri un nuovo terminale, è un bel posto per dare un po' di personalità al tuo terminale. Tutto ciò che può fungere da messaggio di benvenuto è una bella aggiunta e neofetch è una delle più belle:
Il programma mostra alcuni disegni ASCII colorati insieme alle informazioni sulla tua macchina. Oltre ad essere un bel modo per iniziare la sessione del terminale, è utile per riconoscere che sei sulla macchina che pensi di essere, particolarmente utile se usi spesso ssh su macchine remote.
Neofetch è ora fuori produzione, quindi anche se puoi ancora usarlo, potresti voler cercare un'alternativa più recente che è in fase di sviluppo attivo. Buone alternative includono Fastfetch e screenFetch, che sono sostituti drop-in scritti rispettivamente negli script C e Bash, e onefetch che mostra i dettagli di un progetto git su cui potresti lavorare.
Qualunque strumento tu scelga, è facile farlo funzionare tramite .bashrc. Innanzitutto, assicurati che il comando semplice funzioni, ad es.
neofetch
Quindi aggiungi semplicemente lo stesso comando a .bashrc:
Personalizza il tuo suggerimento
Un modo più semplice per personalizzare l'ambiente del terminale è impostare il prompt. Questo è il frammento di testo che Linux stampa all'inizio di ogni riga del tuo terminale, chiedendoti di digitare qualcosa.
L'impostazione predefinita è abbastanza utile, ma puoi personalizzare il prompt per includere quasi tutto. Utilizzando le variabili integrate, puoi includere il nome host, l'utente, la data e altro. Mi piace questa configurazione:
PS1="\n[\$PWD] \$ "
Ciò aggiunge una riga in più che rende più chiaro individuare dove termina l'output di un comando precedente. Rimuove anche il nome utente e l'host che in realtà non utilizzo.
Il tuo file .bashrc predefinito probabilmente include già alcune configurazioni PS1. Puoi aggiungere il tuo in seguito, se lo desideri, come ho fatto qui:
Imposta gli alias per semplificare i comandi
L'aliasing è un'altra potente personalizzazione che può rendere il tuo terminale più piacevole da usare. Impostando un alias per un comando, puoi assegnargli un nome più facile da ricordare o più facile da digitare. È inoltre possibile utilizzare gli alias per semplificare l'utilizzo di combinazioni comuni di opzioni.
Il mio .bashrc imposta diversi alias per il comando ls:
Come per tutte le impostazioni ambientali, gli alias possono essere definiti in diversi posti, quindi vale la pena controllare gli alias correnti prima di iniziare, utilizzando da solo il comando alias:
Crea funzioni di shell per attività comuni
Ancora più potenti degli alias, le funzioni di shell ti consentono di scrivere i tuoi mini-comandi. Se definisci una funzione di shell all'interno di .bashrc, puoi eseguirla digitandone il nome, proprio come qualsiasi altro comando.
Ecco un semplice esempio che potrebbe farti risparmiare tempo. Chiama mkdir con l'utile opzione -p che crea un percorso completo, incluse nuove directory intermedie. Quindi passa a quella nuova directory:
# Create a new directory and enter it
mkd() {
mkdir -p "$@"
cd "$@" || exit
}
La vera vittoria qui è che ora puoi usare "mkd" come sostituto di "mkdir":
Definire variabili d'ambiente per controllare i comandi
Molti comandi utilizzano variabili d'ambiente globali o specifiche per alterare il loro comportamento. Le variabili env comuni ampiamente riconosciute includono:
- EDITOR che definisce il tuo programma editor, nel caso in cui un altro programma scelga di aprirlo.
- PAGER che definisce un programma da utilizzare per visualizzare l'output più alto di uno schermo.
- BROWSER che definisce il browser Web predefinito.
Ma le variabili specifiche del comando possono essere altrettanto utili. Prendiamo ad esempio il cercapersone. Supporta una variabile LESS che puoi utilizzare per passare le opzioni predefinite. Per esempio:
export LESS="--quit-if-one-screen"
Aggiungilo al tuo .bashrc e less funzionerà sempre bene, anche con file più brevi di una pagina dello schermo. Molti comandi supportano variabili di ambiente simili che puoi impostare in .bashrc per modificare il loro comportamento predefinito. Cerca una sezione intitolata "Ambiente" o "Variabili d'ambiente" nella pagina man di ciascun comando.
Modularizza il tuo ambiente estraendo altri file
Una volta entrati nella personalizzazione della shell, il file .bashrc può crescere fino a diventare piuttosto ingombrante. Non importa: questa è l'occasione perfetta per conoscere e praticare la modularizzazione.
Dividere un file di grandi dimensioni in più file più piccoli può rendere il tutto più semplice da gestire e consentire la condivisione per altri scopi. Una struttura ben definita può facilitare la lettura agli altri, anche se il futuro-tu è uno di quegli altri.
Lo skeleton bashrc fornito con la mia distribuzione spiega come farlo, con commenti chiari:
In questo caso, verrà generato un file in ~/.bash_aliases (tramite il comando .) se esiste. L'effetto sarà esattamente come se quegli alias fossero inclusi direttamente nel tuo .bashrc.