Amikor a Terminált 10.3-ban és 10.4-ben használja, valószínűleg a bash shellt használja – ez az alapértelmezett, kivéve, ha olyan frissítési telepítést használ, amely korábban tcsh-t használt.
Ha nem ismeri a „shell” fogalmát, akkor ez valójában egy program, amely fut, és biztosítja azt a felületet, amelyet akkor használ, amikor terminálon keresztül kommunikál az OS X Unix oldalával. Az OS X első verzióiban az Apple az alapértelmezett shellt erre állította be tcsh, de átváltott bash az OS X 10.3 és újabb kiadásával.
A bash egyik jellemzője egy prompt sor, amely az aktuális munkakönyvtárat mutatja. Ahogy navigál a fájlszerkezetben, a prompt karakterlánc folyamatosan tükrözi az aktuális munkakönyvtárat:
gargantua5:~ robg$ cd Library/gargantua5:~/Library robg$ cd Widgetek/gargantua5:~/Library/Widgets robg$ cd WindGuru.wdgt/gargantua5:~/Library/Widgets/WindGuru.wdgt robg$
Bár ez elméletben nagyszerű, a gyakorlatban nem lehet túl jó. Fontolja meg, mi történik, ha egy mélyen eltemetett rendszermappába részletez, mint például ez:
gargantua5:/System/Library/CoreServices/Dock.app/Contents/Resources robg$
Ha van egy 80 karakteres terminálablak, akkor a fenti promptsor valójában teljes egészében körbeveszi a képernyő szélességét. Ez nagyon megnehezíti a terminálban való munkát, mivel a képernyő a parancsok, az útvonal megjelenítése és a kimenet zavaró zűrzavarává válik. Számos megoldás létezik erre a problémára, de itt van kettő, ami tetszik.
Mindkét megoldáshoz használnia kell a vi
szerkesztőt a felhasználó szerkesztéséhez .bash_profile
fájlt a saját könyvtárában. Indítsa el a Terminált, és gépeléssel győződjön meg arról, hogy a kezdőkönyvtárban van CD
majd nyomja meg a Return gombot. Ezután írja be vi .bash_profile
. Ha van már meglévő fájlja, az megnyílik szerkesztésre. Ha nem, egy új fájl nyílik meg. Innentől kezdve kövesse a kívánt megoldást.
1. megoldás: Használja a terminál címsorát
Ahelyett, hogy az elérési utat jelenítené meg a promptban, a bash megjelenítheti a promptot a terminál ablakának címében, így:
Ehhez csak hozzá kell adnia ezt a két sort a .bash_profile
fájl:
export PROMPT_COMMAND='echo -n "^[]1;$PWD^G"'PS1='e[7m [u] :[e[0;m]'
A fenti szöveget azonban nem lehet egyszerűen kimásolni és beilleszteni – a második sor működni fog, de az első sorban két speciális „idézett” parancs található. Tehát itt van a bevitel módja. Első nyomás én
rakni vi
beszúrás módban.
Ezután másolja ki és illessze be mindent az első pontig, de ne tartalmazza^
). A következő két karakter, ^[
, a tényleges Escape billentyűt jelenti. Beírni vi
, írja be a Control-V billentyűkombinációt, majd nyomja meg az Escape billentyűt. Ez beírja a kódolt Escape billentyű karaktereket. Ezután mindent átmásolhat és beilleszthet a következő pontig, de nem beleértve. A belépéshez a ^G
, ugyanazt az eljárást használja – írja be a Control-V billentyűkombinációt, majd nyomja meg a Control-G billentyűkombinációt. Végül írja be a záró dupla és szimpla idézőjelet. Tyűha.
A két sor beírása után nyomja meg az Escape billentyűt, majd írja be :w
a módosítások mentéséhez, és :q
hogy kilép a szerkesztőből. Nyisson meg egy új terminálablakot, és látnia kell az elérési utat a címben, és egy szép rövid promptot, amely a felhasználónevét tartalmazza.
Nem próbálom megmagyarázni a voodoo-t ebben a két parancsban, kivéve az első lépéseket, amelyek a ablak címét, a második pedig néhány ASCII kódot használ a felhasználónév fekete-fehér változatának létrehozásához. gyors. Mentse el a fájlt az Escape gomb megnyomásával Bár sokan kedvelik ezt az ultratiszta promptot az ablak címében szereplő elérési úttal, mint legalább egy rövid emlékeztető az aktuális könyvtáramról a promptomban, amit a következő megoldással pontosan fog kapni.
2. megoldás: Korlátozza a megjelenített útvonal hosszát
A második megoldás a prompt elérési útját egy adott számú karakterre korlátozza. Függetlenül attól, hogy mennyire mélyreható a rendszerben, a promptban csak a kívánt karakterszám jelenik meg. Nyissa meg a .bash_profile
fájlt a fent leírtak szerint, nyomja meg én
beszúrás módba lépéshez, majd illessze be a következő kódot:
function prompt_command { # A $PWD hány karakterét kell megtartani a helyi 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] "
Hagyjon mindent úgy, ahogyan lát, kivéve esetleg a 23
, amely azt jelzi, hogy hány karaktert szeretne látni a prompt útvonalában. Ha végzett, nyomja meg az Escape billentyűt a beszúrási módból való kilépéshez, majd írja be :w
és :q
.
Az első megoldáshoz hasonlóan itt is van valami divatos voodoo, amely lerövidíti az útvonalat (ezt teszi a függvény), majd megjeleníti a promptban. Nyisson meg egy új terminálablakot, és navigáljon egy mélyen eltemetett mappába, és valami ilyesmit kell látnia:
Források/English.lproj [robg]:
Bár ez nem olyan hasznos, mint a teljes elérési út, legalább elég ahhoz, hogy emlékeztessen arra, hol voltam, mielőtt végrehajtom a következő parancsomat.