• Keine Ergebnisse gefunden

X.org 2 X.org 1 Inhalt Grundlagen

N/A
N/A
Protected

Academic year: 2021

Aktie "X.org 2 X.org 1 Inhalt Grundlagen"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Foliensatz 3

Grundlagen

Inhalt

• Benutzung X.org

• Benutzung Bash

• Aufbau eines Befehls / Manpage

• Allgemeine Befehle

X.org 1

X.org ist ein Programm, das die graphische Oberfläche verwaltet. Es kommuniziert mit der Grafikkarte und stellt eine Brücke zu einem Fenstermanager („window-manager“, z.B.

Enlightenment, Fluxbox, Compiz, Mutter, KWin …) über ein Protokoll her.

• Der Festermanager verwaltet die Programmfenster (Rahmen, Platzierung, …) und bietet Möglichkeiten zum Minimieren, Maximieren, Wechseln,… von Programmfenstern. Der Inhalt der Programmfenster wird nicht vom Fenstermanager gestaltet, sondern dazu wird (fast immer) ein GUI- Toolkit (z.B. Qt, GTK, …) verwendet.

• Die Desktop-Umgebung (z.B. Gnome, KDE, XFCE, …) ist wiederum unabhängig vom Fenstermanager und bietet ein einheitliches Look and Feel sowie zusätzliche Funktionalitäten wie ein „Startmenu“, einen Dateimanager, Standardprogramme (Movieplayer, Audioplayer, Bildbetrachter, …) und dergleichen.

X.org 2

• Ein Display-Manager (z.B. XDM, KDM, GDM, LightDM, …) bietet die Möglichkeit zum graphischen Login und dem Anmelden an Rechnern im Netzwerk über XDMCP (X Display Manager Control Protocol).

• X.org kann sogar über das Netzwerk/Internet Applikationsfenster auf anderen X-Instanzen darstellen.

• freedesktop.org vereinheitlicht Fenstermanager und Desktop-Umgebungen durch Standards (z.B.

Notifikationen, „System Tray Icons“, …) und Software (xdg-utils, LightDM, …).

Tipps zur Bedienung, neben dem „Üblichen“:

• Text mit Maus markieren → Text wird automatich in die Zwischenablage kopiert

• Mittlere Maustaste drücken → Text aus der Zwischenablage einfügen

• Mittlere Maustaste auf Titelleiste → Fenster wird in den Hintergrund geschickt

• Alt-Taste + primäre Maustaste irgendwo im Fenster → Fenster verschieben

• Alt-Taste + sekundäre Maustaste irgendwo im Fenster → Fenstergröße ändern

(2)

X.org 3

• Die X.org Software ist eine Weiterentwicklung von X für Unix. In der Zeit als X entwickelt worden ist, gab es im Vergleich zu heute noch ganz andere Hardware, welche die Entwicklung stark beeinflusst hat. Mit X.org hat man gezeigt, dass dieses System für moderne Anwendungszwecke anpassbar ist, aber mittlerweile kommt man an die Grenzen des Machbaren.

• Deshalb wird derzeit ein Ersatz für X mit dem Namen Wayland entwickelt. Mit Wayland versucht man, die Komplexität zu verringern, in dem man sich auf das Wesentliche konzentriert. Wayland selbst ist nur eine Protokollspezifikation, die angibt, wie ein Display-Server mit Klienten zu kommunizieren hat. Die Referenzimplementierung des Display-Servers nennt sich Weston.

• Gleichzeitig wird gerade von Ubuntu ein Display-Server unter dem Namen Mir entwickelt. Nachdem sogar von Seiten Xubuntu bzw. Kubuntu die Unterstützung für Mir ausbleibt, wird sich im nächsten Jahr zeigen, wie es mit Mir weitergeht.

bash - Grundlagen 1

