Limetten-HeaderText-Header

Linux zu Hause

Rund um den Einsatz von Linux auf dem Desktop.

Themen

Schnellreferenz

Die neusten Tricks

  • recode l1..u8 somefile.txt Schreibt das Encoding einer Datei um - in diesem Fall von latin1 zu utf8. Sehr praktisch, wenn der Webserver mit dem Zeichensatz nicht klarkommt.
  • crontab -l bzw. crontab -e Listet die Einträge bzw. schreibt Einträge der crontab.
  • chsh -s /bin/bash Ändert die Login-Shell auf bash
  • /etc/password: foo:x:1001:1001::/home/foo:/bin/sh Definiert ebenfalls die Login-Shell.
  • less error.log | grep -vw "Segmentation" | wc -l Zählt alle Zeilen (wc -l), die nicht das Wort Segmentation enthalten.
  • netstat -tulpn Listet die Programme, die auf Ports bzw. Sockets lauschen.
  • hwinfo --disk Das Programm hwinfo ist nicht in der Standard-Installation enthalten!
  • file datei Gibt den Typ (z.B. UTF-8 Unicode text, JPEG image data, Microsoft ASF, ...) an.
  • watch --i=3 [df|lsmod|...] Ruft alle drei Sekunden [df|lsmod|...] auf.
  • find . -type f ! -newer <dummyfile> -delete Löscht alle Dateien, die nicht neuer sind als dummyfile.
  • pushd <path> bzw. popd <path> Wechselt das Verzeichnis und legt das aktuelle Verzeichnis auf einen Stack bzw. kehrt zum Verzeichnis, das oben auf dem Stack liegt, zurück.
    cd - Hat eine ähnliche Funktion, allerdings hat hier der Stack Größe 1.
  • find . -user andreas -exec chown -u franz "{}" \+ Überträgt die Ownerschaft von Benutzer andreas auf Benutzer franz. -u steht dabei für no dereference (den Links nicht folgen), das abschließende \+ sorgt dafür, dass die Befehle nicht einzeln sondern geblockt abgeschickt werden.
  • sync && date && dd if=/dev/zero of=/home/andreas/tmp bs=1M count=10240 && sync && date Performance-Test: Schreibt 10GB auf die home-Partition und misst dabei die Zeit. sync ist dabei wichtig, um die Festplattenpuffer zu leeren. (Andernfalls wird ein Teil der Daten in das RAM gecached!)
  • mount -o loop -t iso9660 file.iso /mnt/iso Hängt ein Iso-Image unter /mnt/iso ein.
  • kill -USR1 <pid of dd> Veranlasst dd die aktuelle Statistik auf stderr auszugeben.
  • watch -n 10 kill -USR1 <pid of dd> Gibt alle 10 Sekunden die Statistik von dd aus. (watch sendet in regelmäßigen Abständen einen gegebenen Befehl.)
  • dd if=/dev/zero | pv | dd of=/dev/null Durchsatzmessung mit pv.
  • dmesg | vim - Das Minus sorgt dafür, dass vim von der Standardausgabe liest.
  • update-rc.d <scriptname> defaults Sorgt dafür, dass ein Skript in einem bestimmten Runlevel gestartet wird.
  • command | vim - Leitet die Ausgabe (stdout) von command in den Editor um.
  • command 2>&1 | vim- Leitet den stderr -Teil der Ausgabe in den Editor um.
  • pv file.bz2 | bunzip2 > file Entpackt die Datei und gibt währenddessen einen Fortschrittsbalken an (pv).
  • ps -ef | grep firefox| grep -v grep | grep wuerfla| awk '{print $2}' Gibt die Prozess-IDs aller Instanzen von Firefox, die wuerfla gehören, aus. (UNIX-Syntax: -ef).
Ein kleines Skript dazu (Dateiname ist kills.sh!):
#!/bin/bash

if [ -z "$1" ]; then
echo usage: $0 process
exit
fi
PROC=$1
IDS=`ps -ef | grep $PROC| grep wuerfla | grep -v kills | grep -v grep |awk '{print $2}'`
kill $IDS

  • free Zeigt die aktuelle Speicherbelegung an.
  • cat /proc/meminfo Gibt detailierte Informationen über den Speicher des Systems.
  • tune2fs Ist ein Tool zur Konfiguration von Dateisystem Optionen. (tune2fs -c 27 setzt z.B. die Anzahl der Reboots bis zum Dateisystemcheck auf 27.)
  • xxd <datei> |more Zeigt datei im Hex-Format an.

Basics

  • arp, df, du, find <pfad> -name <name> -type <typ> -xdev, ifconfig, init, nano, netstat, nslookup, ping, ps, route, shred, sudo, top, touch, traceroute, who, whois
  • nice, nohup, head, tail

