• Keine Ergebnisse gefunden

Technische Praxis der Computersysteme 1

N/A
N/A
Protected

Academic year: 2021

Aktie "Technische Praxis der Computersysteme 1"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Praxis der Computersysteme 1

9. Sonstiges

Thomas Leitner <thomas.leitner@univie.ac.at>

Fakultät für Mathematik, Universität Wien Wintersemester 2012

Letzte Änderung: 2013-09-20 20:46:08 +0200

Inhalt

Start des Betriebssystems Wichtige Shell-Variablen Wichtige Geräte

Nützliche Befehle

Start des Betriebssystems

Das BIOS (Basic Input Output System) bzw. das UEFI (Unified Extensible Firmware Interface) – gespeichert auf einem Chip direkt am Motherboard – initialiert die Hardware und läd den Boot-Loader einer Festplatte, eines USB Gerätes, einer CD, …

Der Boot-Loader (unter Linux meist grub2) übergibt die Kontrolle an ein Betriebssystem, in unserem Fall dem Linux-Kernel. Der Boot-Loader grub2 bietet die Möglichkeit, verschiedene Betriebssystem zu laden (Linux, Windows, *BSD).

Der Linux-Kernel bereit die Hardware vor und übergibt dann an den init-Prozess. Es gibt mehrere verschiedene init-Programme, früher SysV-Init mit den Init-Skripten. Um den Start zu optimieren, verwenden moderne Distributionen andere init-Programme (Ubuntu z.B. Upstart, Fedora z.B.

systemd).

Der init-Prozess lädt nun alle Dienste (Dämonen - Disk and Execution Monitors), die im Hintergrund laufen sollen, und schließlich die Login-Programme (entweder nur die Konsolen-Login-Programme oder auch die graphische Oberfläche).

Wichtige Shell-Variablen 1

Wichtige Shell-Variablen 2

USER

Name des aktuellen Benutzers.

PWD

Das aktuelle Arbeitsverzeichnis.

PATH

Der Suchpfad für Programme (eine Liste von absolute Verzeichnispfaden, getrennt durch Doppelpunkte).

CDPATH

Der Suchpfad für den

cd

-Befehl (nützlich, wenn man oft in bestimmte Unterverzeichnisse eines Verzeichnisses wechselt).

HOME

Das Benutzerverzeichnis des aktuellen Benutzers.

»

»

»

»

»

PS1, PS2

Definition des primären und sekundären Prompts der Bash.

»

(2)

Wichtige Geräte

Standardeingabe in Befehlsargumente umwandeln - xargs

Befehle als anderer Benutzer ausführen - sudo, su

IFS

Feldseparator der Bash (Internal Field Separator, wird zum Teilen von Wörtern verwendet, Standardwert ist

<Leerzeichen><Tabulator><Zeilenvorschub>

)

EDITOR

Angabe des Standard-Texteditors (wird von vielen Programmen genutzt).

LANG

Gibt die Sprache, Lokalisierung und die Zeichenkodierung an (z.B.

en_US.UTF-8

oder

de_AT.UTF-8

)

TERM

Die Art des Terminals, in der die Shell läuft (z.B.

screen

oder

xterm

; Ausgabe der Informationen zum aktuellen Terminal mittels

infocmp

).

»

»

»

»

/dev/null

Beim lesenden Zugriff wird immer ein EOF (End of file) zurückgegeben, alle geschriebenen Daten werden weggeworfen (

man 4 null

).

/dev/zero

Beim lesenden Zugriff wird immer das Byte 0 zurückgegeben, alle geschriebenen Daten werden weggeworfen (

man 4 zero

).

/dev/full

Beim lesenden Zugriff wird immer das Byte 0 zurückgegeben, beim Schreiben tritt immer ein ENOSPC-Fehler auf (zum Testen von Programmen;

man zero

).

/dev/random, /dev/urandom

Beim lesenden Zugriff wird ein zufälliges Byte zurückgegeben. Falls der Entropie-Pool leer ist,

blockiert das Gerät

/dev/random

, aber nicht

/dev/urandom

(das könnte eventuell Angriffe auf die generierten Zufallszahlen erlauben).

»

»

»

»

xargs - Wandelt die Standardeingabe in Argumente für einen Befehl um.

Teilt die Standardeingabe in Wörter (Trennzeichen sind Leerzeichen und Zeilenumbruch) und übergibt diese Wörter einem Befehl als Argumente.

Sehr nützlich z.B. in Verbindung mit

find

.

Optionen:

-I Ersetzungszeichenkette

→ die angegebene Zeichenkette wird durch ein Argument ersetzt (und das Trennzeichen ist nur mehr der Zeilenumbruch),

-n Zahl

→ Anzahl der Argument pro Befehlausführung,

-0

→ Trennzeichen ist das Null-Byte.

