Mini-HowTos: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
(UDEV hinzu)
Zeile 1: Zeile 1:
Die so genannte Shell, ist das Linux Textinterface, welches durch Eingabe von befehlen den Linux PC steuern kann. Hier findet sich eine Sammlung von Befehlen die in der Linux Shell verwenden lassen, um Aufgaben zu vereinfachen oder aber einfach per Markieren und Kopieren (manchmal mit kleinen Anpassungen z.B. Dateinamen) verwendbar sind.
+
Die so genannte ''Shell'' ist das Linux-Textinterface, welches durch Eingabe von Befehlen den Linux-PC steuern kann. Hier findet sich eine Sammlung von Befehlen, die sich in der Linux Shell verwenden lassen, um Aufgaben zu vereinfachen, oder aber einfach per Markieren und Kopieren (manchmal mit kleinen Anpassungen,-  z.B. bei Variablen wie Dateinamen, etc.) verwendbar sind.
  
Es gibt wie häufig unter Linux mehrere Möglichkeiten in eine Konsole zu wechseln. Zum einen bieten die meisten Linux Desktop Oberflächen ein Programm an, dass sich wie ein Fenster öffnet und in den man dann befehle eingeben kann. Diese findet man am einfachsten, in dem man der Programmliste nach einem Programm mit Bezeichnung "Termina", "Konsole, "XTerm" oder ähnlichen sucht. Meistens kann man die suche durch Eingabe der Bezeichnungen in dem geöffneten Menü eingrenzen.
+
Es gibt wie häufig unter Linux mehrere Möglichkeiten in eine Konsole zu wechseln. Zum einen bieten die meisten Linux-Desktop-Oberflächen ein Programm an, dass sich wie ein Fenster öffnet und in welches dann die Befehle eingegeben werden können. Diese findet man am einfachsten, indem man in der Programmliste nach einem Programm mit der Bezeichnung "Terminal", "Konsole", "XTerm" oder ähnlichem sucht. Meistens kann man die Suche durch Eingabe der Bezeichnungen in dem geöffneten Menü eingrenzen.
 +
 
 +
Zum anderen kann man auch ganz in eine so genannte Konsole wechseln, die dann den ganzen Bildschirm füllt. Tatsächlich meldet man sich in diesem Fall vorläufig vom Fenstermanager ab, so daß man nur noch über Textbefehle, nicht aber per Maus (grafisch) auf das Betriebssystem zugreifen kann. Das kann besonders dann hilfreich sein, wenn der Desktop nicht mehr bedienbar, oder erst gar nicht angeboten wird (z. B. auf Servern). Diese Konsole kann man mit der Tastenkombination <Strg>+<Alt>+<F1> für die erste "Haupt"-Konsole bis je nach Distribution <Strg>+<Alt>+<F4> bis <Strg>+<Alt>+<F6>) erreichen. Dabei sind die so genannten "Control"-Taste (=Ctrl - auf einer deutschen Tastatur meist mit dem Aufdruck "Strg" versehen), die "Alternate"-Taste (auf einer deutschen Tastatur meist mit dem Aufdruck "Alt" versehen) und eine der "Funktionstasten" "F1" bis "F12" gleichzeitig zu betätigen. Dabei fängt man meist mit der links bezeichneten Taste (hier also die "Strg"-Taste) an und drückt die folgenden ohne loszulassen, bis der Bildschirm einen in der Regel schwarzen Hintergrund mit weißer Schrift zum Benutzer-"Login" auffordert. Dort muss man dann seinen eingestellten Benutzernamen, gefolgt von der "Enter"- oder "Return"-Taste eingeben. Anschließend wird man in der Regel aufgefordert, das dazugehörige Passwort einzugeben. Die Eingabe des Paßwortes ist "unsichtbar", man sieht also nicht, daß getippt wird; auch keine Punkte oder sonstigen Platzhalter. Drückt man die auf der letzten Konsole folgende Funktionstaste, wechselt man zurück zum grafischen Desktop (falls man von einem grafischen Desktop her gekommen ist, was aber für normale Nutzer die Regel ist). Dies geschieht durch die Tastenkombination <Strg>+<Alt>+<F5> bzw. je nach Distribution F6 oder F7). Bei Notebooks oder kompakten Tastaturen ist es möglich, dass die Funktionstasten mit einer speziellen Taste erst aktiviert werden muss. Diese muss dann zusätzlich vor der Funktionstaste gedrückt werden. Auf deutschen Tastaturen handelt es sich bei dieser Funktionstaste um die "fn"-Taste, welche sich in der Regel links der Leertaste findet. Ob die "F"-Tasten  (ganz oben über den Zahlen) diese zusätzliche Funktionstaste benötigen, sieht man meist an einer farblichen Hervorhebung der Funktionstasten und der Steuertaste.
  
