GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat ikonu do výzvy bash

Vlastně ano, můžete.

V posledních verzích Bash, alespoň 4 (mohl jsem to udělat ve 4.2 a 4.3), můžete vykreslit emotikony pomocí hexu.

Použijte echo -e vlajka.

vložte emotikon, který jste vyhledali, a proveďte hexdump, abyste viděli, z čeho se skládá:

plasmarob ~ $ echo -n ""| hexdump

0000000 f0 9f 87 ba f0 9f 87 b8                        
0000008

A pak vezměte tento horní řádek a opusťte každý hexadecimální pár pomocí \x :

plasmarob ~ $ echo -e 'See? \xf0\x9f\x87\xba\xf0\x9f\x87\xb8'
See? 

Vlastně jsem svůj upravil tak, aby byl:

plasmarob ~ ⚡

Takže ano, vymyslete jeden takový a zkuste ho přidat do svého .bashrc nebo .bash_profile .

Upravit:Něco s vykreslováním SO nebo prohlížečem se mohlo změnit, protože příznak v tomto příspěvku se nyní vykresluje jako znak „US“. YMMV, ale předpokládám, že to bude stále fungovat v uvedených verzích bash.


V současné době můžete přidat emotikony, pokud máte písmo podporující emotikony. Myslím, že to nebyla snadno proveditelná možnost, když byla otázka původně zveřejněna

Napsal jsem o tom tento blogový příspěvek před několika lety.

Neznám americké vlajky, ale export PS1="\360\237\232\251 > " dostane ve výzvě příznak.

Napsal jsem také nástroj shellu, aby byl tisk úniků pro echo nebo shell prompt trochu jednodušší. Říká se tomu emo


Promiň ne. Terminály nepracují s grafikou.

Úplný popis toho, co můžete viz VÝZVA sekce manuálové stránky bash(1):

VÝZVA

Při interaktivním provádění bash zobrazí primární výzvu PS1, když je připraven přečíst příkaz, a sekundární výzvu PS2, když potřebuje více vstupu k dokončení příkazu. Bash umožňuje přizpůsobení těchto výzev vložením několika speciálních znaků bez zpětného lomítka, které jsou dekódovány následovně:

\a     an ASCII bell character (07)
\d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format}
       the  format  is  passed to strftime(3) and the result is inserted into the
       prompt string; an empty format results in a locale-specific time
       representation. The braces are required
\e     an ASCII escape character (033)
\h     the hostname up to the first ‘.’
\H     the hostname
\j     the number of jobs currently managed by the shell
\l     the basename of the shell’s terminal device name
\n     newline
\r     carriage return
\s     the name of the shell, the basename of $0 (the portion following the final
       slash)
\t     the current time in 24-hour HH:MM:SS format
\T     the current time in 12-hour HH:MM:SS format
\@     the current time in 12-hour am/pm format
\A     the current time in 24-hour HH:MM format
\u     the username of the current user
\v     the version of bash (e.g., 2.00)
\V     the release of bash, version + patch level (e.g., 2.00.0)
\w     the current working directory, with $HOME abbreviated with a tilde (uses the
       value of the PROMPT_DIRTRIM variable)
\W     the basename of the current working directory, with $HOME abbreviated with a
       tilde
\!     the history number of this command
\#     the command number of this command
\$     if the effective UID is 0, a #, otherwise a $
\nnn   the character corresponding to the octal number nnn
\\     a backslash
\[     begin a sequence of non-printing characters, which could be used to embed a
       terminal control sequence into the prompt
\]     end a sequence of non-printing characters

Číslo příkazu a číslo historie se obvykle liší:číslo historie příkazu je jeho pozice v seznamu historie, který může zahrnovat příkazy obnovené ze souboru historie (viz HISTORIE níže), zatímco číslo příkazu je pozice v pořadí. příkazů provedených během aktuální relace shellu. Poté, co je řetězec dekódován, je rozbalen pomocí rozšíření parametrů, nahrazení příkazů, aritmetické expanze a odstranění uvozovek, v závislosti na hodnotě možnosti shell promptvars (viz popis příkazu shopt pod SHELL BUILTIN COMMANDS níže).

\e , \[ a \] únikové sekvence si zaslouží zvláštní pozornost. Pomocí nich můžete vkládat únikové kódy ANSI, abyste terminálu přikázali změnit barvu popředí, barvu pozadí, přesunout kurzor, vymazat části obrazovky a provádět další fantastické triky.

To je například způsob, jakým vaše výzva změní barvu. \[\e[0;31m\] nastaví barvu popředí na červenou a \[\e[0;0m\] obnoví výchozí nastavení.


Linux
  1. Jak zkrátit Bash Prompt v Linuxu?

  2. Jak používat příkaz basename?

  3. Jak zjistit počet jader v Ubuntu

  1. Jak si mohu vybavit argument předchozího příkazu bash?

  2. Jak získám počet snímků ve videu na příkazovém řádku linuxu?

  3. Jak přidat příkaz do editoru vim?

  1. Jak nastavit barvu příkazového řádku v Bash?

  2. Jak zobrazit aktuální cestu v příkazovém řádku v linuxovém sh (ne bash)?

  3. Jak rychle změnit první slovo v příkazu Bash?