$ echo -e "a b c\nd e f" | xargs -n 2 echo a b

c d e f

$ echo -e "a b c\nd e f" | xargs -I{} echo Das ist jetzt: {}

Das ist jetzt: a b c Das ist jetzt: d e f

$ find /tmp -name core -type f -print0 | xargs -0 /bin/rm -i

»

»

»

»

»

su - Benutzer wechseln oder Superuser (root) werden.

Syntax:

su [Optionen] [Benutzername]

(ohne Benutzername wird man root).

Man muss das Passwort des Benutzers wissen, auf den man wechseln will!

Optionen:

-/-l

→ Login-Shell des Benutzers verwenden.

$ su - Passwort:

»

»

»

»

(3)

Befehle als anderer Benutzer ausführen - sudo, su

Unter Gnome gibt es für beide Befehle die grafische Oberfläche

gksu

.

Manche versuchen es auch im realen Leben (meist mit wenig Erfolg):

XKCD Comic 149

Mit einem Server arbeiten - ssh, scp

root@noweto:~#

sudo - Befehle mit den Rechten eines anderen Benutzers ausführen.

Syntax:

sudo [Optionen] [Befehl]

.

Standardmäßig werden die Befehle als root ausgeführt.

Konfigurationsdatei ist

/etc/sudoers

(editieren mit

visudo

).

Man muss sein eigenes Passwort eingeben (nicht das des anderen Benutzers) und über die Konfigurationsdatei die Rechte zum Ausführen des Befehls haben.

Optionen:

-u Benutzername|UID

→ Befehl als dieser Benutzer ausführen,

-i

→ Login-

Shell ausführen.

$ sudo -i

[sudo] password for thomas:

root@noweto:~#

»

»

»

»

»

»

ssh - Erlaubt das sichere Einloggen auf einem Server.

Voraussetzung: SSH-Dämon und Benutzeraccount am Server.

Der Server ist mittels eines Schlüssels eindeutig identifiziert (damit man sicher gehen kann, dass man sich auf den richtigen Server einloggt) und der Datentransfer ist verschlüsselt.

Einloggen kann man sich via Passwort oder auch einem kryptographischen, asymmetrischen Schlüssel (Public Key Authentication).

Man kann mit dem Programm auch TCP-Ports weiterleiten oder VPNs erstellen.

$ ssh leitner@login.mat.univie.ac.at leitner@login:~$

$ ssh -o PubkeyAuthentication=false leitner@login.mat.univie.ac.at leitner@login.mat.univie.ac.at's password:

leitner@login:~$

scp - Kopiert Dateien sicher von/auf einem Server.

Syntax:

scp [Optionen] [[User@]Server1]:Pfad1 [[User@]Server2]:Pfad2

Basiert auf ssh, d.h. der Datentransfer ist verschlüsselt, Host wird authentifziert…

$ scp notizen.org leitner@login.mat.univie.ac.at:~/

notizen.org

»

»

»

»

»

»

»

»

(4)

Dateien komprimieren - gzip, bzip2, tar

Roh-Kopien erstellen - dd

Sonstige Programme

Sonstige Programme

gzip, bzip2 - Komprimieren Dateien.

Übliche Dateierweiterung für gzip-Dateien ist

gz

, für bzip2-Dateien

bz2

.

Können keine Archive erstellen, d.h. diese Befehle können nur für einzelne Dateien sinnvoll verwendet werden.

$ touch file; gzip file; ls -l file*

-rw-rw-r-- 1 thomas thomas 25 Dec 5 20:30 file.gz tar - Verarbeitet (packt, entpackt, listet, …) TAR-Archive.

Syntax:

tar Optionen [Datei...]

.

Übliche Dateierweiterung ist

tar

bzw.

tar.gz

/

tar.bz2

für komprimierte Archive.

Dateien werden in ein Archiv gepackt, das Archiv wird anschließend mittels eines Komprimierprogramms wie gzip oder bzip2 komprimiert.

Optionen:

-c

→ Archiv erzeugen,

-x

→ Archiv entpacken,

-t

→ Inhalt von Archiv auflisten,

-f Archiv

→ die Datei Archiv für die Operationen verwenden,

-z

→ mit gzip komprimieren,

-j

mit bzip2 komprimieren.

$ tar -cjf archiv.tar.bz2 src notizen.org

$ ls -l archive.tar.bz2

-rw-rw-r-- 1 thomas thomas 720569 Dec 5 20:31 archive.tar.bz2

»

»

»

»

»

»

»

»

dd - Kopiert Dateiinhalte einer Datei auf eine andere.

Syntax:

dd [Operanden...]

.

Kann auch direkt von Geräten lesen und auf sie schreiben (und dadurch z.B. bootfähige Medien erzeugen oder beliebige Testdateien anlegen).

Operanden:

