Una guida rapida alle shell in macOS
Se hai letto le istruzioni sul Web su come installare qualcosa, probabilmente hai letto una dichiarazione sull’aggiunta di qualcosa al tuo $PATH. Più specificamente, probabilmente includeva un’istruzione di esportazione, una directory e quindi un file in cui reindirizzare il comando, giusto?
In effetti, potresti vedere una direttiva come questa:
Assicurati che la
~/.composer/vendor/bindirectory sia nel "PATH" del tuo sistema.
Ciò significa che dovresti fare qualcosa del genere:
export PATH="$PATH:$HOME/.composer/vendor/bin"
Ma se sei nuovo a lavorare nel terminale, per non parlare delle variabili ambientali, come dovresti sapere come tradurre l’istruzione nel comando sopra?
Shell in macOS
Prima di entrare in cos’è una shell, è importante notare che il terminale è fondamentalmente il modo per accedere al file system attraverso una serie di comandi e programmi basati su testo.
Sono popolari soprattutto nei sistemi operativi basati su *nix, anche tramite Windows (se hai mai usato MS-DOS o il prompt dei comandi, allora sai cosa intendo).
Per questo post, parlo principalmente di sistemi basati su *nix e, ancora più specificamente, di macOS. Quindi, quando si tratta di parlare di shell in macOS, stai parlando del programma che interpreta i comandi immessi nel terminale.
Questo è tutto, niente di speciale.
Quindi quali sono le diverse shell in macOS? In genere ci sono quattro shell fornite con il sistema operativo (anche se puoi installarne altre, se lo desideri).
Shell di macOS
Queste shell includono bash, ksh, tcsh e zsh. No, alcune persone affermeranno che una shell è migliore dell’altra mentre altri (come me) sono un po’ ambivalenti. Tendo a restare con Bash poiché è quello che ho usato più a lungo e che conosco meglio (anche se dirò Oh My Zsh., che tratterò momentaneamente, è stato anche bello armeggiare).
Per la maggior parte delle installazioni macOS, questa è la shell predefinita. Ciò significa che tutte le impostazioni verranno mantenute in un file .bash_profile. Quindi ogni volta che vuoi aggiungere qualcosa al tuo percorso, questo è il file in cui è scritto. Ci sono altri file, ma non rientrano nell’ambito di questo post.
Capire i profili
Ogni volta che lavori in un terminale e apporti una modifica al file associato a quella sessione del terminale (ovvero l’istanza del terminale che hai aperto), devi dire al sistema operativo di caricare tali modifiche tramite il seguente comando:
$ source ~/.profile
…dove ~/.profile è il file del profilo della shell. Si noti, tuttavia, che per molte shell ciò è coerente solo per la sessione del terminale. Ciò non significa che persisterà la prossima volta che aprirai il terminale per non parlare del tuo sistema operativo.
Questo perché una data shell può avere una gerarchia, per così dire, di file. Per Bash, questo include .bashrc, .bash_profile e .profile. Inoltre, potresti essere in grado di definire le impostazioni nelle impostazioni del Terminale del tuo sistema operativo.
Ad esempio, se stai usando Linux:
Se, d’altra parte, stai usando macOS, allora dovresti usare uno dei suddetti file. Usando bash come esempio, analizzerò come si adattano tutti insieme:
- .profile è lo script di accesso. Se non ne esiste uno, puoi crearne uno e questo eseguirà i comandi che hai al momento dell’accesso alla sessione. Se vuoi che qualcosa venga eseguito o qualcosa disponibile solo durante il login, questo è il file. Questo è anche a livello di sistema.
- .bashrc è un file che viene letto durante una sessione del terminale (o anche quando viene utilizzata la GUI). Pensa che questo è sia login che interattivo. Quindi, se vuoi qualcosa disponibile durante l’accesso e quando usi il sistema operativo, questo è un file che puoi usare.
- .bash_profile è disponibile eseguito durante l’accesso ed è dedicato all’account di un individuo.
C’è di più?
Poiché questa è una guida rapida, sì, c’è di più. Puoi leggerli nella pagina man specifica del tuo terminale. Per bash, inserisci semplicemente
$ man bash
Nel tuo terminale ti verrà fornita la guida completa al terminale.
Come take away, ecco cosa potresti incontrare quando si tratta dei file del profilo:
- /bin/bash. L’eseguibile bash
- /etc/profilo. Il file di inizializzazione a livello di sistema, eseguito per le shell di accesso
- ~/.profilo_bash. Il file di inizializzazione personale, eseguito per le shell di accesso
- ~/.bashrc. L’individuo per-shell interattivo sta. file rtup
- ~/.bash_logout. Il singolo file di pulizia della shell di accesso, eseguito all’uscita di una shell di accesso
- ~/.inputrc. File di inizializzazione readline individuale
La prossima volta che devi esportare un percorso, impostare un valore o lavorare con il tuo profilo, questo dovrebbe darti una guida su dove è necessario apportare la modifica (e come puoi farlo).

