GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So fügen Sie der Bash-Eingabeaufforderung ein Symbol hinzu

Eigentlich ja, kannst du.

In neueren Versionen von Bash, mindestens 4 (ich könnte es in 4.2 und 4.3 tun), können Sie Emoji mit dem Hex rendern.

Verwenden Sie den echo -e Flagge.

Füge ein Emoji ein, in dem du nachgeschaut hast, und mache einen Hexdump, um zu sehen, woraus es besteht:

plasmarob ~ $ echo -n ""| hexdump

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

Und dann nehmen Sie diese oberste Zeile und entkommen jedem Hex-Paar mit \x :

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

Ich habe meine tatsächlich so geändert, dass sie lautet:

plasmarob ~ ⚡

Also ja, denken Sie sich so einen aus und versuchen Sie, ihn zu Ihrem .bashrc hinzuzufügen oder .bash_profile .

Bearbeiten:Möglicherweise hat sich etwas mit SO oder dem Browser-Rendering geändert, da das Flag in diesem Beitrag jetzt als "US" -Zeichen gerendert wird. YMMV, aber ich gehe davon aus, dass es in den angegebenen Versionen von bash noch funktionieren wird.


Heutzutage können Sie Emoji hinzufügen, wenn Sie eine Emoji-fähige Schriftart haben. Ich denke, dies war keine leicht praktikable Option, als die Frage ursprünglich gepostet wurde

Ich habe vor ein paar Jahren diesen Blogbeitrag darüber geschrieben.

Ich weiß nichts über amerikanische Flaggen, aber export PS1="\360\237\232\251 > " erhält ein Flag in Ihrer Eingabeaufforderung.

Ich habe auch ein Shell-Tool geschrieben, um das Drucken der Escapes für Echo oder Shell-Prompt ein wenig einfacher zu machen. Es heißt emo


Entschuldige Nein. Terminals machen keine Grafiken.

Für eine vollständige Beschreibung dessen, was Sie können tun, siehe die AUFFORDERUNG Abschnitt der Manpage bash(1):

AUFFORDERUNG

Bei der interaktiven Ausführung zeigt bash die primäre Eingabeaufforderung PS1 an, wenn es bereit ist, einen Befehl zu lesen, und die sekundäre Eingabeaufforderung PS2, wenn weitere Eingaben erforderlich sind, um einen Befehl abzuschließen. Bash ermöglicht die Anpassung dieser Eingabeaufforderungszeichenfolgen durch Einfügen einer Reihe von Sonderzeichen mit Backslash-Escapezeichen, die wie folgt decodiert werden:

\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

Die Befehlsnummer und die Verlaufsnummer sind normalerweise unterschiedlich:Die Verlaufsnummer eines Befehls ist seine Position in der Verlaufsliste, die Befehle enthalten kann, die aus der Verlaufsdatei wiederhergestellt wurden (siehe VERLAUF unten), während die Befehlsnummer die Position in der Sequenz ist der während der aktuellen Shell-Sitzung ausgeführten Befehle. Nachdem die Zeichenkette decodiert ist, wird sie durch Parametererweiterung, Befehlsersetzung, arithmetische Erweiterung und Entfernung von Anführungszeichen erweitert, abhängig vom Wert der Shell-Option promptvars (siehe die Beschreibung des shopt-Befehls unter SHELL BUILTIN COMMANDS weiter unten).

Die \e , \[ und \] Escape-Sequenzen verdienen besondere Aufmerksamkeit. Mit diesen können Sie ANSI-Escape-Codes einfügen, um dem Terminal zu befehlen, die Vordergrundfarbe und die Hintergrundfarbe zu ändern, den Cursor zu bewegen, Teile des Bildschirms zu löschen und andere ausgefallene Tricks auszuführen.

So ändert sich zum Beispiel Ihre Eingabeaufforderung die Farbe. \[\e[0;31m\] setzt die Vordergrundfarbe auf Rot und \[\e[0;0m\] setzt es auf die Standardeinstellung zurück.


Linux
  1. Wie kürze ich die Bash-Eingabeaufforderung unter Linux?

  2. Der „eval“-Befehl in Bash?

  3. So ändern Sie die Anzahl der im Bash-Verlauf gespeicherten Befehle

  4. Wie zeige ich den aktuellen Pfad in der Eingabeaufforderung in Linux sh (nicht bash) an?

  5. Wie ändere ich schnell das erste Wort in einem Bash-Befehl?

So verwenden Sie den Bash-Let-Befehl {mit Beispielen}

So verwenden Sie den Bash-Lesebefehl

So passen Sie die Bash-Eingabeaufforderung unter Linux an

So erhalten Sie die Anzahl der Prozessoren / Kerne in Linux

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl

Wie finde ich die Zeilennummer in Bash, wenn ein Fehler aufgetreten ist?