A legtöbb Linux disztribúció úgy konfigurálja a Bash parancsot, hogy valami hasonló legyen
felhasználónév @ hosztnév: $ könyvtár
. De beállíthatja a Bash parancsot, hogy tartalmazzon bármit, ami csak tetszik, és akár a kívánt színeket is kiválaszthatja.
Az itt bemutatott példalépéseket az Ubuntu 16.04 LTS rendszeren hajtották végre. A folyamatnak meg kell egyeznie a többi Linux disztribúción, bár az alapértelmezett Bash parancs és a .bashrc fájl beállításai kissé eltérhetnek.
Ahol az azonnali változó tárolva van
A Bash parancssori konfigurációját a felhasználói fiók .bashrc fájlja tárolja, amely a következő címen található:
~ / .bashrc
. Tehát, ha a felhasználónév bob, akkor a fájl itt található
/home/bob/.bashrc
.
Megnyithatja a fájlt az aktuális Bash változó megtekintéséhez. A nano-t használjuk példaszövegszerkesztőnek, bár Ön is használhatja mi , emacs vagy bármely más szövegszerkesztő, amellyel Ön jól érzi magát. Nyisson meg egy terminált és futtassa:
nano ~ / .bashrc
Görgessen le a
Ψ1 =
szakasz. Az első változó meglehetősen bonyolultnak tűnik, mert színes információkat tartalmaz - ezt később elmagyarázzuk. A második változó, színinformációk nélkül, a következőképpen szól:
{debian_chroot:+($debian_chroot)} USD \ u @ \ h: \ w \ $
Ez még mindig kissé bonyolult a
${debian_chroot:+($debian_chroot)}
bitek. Ezek csak azt mondják a Bash-nak, hogy tudassa veled, ha Debian chroot környezetet használsz, és általában nem jelennek meg. Ezeket figyelmen kívül hagyva a Bash prompt változó alapértelmezett felépítése:
\ u @ \ h: \ w \ $
\ u
jelzi a felhasználónevét,
@
a @ jelet jelöli,
\h
jelzi a gazdagép nevét (számítógép nevét),
:
a: karaktert jelöli,
\ban ben
a munka könyvtárat jelöli, és
\$
$ -ot jelöl, ha normál felhasználói fiók vagy # -t, ha root vagy. Tehát, ha mindezt összerakod, megkapod
felhasználónév @ hosztnév: működő_könyvtár $
.
A Bash parancs megváltoztatásához egyszerűen hozzá kell adnia, el kell távolítania vagy átrendeznie a speciális karaktereket a PS1 változóban. De sokkal több változó használható, mint az alapértelmezett.
Egyelőre hagyja el a szövegszerkesztőt - nanóban nyomja meg a Ctrl + X billentyűkombinációt a kilépéshez. Megmutatjuk, hogyan kísérletezhet a változókkal, mielőtt valóban újat írna a .bashrc fájlba.
Hogyan hozzunk létre egy egyedi Bash-parancsot
A Bash parancs konfigurációját a PS1 változó tárolja. A PS1 változó tartalmának új változóba történő mentéséhez futtassa a következő parancsot:
ALAPVETÉS = $ PS1
Mostantól a PS1 változót különböző értékekre állíthatja a kísérlethez. Például az első sor itt a felszólítást egy alapvető „user $”, a második pedig a „user: working_directory $” parancsra állítja.
PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"
Ha valaha is vissza akar térni az alapértelmezett parancsra, futtassa a következő parancsot.
PS1 = $ DEFAULT
A Bash visszaáll az alapértelmezett parancssorba, annak köszönhetően, hogy ezeket az alapértelmezett beállításokat korábban elmentette. Ne feledje, hogy az itt végrehajtott módosítások csak ideiglenesek az aktuális Bash-munkamenetre, így bármikor kijelentkezhet és újra bejelentkezhet, illetve bezárhatja és újra megnyithatja a terminálablakot, hogy visszatérjen az alapértelmezett kérdésre. De a fenti sor lehetővé teszi, hogy egyszerűen visszatérjen az alapértelmezett Bash parancsra anélkül, hogy gondot okozna a kijelentkezés vagy az ablak bezárása.
Bármely karaktert vagy szöveget hozzáadhat a változóhoz. Tehát, hogy az alapértelmezett parancsot a „Hello World” elé tegye, használhatja:
PS1 = "Helló világ \ u @ \ h: \ w \ $"
Most, hogy letudta az alapokat, csak tudnia kell, mi az összes speciális karakter. Valószínűleg nem fog sok ilyen érdekelni, de itt van a teljes lista, amint megjelenik a Bash kézikönyv :
-
Harang karakter:
\a -
A dátum, „Hétköznap Hónap dátum” formátumban (pl. „Május 26., kedd”):
\ d -
A formátum átkerül az strftime (3) fájlba, és az eredmény beillesztésre kerül a prompt stringbe; egy üres formátum lokálspecifikus időábrázolást eredményez. A merevítők szükségesek:
\ D{format} -
Menekülési karakter:
\ is -
A hosztnév az első „.” -Ig:
\h -
A gazdagép neve:
\H -
A shell által jelenleg kezelt munkák száma:
\ j -
A shell terminál eszközének alapneve:
\ l -
A newline:
\ n -
Kocsi vissza:
\ r -
A shell neve, a $ 0 basename (az utolsó perjel után következő rész):
\ s -
Az idő, 24 órás ÓÓ: HH: SS formátumban:
\t -
Az idő 12 órás ÓÓ: HH: SS formátumban:
\T -
Az idő 12 órás reggel / pm formátumban:
\@ -
Az idő, 24 órás ÓÓ: HH formátumban:
\A -
A jelenlegi felhasználó felhasználóneve:
\ u -
A Bash verziója (pl. 2.00):
ev -
A Bash verziója + patchlevel (pl. 2.00.0) kiadása:
EV -
Az aktuális munkakönyvtár, a $ HOME tildével rövidítve (a $ PROMPT_DIRTRIM változót használja):
\ban ben -
A $ PWD alapneve, a $ HOME tildével rövidítve:
\BAN BEN -
A parancs előzményszáma:
\! -
A parancs parancsszáma:
\# -
Ha a tényleges uid értéke 0, #, különben $:
\$ -
Az a karakter, amelynek ASCII kódja az nnn oktális értéke:
\ nnn -
Visszajel:
\\ -
Kezdje el a nem nyomtatható karakterek sorozatát. Ezt fel lehet használni egy terminál vezérlési sorrend beágyazására a promptba:
\[ -
A nem nyomtatott karakterek sorozatának befejezése:
\]
Tehát, ha hozzá szeretné adni a dátumot és az időt a Bash parancssorhoz, és a munkakönyvtárat a második sorba szeretné helyezni, használhatja a következő felépítést:
PS1 = "[\d \t] \ u @ \ h \ n \ w \ $"
A szögletes zárójelek itt egyáltalán nem szükségesek, de segítenek vizuálisan széttörni a dolgokat, és könnyebben olvashatóbbá teszik a sort. Ahogy korábban kitértünk rá, bármilyen szöveget vagy normál karaktert felvehet a tetszőleges változóba, ezért bátran használhatja azt, amelyik megfelel Önnek.
Van még egy erőteljes trükk, amelyről tudnia kell: Bármelyik parancs kimenetét hozzáadhatja a parancssorhoz. Amikor megjelenik a prompt, a Bash futtatja a parancsot, és kitölti az aktuális információkat. Ehhez egyszerűen adjon meg minden parancsot, amelyet kettő között futtatni szeretne
`
karakterek. Ez nem aposztróf - ez a súlyos akcentus, amely a Tab billentyű felett jelenik meg a billentyűzeten.
Tegyük fel például, hogy meg szeretné tekinteni a Linux kernel verzióját a parancssorban. Használhat olyan sort, mint a következő:
PS1 = "\ u @ \ h a ʻnév -s -r" \ w \ $ "
Másik példaként tegyük fel, hogy meg szeretné tekinteni a rendszer üzemidejét és a terhelés átlagát, a
üzemidő
parancs. Használhatja a következő konstrukciót, amely az üzemidőt a saját sorára helyezi a felszólítás többi része előtt.
PS1 = "(ʻuptime`) \ n \ u @ \ h: \ w $"
Kísérletezzen nyugodtan különböző speciális karakterekkel és parancsokkal az ideális parancssor összeállításához.
Színek hozzáadása a Bash Prompt-hoz
Miután kitalálta a kívánt figyelmeztetést, hozzáadhat színeket. Ez valójában nagyon egyszerű, de a változó rettenetesen rendetlen és bonyolultnak tűnik, ha nem érted, amit nézel.
Például a korábbi alapértelmezett színparancs változó a következő volt:
{debian_chroot:+($debian_chroot)} $ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $
Vagy eltávolíthatja a debian_chroot biteket még egyszer:
\ [\033[01;32m\] \ u @ \ h \ [\033[00m\]: \ [\033[01;34m\] \ w \ [\033[00m\] \ $
Ez valójában csak a
\ u @ \ h: \ w $
változó a korábbiaktól, de színinformációkkal. Valóban, néhány részre bonthatjuk:
\[\033[01;32m\]\ u @ \ h\[\033[00m\]:\[\033[01;34m\]\ban ben\[\033[00m\]\$
Az első szakasz a
\ u @ \ h
bit, amelyet színes információk előznek meg, amelyek zöldre váltják. A második a
:
karakter, amelyet színinformációk előznek meg, amelyek eltávolítják a színezést. A harmadik a
\ban ben
bit, színinformációk előzik meg, amelyek kékre váltják. A negyedik az
\$
bit, amelyet színinformációk előznek meg, amelyek eltávolítják a színezést.
Miután megértette, hogyan kell saját színcímkéket készíteni, hozzáadhatja a kívánt színeket a Bash parancs bármely szakaszához.
A következőket kell tudnia: A teljes színkóddal kapcsolatos információkat meg kell adnia a
\[
és
\] karakter
s. A címke belsejében el kell kezdeni a kettőt
\033[
vagy
\ is [
jelezni Bash-nek, hogy ez színes információ. Mindkét
\033[
és
\ is [
tedd ugyanezt.
\ is [
rövidebb, így kényelmesebb lehet használni, de mi használni fogjuk
\033[
itt, mivel megfelel az alapértelmezés szerint használtnak. A címke végén a következővel kell végződnie
m \
egy színcímke végének jelzésére.
Ezt lebontva, minden színcímke így néz ki. Az egyetlen különbség a COLOR helyére adott információ, amely meghatározza a tényleges színt:
\[\033[SZÍNm \]
A Bash lehetővé teszi az előtér szövegének megváltoztatását, olyan attribútumok hozzáadását, mint a „félkövér” vagy „aláhúzás”, és háttérszín beállítását.
Itt vannak az előtér szövegének értékei:
- Fekete: 30
- Kék: 34
- Cián: 36
- Zöld: 32
- Lila: 35
- Piros: 31
- Fehér: 37
- Sárga: 33
Például, mivel a lila szöveg a 32-es színkód, ezért használhatja
\[\033[
32
m \]
lila szöveghez.
Megadhat egy attribútumot is a szöveghez. Ezt az attribútumot a színszám elé kell tenni, pontosvesszővel (;) elválasztva. Az ilyen attribútumokkal rendelkező szöveg másképp fog kinézni a különböző terminálemulátorokban.
Itt vannak a szövegattribútumok értékei:
- Normál szöveg: 0
- Félkövér vagy világos szöveg: 1 (Ez a terminál emulátorától függ.)
- Halvány szöveg: 2
- Aláhúzott szöveg: 4
- Villogó szöveg: 5 (Ez a legtöbb terminálemulátorban nem működik.)
- Fordított szöveg: 7 (Ez megfordítja az előtér és a háttér színét, így fehér alapon fekete szöveget fog látni, ha az aktuális szöveg fekete háttéren fehér szöveg.)
- Rejtett szöveg: 8
Nem kell feltétlenül megadni a normál szövegattribútumot. Egyébként ez az alapértelmezett.
Például, mivel a piros szöveg a 31. kód, a félkövér szöveg pedig az 1. kód, ezért használhatja
\[\033[
1;31
m \]
félkövér piros szöveghez.
Megadhat háttérszínt is, de nem adhat hozzá attribútumot a háttérszínhez.
Itt vannak a háttérszín értékei:
- Fekete háttér: 40
- Kék háttér: 44
- Cián háttér: 46
- Zöld háttér: 42
- Lila háttér: 45
- Piros háttér: 41
- Fehér háttér: 47
- Sárga háttér: 43
Például, mivel a kék háttér a 44-es kód,
\[\033[
44
m \]
kék hátteret határozna meg.
Megadhatja mind az előtér, mind a háttér szín címkéit. Például 42 zöld hátteret és 31 piros szöveget jelöl. Tehát annak érdekében, hogy az alapértelmezett parancs piros szöveggé váljon zöld háttéren, használja a következőket:
Ψ1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "
Itt csak egyetlen háttérszínt, majd egyetlen előtér szövegszínt adunk meg, amely a prompt elején kezdődik, és a prompt összes szövegére vonatkozik. Azonban annyi színcímkét adhat meg a változóban, amely a felszólítás különböző szakaszait tetszés szerint színezi.
A háttér és az előtér szövegszínei tovább mennek a promptnál, hacsak nem adja meg a 00 színkódot, törölje a színinformációkat. Ezt a címkét a változóban is felhasználhatja a formázás visszaállítására az alapértelmezett helyre valahol a felszólításban. Például a következő sor minden színezést befejez a
\$
karakter.
Ψ1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \] \ $ "
Az új alapértelmezett kérés beállítása
Miután befejezte a színekkel való kísérletezést, rendelkeznie kell az aktuális munkamenetben tetsző Bash-felszólítással. De valószínűleg állandóvá kívánja tenni az új parancsot, hogy az automatikusan felhasználásra kerüljön az összes Bash-munkamenetben.
Ehhez csak meg kell változtatnia a .bashrc fájl PS1 változójának tartalmát, amelyet korábban megvizsgáltunk.
Nyissa meg a .bashrc fájlt a kívánt szövegszerkesztőben, így:
nano ~ / .bashrc
Görgessen lefelé, és keresse meg a PS1 = részt. Csak cserélje ki az alapértelmezett változót a testreszabott változóra. Valószínűleg el akarja hagyni a
${debian_chroot:+($debian_chroot)}
A bitek önmagukban - mindenesetre csak akkor jelennek meg, ha chroot környezetben vagy.
Írja be színes PS1 változóját a
ha [ "$color_prompt" = yes ]; azután
vonal. Írja be a változó színek nélkül a
más
vonal.
Mentse a fájlt, és zárja be a szövegszerkesztőt. Például a fájl nano-ba történő mentéséhez nyomja meg a Ctrl + O billentyűkombinációt, nyomja meg az Enter billentyűt, majd nyomja meg a Ctrl + X billentyűkombinációt a kilépéshez.
A következő alkalommal, amikor új Bash shellt indít - például a terminálon történő bejelentkezéssel vagy egy új terminálablak megnyitásával -, megjelenik a testreszabott felszólítása.