Files

159 lines
7.0 KiB
TeX
Executable File

\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}