Bunte Shells - Benutzung der Shellfarben

Ähnliche Dokumente
Bunte Shells Benutzung der Shellfarben. Allgemeines. Konfiguration der Shell. LinuxFocus article number 335

SelfLinux Dateien unter Linux

SelfLinux Dateien unter Linux

Shell-Scripting Linux-Kurs der Unix-AG

Crashkurs Kommandozeile

Shell-Scripting Linux-Kurs der Unix-AG

Luis Kornblueh. May 22, 2014

Lösung Übungszettel 6 Aufgabe 1-4

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

SelfLinux cron

Wheelmouse-Konfiguration

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Linux Prinzipien und Programmierung

Shell-Scripting Linux-Kurs der Unix-AG

PC-Schriften mit AMP Font Viewer ansehen:

Grundlagen. Kapitel 1

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Die ersten Einstellungen in Mozilla und ZMS

Shell-Programmierung

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Praktikum Ingenieurinformatik. Termin 2. Mein erstes C-Programm

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Legen Sie auf ihrem Home-Verzeichnis zwei neue Verzeichnisse mit dem Namen an: Irfan-Bilder und Fotoshow.

Einführung in die C-Programmierung

Benutzung der Manpage, Shell Teil 3

105.1 Shell, Scripting

Was ist ein Prozess?

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

Jetzt wird auf die Zahl 2 geklickt und die Höhe der Zeile 2 eingestellt. Die Vorgehensweise ist wie

2 Einfache Rechnungen

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Einführung Unix Shell

Anleitung zur Multiple Choice Test-Template

Betriebssysteme UNIX/Linux Übungsthema 1 Einführung in UNIX/Linux. Dirk Wenzel Dr. Jörg Gruner

TSM-Client unter RedHat/CentOS-Linux einrichten

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS Prozesse (2/2) Folie 4

Linux - a bit advanced

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Inhaltsverzeichnis. 2 Designs erstellen Was PowerPoint von anderen Programmen unterscheidet Das Firmenlayout... 18

Installationsanleitung Tivoli Storage Manager für Mac OS

ShellShock-Patch-Anleitung

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Übungsblatt 1: Zur Benutzung von Computern im CIP-Pool der Informatik

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

GESTALTUNGSHELFER. Tipp zur Formatierung der Überschrift Die Überschrift erster Ebene soll immer auf einer neuen Seite angezeigt werden:

Design and Implementation of a Forensic Documentation Tool for Interactive Command-line Sessions

cs106 Informatiklabor Teil 1: Java-Installation

Grundlagen der Programmierung

PDF-Erzeugung mit PDF-Creator (nur für Windows, wenn kein Acrobat Distiller vorliegt)

Einführung in WEB 3.0

EBV mit Paint.NET. Über Datei Öffnen gelangen Sie an die zu öffnenden Bilder, die Sie im folgenden Öffnen- Dialog auswählen können.

So bringst du Prolog zum Laufen...

Desktop ade: Me and my shell

Grundlagen von C. Ausarbeitung von Jonas Gresens

Signieren und Signaturprüfung im Angebotsassistenten (AnA)

Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)

Computer & GNU/Linux Einführung Teil 4

Programmierkurs: Delphi: Einstieg

Arbeiten mit der Shell Teil 1

Praktikum RO1 Einführung Linux / Ubuntu / Bash

INHALTSVERZEICHNIS: 1. ANMELDUNG ÜBER WEBMAIL 2. MAILBOX

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1

Hello world. Sebastian Dyroff. 21. September 2009

Kurzanleitung. Zitiertil-Creator. Dokumentvorlagen Dokumente Formatvorlagen Format Zeichen Format Absatz

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Linux Prinzipien und Programmierung

ANSI C. Grundlagen der Programmierung. Ricardo Hernández García. 3. Ausgabe, 2. Aktualisierung, Dezember 2013 CANSI2

Anleitung: Webspace-Einrichtung

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Perforce Installation mit SSL

Beheben von Problemen bei SSH-Verbindungen in Reflection X

MySQL Schulung - Zusammenfassung

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Programmieren I + II Regeln der Code-Formatierung

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

Handbuch für Easy Mail in Leicht Lesen

Clientkonfiguration für Hosted Exchange 2010

Einstieg in die Informatik mit Java

SelfLinux IceWM. Autor: Robin Haunschild Formatierung: Florian Frank Lizenz: GPL

Installationsanleitung für DoRIS unter Linux Inhaltsverzeichnis

Teil 10. Beschreibung Textverarbeitung

Excel 2010 Kommentare einfügen

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: installcentos.odt

Funktionsbeschreibung Inhaltsverzeichnis

Kurzanleitung zu XML2DB

FAQ - Script gaesteform

Erste Schritte zum lauffähigen Java Programm

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Microsoft Office PowerPoint für Windows POW2007F. Autorin: Tina Wegener. Inhaltliches Lektorat: Sabine Spieß

Mifas unter Windows 2000 installieren

Verwendung von Lava Connect für Datentransfer

Transkript:

Bunte Shells - Benutzung der Shellfarben Autor: Nico Golde (nico@ngolde.de) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GPL