Die bash (Bourne Again Shell) ist die Standard-Shell auf Linux-Systemen und die, mit der wir uns befassen. Zur Wiederholung: Eine Shell dient dem Ausführen von Befehlen und der effizienten Manipulation von Textströmen.

Für die Eingabezeile wird die readline Bibliothek genutzt, daher gibt es einige Hilfsmittel für den Anwender:

• Befehls-History: Pfeiltaste rauf & runter

• History-Search: Strg-r sucht rückwärts in der History

• Navigation in der Zeile:

• Strg-Links / Alt-b → Cursor ein Wort nach links

• Strg-Rechts / Alt-f → Cursor ein Wort nach rechts

• Strg-a / Strg-e → Cursor zum Anfang/Ende der Zeile

• Die Tabulator-Taste vervollständigt (angefangene) Befehle, Pfade und Dateinamen. Zusammen mit dem Paket bash-completion werden auch Argumente und Optionen vervollständigt.

bash - Grundlagen 2

Grundsätzlich lassen sich vier Typen von Befehlen aufrufen:

• Shell-interne Befehle, diese entsprechen keinem Programm

Alias, das ist ein Synonym für einen Befehl (nur in der Shell gültig)

• (Systemweite) Programme

Shell-Skripte (systemweit oder selbst programmiert)

Welcher Befehl gewählt wird, hängt vom Pfad (der in der Variable

$PATH gespeichert ist) ab und lässt sich mittels type (oder dem Programm which) bestimmen.

Jeder Befehl hat einen Namen, eine bestimmte Syntax für Optionen/Parameter und benutzt meist Daten-Ströme (Standardeingabe stdin, Standardausgabe stdout und Standardfehlerausgabe stderr).

(3)

Anatomie eines Befehls

$ name [OPTIONEN] [ARGUMENTE]...

Beispiel:

$ ls -l -h --color=none change* copy*

total 10.1K

-rw-r--r-- 1 root root 1.8K Aug 11 2011 changelog.Debian.gz -rw-r--r-- 1 root root 8.3K Aug 11 2011 copyright

Ein Befehl hat auch einen Rückgabewert („exit value“ oder „exit status“; eine Zahl), welcher signalisiert, ob es einen Fehler gab (0 → fehlerfreie Ausführung, sonst nicht fehlerfreie Ausführung). Er steht in der Shell-Variablen $? zur Verfügung.

Beispiel:

$ rm not_existing_file

