Når du bruker Terminal i 10.3 og 10.4, bruker du sannsynligvis bash-skallet - det er standard, med mindre du bruker en oppgraderingsinstallasjon som tidligere brukte tcsh.
Hvis du ikke er kjent med hva et "skall" er, er det faktisk et program som kjører og gir grensesnittet du bruker når du kommuniserer med Unix-siden av OS X via Terminal. I de første versjonene av OS X satte Apple standardskallet til tcsh, men byttet til bash med utgivelsen av OS X 10.3 og nyere.
En av funksjonene til bash er en ledetekst som viser gjeldende arbeidskatalog. Når du navigerer inn i filstrukturen, gjenspeiler ledetekststrengen hele tiden gjeldende arbeidskatalog:
gargantua5:~ robg$ cd Library/gargantua5:~/Library robg$ cd Widgets/gargantua5:~/Library/Widgets robg$ cd WindGuru.wdgt/gargantua5:~/Library/Widgets/WindGuru.wdgt robg$
Selv om dette er bra i teorien, kan det ikke være så bra i praksis. Tenk på hva som skjer når du borer ned i en dypt begravet systemmappe, for eksempel denne:
gargantua5:/System/Library/CoreServices/Dock.app/Contents/Resources robg$
Hvis du har et terminalvindu på 80 tegn, går linjen ovenfor faktisk fullstendig rundt bredden på skjermen. Dette gjør det veldig vanskelig å jobbe i Terminal, ettersom skjermen din blir et forvirrende virvar av kommandoer, banevisning og utdata. Det er mange løsninger på dette problemet, men her er to jeg liker.
For begge disse løsningene må du bruke vi
editor for å redigere brukerens .bash_profile
fil, i hjemmekatalogen din. Start Terminal og sørg for at du er i hjemmekatalogen din ved å skrive cd
og trykk deretter på Retur. Deretter skriver du vi .bash_profile
. Hvis du har en eksisterende fil, åpnes den for redigering. Hvis ikke, åpnes en ny fil. Derfra følger du den riktige løsningen som du foretrekker.
Løsning 1: Bruk terminalens tittellinje
I stedet for å vise banen din i ledeteksten, kan du få bash til å vise ledeteksten i terminalens vindustittel, slik:
![](/f/ec4676c8764bdc69237afbae9dcda984.png)
For å gjøre dette trenger du bare å legge til disse to linjene i .bash_profile
fil:
eksport PROMPT_COMMAND='echo -n "^[]1;$PWD^G"'PS1='e[7m [u] :[e[0;m] '
Du kan imidlertid ikke bare kopiere og lime inn all teksten ovenfor - den andre linjen vil fungere, men den første linjen har to spesielle "siterte" kommandoer. Så her er hvordan du legger inn det. Første trykk Jeg
å legge vi
i innsettingsmodus.
Deretter kopierer og limer du inn alt til, men ikke inkludert, den første linjen (^
). De følgende to karakterene, ^[
, representerer den faktiske Escape-tasten. For å skrive det inn vi
, skriv Control-V, og trykk deretter Escape. Dette vil angi de kodede Escape-tasttegnene. Du kan deretter kopiere og lime inn alt opp til, men igjen ikke inkludert, neste skjema. For å gå inn i ^G
, bruker du samme fremgangsmåte—skriv Control-V, og trykk deretter Control-G. Til slutt skriver du inn det avsluttende dobbeltanførselstegn og enkeltsitat. Huff.
Etter å ha skrevet inn de to linjene, trykk Escape, og skriv deretter :w
for å lagre endringene, og :q
for å gå ut av redaktøren. Åpne et nytt terminalvindu, og du bør se banen i tittelen, og en fin kort melding som holder brukernavnet ditt.
Jeg vil ikke forsøke å forklare voodooen som foregår i disse to kommandoene, annet enn de første verkene for å sette vindustittel, og den andre bruker noen ASCII-koder for å lage svart-på-hvitt-versjonen av brukernavnet ditt som ledetekst. Lagre filen ved å trykke Escape Mens mange mennesker foretrekker denne ultra-rene ledeteksten med banen i vinduets tittel, finner jeg at jeg som i det minste en kort påminnelse om min nåværende katalog i ledeteksten min, som er nøyaktig hva du får med den neste løsningen.
Løsning 2: Begrens lengden på den viste banen
Den andre løsningen begrenser ledetekstens bane til et gitt antall tegn. Uansett hvor dypt du borer i systemet, vil du bare se det foretrukne antall tegn i ledeteksten. Åpne .bash_profile
fil som forklart ovenfor, trykk Jeg
for å gå inn i innsettingsmodus, og lim deretter inn følgende kode:
function prompt_command { # Hvor mange tegn i $PWD skal beholdes lokale pwd_length=23 hvis [ $(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] '
La alt være slik du ser det, bortsett fra muligens 23
, som representerer hvor mange tegn du vil se i ledetekstens bane. Når du er ferdig, trykk Escape for å avslutte innsettingsmodus, og skriv deretter :w
og :q
.
Som med den første løsningen, er det noe fancy voodoo som foregår her for å forkorte banen (det er det funksjonen gjør), og deretter vise den i ledeteksten. Åpne et nytt terminalvindu og naviger inn i en dypt begravet mappe, og du bør se noe sånt som dette:
Ressurser/English.lproj [robg]:
Selv om dette ikke er like nyttig som hele banen, er det i det minste nok til å minne meg på hvor jeg var før jeg utfører min neste kommando.