Linux zu Hause
Rund um den Einsatz von Linux auf dem Desktop.Themen
- Anwendungen: Editoren, GnuPlot, Musik
- Hardware: Grafik, Sound
- System: LinuxBoot, LinuxSystem, LinuxNetwork, Storage, Virtualisierung
- Sonst: Scripting, RegularExpressions, Security
Schnellreferenz
Die neusten Tricks
-
recode l1..u8 somefile.txtSchreibt das Encoding einer Datei um - in diesem Fall vonlatin1zuutf8. Sehr praktisch, wenn der Webserver mit dem Zeichensatz nicht klarkommt. -
crontab -lbzw.crontab -eListet die Einträge bzw. schreibt Einträge dercrontab. -
chsh -s /bin/bashÄndert die Login-Shell aufbash -
/etc/password:foo:x:1001:1001::/home/foo:/bin/shDefiniert ebenfalls die Login-Shell. -
less error.log | grep -vw "Segmentation" | wc -lZählt alle Zeilen (wc -l), die nicht das WortSegmentationenthalten. -
netstat -tulpnListet die Programme, die auf Ports bzw. Sockets lauschen. -
hwinfo --diskDas Programmhwinfoist nicht in der Standard-Installation enthalten! -
file dateiGibt 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> -deleteLöscht alle Dateien, die nicht neuer sind alsdummyfile. -
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 Benutzerandreasauf Benutzerfranz.-usteht 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 && datePerformance-Test: Schreibt 10GB auf die home-Partition und misst dabei die Zeit.syncist 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/isoHängt ein Iso-Image unter/mnt/isoein. -
kill -USR1 <pid of dd>Veranlasstdddie aktuelle Statistik aufstderrauszugeben. -
watch -n 10 kill -USR1 <pid of dd>Gibt alle 10 Sekunden die Statistik vonddaus. (watchsendet in regelmäßigen Abständen einen gegebenen Befehl.) -
dd if=/dev/zero | pv | dd of=/dev/nullDurchsatzmessung mitpv. -
dmesg | vim -Das Minus sorgt dafür, dassvimvon der Standardausgabe liest. -
update-rc.d <scriptname> defaultsSorgt dafür, dass ein Skript in einem bestimmten Runlevel gestartet wird. -
command | vim -Leitet die Ausgabe (stdout) voncommandin den Editor um. -
command 2>&1 | vim-Leitet denstderr-Teil der Ausgabe in den Editor um. -
pv file.bz2 | bunzip2 > fileEntpackt 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, diewuerflagehören, aus. (UNIX-Syntax:-ef).
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
-
freeZeigt die aktuelle Speicherbelegung an. -
cat /proc/meminfoGibt detailierte Informationen über den Speicher des Systems. -
tune2fsIst ein Tool zur Konfiguration von Dateisystem Optionen. (tune2fs -c 27setzt z.B. die Anzahl der Reboots bis zum Dateisystemcheck auf 27.) -
xxd <datei> |moreZeigtdateiim 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.txtKorrigiertdocument.txtmit dem Standardwörterbuch in der Spracheen. (Dies kann verwendet werden, um eigene Wörter zum Wörterbuch hinzuzufügen.)
.
Rund um PDFs
Ein pratkisches Tool ist hierpdftk, das z.B. in den üblichen Ubuntu-Repositories verfügbar ist. -
pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdfMerge 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.pdfSplit Select Pages from Multiple PDFs into a New Document -
pdftk in.pdf cat 1E 2-end output out.pdfRotate the First Page of a PDF to 90 Degrees Clockwise -
pdftk in.pdf cat 1-endS output out.pdfRotate an Entire PDF Document's Pages to 180 Degrees -
pdftk mydoc.pdf output mydoc.128.pdf owner_pw foopassEncrypt 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 bazSame 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 printingSame as Above, Except Printing is Allowed (after the PDF is Open) -
pdftk secured.pdf input_pw foopass output unsecured.pdfDecrypt a PDF -
pdftk A=secured.pdf mydoc.pdf input_pw A=foopass cat output combined.pdfJoin Two Files, One of Which is Encrypted (the Output is Not Encrypted) -
pdftk mydoc.pdf output mydoc.clear.pdf uncompressUncompress PDF Page Streams for Editing the PDF Code in a Text Editor -
pdftk broken.pdf output fixed.pdfRepair a PDF's Corrupted XREF Table and Stream Lengths (If Possible) -
pdftk mydoc.pdf burstBurst a Single PDF Document into Single Pages and Report its Data to doc_data.txt -
pdftk mydoc.pdf dump_data output report.txtReport on PDF Document Metadata, Bookmarks and Page Labels
.
Brauchbares
-
du -sh <file>Gibt den Plattenplatz von<file>in einer menschenfreundlichen Größe an. -
du -ca . |sort -k1 -gGibt 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 -k2Listet alle aktiven Prozesse auf, die root gehören und sortiert diese nach der zweiten Spalte -
grep <text> <datei>Zeigt alle Zeilen indatei, dietextenthalten -
ln -s <name> <pfad>Erzeugt einen Link aufpfadmit dem Namenname -
lp -d <drucker> <datei>DrucktDateiaufdrucker -
cat /proc/cpuinfoZeigt Informationen über z.B. die CPU an -
nmapNetzwerk-Mapping-Tool -
updatedbundlocate <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 zuserverund reicht die Pakete dort anserver_ip:portweiter; verwendet Public-Key-Cryptographie zur authentifizierung -
ssh-add <keyfile>fügt einen Public-Key zum ssh-Agent hinzu (Auflisten mitssh-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 suAls 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] filesErstellt ein Archiv im.tarbzw..tar.gzFormat, das die Daten ausfilesenthält -
tar -xvzf file.tar.gzEntpackt eine Datei im gzip-Format -
tar -tvf file.tarListet den Inhalt des Archivs auf -
tar -jxf file.tar.bz2 -
usermod -s /bin/bash usernameSetzt die Standardshell eines Benutzers (in diesem Fall aufbash) -
md5sum <datei>Berechnet einen Hash der Datei -
fdisk <device>Partitioniert das Angegebene Gerät -
mkfs -t ext3 <partition>Formatiertpartitionmit dem angegebenen Dateisystem (hier: ext3) -
fsck <partition>Überprüft das Dateisystem aufpartition(auch:fsck.ext2,fsck.ext3,fsck.vfatfür ext2, ext3 bzw. fat32) -
rename 'y/A-Z/a-z/' *Benennt alle Dateien des aktuellen Verzeichnisses in Kleinbuchstaben um. -
rename 's/\.jpg$//' *.jpgEntfernt die Dateiendung. -
rename "s/ *//g" *Entfernt Leerzeichen aus Dateinnamen. -
rename -v -n 's/(\d{1})/0$1/' *.tar.gzVerwendet einen Teil des gematchten Ausdrucks wieder ($1). -
shred <datei>Überschreibtdateimit Nullen. (gründliches Löschen) -
ldd <executable>Zeigt alle dynamisch gelinkten Libraries an. -
fgrep -re <pattern> <ordner>Durchsucht die Dateien inordnerrekursiv nach dem Musterpattern. -
xhost +gibt den eigenen X-Server für andere Benutzer frei. (xhost -sperrt diesen wieder.) -
kdesu <command>führt einen Befehl unterKDEals root aus.
-
lsmodListet die aktuell geladenen Kernel-Module. -
lspciListet die PCI-Geräte. -
lsusbListet die USB-Geräte.
*.rpm: - Rekompilieren mit
alien, oder einfach nur - entpacken mit
rpm2cpio paket.rpm | cpio -im dateiname.
Systeminformationen
-
uname -rGibt 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>odergroupadd <gruppenname>Legt eine Gruppe an. (groupdelllöscht die Gruppe wieder.) -
adduser <username>Legt einen neuen Benutzer an. (deluserlö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 vonsudo: http://newbiedoc.berlios.de/wiki/How_to_configure_Sudo_to_run_programs_as_a_different_user
Konfiguration über /etc/sudoers: sudoers Handbuch
, Beispieldatei
Netzwerk-Befehle
Linux im Netzwerk
Dieser Bereich steht auf einer eigenen Seite: LinuxNetworkSpecial Tricks
Aus der Ct:- Fügt man in ein Verzeichnis eine Datei namens
-iein, so schützt diese den Inhalt vor versehentlichem Löschen: Einrm *liest zuerst den Dateinamen-iein und interpretiert diesen als Option, was dazu führt, dass das Löschen jeder Datei einzeln bestätigt werden muss. Die Datei kann übrigens perrm ./-igelöscht werden.
Dateisystem
-
du -sh <datei>( display usage ) Zeigt den durchdateibelegten Plattenplatz an. (-shsorgt für lesbare Ausgabe.) -
chmod -
cp,mv,rm -
file <datei>Gibt den Dateityp vondateian. -
rm -i *.txtLöscht txt-Dateien, fragt aber bei jeder Datei nach.
Drucken in der Konsole
-
lp -d <drucker> <datei>Drucktdateiaufdrucker.
lp: -
-ddestination wählt das Ausgabegerät -
-nnum-copies Anzahl Kopien -
-Ppage-list Seitenauswahl -
-o option=valueoption übergibt weitere Optionen z.B.-o usercode=123456 -
-o sides=one-sided/two-sided-long-edge/two-sided-short-edgedruckt einseitig/zweiseitig -
-o landscapedruckt Querformat -
-o scaling=200druckt mit 200%-Skalierung
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
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
.
Job-Verwaltung
Vergleiche http://en.wikibooks.org/wiki/LPI_Linux_Certification/Create,_Monitor_&_Kill_Processes
Systemupdates mit apt
Ein guter Artikel: http://neversfelde.de/index.php?/archives/45-sources-list-fuer-Hardy,-Kubuntu-8.04.html
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
/etc/apt/sources.list
Schlüssel für neue Repositories können wie folgt installiert werden: -
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -Installiert z.B. den Schlüssel für das Opera-Repository.
-
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üraptbekannt.
Shell-Skripting
Siehe auch Scripting! Tutorials zum Thema:- Für Einsteiger: http://www.linux-fuer-alle.de/doc_show.php?docid=150&catid=8
- Ausführliche Doku: http://www.freeos.com/guides/lsst/
- Für Wikipedia-Fans: http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammierung
Perl
- Ein nettes Tutorial: http://perl-seiten.homepage.t-online.de/
- Die offizielle Doku: http://perldoc.perl.org/index-overview.html
Bash
Konfigurationsdatei für das Erscheinungsbild der bash:.bashrc Weitere gute Tipps finden sich hier: wiki.ubuntuusers.de/Bash
oder hier http://www.faqs.org/docs/Linux-HOWTO/Bash-Prompt-HOWTO.html
,
http://www.linuxselfhelp.com/howtos/Bash-Prompt/Bash-Prompt-HOWTO.html
, http://wiki.archlinux.org/index.php/Post_Installation_Tips#Colorize_your_PS1_and_Console
-
export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] 'liefert z.B. einen farbigen Prompt -
ls * 2>&1Leitetstderr(2) aufstdoutum. -
ls * 1>/dev/nullLeitetstdout(1) nach/dev/nullum (d.h. die Standardausgabe wird verworfen).
svn
Das Versionsverwaltungssystem SVN
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/repositoryErstellt ein Verzeichnis auf dem Server, in dem das Repository gespeichert wird.
-
svn import <ordner> -m "Kommentar" svn+ssh://username@server/pfad/zum/repository
-
svn checkout svn+ssh://username@server/pfad/zum/repositoryErstellt eine Arbeitskopie im aktuellen Verzeichnis; diese Variante funktioniert für Server, auf die persshzugegriffen wird. -
svn updateAktualisiert 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 eincommitnotwendig!
(Ausführliche Doku vom Hersteller), http://www.abbeyworkshop.com/howto/misc/svn01/
Für die RBG der Mathematik: http://www.fsphysik.de/forum/showthread.php?t=3607

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-panelstartet diese - Die Auswahl einer neue Sitzung beim Systemstart kann durch die Einstellung
Sitzungsauswahl beim Start anzeigenim DialogEinstellungen/Sitzungs- und Starteinstellungenaktiviert werden. - Weitere Tipps finden sich z.B. hier: http://wiki.xfce.org/de/faq
Gnuplot
Eine kleine Einführung in Gnuplot findet sich hier.Hilfreiche Links
- Wiederherstellung von Daten in ext3 -Dateisystemen: http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
- Die wichtigsten Linux-Befehle:



Doku/Linux