Gnome

  • Alt+F2: Run dialog
  • Alt+Tab: Pop up window cycler
  • Alt+Shift+Tab: Cycle in reverse direction in the window cycler
  • Ctrl+Alt+D: Show desktop
  • Ctrl+Alt+Right/Left arrow: Switch between workspaces
  • Ctrl+Alt+Shift+Right/Left arrow: Move the current window to a different workspace

aspell

Das Kommandozeilen-Rechtschreibkorrektur-Programm.

  • aspell -l en -c document.txt Korrigiert document.txt mit dem Standardwörterbuch in der Sprache en. (Dies kann verwendet werden, um eigene Wörter zum Wörterbuch hinzuzufügen.)

Die gesamte Dokumentation findet sich hier Pfeil.

Rund um PDFs

Ein pratkisches Tool ist hier pdftk, das z.B. in den üblichen Ubuntu-Repositories verfügbar ist.

  • pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf Merge Two or More PDFs into a New Document
  • or (Using Handles): pdftk A=1.pdf B=2.pdf cat A B output 12.pdf
  • or (Using Wildcards): pdftk *.pdf cat output combined.pdf
  • pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf Split Select Pages from Multiple PDFs into a New Document
  • pdftk in.pdf cat 1E 2-end output out.pdf Rotate the First Page of a PDF to 90 Degrees Clockwise
  • pdftk in.pdf cat 1-endS output out.pdf Rotate an Entire PDF Document's Pages to 180 Degrees
  • pdftk mydoc.pdf output mydoc.128.pdf owner_pw foopass Encrypt a PDF using 128-Bit Strength (the Default) and Withhold All Permissions (the Default)
  • pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz Same as Above, Except a Password is Required to Open the PDF
  • pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz allow printing Same as Above, Except Printing is Allowed (after the PDF is Open)
  • pdftk secured.pdf input_pw foopass output unsecured.pdf Decrypt a PDF
  • pdftk A=secured.pdf mydoc.pdf input_pw A=foopass cat output combined.pdf Join Two Files, One of Which is Encrypted (the Output is Not Encrypted)
  • pdftk mydoc.pdf output mydoc.clear.pdf uncompress Uncompress PDF Page Streams for Editing the PDF Code in a Text Editor
  • pdftk broken.pdf output fixed.pdf Repair a PDF's Corrupted XREF Table and Stream Lengths (If Possible)
  • pdftk mydoc.pdf burst Burst a Single PDF Document into Single Pages and Report its Data to doc_data.txt
  • pdftk mydoc.pdf dump_data output report.txt Report on PDF Document Metadata, Bookmarks and Page Labels

Für weitere Dokumentation siehe auch http://www.accesspdf.com/pdftk/ Pfeil.

Brauchbares

  • du -sh <file> Gibt den Plattenplatz von <file> in einer menschenfreundlichen Größe an.
  • du -ca . |sort -k1 -g Gibt die Größen der Dateien im aktuellen Ordner aus und sortiert diese aufsteigend.
  • rm -rf <folder> Löscht den angegebenen Ordner, auch wenn er nicht leer ist
  • ps -ef  |grep root |sort -k2 Listet alle aktiven Prozesse auf, die root gehören und sortiert diese nach der zweiten Spalte
  • grep <text> <datei> Zeigt alle Zeilen in datei, die text enthalten
  • ln -s <name> <pfad> Erzeugt einen Link auf pfad mit dem Namen name
  • lp -d <drucker> <datei> Druckt Datei auf drucker
  • cat /proc/cpuinfo Zeigt Informationen über z.B. die CPU an
  • nmap Netzwerk-Mapping-Tool
  • updatedb und locate <datei> Updatedb aktualisiert den Index aller vorhandenen Dateien, locate sucht Dateien
  • ssh -i <keyfile> -L localport:server_ip:port -l <benutzername> server öffnet einen SSH-Tunnel zu server und reicht die Pakete dort an server_ip:port weiter; verwendet Public-Key-Cryptographie zur authentifizierung
  • ssh-add <keyfile> fügt einen Public-Key zum ssh-Agent hinzu (Auflisten mit ssh-add -l) Damit funktioniert die Authentifizierung auch ohne Eingabe der Passphrase. In diesem Zusammenhang auch interessant: ~/.ssh/config
  • ftp servername Öffnet eine ftp-Verbindung zum angegebenen Server, Wikipedia hat eine gute Bedinungsanleitung
  • sudo su Als erster User unter (K)ubuntu: öffnet eine root-Konsole, fragt aber nur nach dem Benutzerpasswort und nicht nach dem root-Passwort
  • tar -cv[z]f file.tar[.gz] files Erstellt ein Archiv im .tar bzw. .tar.gz Format, das die Daten aus files enthält
  • tar -xvzf file.tar.gz Entpackt eine Datei im gzip-Format
  • tar -tvf file.tar Listet den Inhalt des Archivs auf
  • tar -jxf file.tar.bz2
  • usermod -s /bin/bash username Setzt die Standardshell eines Benutzers (in diesem Fall auf bash)
  • md5sum <datei> Berechnet einen Hash der Datei
  • fdisk <device> Partitioniert das Angegebene Gerät
  • mkfs -t ext3 <partition> Formatiert partition mit dem angegebenen Dateisystem (hier: ext3)
  • fsck <partition> Überprüft das Dateisystem auf partition (auch: fsck.ext2, fsck.ext3, fsck.vfat für ext2, ext3 bzw. fat32)
  • rename 'y/A-Z/a-z/' * Benennt alle Dateien des aktuellen Verzeichnisses in Kleinbuchstaben um.
  • rename 's/\.jpg$//' *.jpg Entfernt die Dateiendung.
  • rename "s/ *//g" * Entfernt Leerzeichen aus Dateinnamen.
  • rename -v -n 's/(\d{1})/0$1/' *.tar.gz Verwendet einen Teil des gematchten Ausdrucks wieder ($1).
  • shred <datei> Überschreibt datei mit Nullen. (gründliches Löschen)
  • ldd <executable> Zeigt alle dynamisch gelinkten Libraries an.
  • fgrep -re <pattern> <ordner> Durchsucht die Dateien in ordner rekursiv nach dem Muster pattern .
  • xhost + gibt den eigenen X-Server für andere Benutzer frei. (xhost - sperrt diesen wieder.)
  • kdesu <command> führt einen Befehl unter KDE als root aus.

  • lsmod Listet die aktuell geladenen Kernel-Module.
  • lspci Listet die PCI-Geräte.
  • lsusb Listet die USB-Geräte.

