DE | EN
Sitemap | Impressum
web2.0 Diaspora Vimeo Wir in der taz Wir bei Mastodon A-FsA Song RSS Twitter Youtube Unsere Artikel bei Tumblr Unsere Bilder bei Flickr Aktion FsA bei Wikipedia Spenden Facebook Bitmessage Spenden über Betterplace Zugriff im Tor-Netzwerk https-everywhere
Technische Hinweise II - Linux Administration

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

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

und/oder allgemeine Hilfe-Seite für Linux


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

 Zum Seitenanfang zurück


 

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

 Zum Seitenanfang zurück


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

 Zum Seitenanfang zurück


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.

 

 Zum Seitenanfang zurück

 


 

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"

 Zum Seitenanfang zurück


 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/

 Zum Seitenanfang zurück


 

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

 Zum Seitenanfang zurück


 

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.

Zum Seitenanfang zurück


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:

 Zum Seitenanfang zurück


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  simple stereo
j   joint stereo
d  dual mono
l   left channel
r   right channel

-S  oder --silent oder --quiet
--verbose
ohne Ausgabe
viele Ausgaben

-q

 

-b

 q liegt zwischen 0 (super) und 9 (schlecht)
-q 2 wird empfohlen und entspricht der Option -h
-q 5 ist default

Bitrate (mögliche Werte in kb/s):

-b 32, 40, 48, 56, 64, 80, 96, 112, 128, 160,  192,  224,  256, 320

 Zum Seitenanfang zurück


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
-v verbose, mit Ausgabe

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
-- progress  der Fortschritt wird angezeigt
-rsh="ssh"   nutze für die Übertragung eine verschlüsselte ssh-Verbindung. Auf dem entfernten Rechner muss ein ssh-Daemon (sshd) laufen
--exclude  Dateien, die mit dem Namen privat beginnen werden ausgelassen

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.

 Zum Seitenanfang zurück


 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 ...)

  Zum Seitenanfang zurück


 

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

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

 Zum Seitenanfang zurück


... wird fortgesetzt ...
Wir sind für Hinweise auf (Schreib-)Fehler sehr dankbar.

 Zum Seitenanfang zurück

 


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.html
Link im Tor-Netzwerk: http://a6pdp5vmmw4zm5tifrc3qo2pyz7mvnk4zzimpesnckvzinubzmioddad.onion/de/articles/5052-technische-hinweise-ii-linux-administration.html
Tags: #TechnischeHinweise #Installation #Tools #Datenschutz #Verschluesselung #Linux #Administration #Befehle #Kommandos #Optionen
Erstellt: 2014-03-27 16:12:04
Aufrufe: 3294

Kommentar abgeben

Für eine weitere vertrauliche Kommunikation empfehlen wir, unter dem Kommentartext einen Verweis auf einen sicheren Messenger, wie Session, Bitmessage, o.ä. anzugeben.

Geben Sie bitte noch die im linken Bild dargestellte Zeichenfolge in das rechte Feld ein, um die Verwendung dieses Formulars durch Spam-Robots zu verhindern.

CC Lizenz   Mitglied im European Civil Liberties Network   Bundesfreiwilligendienst   Wir speichern nicht   World Beyond War   Tor nutzen   HTTPS nutzen   Kein Java   Transparenz in der Zivilgesellschaft

logos Mitglied im European Civil Liberties Network Creative Commons Bundesfreiwilligendienst Wir speichern nicht World Beyond War Tor - The onion router HTTPS - verschlüsselte Verbindungen nutzen Wir verwenden kein JavaScript Für Transparenz in der Zivilgesellschaft