\section{Prompt} \subsection{Bash} \begin{justify} Den Prompt kann mit der Variable {\ttfamily PS1} eingestellt werden. Den Prompt für einen Mehrzeiligen Befehl wird mit {\ttfamily PS2} gemacht. Die Variable {\ttfamily PS3} kann man für Abfragen, wie z.B. mit {\ttfamily select} verwenden. \listBash \begin{lstlisting}[captionpos=b, caption=Setzen PS1 und PS2] uws@tux>export PS1="[\t] \u@\h:\w>" [10:26:22] uws@tux:~> [10:26:22] uws@tux:~>export PS2="Next> " \end{lstlisting} In der nachfolgenden Tabelle ist ein Auszug der Escape Sequencen. \begin{table}[ht] \begin{tabular}{lp{12cm}} % l => Text left, c => center, r => right, p => zeilenumbruch \rowcolor{hellgrau}\emph{\textbf{Escape-Sequence}} & \emph{\textbf{Beschreibung}} \\ \hline \hline \verb|\|a & Der Ascii Klingel character (07) \\ \verb|\|d & Das Datum in "Wochentag Monat Datum" z.B. Mon Mai 22 \\ \verb|\|e & Der Ascii Escape character (033) \\ \verb|\|h & Der hostname bis zu ersten. \\ \verb|\|H & Der hostname \\ \verb|\|j & The number of jobs currently managed by the shell\\ \verb|\|l & The basename of the shell's terminal device name\\ \verb|\|n & Newline\\ \verb|\|r & Carriage return\\ \verb|\|s & Der Name der Shell, der Basisname von \$0\\ \verb|\|t & Die aktuelle Zeit im 24 Stunden Format HH:MM:SS\\ \verb|\|T & Die aktuelle Zeit im 12 Stunden Format HH:MM:SS\\ \verb|\|@ & Die aktuelle Zeit im 12 Stunden Format am/pm\\ \verb|\|u & Den Usernamen des angemeldeten User\\ \verb|\|v & Die Version der Bash\\ \verb|\|V & Das Release der Bash, Version + Patchlevel\\ \verb|\|w & Das aktuelle Arbeitsverzeichnis\\ \verb|\|W & Der Basisname des aktuellen Arbeitsverzeichnisses\\ \verb|\|! & The history number of this command\\ \verb|\|\# & The commans number of this command\\ \verb|\|\$ & Ist die UID gleich 0, dann \#, sonst \$\\ \verb|\|nnn & The character corresponding to the octal number nnn\\ \verb|\|\verb|\| & Ein Backslash\\ \verb|\|[ & Begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt\\ \verb|\|] & End a sequence of non-printing characters\\ \end{tabular} \caption{Auswahl Escape Sequencen} \end{table} \newpage \begin{justify} Dem Prompt kann man auch farbig darstellen. Um z.B. dem User root eine andere Farbe zuzuweisen. Die Angabe der Farbe wird durch {\ttfamily \verb|\|[} und {\ttfamily \verb|\|]} begrenzt. Es lassen sich der Hintergrund und der Text in Farbe darstellen. \end{justify} % ---------------Start new table --------------- \begin{table}[ht] \begin{tabular}{p{3.5cm}p{12.5cm}} % l => Text left, c => center, r => right, p => zeilenumbruch \rowcolor{hellgrau}\emph{\textbf{Sequenz}} & \emph{\textbf{Farbe}}\\ \hline \hline \verb|\|[\verb|\|033[XXm\verb|\|] & Keine Hintergrundfarbe\\ \verb|\|[\verb|\|033[40;XXm\verb|\|] & Schwarz\\ \verb|\|[\verb|\|033[41;XXm\verb|\|] & Rot\\ \verb|\|[\verb|\|033[42;XXm\verb|\|] & Gr"un\\ \verb|\|[\verb|\|033[43;XXm\verb|\|] & Hellbraun\\ \verb|\|[\verb|\|033[44;XXm\verb|\|] & Blau\\ \verb|\|[\verb|\|033[45;XXm\verb|\|] & Lila\\ \verb|\|[\verb|\|033[46;XXm\verb|\|] & T"urkis\\ \verb|\|[\verb|\|033[47;XXm\verb|\|] & Hellgrau\\ \end{tabular} \caption{Hintergrund Farben} \end{table} % ---------------Start new table --------------- \begin{table}[ht] \begin{tabular}{p{3.5cm}p{12.5cm}} % l => Text left, c => center, r => right, p => zeilenumbruch \rowcolor{hellgrau}\emph{\textbf{Sequenz}} & \emph{\textbf{Farbe}}\\ \hline \hline \verb|\|[\verb|\|033[0;30m\verb|\|] & Schwarz\\ \verb|\|[\verb|\|033[1;30m\verb|\|] & Dunkelgrau\\ \verb|\|[\verb|\|033[0;31m\verb|\|] & Rot\\ \verb|\|[\verb|\|033[1;31m\verb|\|] & Hellrot\\ \verb|\|[\verb|\|033[0;32m\verb|\|] & Gr"un\\ \verb|\|[\verb|\|033[1;32m\verb|\|] & Hellgr"un\\ \verb|\|[\verb|\|033[0;33m\verb|\|] & Braun\\ \verb|\|[\verb|\|033[1;33m\verb|\|] & Gelb\\ \verb|\|[\verb|\|033[0;34m\verb|\|] & Blau\\ \verb|\|[\verb|\|033[1;34m\verb|\|] & Hellblau\\ \verb|\|[\verb|\|033[0;35m\verb|\|] & Lila\\ \verb|\|[\verb|\|033[1;35m\verb|\|] & Helles Lila\\ \verb|\|[\verb|\|033[0;36m\verb|\|] & Dunkles t"urkis\\ \verb|\|[\verb|\|033[1;36m\verb|\|] & T"urkis\\ \verb|\|[\verb|\|033[0;37m\verb|\|] & Hellgrau\\ \verb|\|[\verb|\|033[1;37m\verb|\|] & Wei"s\\ \verb|\|[\verb|\|033[0m\verb|\|] & Auf default Farbe setzten\\ \end{tabular} \caption{Text Farben} \end{table} \newpage \begin{justify} Die Uhrzeit kann in dem nachfolgenden Beispiel in der rechten oberen Ecke platziert werden. Die Variable {\ttfamily COLUMNS} enth"alt die Anzahl der Spalten im Terminal. \end{justify} \listBash \begin{lstlisting}[captionpos=b, caption=Uhrzeit rechts oben] uws@tux>export PS1="\033[s\033[1;\$((COLUMNS-4))f\$(date +%H:%M)\033[u" \end{lstlisting} \begin{figure}[ht] \centering \includegraphics[scale=0.5]{Kapitel1/Pictures/PromptTime.png} \caption{Prompt mit Zeitangabe} \end{figure} Im nachfolgenden Beispiel wird der Prompt mit der Farbe {\ttfamily gr"uen} dargestellt. Am Anfang leitet das {\ttfamily \verb|\|e} die Farbe ein und am Ende der Zeile wird durch ein {\ttfamily \verb|\|e[m} die Farbe wieder ausgeschaltet. \listBash \begin{lstlisting}[captionpos=b, caption=Prompt in Gr"un] uws@tux>export PS1="\e[1;32m \u@\w:~> \e[m" \end{lstlisting} \newpage %-------------------------------------------------------------------------------- % ZSH %-------------------------------------------------------------------------------- \subsection{Zsh} Die Farbwerte f"ur die Zsh Shell sind die gleichen wie die der Bash. Sie k"onnen in der vorherigen Tabelle nachgeschaut werden. \listBash \begin{lstlisting}[captionpos=b, caption=Beispiel Zsh Shell] uws@tux>export PS1=$'\e[1;32m%n@%/:=> \e[0m' \end{lstlisting} \begin{figure}[ht] \centering \includegraphics[scale=0.5]{Kapitel1/Pictures/PromptZsh.png} \caption{Zsh Prompt} \end{figure} In der nachfolgenden Tabelle ist ein Auszug der vorhandenen Escape Sequencen. \begin{table}[ht] \begin{tabular}{p{4cm}p{12cm}} % l => Text left, c => center, r => right, p => zeilenumbruch \rowcolor{hellgrau}\emph{\textbf{Escape-Sequenz}} & \emph{\textbf{Beschreibung}}\\ \hline \hline \%/ & Arbeitsverzeichnis (pwd)\\ \%~ & Arbeitsverzeichnis, aber das Home Verzeichnis wird mit ~ angezeigt.\\ \%M & Der ganze Hostname\\ \%n & Der Hostname bis zum ersten Punkt\\ \%@ & Uhrzeit im 12 Stunden Format\\ \%T & Uhrzeit im 24 Stunden Format\\ \%* & Uhrzeit im 24 Stunden Format incl. der Sekunden\\ \%n & Username\\ \%N & Name eines Scripts, Source File oder Shell\\ \%w & Datum im day-dd Format\\ \%W & Datum immm/dd/yy Format\\ \%D & Datum im yy-mm-dd Format\\ \end{tabular} \caption{Liste Escape Sequencen} \end{table} Die Farbe des Prompts nach der Shell Background Farbe einstellen. In dem nachfolgenden Beispiel wird abgefragt, ob die Hintergrundfarbe Wei"s ist. \listBash \begin{lstlisting}[captionpos=b, caption=Beispiel Backgrond Color] if [ "${COLORFGBG}" = "0;15" ]; then PS1=$'\e[0;30m%n@%m %~\e[0m\n$' else PS1=$'\e[1;32m%n@%m %~\e[1;33m %~\e[0m\n$' fi \end{lstlisting} %\vspace{15cm} \end{justify}