|
Some Technical Hints II - Linux AdministrationSorry, but only some parts are already in English ... Technische Hilfe für die Installation gibt es grundsätzlich am besten auf den Webseiten der genannten Tools, denn nur dort werden die Hinweise auf dem aktuellen Stand gehalten.
Content: Technical hints for Linux/Unix administration
EinleitungWir 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/UNIXZu allen Befehlen gibt es auf der Kommandozeile Hilfe mit dem Befehl man (für Manual), also z.B. man awk at - Run command at ...Kommandos zu einem bestimmten Zeitpunkt ausführen lassen:
Für wiederkehrende Aufgaben siehe cron
awk - Ein Stream-Editor
cp - Kopieren
cron - Run commands every ...Zum Einrichten der Aufgaben crontab -e aufrufen. Als Eingabe wird jeweils eine zeile der Form erwartet: m h dom mon dow command Dabei ist
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
dd - disk dump Hardware-nahes kopieren
You may copy with dd via the network: To compress: dd if=/dev/sda1 | pv| gzip -c | ssh user@host “cat > img.gz” Restore the image from a file to a partition: sdb1: dd if=image of=/dev/sdb1 More hints about dd
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 / -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 |
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 -w <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.
Glücklicherweise muss niemand mehr seine Firewall mit einzelnen iptables Befehlen aufbauen. In Ubuntu gibt es dazu grafische Tools wie gufw, andere Alternativen sind firestarter oder das Monumentalwerk fwbuilder.
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 |
Hat man bei der Administration eines Linux-Rechners nur einen Terminalzugang, so sind die komfortablen Editorenmit grafischer Oberflächer, 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. Here you may find a list of the most important commands:
Start a 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 |
Save Text and Exit vi
: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 Commands
: .= | Print current line number |
: = | Print number of lines in file |
Inserting Text
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.
Undoing and Repeating Commands
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 |
Moving the Cursor
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 |
Deleting text
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 |
Pattern matching
: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 |
Indenting Text
:set ai | Turn on auto-indentation |
:set sw=n | Set shift width to n characters |
Searching
% | 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 sfr |
:set ic | Ignore case when searching |
:set noic | Pay attention to case when searching (default) |
Global Search and Replace
: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 |
Copying and Placing Text
(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 |
Changing Text
Preceding these commands with a number n repeats the command n times.
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 |
Joining Lines
J | Join next line to end of current line |
nJ | Join next n lines |
Cursor Placement and Adjusting the Screen
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 Commands
: ! 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) |
With the command init n the system is put in differant states (only as super user).
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 |
Important files:
/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 ...) |
Here we have listed some experiences we have found while making maps for Open Street Maps.
Our data to Open Street Map we have uploaded with josm, the Java Open Street Map Editor.
For splitting and merging of OSM-maps for Garmin GPS devices we used Garmin Mapper Tool gmt :
Maps for Garmin's Mapsource or for QT-Landkarte we made with MakeMap from OSM-maps, i.e. java -jar mkgmap-r3419/mkgmap.jar beispielkarte.osm
splitter.jar , the tile splitter for mkgmap
A good manual you will find herei http://stefan-felten.blogspot.de/2009/03/ganz-europa-als-openstreetmap-karte-auf.html
Who thinks that this is to complicate will find complete maps of all countries here
If you want buld your own navi with OSM Karten you need a RaspberryPi and:
... will be continued ...
Wir sind für Hinweise auf (Schreib-)Fehler sehr dankbar.
CC license European Civil Liberties Network Bundesfreiwilligendienst We don't store your data World Beyond War Use Tor router Use HTTPS No Java For Transparency |