Zum anderen kann man auch ganz in eine so genannte Konsole wechseln, die dann den ganzen Bildschirm füllt. Dieses ist insbesondere dann hilfreich, wenn der Desktop nicht mehr bedienbar oder erst gar nicht angeboten wird. Diese Konsole kann man mit der Tastenkombination <Strg>+<Alt>+<F1> für die erste "Haupt" Konsole bis je nach Distribution <Strg>+<Alt>+<F4> bis <Strg>+<Alt>+<F6>) erreicht. Dabei sind die so genannte "Control"-Taste (auf einer deutschen Tastatur meist mit dem Aufdruck "Strg" versehen), die "Alternate"-Taste (auf einer deutschen Tastatur meist mit dem Aufdruck "Alt" versehen) und eine der "Funktionstasten" "F1" bis "F12" gleichzeitig zu betätigen. Dabei fängt man meist mit der links bezeichneten Taste (hier also die "Strg"-Taste) an und drückt die folgenden ohne los zu lassen bis der Bildschirm einen in der Regel schwarzen Hintergrund mit weißer Schrift zum Benutzer-"Login" auffordert. Dort muss man dann seinen eingestellten Benutzernamen gefolgt von der "Enter"- oder "Return"-Taste eingeben. Anschließend wird man in der Regel aufgefordert das dazugehörige Passwort einzugeben. Drückt man die auf der letzten Konsole folgende Funktionstaste, wechselt man zurück zum grafischen Desktop, sofern dieser noch läuft (also mit <Strg>+<Alt>+<F5> bzw. je nach Distribution 6 oder 7). Bei Notebooks oder kompakten Tastaturen ist es möglich, dass die Funktionstasten mit einer speziellen Taste erst aktiviert werden muss. Diese ist dann zusätzlich vor der Funktionstaste gedrückt werden. Ob das der Fall ist sieht man meist an einer Farblichen Hervorhebung der Funktionstasten und der Steuertaste.
 
  
  
Zeile 11: Zeile 12:
  
 
  '''Anmerkung:'''<br>
 
  '''Anmerkung:'''<br>
bitte Leerzeichen und Formatierungen beachten, diese können entscheidende Unterschiede machen so dass der Befehl nicht so funktioniert wie man es erwartet.
+
Bitte Leerzeichen und Formatierungen beachten, diese können entscheidende Unterschiede machen, so dass der Befehl nicht so funktioniert wie man es erwartet.
  
  
Zeile 25: Zeile 26:
  
  
* Freien sowie belegten Platz auf allen gemounteten Partitionen anzeigen
+
* Den freien sowie belegten Platz auf allen gemounteten Partitionen anzeigen:
 
<pre>$df -h</pre>
 
<pre>$df -h</pre>
  
  
* Gut lesbare anzeigen aller Inhalte eines Verzeichnisses mit allen Infos sowie die neueste Datei zuletzt:
+
* Eine gut lesbare Anzeige aller Inhalte eines Verzeichnisses mit allen Infos (die neueste Datei am Ende der Ausgabe):
 
<pre>$ls -altrh</pre>
 
<pre>$ls -altrh</pre>
  
  
* CDROM Image mit dd erstellen
+
* Ein CD-ROM-Image mit dd erstellen:
 
<pre>$dd if=/dev/cdrom of=/tmp/datei.iso</pre>
 
<pre>$dd if=/dev/cdrom of=/tmp/datei.iso</pre>
kürzere Alternative:
+
 
 +
 
 +
* eine kürzere Alternative:
 
<pre>$cat /dev/cdrom > /tmp/datei.iso</pre>
 
<pre>$cat /dev/cdrom > /tmp/datei.iso</pre>
  
  
 +
* dd-Fortschritt erfragen (wobei ''Prozess-Id'' die Prozess-Id des laufeneden dd-Prozesses ist):
 +
<pre>$kill -SIGUSR1 Prozess-Id</pre>
  
* dd Fortschritt erfragen (wobei ''Prozess-Id'' die Prozess-Id des laufeneden dd Prozesses ist)
+
 
<pre>$kill -SIGUSR1 Prozess-Id</pre>
+
* Als Alternative kann auch pv verwendet werden (zeigt Fortschritt an):
als Alternative kann auch pv verwendet werden (zeigt Fortschritt an)
 
 
<pre> pv < /dev/cdrom > /tmp/datei.iso</pre>
 
<pre> pv < /dev/cdrom > /tmp/datei.iso</pre>
  
  
* dd Fortschritt erfragen (aller zur Zeit laufenden dd Prozesse)
+
* dd-Fortschritt erfragen (aller zur Zeit laufenden dd-Prozesse):
 
<pre>$kill -SIGUSR1 $(pidof dd)</pre>
 
<pre>$kill -SIGUSR1 $(pidof dd)</pre>
  
  
* CDROM Image mit dd erstellen (dito mit einer Art Statusanzeige)
+
* Ein CD-ROM-Image mit dd erstellen (dito mit einer Art Statusanzeige):
 
<pre>$dd if=/dev/cdrom of=/tmp/datei.iso &
 
<pre>$dd if=/dev/cdrom of=/tmp/datei.iso &
 
$watch -n 1 "ls -l /tmp/datei.iso"</pre>
 
$watch -n 1 "ls -l /tmp/datei.iso"</pre>
  
  
* Erste partition der ersten Platte als Image sowie komprimiert mit bzip sichern sichern
+
* Die erste Partition der ersten Platte als komprimiertes Image mit bzip sichern:
 
<pre>dd if=/dev/hda1 | bzip2 -9 > /tmp/partition_image.bzip2</pre>
 
<pre>dd if=/dev/hda1 | bzip2 -9 > /tmp/partition_image.bzip2</pre>
  
  
* MBR der ersten Platte sichern (größe ist immer 512byte * count=1)
+
* Das MBR der ersten Platte (unkomprimiert) sichern (Größe ist immer 512byte * count=1):
 
<pre>dd if=/dev/hda of=~/hda.mbr bs=512 count=1</pre>
 
<pre>dd if=/dev/hda of=~/hda.mbr bs=512 count=1</pre>
  
  
* Partitionstabelle der ersten Platte sichern
+
* Die Partitionstabelle der ersten Platte (unkomprimiert) sichern:
 