rm: cannot remove `not_existing_file': No such file or directory

$ echo $? # Datei erfolgreich gelöscht?

1

$ echo $? # Ausführung von echo-Befehl okay?

0

Anatomie eines Befehls - Manpage

• Manpages (Befehl man) erklären, was ein Befehl macht und wie er aufgerufen werden kann bzw.

welche Optionen/Parameter er unterstützt.

• Unterstrichene Ausdrücke bedeuten meist, dass diese durch konkrete Werte ersetzt werden müssen.

„|“ gibt Alternativen an, „[…]“ optionale Argumente (Defaults beachten!), „…“ bedeutet, dass dieses Argument öfters vorkommen darf.

• Beendet wird das Programm mit q, mit /<WORT> und n/N kann man suchen.

Beispiele für die Synopsis eines Befehls:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

ls [OPTION]... [FILE]...

Mehrere alternative Aufrufmöglichkeiten stehen untereinander:

mount [-lhV]

mount -a [-fFnrsvw] [-t vfstype] [-O optlist]

mount [-fnrsvw] [-o option[,option]...] device | dir mount [-fnrsvw] [-t vfstype] [-o options] device dir

Ausführen eines Befehls

Was passiert, wenn ein Befehl ausgeführt wird?

• Bash kopiert sich („fork“) - Kopie des bash-Prozesses ist Kind-Prozess.

• Der kopierte Unterprozess ersetzt sich selbst mit dem auszuführenden Programm („exec“). Es werden dabei alle Umgebungsvariablen des Eltern-Prozesses übernommen.

(4)

Wichtig: Ein Kindprozess kann nichts am Elternprozess ändern, es gibt nur den Rückgabewert und Signale.

Siehe auch Bash and the process tree

Wichtige bash-Befehle

• type → Typ des Befehls (intern, Programm, …)

• echo [Argumente...] → Schreibt Argumente nach stdout

• cd → Wechseln des Arbeitsverzeichnisses

• pwd → Ausgabe des aktuellen Arbeitsverzeichnisses nach stdout

• exit → Beenden der Shell

Tastenkombinationen und wichtig „Kürzel“:

• Strg-c → Unterbrechen/Beenden eines aktiven Befehls (Signal INT)

• Strg-d → Beenden der Shell (nur, wenn noch keine Zeichen eingetippt wurden)

• ~ steht für das eigene Home-Verzeichnis

• . steht für das aktuelle Verzeichnis

• .. steht für das Elternverzeichnis des aktuellen Verzeichnisses

Variablen können mittels name=inhalt (kein Leerzeichen!) zugewiesen und der Inhalt mit $name (z.B.

echo $name) wieder ausgelesen werden.

Allgemeine Befehle - Benutzer (whoami, id)

Jeder muss sich am System authentifizieren, bevor er Programme ausführen kann. Alle von einem Benutzer gestarteten Prozesse laufen (fast immer) mit seinen Rechten und unter seinem Namen.

whoami - Gibt aus, wer man laut System ist

» $ whoami thomas

id - Zeigt Benutzer- und Gruppeninformationen an.

» Zeigt mehr Informationen als whoami an, zum Beispiel auch die Gruppen, in denen der Benutzer Mitglied ist.

» Verwendet den aktuellen Benutzer oder den via Parameter angegebenen.

» $ id

uid=1515(thomas) gid=1515(thomas) groups=1515(thomas),4(adm),20(dialout),24(cdrom), 46(plugdev),116(lpadmin),118(admin),124(sambashare),129(vboxusers)

$ id root

uid=0(root) gid=0(root) groups=0(root)

Allgemeine Befehle - Benutzer (w, who, last)

w - Listet auf, wer eingeloggt ist und was derjenige macht

» w <login name> schränkt die Ausgabe auf einen bestimmten Benutzer ein.

» $ w

 13:56:13 up 4 days, 2:19, 3 users, load average: 0.03, 0.06, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT leitner pts/1 2001:62a:4:2f00: 13:56 0.00s 0.34s 0.00s w

sascha pts/2 2001:62a:4:2f00: 08:05 5:49m 0.52s 0.47s ssh name@baka sascha pts/4 2001:62a:4:2f00: 11:00 2:46m 0.08s 0.08s -zsh

(5)

who - Zeigt nur an, wer gerade eingeloggt ist

» $ who

leitner pts/1 2012-10-09 14:01 (2001:62a:4:2f00:8ce:4ac0:c4ee:ecb2) sascha pts/2 2012-10-09 08:05 (localhost)

sascha pts/4 2012-10-09 11:00 (2001:62a:4:2f00:6ef0:49ff:fe25:fa5b) last - Zeigt die Benutzer an, die zuletzt eingeloggt waren

» $ last

david pts/1 2001:62a:4:2f00: Wed Oct 10 10:37 - 10:50 (00:12) leitner pts/1 2001:62a:4:2f00: Tue Oct 9 14:01 - 14:02 (00:01) sascha pts/3 eduroam-239-013. Mon Oct 8 12:22 - 12:50 (00:28) wtmp begins Mon Oct 1 08:37:10 2012

Allgemeine Befehle - Pager (less, more)

less und more sind zwei sogenannte Pager, Programme, die es ermöglichen, Dateien oder die Ausgabe von anderen Programmen seitenweise darzustellen. Dabei ist less vorzuziehen, da es deutlich mehr kann als more („less is more than more“).

Wichtigste Tastenkombination für less:

• Bild rauf/runter oder Strg-b/Strg-f → eine Bildschirmseite nach oben/unten scrollen

• Pfeil rauf/runter oder k/j → eine Zeile nach oben/unten scrollen

• /MUSTER → nach dem Muster suchen, danach mit n/N zur nächsten/vorigen Fundstelle springen

• q → Programm beenden

Allgemeine Befehle - Sonstige (uptime, date)

uptime - Zeigt an, wie lange das System läuft und wie sehr es ausgelastet ist.

» Diese Auslastung wird über die letzten 1, 5 und 15 Minuten berechet und gibt an, wieviele Prozesse durchschnittlich aktiv gelaufen sind. Als Faustregel gilt, dass die Auslastung kleiner gleich der Anzahl an ausführenden CPU Threads sein sollte.

» $ uptime

 11:22:35 up 66 days, 23:01, 125 users, load average: 2.03, 2.00, 1.94 date - Gibt das Datum in einem konfigurierbaren Format aus

» Mit der Option -d kann man ein beliebiges Datum, nicht nur das aktuelle, formatieren.

» Wichtige Formatsequenzen sind %H (Stunde 00..23), %M (Minute 00..59), %S (Sekunde 00..59), %d (Tag 01..31), %m (Monat 01..12) und %Y (Jahr)

» $ date

Tue Oct 9 17:41:43 CEST 2012

$ date +"%Y-%m-%d foo %H:%M:%S"

2012-10-09 foo 17:42:03

$ date -d "2010-07-02 15:30:12" +"%Y-%m-%d foo %H:%M:%S"

2010-07-02 foo 15:30:12

Allgemeine Befehle - Sonstige (script)

script - Aufzeichnen aller Ein- und Ausgaben in einer Datei

» Das ist vor allem für die Übungen sehr nützlich (wie auch in der Manpage angemerkt).

» $ script hardcopy

Script started, file is hardcopy

$ whoami thomas

(6)

$ exit exit

Script done, file is hardcopy

$ cat hardcopy

Script started on Tue 09 Oct 2012 06:08:07 PM CEST

$ whoami thomas

$ exit exit

Script done on Tue 09 Oct 2012 06:08:42 PM CEST

Copyright und Lizenz

• Copyright: Thomas Leitner thomas.leitner@univie.ac.at

• Basiert teilweise auf den Folien von Harald Schilly harald.schilly@univie.ac.at

• Lizenz: Creative Commons CC BY-NC-SA

„Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Österreich.“ - http://creativecommons.org/licenses/by-nc-sa/3.0/at/

Referenzen

ÄHNLICHE DOKUMENTE

In der dritten Spalte haben wir (bis auf Vorzeichen) die Flächeninhalte der Fibonacci- Rechtecke gemäß Abbildung 1..

Daher bilden in einem 3d-Schachbrett die Mittelpunkte der Würfel gleicher Farbe, zum Beispiel die Mittelpunkte aller weißen Würfel, ein flächenzentriertes kubisches Gitter.. 3

So liegt der Anteil von B im Gleichgewicht bei 100 %, wenn keine Methylgruppe vorhanden ist, etwa bei der Hälfte, wenn eine Methylgruppe wirksam ist und bei 0 % liegt

Dennoch l¨aßt sich

[r]

Jeder Befehl hat einen Namen, eine bestimmte Syntax für Optionen/Parameter und benutzt meist Daten-Ströme (Standardeingabe stdin, Standardausgabe stdout und

The color of (C5Me6)2M020S3 is green in contrast to the red color of compound (C6Me5)2M02(p-s)202, a color which is characteristic for other complexes with two

Um die gegenwärtige Situation verstehen und Prognosen erstellen zu können, muss die zeit- geschichtliche Entwicklung der Milli-Görüş- Bewegung nachvollzogen werden. Wichtig ist