Bunte Shells - Benutzung der Shellfarben Seite 2 Inhaltsverzeichnis 1 Allgemeines 1.1 Konfiguration der Shell 1.2 Escape-Sequenzen 1.3 Farben der Shell benutzen 1.4 Eigenschaften der Schrift 2 Eine andere Form der Anwendung 2.1 Beispiele in C 2.2 Beispiel für die init-scripte 3 Feedback

Bunte Shells - Benutzung der Shellfarben Seite 3 1 Allgemeines Mit der Einführung in die Bourne Again Shell (bash) kommt praktisch jeder Linux-Benutzer irgendwann in Berührung. Auf den ersten Blick sieht diese sehr langweilig aus, doch man hat viele Möglichkeiten, seine Shell individuell zu gestalten. Farbliche Hervorhebungen der Eingabeaufforderung (des Shell-Promptes) machen die Shell zum Einen individuell und zum Anderen gut lesbar. Dieses Dokument bezieht sich auf die bash-shell. Die Escape-Sequenzen ( siehe unten) können sich von Terminal zu Terminal unterscheiden, der Autor bezieht sich in diesem Text auf ein ANSI Terminal. Ein ANSI Terminal ist ein Terminal, das zu dem Zeichensatzstandard ANSI kompatibel ist. Es gibt noch andere Zeichensätze, der bekannteste ist ASCII. Dieses Dokument kann nur einen kleinen Überblick über die Funktionalität der Shell in Bezug auf ihre Eigenschaften geben. Viele Themen werden nur angerissen oder überhaupt nicht erwähnt. Grundlegende Informationen zur bash sind in einem eigenen Kapitel Einführung in die Bourne Again Shell (bash) zu finden. Der Autor Nico Golde freut sich natürlich über Kommentare und Anregungen zu diesem Text. 1.1 Konfiguration der Shell Bei der bash ist die zentrale Konfigurationsdatei, die auch bei der Konfiguration der Shellfarbe zum Einsatz kommt, die Datei ~/.bashrc oder die globale bash-konfigurationsdatei /etc/bashrc. Mittels der PS1 Variable in der bashrc werden die Einstellungen für das Aussehen der Shell verändert. Normalerweise hat dieser Eintrag die folgende Form: PS1="\s-\v\$ " Dabei steht \s für den Namen und \v für die Version der Shell. Am Ende des Promptes wird dann ein $ gesetzt. Das Ganze sieht in der Shell so aus (ohne Anführungszeichen): "bash-2.05b$ " Da dies ein wenig langweilig ist, kann man stattdessen folgenden Eintrag verwenden, den die meisten Linux-Distributionen als Standardeinstellung haben: PS1="\u@\h \w \$ " Hier steht \u für den Benutzernamen, \h für den Hostnamen und \w für das aktuelle Verzeichnis. Als Prompt bekommt man jetzt (wieder ohne Anführungszeichen): "user@myhost /home $ " Dies ist der normale Shell-Prompt, den die meisten Linux-Benutzer gewöhnt sein werden. 1.2 Escape-Sequenzen