<pre>sfdisk -d /dev/hda > ~/hda.pt</pre>
 
<pre>sfdisk -d /dev/hda > ~/hda.pt</pre>
  
  
* Partitionstabelle der ersten Platte wiederherstellen (siehe auch auf [http://www.linux-fuer-alle.de/master-boot-record-und-partitionstabelle-sichernherstellen Linux Für Alle] bzw. [http://www.linupedia.org/opensuse/Partitionstabelle_sichern_und_wiederherstellen LinuxPedia])
+
* Die Partitionstabelle der ersten Platte wiederherstellen (siehe auch auf [http://www.linux-fuer-alle.de/master-boot-record-und-partitionstabelle-sichernherstellen Linux Für Alle] bzw. [http://www.linupedia.org/opensuse/Partitionstabelle_sichern_und_wiederherstellen LinuxPedia]):
 
<pre>sfdisk /dev/hda < ~/hda.pt</pre>
 
<pre>sfdisk /dev/hda < ~/hda.pt</pre>
  
  
* Image Datei ''/tmp/datei.iso'' ins Dateisystem an die Stelle ''/mnt/isofiles'' mounten
+
* Eine  Image-Datei ''/tmp/datei.iso'' ins Dateisystem an die Stelle ''/mnt/isofiles'' mounten:
 
<pre>$mount -o loop /tmp/datei.iso /mnt/isofiles</pre>
 
<pre>$mount -o loop /tmp/datei.iso /mnt/isofiles</pre>
  
  
* Image Datei ''/tmp/datei.iso'' ins Dateisystem an die Stelle ''/mnt/isofiles'' mounten (dito Dauerhaft)
+
* Eine Image-Datei ''/tmp/datei.iso'' ins Dateisystem an die Stelle ''/mnt/isofiles'' mounten (dito dauerhaft):
 
<pre>$echo -e "\n#/tmp/datei.iso an /mnt/isofiles mounten\n/tmp/datei.iso /mnt/isofiles iso9660 ro,loop 0 0" >> /etc/fstab
 
<pre>$echo -e "\n#/tmp/datei.iso an /mnt/isofiles mounten\n/tmp/datei.iso /mnt/isofiles iso9660 ro,loop 0 0" >> /etc/fstab
 
$mount /mnt/isofiles</pre>
 
$mount /mnt/isofiles</pre>
  
  
* Einen Text z.B. in allen ''*.html'' Dateien ab den aktuellen Verzeichnis und allen Unterverzeichnissen zu ersetzten (hier wird der Text ''<Zu ersetzender Text>'' durch den Text ''<Neuer Text>'' ersetzt
+
* Einen Text z.B. in allen ''*.html'' Dateien ab dem aktuellen Verzeichnis und allen Unterverzeichnissen zu ersetzten (hier wird der Text ''<Zu ersetzender Text>'' durch den Text ''<Neuer Text>'' ersetzt:
 
<pre>$find . -iname "*.html" -exec sed -i -e "s/<Zu ersetzender Text>/<Neuer Text>/g" {} \;</pre>
 
<pre>$find . -iname "*.html" -exec sed -i -e "s/<Zu ersetzender Text>/<Neuer Text>/g" {} \;</pre>
  
  
* Die Partitionstabellen aller vorhandener Platten anzeigen
+
* Die Partitionstabellen aller vorhandener Platten anzeigen:
 
<pre>fdisk -l</pre>
 
<pre>fdisk -l</pre>
  
  
* Die Partitionstabelle (hier als beispiel von ''sdb'') bearbeiten
+
* Die Partitionstabelle (hier als Beispiel von ''sdb'') bearbeiten:
 
<pre>fdisk /dev/sdb</pre>
 
<pre>fdisk /dev/sdb</pre>
  
  
* Eine Partition (hier als beispiel ''sdb'') mit [https://de.wikipedia.org/wiki/Ext4 ext4] formatieren  
+
* Eine Partition (hier als Beispiel ''sdb'') mit [https://de.wikipedia.org/wiki/Ext4 ext4] formatieren:
 
<pre>mkfs.ext4 /dev/sdb</pre>
 
<pre>mkfs.ext4 /dev/sdb</pre>
  
  
* Die erstellte Tabelle (hier als beispiel ''sdb'') dem Linux Kernel bekannt machen (siehe auch Beschreibung im [https://wiki.ubuntuusers.de/GNU_Parted/#partprobe UbuntuUsers Wiki])
+
* Die erstellte Tabelle (hier als Beispiel ''sdb'') dem Linux-Kernel bekannt machen (siehe auch Beschreibung im [https://wiki.ubuntuusers.de/GNU_Parted/#partprobe UbuntuUsers Wiki]):
 
<pre>partprobe /dev/sdb</pre>
 
<pre>partprobe /dev/sdb</pre>
  
Zeile 103: Zeile 107:
  
 
==Screen==
 
==Screen==
Möchte man remote auf einen anderen Liunx PC lange laufende Prozesse starten, sollte man sich an der Console wieder abmelden können. Dieses kann man mit dem befehl '''screen ''' machen.
+
Möchte man per remote auf einen anderen Liunx-PC lange laufende Prozesse starten, sollte man sich an der Konsole wieder abmelden können. Dieses kann man mit dem Befehl '''screen ''' machen.
 +
 
  
* Einen Prozess mit Namen '''image''' im Hintergrund starten
+
* Einen Prozess mit Namen '''image''' im Hintergrund starten:
 
<pre>screen -d -m -S image</pre>
 
<pre>screen -d -m -S image</pre>
  
  
* Prozesse auflisten
+
* Prozesse auflisten:
 
<pre>screen -list</pre>
 
<pre>screen -list</pre>
  
  
* In den Prozess '''image''' wechseln
+
* In den Prozess '''image''' wechseln:
 
<pre>screen -r image</pre>
 
<pre>screen -r image</pre>
  
  
* Alternativ kann man auch in die Prozess-ID welche '''screen -list''' liefert wechseln (z.B. There is a screen on: 19215.image (Detached))
+
* Alternativ kann man auch in die Prozess-ID welche '''screen -list''' liefert wechseln (z.B. There is a screen on: 19215.image (detached)):
 
<pre>screen -r 19215</pre>
 
<pre>screen -r 19215</pre>
  
  
* Aus einem '''screen''' Hintergrund-Prozess wieder auf die Kommandozeile zurück wechseln (z.B. um sich dort remote wieder abzumelden)
+
* Aus einem '''screen'''-Hintergrund-Prozess wieder auf die Kommandozeile zurück wechseln (z.B. um sich dort per remote wieder abzumelden):
<pre>ctrl+a gefolgt von d</pre>
+
<pre>Strg+A gefolgt von Strg+D</pre>
bzw.
+
  Anmerkung:
<pre>strg+a gefolgt von d</pre>
+
  Auf der deutschen Tastatur reden wir von der '''Strg'''-Taste (=Steuerung); auf englischen Tastaturen heißt diese '''Ctrl'''-Taste (=Control, also auch Steuerung auf Deutsch)
  
  
Zeile 130: Zeile 135:
 
==Hardware==
 
==Hardware==
  
* Anzeigen der gefundenen USB-Devices (evtl. nur als root möglich bzw. Pfad mit angeben):
+
 
 +
* Anzeige der gefundenen USB-Devices (evtl. nur als root möglich, bzw. Pfad mit angeben):
 
<pre>$lsusb -v</pre>
 
<pre>$lsusb -v</pre>
  
  
* Anzeigen der gefundenen PCI-Devices:
+
* Anzeige der gefundenen PCI-Devices:
 
<pre>$lspci -v</pre>
 
<pre>$lspci -v</pre>
  
Zeile 142: Zeile 148:
  
  
* Stromsparfunktionen kontrollieren und Systemleistung verifizieren (nun öffnet sich eine Textoberfläche die mit der ''Tab'' Taste über der Festelltaste für Großschreibung links auf der Tastatur befindet - siehe auch hinweise auf dem Fenster unten):
+
* Stromsparfunktionen kontrollieren und Systemleistung verifizieren (nun öffnet sich eine Textoberfläche, die mit der ''Tab''-Taste (diese findet sich über der Festelltaste für Großschreibung links auf der Tastatur) - siehe auch Hinweise auf dem Fenster unten):
 
<pre>sudo powertop</pre>
 
<pre>sudo powertop</pre>
  
Zeile 149: Zeile 155:
 
==Netzwerk==
 
==Netzwerk==
  
* Netzwerkkarte von Hand die neue IP Adresse 192.168.0.2 zuordnen und das default Gateway mit IP 192.168.0.1 setzen
+
 
 +
* Netzwerkkarte von Hand die neue IP Adresse 192.168.0.2 zuordnen und das default Gateway mit IP 192.168.0.1 setzen:
 
<pre>$ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
 
<pre>$ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
 
$route add default gw 192.168.0.1</pre>
 
$route add default gw 192.168.0.1</pre>
  
  
* Das default Gateway ändern
+
* Das Default-Gateway ändern:
 
<pre>$route del default
 
<pre>$route del default
 
$route add default gw 192.168.0.99 (neue gateway ip)</pre>
 
$route add default gw 192.168.0.99 (neue gateway ip)</pre>
Zeile 163: Zeile 170:
  
  
* Den Weg von Datenpaket im Netzwerk ansehen (im Beispiel zu web.de)
+
* Den Weg eines Datenpakets im Netzwerk ansehen (iam Beispiel der domain web.de):
 
<pre>$traceroute web.de</pre>
 
<pre>$traceroute web.de</pre>
  
  
* Komplette Websites lokal auf den Rechner in das aktuelle Verzeichnis laden
+
* Komplette Websites lokal auf den Rechner in das aktuelle Verzeichnis laden:
 
<pre>$wget -r http://www.homepage.de</pre>
 
<pre>$wget -r http://www.homepage.de</pre>
  
  
* (Große) Datei lokal auf den Rechner in das aktuelle Verzeichnis laden. Download fortsetzen, falls abgebrochen (timeout) und unterstützt
+
* Eine (große) Datei lokal auf den Rechner in das aktuelle Verzeichnis laden. Download fortsetzen [falls abgebrochen (timeout) und dies unterstützt wird]:
 
<pre>$wget -c ftp://www.homepage.de/grosse-datei.tgz</pre>
 
<pre>$wget -c ftp://www.homepage.de/grosse-datei.tgz</pre>
  
Zeile 179: Zeile 186:
  
  
* Weitere nützliche Tips zum rekursiven herunterladen via wget findet sich beim [http://www.linux-community.de/Archiv/Tipp-der-Woche/Mit-wget-Dateien-rekursiv-herunterladen-auch-per-FTP Linux-Community - Tipp der Woche].
+
* Weitere nützliche Tips zum rekursiven Herunterladen via wget findet sich beim [http://www.linux-community.de/Archiv/Tipp-der-Woche/Mit-wget-Dateien-rekursiv-herunterladen-auch-per-FTP Linux-Community - Tipp der Woche]
  
  
* Das ''/home'' Verzeichnis des Quellrechners ([http://de.wikipedia.org/wiki/Rekursiv rekursiv]) über eine [http://de.wikipedia.org/wiki/SSH SSH-Verbindung] auf den Ziel-Rechner ''name.zielrechner.local'' in das Verzeichnis ''/datengrab'' und den Dateinamen "home_2007-03-23.tgz" (wenn das Datum des Quellrechners auf den 23.03.2007 steht) speichern
+
* Das ''/home'' Verzeichnis des Quellrechners ([http://de.wikipedia.org/wiki/Rekursiv rekursiv]) über eine [http://de.wikipedia.org/wiki/SSH SSH-Verbindung] auf den Ziel-Rechner ''name.zielrechner.local'' in das Verzeichnis ''/datengrab'' und den Dateinamen "home_2007-03-23.tgz" (wenn das Datum des Quellrechners auf den 23.03.2007 steht) speichern. Lautet das Datum aktueller, ist das Datum natürlich anzupassen:
 
<pre>$tar czv /home | ssh name.zielrechner.local "cat > /datengrab/home_$(date +%F).tgz"</pre>
 
<pre>$tar czv /home | ssh name.zielrechner.local "cat > /datengrab/home_$(date +%F).tgz"</pre>
  
  
* Sollte mal z.B. der Displaymanager nicht mehr richtig funktionieren oder sonst der (Grafische) Login nicht funktionieren, kann man dem Kernel auch anweisen eine andere Shell zu starten. Dazu muß man dann z.B. beim Booten den GRUB mit der <ESC>-Taste in den Textmode wechseln und dort mit der <e>-Taste die angewählte Taste editieren. Hängt man an das Ende der '''Kernel''' Zeile mit '''vmlinuz''' den Parameter <pre>init=/bin/sh</pre> bzw. wenn man die Bash verwenden möchte eben <pre>init=/bin/bash</pre> so bootet Linux auf diese Shell (ohne abfrage des '''root''' Passwortes). Anschließend kann man mit der <ENTER>-Taste wieder in die Übersicht zurück wechseln und anschließend mit der &lt;b&gt;-Taste den geänderten Bootablauf booten.
+
* Sollte mal z.B. der Displaymanager nicht mehr richtig funktionieren oder sonst der (grafische) Login nicht funktionieren, kann man dem Kernel auch die Anweisung erteilen, eine andere Shell zu starten. Dazu muss man dann z.B. beim Booten den GRUB durch einmaliges Drücken der <ESC>-Taste in den Textmodus wechseln und dort mit der <E>-Taste die angewählte Taste editieren. Hängt man an das Ende der '''Kernel''- Zeile mit '''vmlinuz''' den Parameter <pre>init=/bin/sh</pre>, bzw. wenn man die Bash verwenden möchte eben <pre>init=/bin/bash</pre>, so bootet Linux auf diese Shell (ohne Abfrage des '''root''' Passwortes). Anschließend kann man mit der <ENTER>-Taste wieder in die Übersicht zurück wechseln und abschliessend mit der &lt;b&gt;-Taste den geänderten Bootablauf booten.
  
  
* Aufbau eines Servers für für ein Heimnetz (Debian Basiert) findet Ihr [http://www.linux-home-server.de/ hier].
+
* Aufbau eines Servers für ein Heimnetz (Debian Basiert) findet Ihr [http://www.linux-home-server.de/ hier]:
  
  
Zeile 195: Zeile 202:
 
== Automatisierung mit UDEV Regeln ==
 
== Automatisierung mit UDEV Regeln ==
  
Möchte man beim Anstecken von neuer Hardware wie z.B. einen USB Datenträger, automatisch eine Aktion starten, so kann man dass ganz einfach mit einen Modernen Linux durch definition einer so genannten UDEV regel tun.
 
  
===Grobes vorgehen===
+
Möchte man beim Anstecken von neuer Hardware wie z.B. einen USB Datenträger, automatisch eine Aktion starten, so kann man dass ganz einfach mit einem modernen Linux durch Definition einer so genannten UDEV-Regel tun.
  
# mit <code>lsusb</code> bekommt ihr raus, wie das device heisst
+
 
# herausfinden der Daten des eingestöpselten Gerätes (hier '''sdb1''') auch mit: <br/><code>udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)</code>
+
 
 +
===Grobes Vorgehen===
 +
 
 +
 
 +
# mit <code>lsusb</code> bekommt ihr raus, wie das Device (Device = Datenträger) heisst
 +
# Herausfinden der Daten des eingestöpselten Gerätes (hier im Beispiel '''sdb1''') auch mit: <br/><code>udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)</code>
 
# in der richtigen Sektion, nämlich da, wo auch die '''idVendor''' steht, die Daten zu '''idVendor''' und '''idProduct''' zupfen
 
# in der richtigen Sektion, nämlich da, wo auch die '''idVendor''' steht, die Daten zu '''idVendor''' und '''idProduct''' zupfen
 
# dann <code>/etc/init.d/udev restart</code>
 
# dann <code>/etc/init.d/udev restart</code>
# das udev log level kann man ändern über:<br/><code>control --log-priority=info</code>
+
# das UDEV-Log-Level kann man ändern über:<br/><code>control --log-priority=info</code>
# '''Regel-file:''' <code>/etc/udev/rules.d/85-my_rule.rules</code> mit beforzugten editor öffnen (z.B. mit joe, kate, ...)
+
# '''Regel-file:''' <code>/etc/udev/rules.d/85-my_rule.rules</code> mit dem bevorzugten Editor öffnen (z.B. mit joe, kate, ...)
 
# Regel in der Datei eintragen <br/><code>ACTION=="add", ATTRS{idVendor}=="0480", ATTRS{idProduct}=="a208", RUN+="/usr/local/bin/my_script"</code>
 
# Regel in der Datei eintragen <br/><code>ACTION=="add", ATTRS{idVendor}=="0480", ATTRS{idProduct}=="a208", RUN+="/usr/local/bin/my_script"</code>
# Nun wird beim erkennen des Gerätes des Herstellers '''0480''' mit der Produkt-Id '''a208''' das script '''/usr/local/bin/my_script''' gestartet (Mehr zu Skripten findet Ihr im Artikel [[Nuetzliche_Scripte|Nützliche Skripte]])
+
# Nun wird beim Erkennen des Herstellergerätes '''0480''' mit der Produkt-Id '''a208''' das script '''/usr/local/bin/my_script''' gestartet (mehr zu Skripten findet Ihr im Artikel [[Nuetzliche_Scripte|Nützliche Skripte]])
 +
 
  
  
 
=== Siehe auch ===
 
=== Siehe auch ===
 +
 +
 
* UDEV Beschreibung auf [https://de.wikipedia.org/wiki/Udev Wikipedia]
 
* UDEV Beschreibung auf [https://de.wikipedia.org/wiki/Udev Wikipedia]
 
* UDEV Beschreibung auf [https://wiki.ubuntuusers.de/udev/ UbutuUsers.de]
 
* UDEV Beschreibung auf [https://wiki.ubuntuusers.de/udev/ UbutuUsers.de]
 
* UDEV Beschreibung auf [https://www.suse.com/de-de/documentation/sles11/singlehtml/book_sle_admin/cha.udev.html SuSE.com]
 
* UDEV Beschreibung auf [https://www.suse.com/de-de/documentation/sles11/singlehtml/book_sle_admin/cha.udev.html SuSE.com]
 +
  
  
 
== Scripte==
 
== Scripte==
Die oben genannten Befehle, kann man auch in einer Datei zusammenfassen und nach dem Setzen des "Execute" Attributs als so genanntes Script ausführen. Hier finden sie einige [[Nuetzliche_Scripte|Nützliche Skripte]].
+
Die oben genannten Befehle, kann man auch in einer Datei zusammenfassen und nach dem Setzen des "Execute"-Attributs als so genanntes Script ausführen. Hier finden sich einige [[Nuetzliche_Scripte|Nützliche Skripte]].
  
  
 
----
 
----
 
Zurück zur [[Erste-Hilfe|Linux Hilfeseite]]
 
Zurück zur [[Erste-Hilfe|Linux Hilfeseite]]

Version vom 30. April 2017, 21:37 Uhr

Die so genannte Shell ist das Linux-Textinterface, welches durch Eingabe von Befehlen den Linux-PC steuern kann. Hier findet sich eine Sammlung von Befehlen, die sich in der Linux Shell verwenden lassen, um Aufgaben zu vereinfachen, oder aber einfach per Markieren und Kopieren (manchmal mit kleinen Anpassungen,- z.B. bei Variablen wie Dateinamen, etc.) verwendbar sind.

Es gibt wie häufig unter Linux mehrere Möglichkeiten in eine Konsole zu wechseln. Zum einen bieten die meisten Linux-Desktop-Oberflächen ein Programm an, dass sich wie ein Fenster öffnet und in welches dann die Befehle eingegeben werden können. Diese findet man am einfachsten, indem man in der Programmliste nach einem Programm mit der Bezeichnung "Terminal", "Konsole", "XTerm" oder ähnlichem sucht. Meistens kann man die Suche durch Eingabe der Bezeichnungen in dem geöffneten Menü eingrenzen.

Zum anderen kann man auch ganz in eine so genannte Konsole wechseln, die dann den ganzen Bildschirm füllt. Tatsächlich meldet man sich in diesem Fall vorläufig vom Fenstermanager ab, so daß man nur noch über Textbefehle, nicht aber per Maus (grafisch) auf das Betriebssystem zugreifen kann. Das kann besonders dann hilfreich sein, wenn der Desktop nicht mehr bedienbar, oder erst gar nicht angeboten wird (z. B. auf Servern). Diese Konsole kann man mit der Tastenkombination <Strg>+<Alt>+<F1> für die erste "Haupt"-Konsole bis je nach Distribution <Strg>+<Alt>+<F4> bis <Strg>+<Alt>+<F6>) erreichen. Dabei sind die so genannten "Control"-Taste (=Ctrl - auf einer deutschen Tastatur meist mit dem Aufdruck "Strg" versehen), die "Alternate"-Taste (auf einer deutschen Tastatur meist mit dem Aufdruck "Alt" versehen) und eine der "Funktionstasten" "F1" bis "F12" gleichzeitig zu betätigen. Dabei fängt man meist mit der links bezeichneten Taste (hier also die "Strg"-Taste) an und drückt die folgenden ohne loszulassen, bis der Bildschirm einen in der Regel schwarzen Hintergrund mit weißer Schrift zum Benutzer-"Login" auffordert. Dort muss man dann seinen eingestellten Benutzernamen, gefolgt von der "Enter"- oder "Return"-Taste eingeben. Anschließend wird man in der Regel aufgefordert, das dazugehörige Passwort einzugeben. Die Eingabe des Paßwortes ist "unsichtbar", man sieht also nicht, daß getippt wird; auch keine Punkte oder sonstigen Platzhalter. Drückt man die auf der letzten Konsole folgende Funktionstaste, wechselt man zurück zum grafischen Desktop (falls man von einem grafischen Desktop her gekommen ist, was aber für normale Nutzer die Regel ist). Dies geschieht durch die Tastenkombination <Strg>+<Alt>+<F5> bzw. je nach Distribution F6 oder F7). Bei Notebooks oder kompakten Tastaturen ist es möglich, dass die Funktionstasten mit einer speziellen Taste erst aktiviert werden muss. Diese muss dann zusätzlich vor der Funktionstaste gedrückt werden. Auf deutschen Tastaturen handelt es sich bei dieser Funktionstaste um die "fn"-Taste, welche sich in der Regel links der Leertaste findet. Ob die "F"-Tasten (ganz oben über den Zahlen) diese zusätzliche Funktionstaste benötigen, sieht man meist an einer farblichen Hervorhebung der Funktionstasten und der Steuertaste.


Referenzen:
Auf der Seite Nützliche Scripte finden sich einige Links zu BASH Einführungen


Anmerkung:

Bitte Leerzeichen und Formatierungen beachten, diese können entscheidende Unterschiede machen, so dass der Befehl nicht so funktioniert wie man es erwartet.


Dateisystem

  • Platzbedarf eines Verzeichnisses inklusive aller Unterverzeichnisse anzeigen:
$du -hs
# Dateien / Verzeichnisse mit größtem Platzbedarf zuerst anzeigen:
$du -hs .* * | sort -h


  • Den freien sowie belegten Platz auf allen gemounteten Partitionen anzeigen:
$df -h


  • Eine gut lesbare Anzeige aller Inhalte eines Verzeichnisses mit allen Infos (die neueste Datei am Ende der Ausgabe):
$ls -altrh


  • Ein CD-ROM-Image mit dd erstellen:
$dd if=/dev/cdrom of=/tmp/datei.iso


  • eine kürzere Alternative:
$cat /dev/cdrom > /tmp/datei.iso


  • dd-Fortschritt erfragen (wobei Prozess-Id die Prozess-Id des laufeneden dd-Prozesses ist):
$kill -SIGUSR1 Prozess-Id


  • Als Alternative kann auch pv verwendet werden (zeigt Fortschritt an):
 pv < /dev/cdrom > /tmp/datei.iso


  • dd-Fortschritt erfragen (aller zur Zeit laufenden dd-Prozesse):
$kill -SIGUSR1 $(pidof dd)


  • Ein CD-ROM-Image mit dd erstellen (dito mit einer Art Statusanzeige):
$dd if=/dev/cdrom of=/tmp/datei.iso &
$watch -n 1 "ls -l /tmp/datei.iso"


  • Die erste Partition der ersten Platte als komprimiertes Image mit bzip sichern:
dd if=/dev/hda1 | bzip2 -9 > /tmp/partition_image.bzip2


  • Das MBR der ersten Platte (unkomprimiert) sichern (Größe ist immer 512byte * count=1):
dd if=/dev/hda of=~/hda.mbr bs=512 count=1


  • Die Partitionstabelle der ersten Platte (unkomprimiert) sichern:
sfdisk -d /dev/hda > ~/hda.pt


sfdisk /dev/hda < ~/hda.pt


  • Eine Image-Datei /tmp/datei.iso ins Dateisystem an die Stelle /mnt/isofiles mounten:
$mount -o loop /tmp/datei.iso /mnt/isofiles


  • Eine Image-Datei /tmp/datei.iso ins Dateisystem an die Stelle /mnt/isofiles mounten (dito dauerhaft):
$echo -e "\n#/tmp/datei.iso an /mnt/isofiles mounten\n/tmp/datei.iso /mnt/isofiles iso9660 ro,loop 0 0" >> /etc/fstab
$mount /mnt/isofiles


  • Einen Text z.B. in allen *.html Dateien ab dem aktuellen Verzeichnis und allen Unterverzeichnissen zu ersetzten (hier wird der Text <Zu ersetzender Text> durch den Text <Neuer Text> ersetzt:
$find . -iname "*.html" -exec sed -i -e "s/<Zu ersetzender Text>/<Neuer Text>/g" {} \;


  • Die Partitionstabellen aller vorhandener Platten anzeigen:
fdisk -l


  • Die Partitionstabelle (hier als Beispiel von sdb) bearbeiten:
fdisk /dev/sdb


  • Eine Partition (hier als Beispiel sdb) mit ext4 formatieren:
mkfs.ext4 /dev/sdb


  • Die erstellte Tabelle (hier als Beispiel sdb) dem Linux-Kernel bekannt machen (siehe auch Beschreibung im UbuntuUsers Wiki):
partprobe /dev/sdb



Screen

Möchte man per remote auf einen anderen Liunx-PC lange laufende Prozesse starten, sollte man sich an der Konsole wieder abmelden können. Dieses kann man mit dem Befehl screen machen.


  • Einen Prozess mit Namen image im Hintergrund starten:
screen -d -m -S image


  • Prozesse auflisten:
screen -list


  • In den Prozess image wechseln:
screen -r image


  • Alternativ kann man auch in die Prozess-ID welche screen -list liefert wechseln (z.B. There is a screen on: 19215.image (detached)):
screen -r 19215


  • Aus einem screen-Hintergrund-Prozess wieder auf die Kommandozeile zurück wechseln (z.B. um sich dort per remote wieder abzumelden):
Strg+A gefolgt von Strg+D
  Anmerkung:
  Auf der deutschen Tastatur reden wir von der Strg-Taste (=Steuerung); auf englischen Tastaturen heißt diese Ctrl-Taste (=Control, also auch Steuerung auf Deutsch)


Hardware

  • Anzeige der gefundenen USB-Devices (evtl. nur als root möglich, bzw. Pfad mit angeben):
$lsusb -v


  • Anzeige der gefundenen PCI-Devices:
$lspci -v


  • Stromsparfunktionen automatisch optimieren (evtl. muss das Programm "powertop" vorher mit der Linux Paketverwaltung bzw. der Softwareverwaltung installiert werden) (Beschreibung auf Heise bzw.UbuntuUsers):
sudo powertop --auto-tune


  • Stromsparfunktionen kontrollieren und Systemleistung verifizieren (nun öffnet sich eine Textoberfläche, die mit der Tab-Taste (diese findet sich über der Festelltaste für Großschreibung links auf der Tastatur) - siehe auch Hinweise auf dem Fenster unten):
sudo powertop


Netzwerk

  • Netzwerkkarte von Hand die neue IP Adresse 192.168.0.2 zuordnen und das default Gateway mit IP 192.168.0.1 setzen:
$ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
$route add default gw 192.168.0.1


  • Das Default-Gateway ändern:
$route del default
$route add default gw 192.168.0.99 (neue gateway ip)


  • Einen Nameserver gibt man in /etc/resolv.conf an:
$nameserver 192.168.0.1


  • Den Weg eines Datenpakets im Netzwerk ansehen (iam Beispiel der domain web.de):
$traceroute web.de


  • Komplette Websites lokal auf den Rechner in das aktuelle Verzeichnis laden:
$wget -r http://www.homepage.de


  • Eine (große) Datei lokal auf den Rechner in das aktuelle Verzeichnis laden. Download fortsetzen [falls abgebrochen (timeout) und dies unterstützt wird]:
$wget -c ftp://www.homepage.de/grosse-datei.tgz


  • Meist will man nicht die komplette Website (Achtung! das kann sehr, sehr viel sein...), sondern nur eine bestimmte Seite inklusive der verwendeten Bilder. Dann gibt man die Suchtiefe mit -l an:
$wget -r -l 1 http://www.homepage.de



  • Das /home Verzeichnis des Quellrechners (rekursiv) über eine SSH-Verbindung auf den Ziel-Rechner name.zielrechner.local in das Verzeichnis /datengrab und den Dateinamen "home_2007-03-23.tgz" (wenn das Datum des Quellrechners auf den 23.03.2007 steht) speichern. Lautet das Datum aktueller, ist das Datum natürlich anzupassen:
$tar czv /home | ssh name.zielrechner.local "cat > /datengrab/home_$(date +%F).tgz"


  • Sollte mal z.B. der Displaymanager nicht mehr richtig funktionieren oder sonst der (grafische) Login nicht funktionieren, kann man dem Kernel auch die Anweisung erteilen, eine andere Shell zu starten. Dazu muss man dann z.B. beim Booten den GRUB durch einmaliges Drücken der <ESC>-Taste in den Textmodus wechseln und dort mit der <E>-Taste die angewählte Taste editieren. Hängt man an das Ende der Kernel- Zeile mit vmlinuz' den Parameter
    init=/bin/sh
    , bzw. wenn man die Bash verwenden möchte eben
    init=/bin/bash
    , so bootet Linux auf diese Shell (ohne Abfrage des root Passwortes). Anschließend kann man mit der <ENTER>-Taste wieder in die Übersicht zurück wechseln und abschliessend mit der <b>-Taste den geänderten Bootablauf booten.


  • Aufbau eines Servers für ein Heimnetz (Debian Basiert) findet Ihr hier:


Automatisierung mit UDEV Regeln

Möchte man beim Anstecken von neuer Hardware wie z.B. einen USB Datenträger, automatisch eine Aktion starten, so kann man dass ganz einfach mit einem modernen Linux durch Definition einer so genannten UDEV-Regel tun.


Grobes Vorgehen

  1. mit lsusb bekommt ihr raus, wie das Device (Device = Datenträger) heisst
  2. Herausfinden der Daten des eingestöpselten Gerätes (hier im Beispiel sdb1) auch mit:
    udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)
  3. in der richtigen Sektion, nämlich da, wo auch die idVendor steht, die Daten zu idVendor und idProduct zupfen
  4. dann /etc/init.d/udev restart
  5. das UDEV-Log-Level kann man ändern über:
    control --log-priority=info
  6. Regel-file: /etc/udev/rules.d/85-my_rule.rules mit dem bevorzugten Editor öffnen (z.B. mit joe, kate, ...)
  7. Regel in der Datei eintragen
    ACTION=="add", ATTRS{idVendor}=="0480", ATTRS{idProduct}=="a208", RUN+="/usr/local/bin/my_script"
  8. Nun wird beim Erkennen des Herstellergerätes 0480 mit der Produkt-Id a208 das script /usr/local/bin/my_script gestartet (mehr zu Skripten findet Ihr im Artikel Nützliche Skripte)


Siehe auch


Scripte

Die oben genannten Befehle, kann man auch in einer Datei zusammenfassen und nach dem Setzen des "Execute"-Attributs als so genanntes Script ausführen. Hier finden sich einige Nützliche Skripte.



Zurück zur Linux Hilfeseite