Zum Umgang mit Fremdpaketen *.rpm:

  • Rekompilieren mit alien, oder einfach nur
  • entpacken mit rpm2cpio paket.rpm | cpio -im dateiname.

Systeminformationen

  • uname -r Gibt die aktuelle Kernel-Version an.
  • dpkg --list 'linux-image*' Listet installierte Programme auf. (Hier: Installierte Kernel-Images)

Nutzer- und Gruppenverwaltung

  • group <gruppenname> bzw. addgroup <gruppenname> oder groupadd <gruppenname> Legt eine Gruppe an. (groupdell löscht die Gruppe wieder.)
  • adduser <username> Legt einen neuen Benutzer an. (deluser löscht den User wieder.)
  • adduser <username><groupname> Fügt einen (existierenden) Benutzer zu einer Gruppe hinzu.
  • usermod -g <groupname> <username> Legt die Gruppe fest, mit der sich der User einloggt.

Sudo

Ein gutes Tutorial zur Konfiguration von sudo: http://newbiedoc.berlios.de/wiki/How_to_configure_Sudo_to_run_programs_as_a_different_user Pfeil

Konfiguration über /etc/sudoers: sudoers Handbuch Pfeil, Beispieldatei Pfeil

Netzwerk-Befehle

Linux im Netzwerk

Dieser Bereich steht auf einer eigenen Seite: LinuxNetwork

Special Tricks

Aus der Ct:

  • Fügt man in ein Verzeichnis eine Datei namens -i ein, so schützt diese den Inhalt vor versehentlichem Löschen: Ein rm * liest zuerst den Dateinamen -i ein und interpretiert diesen als Option, was dazu führt, dass das Löschen jeder Datei einzeln bestätigt werden muss. Die Datei kann übrigens per rm ./-i gelöscht werden.

Dateisystem

  • du -sh <datei> ( display usage ) Zeigt den durch datei belegten Plattenplatz an. (-sh sorgt für lesbare Ausgabe.)
  • chmod
  • cp, mv, rm
  • file <datei> Gibt den Dateityp von datei an.
  • rm -i *.txt Löscht txt-Dateien, fragt aber bei jeder Datei nach.

Drucken in der Konsole

  • lp -d <drucker> <datei> Druckt datei auf drucker.

Weitere Optionen für lp:

  • -d destination wählt das Ausgabegerät
  • -n num-copies Anzahl Kopien
  • -P page-list Seitenauswahl
  • -o option=value option übergibt weitere Optionen z.B. -o usercode=123456
  • -o sides=one-sided/two-sided-long-edge/two-sided-short-edge druckt einseitig/zweiseitig
  • -o landscape druckt Querformat
  • -o scaling=200 druckt mit 200%-Skalierung

Den Zustand des Druckers kann man mit lpstat abfragen. Eine weiterer praktischer Befehl ist psnup:

  • psnup -4 <input-datei> <output-daeti> erzeugt eine =ps=-Datei, die vier logische Seiten pro physischer Seite enthält

Setup von Brother Drucker unter 64bit Ubuntu: ubuntuusers.de Pfeil

