159 lines
7.0 KiB
TeX
Executable File
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}
|