if=Datei

→ Eingabedatei (sonst Standardeingabe),

of=Datei

→ Ausgabedatei (sonst Standardausgabe),

bs=Bytes

→ Blockgröße (übliche Suffixes K, M, G, … möglich),

count=Blöcke

→ Anzahl der zu verarbeitenden Blöcke..

$ dd if=/dev/zero of=leere_datei bs=1M count=10 10+0 records in

10+0 records out

10485760 bytes (10 MB) copied, 0.0118872 s, 882 MB/s

»

»

»

»

wget - Lädt Dateien aus dem Internet herunter.

Viele Optionen, z.B. rekursives Herunterladen einer ganzen Webseite möglich.

curl - Vielseitiger als wget.

Kann nicht nur HTTP(S) und FTP (wie wget), sondern auch GOPHER, IMAP, LDAP, POP RTMP, SFTP, SCP, TELNET, …

Kann z.B. auch nur den HTTP-Kopf und nicht die gesamt Datei herunterladen, sehr nützlich zum Testen.

nc - Liest und schreibt Daten über Netzwerkschnittstellen.

Viele Einsatzmöglichkeiten (siehe Manpage).

Z.B. Datentransfer von Server auf Client: * Client-Seite:

nc -l 1234 > Datei

* Server-

Seite:

nc server.address 1234 < Datei

LaTeX - Professionelles Schriftsatzprogramm.

Für wissenschaftliche Arbeiten bevozugt zu verwenden!

Basiert auf Text-Dateien, die in DVI-, PostScript- oder PDF-Dateien übersetzt werden.

»

»

»

»

»

»

»

tmux - Terminal Multiplexer.

Erlaubt das Arbeiten mit mehreren (Pseudo-)Terminals über ein ein Terminalfenster.

»

(5)

Sonstige Programme

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/

Abweichendes Copyright von Inhalten:

Das XKCD-Comic zu „sudo“ steht steht unter der CC BY-NC 2.5 Lizenz.

Man kann sich auch eine tmux-Session über mehrere Terminalfenster anzeigen lassen oder die Session im Hintergrund weiterlaufen lassen (ohne Terminalfenster) und sich erst später wieder damit verbinden. Das ist z.B. sehr nützlich, wenn man auf einem Server einen länger dauernden Befehl ausführen will, aber die Netzwerkverbindung zum Server nicht stabil ist oder man nicht das Ende abwarten will.

Ähnliches Programm ist screen.

mplayer, mencoder - Videoplayer und Konvertierer.

Sehr nützlich, kann so ziemlich alles wiedergeben, was es gibt.

mencoder, um Videodateien zu erstellen oder zu konvertieren.

Ausgabe auch in Textkonsole möglich (

mplayer -vo caca Videodatei

).

»

»

»

»

»

ImageMagick, GraphicsMagick - Bildbetrachter und Konvertierer.

Kann Bilddateien in andere Formate konvertieren und dabei editieren (z.B. Auflösung ändern, zuschneiden, skalieren, Filter anwenden, …).

identify

→ Informationen zu einer Bilddatei ausgeben.

convert

→ Bilddatei konvertieren.

display

→ Bilddatei anzeigen.

Und noch einige andere!

LibreOffice - Officepakte, Pendant zu Microsoft Office.

Enthält alles, was man für Büroarbeiten braucht.

»

»

»

»

»

»

Referenzen

ÄHNLICHE DOKUMENTE

Parallel database systems consist of multiple processors and multiple disks connected by a fast interconnection network. A coarse-grain parallel machine consists of a small number

Beispiele von Distributionen: Debian (eine der ersten Distributionen, Allroundsystem), Ubuntu (basiert auf Debian, Fokus auf Benutzer, weit verbreitet), Red Hat (für

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

Operator || : Befehl2 wird nur dann ausgeführt, wenn Befehl1 einen Rückgabewert ungleich 0 hat!. Der Rückgabewert ist der Rückgabewert des letzten,

Signale können von einem Prozess abgefangen und verarbeitet/ignoriert werden. Wird das nicht gemacht, wird die Standardaktion für das Signal ausgeführt.. Ein Signal hat einen Namen

Der Rückgabewert ist in beiden Fällen der Rückgabewert des letzten ausgeführten Befehls der Liste2, oder 0, falls von Liste2 kein Befehl ausgeführt worden ist. Wir schreiben nun

→ Ausdruck kann einmal oder keinmal vorkommen (entspricht {0,1} ) + → Ausdruck kommt einmal oder mehrmals vor (entspricht {1,} ).. * → Ausdruck kommt keinmal, einmal oder

Es wird ein neuer Domänenbenutzer angelegt: beitritt (Kennwort: beitritt) Treten Sie mit Ihrem Rechner der Domäne c206.gbs bei:.. Systemeigenschaften -&gt;