Quando usi Terminal in 10.3 e 10.4, probabilmente stai usando la shell bash: è l'impostazione predefinita, a meno che tu non stia usando un'installazione di aggiornamento che in precedenza utilizzava tcsh.
Se non hai familiarità con cosa sia una "shell", in realtà è un programma che viene eseguito e fornisce l'interfaccia che usi quando comunichi con il lato Unix di OS X tramite Terminal. Nelle prime versioni di OS X, Apple impostava la shell predefinita su tsh, ma è passato a bash con il rilascio di OS X 10.3 e successivi.
Una delle caratteristiche di bash è una riga di prompt che mostra la directory di lavoro corrente. Mentre navighi nella struttura del file, la tua stringa di prompt riflette costantemente la directory di lavoro corrente:
gargantua5:~ robg$ cd Library/gargantua5:~/Library robg$ cd Widgets/gargantua5:~/Library/Widgets robg$ cd WindGuru.wdgt/gargantua5:~/Library/Widgets/WindGuru.wdgt robg$
Anche se questo è fantastico in teoria, può non essere così eccezionale in pratica. Considera cosa succede quando esegui il drill-down in una cartella di sistema profondamente sepolta, come questa:
gargantua5:/System/Library/CoreServices/Dock.app/Contents/Resources robg$
Se hai una finestra Terminale di 80 caratteri, la riga di prompt sopra si avvolge completamente attorno alla larghezza dello schermo. Ciò rende molto difficile lavorare in Terminal, poiché lo schermo diventa un miscuglio confuso di comandi, visualizzazione del percorso e output. Ci sono molte soluzioni a questo problema, ma eccone due che mi piacciono.
Per entrambe queste soluzioni, dovrai utilizzare il file VI
editor per modificare il tuo utente .bash_profile
file, nella tua home directory. Avvia Terminal e assicurati di essere nella tua home directory digitando CD
e poi premendo Invio. Quindi, digita vi .bash_profile
. Se disponi di un file esistente, verrà aperto per la modifica. In caso contrario, si aprirà un nuovo file. Da lì, segui la soluzione appropriata come preferisci.
Soluzione 1: utilizzare la barra del titolo del Terminale
Invece di visualizzare il tuo percorso nel tuo prompt, puoi fare in modo che bash visualizzi il prompt nel titolo della finestra del tuo Terminale, in questo modo:
Per fare ciò, devi solo aggiungere queste due righe al file .bash_profile
file:
export PROMPT_COMMAND='echo -n "^[]1;$PWD^G"'PS1='e[7m [u] :[e[0;m] '
Tuttavia, non puoi semplicemente copiare e incollare tutto il testo sopra: la seconda riga funzionerà, ma la prima riga contiene due speciali comandi "citati". Quindi ecco come inserirlo. Prima pressione io
mettere VI
in modalità inserimento.
Successivamente, copia e incolla tutto fino al primo cursore (escluso) (^
). I seguenti due caratteri, ^[
, rappresentano il tasto Esc effettivo. Per digitarlo VI
, digita Control-V, quindi premi Esc. Questo inserirà i caratteri codificati del tasto Escape. È quindi possibile copiare e incollare tutto fino al punto di inserimento successivo, ma ancora una volta escluso. Per entrare nel ^G
, usi la stessa procedura: premi Ctrl-V, quindi premi Ctrl-G. Infine, digita le virgolette doppie e le virgolette singole di chiusura. Accidenti.
Dopo aver inserito le due righe, premi Esc, quindi digita :w
per salvare le modifiche e :Q
per uscire dall'editore. Apri una nuova finestra di Terminale e dovresti vedere il percorso nel titolo e un bel breve prompt contenente il tuo nome utente.
Non tenterò di spiegare il voodoo in corso in questi due comandi, a parte i primi lavori per impostare il titolo della finestra e il secondo utilizza alcuni codici ASCII per creare la versione nero su bianco del tuo nome utente come richiesta. Salva il file premendo Esc Mentre molte persone preferiscono questo prompt ultra-pulito con il percorso nel titolo della finestra, io trovo I come almeno un breve promemoria della mia attuale directory nel mio prompt, che è esattamente ciò che otterrai con la prossima soluzione.
Soluzione 2: limitare la lunghezza del percorso visualizzato
La seconda soluzione limita il percorso del prompt a un dato numero di caratteri. Indipendentemente da quanto approfondisci il sistema, vedrai solo il tuo numero preferito di caratteri nel prompt. Apri il .bash_profile
file come spiegato sopra, premere io
per accedere alla modalità di inserimento, quindi incollare il seguente codice:
function prompt_command { # Quanti caratteri di $PWD devono essere mantenuti local pwd_length=23 if [ $(echo -n $PWD | wc -c | tr -d " ") -gt $pwd_length ] then newPWD="$(echo -n $PWD | sed -e "s/.*(.{$pwd_length})/1/")" else newPWD="$(echo -n $PWD)" fi}PROMPT_COMMAND=prompt_commandexport PROMPT_COMMANDPS1='e[7m$newPWD [u]:[e[0;m] '
Lascia tutto come lo vedi, tranne forse il 23
, che rappresenta il numero di caratteri che vorresti vedere nel percorso del prompt. Al termine, premi Esc per uscire dalla modalità di inserimento, quindi digita :w
E :Q
.
Come con la prima soluzione, qui c'è un voodoo di fantasia per accorciare il percorso (questo è ciò che fa la funzione), e quindi visualizzarlo nel tuo prompt. Apri una nuova finestra di Terminale e naviga in una cartella profondamente sepolta, e dovresti vedere qualcosa del genere:
Resources/Italiano.lproj [robg]:
Anche se questo non è utile quanto il percorso completo, è almeno sufficiente per ricordarmi dove mi trovavo prima di eseguire il comando successivo.