Úvod
V Linuxu probíhá velká část vaší práce z příkazového řádku, známého také jako shell nebo BASH (Bourne-Again Shell). Shell interpretuje vaše příkazy a předává je operačnímu systému k provedení.
Tento tutoriál vám ukáže, jak přizpůsobit nebo změnit výzvu Linux BASH .
Předpoklady
- Systém se systémem Linux
- Přístup k příkazovému řádku/terminálu
- Uživatelský účet s sudo nebo root privilegia
Výchozí výzva BASH
Výchozí výzva BASH je ta, kterou uvidíte, když poprvé otevřete terminál nebo příkazový řádek. Obvykle to vypadá nějak takto:
[email protected]:~$
Případně to může vypadat takto:
(base) [[email protected] ~]$
První část výzvy vám sdělí uživatele, který je aktuálně přihlášen. Druhá část identifikuje název hostitele systému.
Znak vlnovky ~
označuje, že aktuální pracovní adresář je domovským adresářem aktuálního uživatele.
Znak dolaru $
znamená, že aktuální uživatel je standardní uživatel.
Uživatel root by byl identifikován znakem hash #
.
Přizpůsobte výzvu Bash v Linuxu
Jako většina linuxových aplikací, BASH čte konfigurační soubor, aby určil jeho chování. Tento soubor je v domovském adresáři:
~/.bashrc
Než provedete jakékoli změny, vytvořte záložní kopii konfiguračního souboru. Otevřete okno terminálu a zadejte následující:
cp ~/.bashrc ~/.bashrc.bak
Trvalá změna výzvy Bash v Linuxu
Otevřete konfigurační soubor BASH pro úpravy:
sudo nano ~/.bashrc
V tomto souboru byste měli vidět několik různých nastavení. Některé z nich jsou popisné řádky v modré barvě, bez komentáře #
podepsat. Některé jsou bílé, což znamená, že jsou povoleny.
Přejděte na konec konfiguračního souboru. Přidejte následující řádek:
PS1="MyTestPrompt> "
Můžete nahradit MyTestPrompt>
s libovolným řetězcem textu, který chcete.
Uložte soubor (ctrl-o
> Zadejte ) a ukončete (ctrl-x
).
Chcete-li použít změny, aktualizujte službu BASH. Zadejte následující:
source ~/.bashrc
Váš řádek příkazového řádku by se měl změnit na následující:
MyTestPrompt>
Vytvořte dočasnou změnu výzvy BASH
Výzvu BASH můžete dočasně změnit pomocí export
příkaz. Tento příkaz mění výzvu, dokud se uživatel neodhlásí.
Nastavte výzvu BASH tak, aby zobrazovala pouze uživatelské jméno, zadáním následujícího:
export PS1="\u >"
Výzva by se měla okamžitě změnit, aby vypadala takto:
username >
Výzvu můžete resetovat tak, že se odhlásíte a poté se znovu přihlásíte.
Populární vlastní možnosti pro výzvy BASH
Tyto možnosti můžete použít v obou metodách – dočasně pomocí export
nebo trvale úpravou ~/.bashrc
soubor.
Zobrazovat uživatelské jméno a název domény
Použijte –H
možnost zobrazení celého názvu hostitele:
export PS1="\u\H "
Ve výzvě byste měli vidět název hostitele.
Přidat speciální znaky
Do výzvy můžete přidat speciální znaky tak, že je seřadíte kolem speciálních možností:
export PS1="\[email protected]\H :"
Mělo by se zobrazit následující:
[email protected]:
Zobrazovat uživatelské jméno plus název a verzi prostředí
Zadejte následující pro zobrazení uživatelského jména, názvu prostředí a verze:
export PS1="\u >\s\v "
Výzva by se měla změnit na následující:
username >bash4.4
Přidat datum a čas do výzvy BASH
Chcete-li zobrazit různé formáty data a času, použijte následující možnosti:
d
– Zobrazuje dnešní datum v [den v týdnu]/[měsíc]/[den]
export PS1="\[email protected]\H>\d "
t
– Zobrazuje aktuální čas ve 24hodinovém formátu
export PS1="\[email protected]\H>\t "
T
– Zobrazuje aktuální čas ve 12hodinovém formátu
export PS1="\[email protected]\H>\T "
A
– Zobrazuje aktuální čas ve 24hodinovém zápisu s pouhými hodinami a minutami
export PS1="\[email protected]\H>\A "
Skrýt všechny informace ve výzvě BASH
Použijte toto, chcete-li zabránit zobrazení uživatelských jmen nebo názvů hostitelů při výzvě:
export PS1="\W > "
Měli byste vidět následující:
~ >
Odlišení uživatele root od běžného uživatele
Normální výzva BASH zobrazuje $
označení pro běžného uživatele. Pokud se přihlásíte jako uživatel root, zobrazí se #
se zobrazí znak. Použijte $
kód označující, že aktuální uživatel není uživatelem root:
export PS1="\[email protected]\H \W:\$ "
Další možnosti výzvy BASH
Zde je seznam většiny možností, které můžete použít pro výzvu BASH.
Některé z těchto příkazů nemusí fungovat ve všech verzích Linuxu.
\a
– Zvonková postava- \
d
– Datum (den/měsíc/datum) \D{format}
– Pomocí této možnosti zavoláte systému, aby odpověděl aktuálním časem\e
– Útěková postava\h
– Název hostitele (krátký)\H
– Úplný název hostitele (název domény)\j
– Počet úloh spravovaných shellem\l
– Základní název koncového zařízení shell\n
– Nový řádek\r
– Vrácení přepravy\s
– Název skořápky\t
– Čas (hodina:minuta:sekunda)\@
– Čas, 12 hodin AM/PM\A
– Čas, 24 hodin, bez sekund\u
– Aktuální uživatelské jméno\v
– verze BASH\V
– Další informace o verzi BASH\w
– Aktuální pracovní adresář ($HOME je reprezentován ~)\W
– Základní název pracovního adresáře ($HOME je reprezentován ~)\!
– Vypíše číslo tohoto příkazu v historii\#
– Číslo příkazu tohoto příkazu- \
$
– Určuje, zda je uživatel root (#) nebo jiný ($) - \\ – zpětné lomítko
\[
– Spusťte sekvenci nezobrazených znaků (užitečné, pokud chcete do výzvy přidat příkaz nebo sadu instrukcí)\]
– Zavřít nebo ukončit sekvenci nezobrazených znaků
Jak změnit barvu výzvy BASH
Můžete změnit barvu textu výzvy BASH. Chcete-li například dočasně změnit text výzvy BASH na zelenou, zadejte následující:
export PS1="\e[0;32m[\[email protected]\h \W]\$ \e[0m"
Vaše výzva by měla mít stejný text jako normálně, ale měla by být zelená.
Zde je rozpis příkazů:
• \e[
– Začněte měnit barvy
• 0;32m
– Zadejte kód barvy
• [\[email protected]\h \W]\$
– Toto je kód pro vaši normální výzvu BASH ([email protected] Workingdirectory $
)
• \e[0m
– Ukončete režim změny barev
První číslo v kódu barvy určuje typ písma:
• 0
– Normální
• 1
– tučné (jasné)
• 2
– Tlumené
• 4
– Podtrženo
Druhé číslo označuje barvu, kterou chcete:
• 30
- Černá
• 31
- Červené
• 32
- Zelená
• 33
– Hnědá
• 34
– Modrá
• 35
- Nachový
• 36
- Tyrkysová
• 37
– Světle šedá
Pokud navíc zkombinujete světlou variantu s barevným kódem, získáte světlejší verzi této barvy. Pokud například použijete kód barvy 1;32
, dostanete světle zelenou místo normální zelené. Pokud používáte 1;33
, získáte žlutou místo hnědé.
Jak resetovat změny BASH na výchozí nastavení
Změny lze resetovat dvěma způsoby. Pro dočasné změny (pomocí export PS1=""
příkaz), můžete výchozí nastavení obnovit odhlášením.
Pokud jste upravili \.bashrc
Chcete-li provést trvalé změny, existují dva způsoby, jak se vrátit k výchozímu nastavení:
- Vykreslete změny jako komentáře úpravou souboru a přidáním
#
před každou provedenou změnou. - Obnovte výchozí nastavení ze zálohy zadáním:
sudo cp ~/.bashrc.bak ~/.bashrc
Porozumění různým částem výzvy BASH
Než budete pokračovat, resetujte výzvu BASH na výchozí. Pokud jste použili export
příkaz, odhlaste se a znovu přihlaste. Pokud jste upravili ~/.bashrc
soubor, umístěte #
podepište před každou provedenou úpravou a uložte soubor.
Výzva BASH obsahuje čtyři různé hodnoty:PS1, PS2, PS3 a PS4 .
PS znamená Prompt Statement . Doposud jsme pracovali s hodnotou PS1. Chcete-li zobrazit aktuální hodnotu PS1, zadejte následující:
echo $PS1
V závislosti na systému vrací terminál pro výchozí nastavení něco takového:
Možná znáte \[email protected]\h
možnosti jako uživatelské jméno a hostitel . w
zobrazí aktuální pracovní adresář.
Nyní zobrazte hodnotu PS2:
echo $PS2
Systém by měl zobrazit pouze úhlovou závorku:
>
Opakování stejného příkazu pro PS3 by mělo být prázdné.
U PS4 uvidíte +
podepsat.
Zde jsou různé významy pro různé části výzvy BASH:
- PS1 – Toto je primární zobrazení výzvy. Zde nastavujete speciální znaky nebo důležité informace.
- PS2 – Toto je sekundární řetězec výzvy. To je obvykle nastaveno jako oddělovač mezi zobrazením výzvy a zadáním textu. Používá se také k zobrazení, když je dlouhý příkaz rozdělen na části pomocí \ podepsat.
- PS3 – Toto je výzva k
select
příkaz. - PS4 – Toto je výzva ke spuštění skriptu shellu v režimu ladění.
Ve většině případů budete pracovat pouze s PS1 a možná i PS2 možnost také.