Grafikkarte und Monitor

Falls die Anzeige des XServers nicht korrekt ist, hilft folgendes tool weiter: xvidtune. Siehe auch http://fixunix.com/xwindows/91788-x-org-horizontal-screen-position-setting.html Pfeil.

Job-Verwaltung

Vergleiche http://en.wikibooks.org/wiki/LPI_Linux_Certification/Create,_Monitor_&_Kill_Processes Pfeil

Systemupdates mit apt

Ein guter Artikel: http://neversfelde.de/index.php?/archives/45-sources-list-fuer-Hardy,-Kubuntu-8.04.html Pfeil

Wenn mehrere Pakete für den gleichen Zweck installiert sind (z.B. openjdk-6-jre, sun-java6-jre, gcj-4.5-jre), dann kann mit folgendem Befehl eine der installierten Komponenten ausgewählt werden:

  • sudo update-alternatives --config java

Wichtige Datei: /etc/apt/sources.list

Schlüssel für neue Repositories können wie folgt installiert werden:

Oder, falls der Schlüssel nicht zum Download angeboten wird:
  • gpg --keyserver subkeys.pgp.net --recv-keys <key> Importiert den Schlüssel.
  • gpg -a --export 55BE302B | sudo apt-key add - Macht den Schlüssel für apt bekannt.

Shell-Skripting

Siehe auch Scripting!

Tutorials zum Thema:

Speziell für Bash-Skritpting: http://wiki.ubuntuusers.de/Skripte Pfeil

Perl

Bash

Konfigurationsdatei für das Erscheinungsbild der bash: .bashrc
Weitere gute Tipps finden sich hier: wiki.ubuntuusers.de/Bash Pfeil oder hier http://www.faqs.org/docs/Linux-HOWTO/Bash-Prompt-HOWTO.html Pfeil, http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO.html Pfeil, http://wiki.archlinux.org/index.php/Post_Installation_Tips#Colorize_your_PS1_and_Console Pfeil

  • export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' liefert z.B. einen farbigen Prompt
  • ls * 2>&1 Leitet stderr (2) auf stdout um.
  • ls * 1>/dev/null Leitet stdout (1) nach /dev/null um (d.h. die Standardausgabe wird verworfen).

svn

Das Versionsverwaltungssystem SVN Pfeil ist ein sehr mächtiges Werkzeug, um umfangreiche Dokumente während ihres Entstehungsprozesses zu verwalten. Hier einige grundlegende Befehle:

Zum Einrichten des Repositories auf dem Server:

  • svnadmin create /pfad/zum/repository Erstellt ein Verzeichnis auf dem Server, in dem das Repository gespeichert wird.

Die ersten Dateien in das Repository schreiben:

  • svn import <ordner> -m "Kommentar" svn+ssh://username@server/pfad/zum/repository

Zum Einrichten einer Arbeitskopie auf dem Client:

  • svn checkout svn+ssh://username@server/pfad/zum/repository Erstellt eine Arbeitskopie im aktuellen Verzeichnis; diese Variante funktioniert für Server, auf die per ssh zugegriffen wird.
  • svn update Aktualisiert die Arbeitskopie mit Daten vom Server.
  • svn commit -m 'message' Überträgt die bearbeiteten Dateien auf den Server.
  • svn add <datei>, svn delete <datei> Fügt eine Datei zum Repository hinzu, oder löscht eine Datei. Anschließend ist ein commit notwendig!

Hilfreiche Links: http://svnbook.red-bean.com/nightly/de/index.html Pfeil (Ausführliche Doku vom Hersteller), http://www.abbeyworkshop.com/howto/misc/svn01/ Pfeil
Für die RBG der Mathematik: http://www.fsphysik.de/forum/showthread.php?t=3607 Pfeil

Wird ein Repository von einem System zu einem anderen migriert, kann es zu Problemen kommen, wenn die verwendeten Versionen von svn nicht identisch sind. Hier hilft ein sauberer Ex- und Import (anstelle einer einfachen Kopie der Ordnerstruktur):

  • svnadmin dump <pfad/zum/repository> ><file> Erstellt einen Dump des angegebenen Repositorys.
  • svnadmin load <pfad/zum/repository> < <file> Fügt die Daten in ein bereits bestehendes (!) Repository ein.

xfce4

  • Falls keine Startleiste angezeigt wird: xfce4-panel startet diese
  • Die Auswahl einer neue Sitzung beim Systemstart kann durch die Einstellung Sitzungsauswahl beim Start anzeigen im Dialog Einstellungen/Sitzungs- und Starteinstellungen aktiviert werden.
  • Weitere Tipps finden sich z.B. hier: http://wiki.xfce.org/de/faq Pfeil

Gnuplot

Eine kleine Einführung in Gnuplot findet sich hier.

Hilfreiche Links