Bunte Shells - Benutzung der Shellfarben Seite 4 Um diesem Prompt mittels verschiedener Farben eine persönliche Note zu verleihen, verwendet man Escape-Sequenzen (engl: flüchten). Eine Escape-Sequenz ist ein Steuerzeichen, das die Shell veranlasst, etwas Bestimmtes auszuführen, sozusagen aus ihrem normalen Modus zu flüchten. Escape-Sequenzen werden auch Steuerzeichen genannt und sind keine normalen druckbaren Zeichen. Vielmehr dienen sie dazu, Bildschirmausgaben eines Programms zu manipulieren (steuern). Eine Escape-Sequenz wird normalerweise mittels ^[ eingeleitet. Diese Schreibweise ist etwas gewöhnungsbedürftig. \033 hat denselben Effekt. In der Shell kann man, statt die Sequenz zu tippen, allerdings auch Strg + V ESC drücken. 1.3 Farben der Shell benutzen Die Farben der Shell werden zunächst an einem Beispiel-Prompt erklärt. PS1="\[\033[0;32;40m\u@\h:\w\$ \]" Dies stellt den kompletten Prompt in grün dar. \033 leitet die Escape Sequenz ein, [ eröffnet die Farbangabe. Die anschließende 0 gibt an, dass eine Normaldarstellung benutzt wird. Welche anderen Möglichkeiten man an dieser Stelle hat, wird später erwähnt. Die gesamte Sequenz ist in \[ und \] eingeschlossen, damit sie nicht in die Ausgabe mit hinein kommen und Platz auf der Shell wegnehmen. Als nächstes wird die Vordergrundfarbe gewählt (in diesem Fall 32, das entspricht Grün). Die Hintergrundfarbe 40 steht für die Farbe Schwarz. Möchte man in unserem Beispiel nicht, dass die Schrift nach dem Prompt auch grün ist, so fügt man an den Schluss die Escape Sequenz \033[0m an. Dies ist die Voreinstellung für die Shellfarbe. Sowohl für den Vordergrund als auch für den Hintergrund stehen 8 Farben zur Verfügung. Auswahl: schwarz, rot, grün, gelb, blau, magenta, cyan und weiß. Die Zahlen dafür sind: 30, 31, 32, 33, 34, 35, 36, 37. Das Setzen der Hintergrundfarbe verläuft genauso, allerdings statt 3 mit 4. Also 40, 41, 42, 43, 44, 45, 46, 47. Beispiel: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]" Am besten testet man diese Einstellungen per export PS1="string" in der Kommandozeile und kann die Einstellungen später in die bashrc eintragen. Der aktuelle Prompt des Autors sieht z.b. so aus: PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] " 1.4 Eigenschaften der Schrift Wie oben erwähnt ist die 0 direkt nach der ersten Escape Sequenz die Voreinstellung für die Schrift des Shell-Promptes. Für die Schrifteigenschaft sind die folgenden Werte sinnvoll: 0, 1, 22, 4, 24, 5, 25, 7, 27. Sie bedeuten: Standard, dick, nicht dick, unterstrichen, nicht unterstrichen, blinkend, nicht blinkend, invers, nicht invers.

Bunte Shells - Benutzung der Shellfarben Seite 5 Mit dem folgenden kleinen Shell-Script kann man sich die Farbkombinationen ansehen: #!/bin/sh ############################################################ # Nico Golde <nico@ngolde.de> Homepage: http://www.ngolde.de # Letzte Änderung: Mon Feb 16 16:24:41 CET 2004 ############################################################ for attr in 0 1 4 5 7 ; do echo "----------------------------------------------------------------" printf "ESC[%s;Vordergrund;Hintergrundm - \n" $attr for fore in 30 31 32 33 34 35 36 37; do for back in 40 41 42 43 44 45 46 47; do done printf '\n' done printf '\033[0m' done printf '\033[%s;%s;%sm %02s;%02s ' $attr $fore $back $fore $back

Bunte Shells - Benutzung der Shellfarben Seite 6 2 Eine andere Form der Anwendung Die Fähigkeit der Farbsetzung in der Shell macht nicht nur Sinn, wenn man einen schöneren Shell-Prompt haben möchte, sondern kann auch in der Programmierung eines Programmes für die Konsole sinnvoll sein. So müsste man bei jeder Benutzung von Farben auf Bibliotheken wie slang oder ncurses zurückgreifen, was die Größe der Binärdatei beachtlich steigen ließe. Ncurses hat allerdings den Vorteil, dass es mehr oder weniger unabhängig vom Terminal-Typ ist. 2.1 Beispiele in C Ein Hello World mit grüner Schrift: Hello World #include <stdio.h> int main(void){ const char *const green = "\033[0;40;32m"; const char *const normal = "\033[0m"; printf("%shello World%s\n", green, normal); return 0; } Eine weitere nützliche Escape Sequenz ist printf("\033[2j"); Sie hat denselben Effekt wie system(clear); allerdings kann man damit auf die Headerdatei unistd.h verzichten. Mit printf("\033[1k"); lässt sich eine Zeile löschen. 2.2 Beispiel für die init-scripte Möchte man nicht, dass beim Starten der init-scripte in /etc/init.d nur ein '.' beim erfolgreichen Starten des Prozesses angezeigt wird, sondern statt dessen eine farbliche, besser lesbare Ausgabe, so ist dies auch mittels einer Escape-Sequenz lösbar. Hier ein Auszug aus einem Cron init-script: Cron init-script #!/bin/sh # Start/stop the cron daemon. test -f /usr/sbin/cron exit 0 case "$1" in start) echo -n "Starting periodic command scheduler: cron" start-stop-daemon --start --quiet --exec /usr/sbin/cron echo "." ;; Beim erfolgreichen Starten von Cron wird dann ein Punkt ausgegeben. Farblich könnte man das auch durch [Ok] gestalten, indem man den echo String ändert. Z.B. so:

Bunte Shells - Benutzung der Shellfarben Seite 7 Cron init-script 2 #!/bin/sh # Start/stop the cron daemon. test -f /usr/sbin/cron exit 0 case "$1" in start) echo -n "Starting periodic command scheduler: cron" start-stop-daemon --start --quiet --exec /usr/sbin/cron echo "\[ \033[1;34;40m[ \033[1;32;40mOk \033[1;34;40m]\033[0m\]" ;; Möchte man diese Einstellungen allerdings für alle init-scripte vornehmen, ist das sehr zeitaufwändig, es sei denn, man benutzt als Escape Sequenz \033, da Strg + v ESC nicht als Zeichen interpretiert wird. Es kann sich allerdings ein weiteres Problem ergeben: Bei einer System-Aktualisierung, wie z.b. der Einspielung von Sicherheitsaktualisierungen können veränderte init-scripte und andere Konfigurationsdateien durch Distributionsstandards überschrieben werden. Dadurch könnte das farbige [ OK ] schneller verschwinden, als es eingerichtet wurde.

Bunte Shells - Benutzung der Shellfarben Seite 8 3 Feedback Feedback, Kritik, Bugs etc. bitte per Mail an Viel Spaß... nico@ngolde.de schicken.