Technische Hinweise II - Linux Administration
Technische Hilfe für die Installation gibt es grundsätzlich am besten auf den Webseiten der genannten Kommandos oder Tools, denn nur dort werden die Hinweise auf dem aktuellen Stand gehalten.
Alle Hinweise sind deshalb nach besten Wissen und Gewissen gegeben - aber ohne Gewähr.
Inhalt: Technische Hinweise zur Linux Administration
- Einleitung
- at - Zeitsteuerung
- awk - Ein Stream-Editor
- cp - Kopieren
- cron - Wiederkehrende Aufgabe zu bestimmten Zeiten
- date - Datum und Zeit
- dd - disk dump Hardware-nahes kopieren
- find - Suchen nach Dateien
- grep - Suchen nach Texten in Dateien
- iptables - Firewallregeln bearbeiten
- lame - Audiodateien in mp3 umwandeln
- rsync - ein schnelles Backup
- vi - Das Schweizer Messer unter den Editoren
- Wichtige Dateien im Linux-Betriebssystem
- Hilfsprogramme für die Arbeit mit Dateien für und aus Open Street Map
- ...
- Allgemeine Hinweise zu Linux/Unix Tools
Einleitung
Wir haben für einige Installationen, die wir auf Messen oder für den Eigenbedarf selbst ausprobiert haben, an dieser Stelle einige kurze Hinweise zusammengestellt. Aus Kapazitätsgründen können wir diese Seite bei Updates nicht aktuell halten und übernehmen deshalb keine Garantie für eine aktuelle Korrektheit.
Ausführliche Hilfe bieten die Webseiten der verschiedenen Linux-Distributionen
- http://www.debian.org/index.de.html
- http://www.opensuse-forum.de/
- http://ubuntuusers.de/
- http://ubuntu-forum.de/index.html
- http://fedoraproject.org/de/
- http://www.linuxmintusers.de/
- ...
und/oder allgemeine Hilfe-Seite für Linux
- http://www.problem-hilfe.de/linux/
- http://www.linux-forum.de/faq.php
- http://www.inside-linux.de/hilfe/
- http://www.learninglinux.de/linux-hilfen/befehlsuebersicht/
- http://www.tutorialspoint.com/unix_commands/index.htm
- ...
Allgemeine Hinweise für Linux/UNIX
Es gibt beliebig viele Varianten, sogenannte Distributionen, von Linux, so z.B. Suse, Fedora und RedHat (u.v.m.) mit einer RPM-Paketdatenbank und die Debian Distrubutionen, wie Debian, Ubuntu, Mint (u.v.m.) mit einer Paketdatenbank, die man mit dem Programm apitude bedienen kann.
Wir haben uns hier zufälligerweise auf Ubuntu spezialisiert, ohne den anderen Böses zu wollen.
Ein paar generelle Fragen, bevor wir uns einzelnen Kommandos widmen.
Update
Um ein System manuell aktuell zu halten, gibt ma in der Kommandozeile ein
apt-get update
apt-get dist-upgrade
oder mit dem Programm apitude
aptitude update
aptitude safe-upgrade
Will man wirklich ein Upgrade zu einer neueren Version machen, so heißt das Kommando
aptitude upgrade
Hierbei ist zu beachten , dass zwischen normalen Versionen und solchen mit LTS (Long Time Support) zu unterscheiden ist. LTS-Versionen halten dann auch mal 4 Jahre.
Eine mehr als zufällige Auswahl von Kommandos (aber wenigstens alfabetisch sortiert)
Zu allen Befehlen gibt es auf der Kommandozeile Hilfe mit dem Befehl man (für Manual), also z.B. man awk
at - Zeitsteuerung
Kommandos zu einem bestimmten Zeitpunkt ausführen lassen:
at 1am -f datei | führt nächsten Morgen um 1h die Befehle in datei aus |
at now + 1 hour ... | wird in einer Stunde aktiv |
at 19:23 ... | wird um 19:23 aktiv |
Für wiederkehrende Aufgaben siehe cron
awk - Ein Stream-Editor
awk -F':' -f scriptdatei liesdatei< /td> | sucht : in liesdatei und führt scriptdatei aus |
last | awk '{print $1}' | sort | uniq | wc | listet die letzten User im System auf |
awk '{print ":" $0 }' | fügt ein : am Beginn jede Zeile ein |
cp - Kopieren
cp Quelldatei Zieldatei | Kopieren von Dateien |
cp datei1 /tmp | kopiert datei1 nach /tmp/datei1 |
cp -r /archiv /tmp | kopiert das Verzeichnis archiv rekursiv mit allen enthaltenen Dateien nach /tmp/archiv |
cp -rp /archiv /tmp | wie oben; zusätzlich werden die Datei-Besitz- und Zugriffsrechte erhalten |
cron - Wiederkehrende Aufgaben zu bestimmten Zeiten
Zum Einrichten der Aufgaben crontab -e aufrufen. Als Eingabe wird jeweils eine zeile der Form erwartet:
m h dom mon dow command
Dabei ist
- m die Minute
- h die Stunde
- dom der Tag des Monats
- mon der Monat
- dow der Wochentag
- command der auszuführende Befehl
Mehrere Angaben werden durch Komma getrennt, also z.B. 0,15,30,45 für eine viertelstündliche Ausführung. Als Trennzeichen zwischen den Argumenten werden Leerzeichen oder Tabs akzeptiert.
date - Datum und Zeit
date | liefert das augenblickliche Datum |
date +%s | das Datum in Sekunden seit dem 1.1.1970 (Unixzeitrechnung) |
date +%s --date="8/17/2011" | das Datum vom 17.8.2011 in Sekunden seit dem 1.1.1970 |
date +%c | das Datum in der Form "Mi 08 Jul 2015 17:48:09 CEST" |
dd - disk dump Hardware-nahes kopieren
dd if=datei1 of=date2 | kopiert Inputfile datei1 nach Outputfile datei2 |
dd if=/dev/fd0 of=/tmp/disk | Diskette im Laufwerk fd0 wird als Image Datei disk abgelegt |
dd if=/dev/sr0 of=/tmp/startblock bs=1024k count=2 | Von einer CD werden die beiden ersten 1024K großen Blöcke in die Datei startblock kopiert |
dd if=/dev/zero of=/tmp/leer bs=1024k count=2 | Die Datei leer wird mit 2 Blöcken zu 1024K mit Nullen gefüllt |
dd if=/dev/sda2 of=/tmp/part2 bs=1024M | Kopiert die 2. Partition in 2GB Blöcken als Backup in die Datei part2 |
Auch über das Netz kann kopiert werden:
In eine Imagedatei: dd if=/dev/sda1 | pv | ssh user@host “cat > img.dat”
pv ist ein Programm, um den Fortschritt zu sehen, es geht auch ohne, dann muss man halt warten ...
Diesmal komprimiert: dd if=/dev/sda1 | pv| gzip -c | ssh user@host “cat > img.gz”
Zurückspielen eines Images aus einer Datei in die Partiion sdb1: dd if=image of=/dev/sdb1
oder mit Fortschrittsanzeige: dd if=image | pv | dd of=/dev/sdb1
Aus dem komprmierten Image: gunzip -c image.gz | buffer -s 64k -S 10m | dd of=/dev/sdb1
Hinweise zu dd z.B. bei
http://wiki.ubuntuusers.de/dd
http://konstantin.filtschew.de/blog/2007/07/22/partitionen-mit-dd-unter-linux-sichern-und-auch-mal-per-ssh-uber-das-netzwerk/
find - Suchen nach Dateien
find <pfad> -name <begriff> -print | sucht im Pfad pfad rekursiv durch alle Unterverzeichnisse nach Dateinamen die den Suchbegriff enthalten und gibt diese aus |
find <pfad> -name <begriff> -exec rm '{}' \; | sucht im Pfad pfad nach Dateinamen die den Suchbegriff enthalten sind und löscht diese |
find . -name thumbnail* -exec rm '{}' \; | z.B. sucht im aktuellen Verzeichnis nach Datein, die mit thumbnail beginnen und löscht diese |
Es gibt viele weitere Optionen bei der Verwendung von find. Durch die Verwendung der Option -exec oder durch das Hintereinanderausführen von Kommandos über eine Pipe | können komplexe Vorgänge damit ausgeführt werden, z.B. ein vollständiges Backup.
find /daten -hidden -depth -print | cp -rp /tmp/backup Hier werden alle Dateien, auch versteckte, aus dem Verzeichnis /daten unter Beibehaltung ihres Besitzers und der Rechte (-rp) nach /tmp/backup kopiert.
find . -mtime +0 | findet Dateien, die vor mehr als 24 Stunden verändert wurden |
find . -mtime 0 | findet Dateien, die innerhalb der letzten 24 Stunden verändert wurden |
find / -inum 4567 -ls | findet Hardlinks auf inode 4567 |
find / -name "*treff*" | findet alle Dateiennamen, die treff enhalten |
find / -perm 4000 –ls | findet alle Dateien in denen das s-Bit gesetzt ist |
find . -name '*' -print0 | xargs <befehl> | findet beliebig viele Dateien (mehr als ls schafft) und übergibt diese an das Kommando xargs, um einen Befehl darauf auszuführen |
grep - Suchen nach Texten in Dateien
In allen Unix/Linux-Betriebssystemn gibt es die Befehle find und grep, um entweder nach Dateinamen oder nach Texten in Dateien zu suchen.
grep <begriff> <datei> | sucht nach Begriff in der Datei |
grep –n <begriff> <datei> | suche Begriff mit Angabe der Zeilennummer |
grep -n <begriff> <datei> | listet die Zeilennummern mit dem gesuchten Begriff |
grep -v <begriff> <datei> | alle Zeilen ohne den gesuchten Begriff |
So findet grep -w # datei.txt in der Datei datei.txt alle zeilen ohne das Kommentarzeichen (#). Besteht der Suchbegriff aus mehreren Wörtern, so ist er in " einzuschließen.
iptables - Firewallregeln bearbeiten
Glücklicherweise muss niemand mehr seine Firewall mit einzelnen iptables Befehlen aufbauen. In Ubuntu gibt es dazu grafische Tools wie gufw (https://wiki.ubuntuusers.de/ufw/), andere Alternativen sind firestarter oder das Monumentalwerk fwbuilder (http://www.fwbuilder.org/ ).
Wer sich dennoch mal die installierten Regeln anschauen möchte oder damit spielen will ...
iptables -F | löscht alle Regeln |
iptables --append -A input -p tcp -s ANY/0 -d ANY/0 --dport 22 -j ACCEPT | fügt zur input-Kette die Erlaubnis für tcp-Pakete von jeder Adresse an jede Adresse mit dem Zielport 22 (ssh) hinzu. -j das Sprungziel kann sein ACCEPT, LOG, DENY, ... |
iptables -N chain | fügt eine neue Kette hinzu; mindestens sollten die Ketten INPUT und OUTPUT existieren |
iptables -L | listet die bestehenden Regeln; mit -nL werden die Regeln mit IP-Nummer statt DNS Namen gelistet |
Beim Aufbau einer oder mehrerer Firewalls im eigenen (Haus-) Netz sollte man sich überlegen, welche Geräte welchen Schutz benötigen. Was will ich damit erreichen?
Dabei helfen die beiden folgenden Links:
- https://de.wikipedia.org/wiki/Firewall
- https://www4.informatik.uni-erlangen.de/DE/Lehre/SS03/PS_KVBK/talks/Folien-Firewalls.pdf
lame (Audiodateien in mp3 umwandeln)
Einige Audioprogramme (z.B. audacity bei CD-Quellen) und auch einnige Brennprogramme können .wav Dateien in mp3 oder das freie .ogg Format umwandeln.
Es geht auch direkt mit dem Programm lame. Die Installation erfolgt mit apt-get install lame.
lame -h -b 192 sound.wav sound.mp3 | -h=hohe Qualität, -b gibt die Bitrate an, hier 192kb/s |
weitere Parameter: -m mode | mode kann folgende Werte annehmen: s, j, f, d, m, l, r |
-S oder --silent oder --quiet --verbose | ohne Ausgabe viele Ausgaben |
-q
-b | q liegt zwischen 0 (super) und 9 (schlecht) Bitrate (mögliche Werte in kb/s): -b 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 |
rsync - ein schnelles Backup
rsync kann lokal Dateien sichern aber auch über das Netz.
rsync -av Datei1 Datei2 Verz/ | Die angegebenen Dateien werden in das Verzeichnis Verz kopiert, wenn sie dort nicht oder nur in einer älteren Version existieren. |
rsync -av Verz1/ Verz2 | Alle Inhalte von Verzeichnis Verz1 werden mit den Inhalten von Verz2 abgeglichen. -a archivieren, also ältere Versionen überschreiben |
rsync -av --partial --progress --rsh="ssh" --exclude ./privat* Verz1/ user@remotehost:Verz2 | Alle Inhalte von Verzeichnis Verz1 werden mit den Inhalten von Verz2 auf dem entfernten Host abgeglichen. --partial bei Unterbrechungen wird die Übertragung ohne Fehler fortgesetzt |
rsync -av --partial --progress --rsh="ssh" user@remotehost:Verz1/ ./Verz2 | Abgleichen der Verzeichnisse nur in die andere Richtung, vom entfernten Host zum lokalen. |
Ab Linux Mint 19 steht das Programm timeshift für ein vollständiges Backup des Systems zur Verfügung. Damit kann zu alten Installationszuständen zurückgegangen werden.
vi - Das Schweizer Messer unter den Editoren
Hat man bei der Administration eines Linux-Rechners nur einen Terminalzugang, so sind die komfortablen Editoren mit grafischer Oberfläche, wie pluma, gedit, u.ä. nicht nutzbar. Neben dem einfachen nano, gibt es dann immer noch den uralten vi.
Seine Steuerung ist mindestens gewöhnungsbedürftig, aber er bietet viele Möglichkeiten. Hier eine kleine Liste der wichtigsten Kommandos:
Beginn einer vi Session
vi file | Edit file |
vi -r file | Edit last saved version of file after System or editor crash |
vi +n file | Edit file and place Cursor at line n |
vi + file | Edit file and place Cursor on last line |
vi file1 file2 | Edit file1 and file2; After saving changes in file1, enter :n for next |
vi +/str file | Edit file and place Cursor at line containing str |
Text speichern und vi verlassen
:wq or : x | Save file and exit vi |
:w file | Save file but do not exit |
:w! file | Save file overriding normal checking |
:q | Leave vi, saving changes before last write (you may be prompted to save first) |
:q! | Leave vi without saving any changes since last write |
Status Kommandos
: .= | Print current line number |
: = | Print number of lines in file |
Text einfügen
i | input mode; insert before Cursor |
a | input after cursor |
o | Append after end of current line; new line |
O | Insert before beginning of current line |
:r file | Insert file at current position |
To leave the insert mode, press ESC.
Rückgängig machen und wiederholen
u | Undo last command |
U | Restore current line to original state |
np | Retrieve last nth delete (last 9 deletes are in a buffer) |
1pu.u. | Scroll through the delete buffer until you retrieve desired delete (repeat u.) |
n | Repeat last / or ? search command |
N | Repeat, in reverse direction, last / or ? search command |
; | Repeat last f F t or T search command |
, | Repeat, in reverse direction, last f F t or T search command |
. | Repeat last text change command |
Cursor-Bewegung steuern
k or | CTRL K~P~ | Up |
^ or Return | Down |
k | Up |
j | Down |
h or Backspace | Left |
l or Space | Right |
w or W | Start of next word; W ignores punctuation |
b or B | Start of previous word; B ignores punctuation |
e or E | End of next word; E ignores punctuation |
0 or | | First column in current line |
n| | Column n in current line |
^ | First non-blank character in current line |
$ | Last character in current line |
+ or Return | First character in next line |
- | First non-blank character in previous line |
1G | First line in file |
G | Last line in file |
G$ | Last character in file |
nG | Line n in file |
( | Back to beginning of sentence |
) | Forward to beginning of next sentence |
{ | Back to beginning of paragraph |
} | Forward to beginning of next paragraph |
Text löschen
nx | Delete n characters beginning with current; omit-ting n deletes current character |
nX | Delete previous n characters; omitting n deletes previous character |
xp | Switch character at Cursor with following character |
ndw | Delete next n words beginning with current; omitting n deletes current word |
ndb | Delete previous n words; omitting n deletes previous word |
ndd | Delete n lines beginning with current; omitting n deletes current line |
:n,md | Delete lines n through m |
db | Delete word |
Muster erkennen und finden
:set magic | Allow pattern matching with special characters (default) |
: set nomagic | Allow only " and $ as special characters |
^ | Match beginning of line |
$ | Match end of line |
. | Match any single character |
\< | Match beginning of word |
\> | Match end of word |
[str] | Match any single character in str |
[~str] | Match any character not in str |
[a-n] | Match any character between a and n |
* | Match zero or more occurrences of previous character in expression |
\ | Escape meaning of next character (e.g., \$ lets you search for $) |
\\ | Escape the \ character |
Text einrücken
:set ai | Turn on auto-indentation |
:set sw=n | Set shift width to n characters |
Suchen und Finden
% | Search to beginning of balancing ( ) [ ] or { } |
fchar | Search forward in current line to char |
Fchar | Search backward in current line to char |
tchar | Search forward in current line to character before char |
Tchar | Search backward in current line to character after char |
/str +Return | Find str |
?str +Return | Search in reverse for str |
:set ic | Ignore case when searching |
:set noic | Pay attention to case when searching (default) |
Globales Suchen und Finden
:n,ms/str1/str2/opt | Search from n to m for str1. Replace str1 with str2, using opt. opt can be g for global change, c to confirm change (press y to acknowledge, Return to suppress), and p to print changed lines. |
:n,ms/searchtext/newtext/g | Replace searchtext by newtext between line n and m globally |
:%s/searchtext/newtext/gc | Replace searchtext by newtext everywhere with confirmation |
& | Repeat last search command |
:g/str/cmd | Run cmd on all lines that contain str |
:g/str1/s/str2/str3/ | Find line containing str1, replace str2 with str3 |
:v/str/cmd | Execute cmd on all lines that do not match str |
Text kopieren und verschieben
(a-z)nyy or (a-z)ndd | Copy or delete n lines into named buffer; omit n for current line |
nyy or nY | Yank n lines (place in buffer); omitting n yanks current line |
ycursor_cmd | Yank from Cursor to cursor_cmd (e.g., yG yanks current line to last line in file) |
p | Put yanked text after Cursor (print buffer); also prints last deleted text |
P | Put yanked text before Cursor; also prints last deleted text |
(a-z)p or (a-z)P | Put lines from named buffer a through z after or before current line |
Text ersetzen
Gibt man einen Zahl n vor dem Kommando an, so wird es n-mal wiederholt.
rchar | Replace current character with char |
Rtext | Replace current character(s) with text |
stext | Substitute text for current character |
S or cc text | Substitute text for entire line |
cwtext | Change current word to text |
Ctext | Change rest of current line to text |
Zeilen verbinden
J | Join next line to end of current line |
nJ | Join next n lines |
Cursor auf dem Fenster bewegen
H | Move Cursor to top line of screen |
nH | Move Cursor to line n from top of screen |
M | Move Cursor to middle of screen |
L | Move Cursor to bottom line of screen |
nL | Move Cursor to Line n from bottom of screen |
z Return | Make current line top line on screen |
nz Return | Make line n top line on screen |
z. | Make current line middle line |
nz. | Make line n middle line on screen |
z- | Make current line bottom line |
nz- | Make line n bottom line on screen |
Shell Escape Kommandos
: ! cmd | Execute Shell command cmd; you can add these special characters to indicate: |
% name of the current file | |
# name of last file edited | |
: ! ! | Execute last Shell command |
: T ! cmd | Read and insert Output from cmd |
: f file | Rename current file to file |
: w ! cmd | Send currently edited file to cmd as standard input and execute cmd |
:cd dir | Change the current working directory to dir ($HOME is default) |
: sh | Start a sub-shell (CTRL-d returns to editor) |
: so file | Read and execute commands in file (file is a Shell script) |
Wichtige Dateien und Prozesse im Linux-Betriebssystem
Mit dem Befehl init n wird das System in verschiedene Zustände versetzt (nur als Superuser).
init 0 | ausschalten |
init S | single User mode |
init 1 | multi User ohne Netz |
init 2 | multi User mit Netz |
init 3 | multi User mit Netz und GUI |
init 4,5 | unbenutzt |
init 6 | reboot |
Wichtige Dateien:
/etc/rc.local | diese Startskripte werden als letztes ausgeführt |
/etc/inid.d/ | dort befinden sich alle aktiven Startskripte |
/etc/passwd | Datei mit allen Usern des Systems |
/etc/group | Zuordnung der User zu Benutzergruppen |
/etc/shadow | Passwörter der User |
/etc/sudoers | Liste der User, die Rootrechte erhalten dürfen |
/etc/fstab | Liste der Geräte, die gemounted werden |
/etc/hosts | Liste bekannter Hosts, deren Namen nicht über DNS aufgelöst werden muss |
/etc/services | Zuordnung von Diensten und Portnummern (z.B. smtp 25 ...) |
Hilfsprogramme für die Arbeit mit Dateien für und aus Open Street Map
Wir wollen hier ein paar Erfahrungen wiedergeben, die wir bei unseren Vermessungen der Welt gemacht haben.
Eingaben in Open Street Map haben wir mit josm, dem Java Open Street Map Editor gemacht.
Zur Aufteilung und zum Zusammenfügen von OSM-Karten, den sogenannten Tiles, für Garmin GPS Geräte verwenden wir das Garmin Mapper Tool gmt. Funktionen:
- Merging maps in img format.
- Splitting files in img format into mapset, maps, subfiles of maps.
- Installation of mapset for use with programs Mapsource, BaseCamp, HomePort.
- Editing of map properties - map type, priority, transparency, name, creations date.
- Map modifications - changing of labels case, removing national characters, replacing TYP files.
Landkarten für Garmin's Mapsource oder für QT-Landkarte kann man mit MakeMap aus OSM-Karten erzeugen, z.B. java -jar mkgmap-r3419/mkgmap.jar beispielkarte.osm
- Das Programm erzeugt Tile's und *.tbl für QT-Landkarte
- Ohne ein passendes Typfile sind die Karten sehr leer, keine Landschaften, nur Wege.
- Es gibt viele Optionen mit java -jar mkgmap.jar --help=options
splitter.jar , der Tile splitter für mkgmap
- ... berechnet die Objekte, die in ein Garmin-Tile gehören.
Gute Anleitung zur Nutzung dieser Programme gibt es bei http://stefan-felten.blogspot.de/2009/03/ganz-europa-als-openstreetmap-karte-auf.html
Wem diese Möglichkeiten zur Erzeugung von Karten für Garmin GPS-Geräte zu kompliziert sind, findet fertige Karten der ganzen Welt z.B. hier
- http://wiki.openstreetmap.org/wiki/User:Computerteddy
- http://wiki.openstreetmap.org/wiki/DE:OSM_Map_On_Garmin/Download
Wer sich ein eigenes Navi mit OSM Karten bauen möchte, braucht nur ein RaspberryPi und muss ein wenig basteln können. Man benötigt:
- einen #Raspberry #Pi B, B+
- einen Raspberry TouchScreen, beispielsweise in 3,2 Zoll (Treiber beachten)
- einen #GPS-Empfänger, der vom Linux-Kernel ohne Weiteres unterstützt wird, beispielsweise den NAVILOCK GPS NL-602U USB
- die Navigationssoftware #Navit: http://navit-project.org/
- ein Kartensatz von #OpenStreetMap im .bin-Format: http://wiki.navit-project.org/index.php/OpenStreetMap
... wird fortgesetzt ...
Wir sind für Hinweise auf (Schreib-)Fehler sehr dankbar.
Kategorie[40]: Anti-Überwachung Short-Link dieser Seite: a-fsa.de/d/2un
Link zu dieser Seite: https://www.aktion-freiheitstattangst.org/de/articles/5052-technische-hinweise-ii-linux-administration.htm
Link im Tor-Netzwerk: http://a6pdp5vmmw4zm5tifrc3qo2pyz7mvnk4zzimpesnckvzinubzmioddad.onion/de/articles/5052-technische-hinweise-ii-linux-administration.htm
Tags: #TechnischeHinweise #Installation #Tools #Datenschutz #Verschluesselung #Linux #Administration #Befehle #Kommandos #Optionen
Erstellt: 2014-03-27 16:12:04 Aufrufe: 3343
Kommentar abgeben