Inhaltsverzeichnis

Tolle Linux-Befehle

Hier sind einige sehr hilfreiche „Linux-Befehle“ zusammengestellt. Festzuhalten ist an dieser Stelle die eindeutige Erkenntnis, dass Klickibunti „voll daneben“ ist und man mit der Konsole fast immer schneller zum Ziel kommt. „Linux-Befehle“ gilt insoweit die betreffenden Programme installiert sind.

Die hier zu findenden Befehle sind natürlich nur eine kleine Ausfahl der genialen Möglichkeiten, die eine mächtige Shell wie die üblichen unter Linux bieten. Es sind genau diejenigen, die ich, unter anderen, im Alltag häufig brauche. Veröffentlichung in der Hoffnung, damit auch anderen eine große Erleichterung im Alltag zu bieten.

Arbeiten mit Textdateien

Duplikat-Zeilen in Textdatei löschen und sortieren

cat durcheinander | sort -u > sortiert_und_bereinigt

String an den Anfang jeder Zeile in einer Textdatei schreiben

sed -e 's/^/Zeilenanfangswort/' ausgangsdatei > neuedatei

String an das Ende jeder Zeile in einer Textdatei schreiben

sed -i 's/.*/&Zeilenendwort/' ausgangsdatei

Alle Buchstaben in Textdatei klein oder groß schreiben

Klein:

sed 's/.*/\L&/g' < input

Groß:

sed 's/.*/\U&/g' < input

Übertragen von Dateien

Verzeichnisgröße herausfinden

Direkte Ausgabe als menschenlesbare Größe wie GB.

du -sh /home/user/meinVerzeichnis

Mit TAR-Archiven arbeiten

Einpacken...

tar -czvf meinArchiv.tar.gz Verzeichnis/

...und wieder auspacken.

tar xfv meinArchiv.tar.gz

tar kann natürlich noch viel viel mehr!

Dateien per FTP hochladen

Das geht mit dem Programm ncftp. Zum Beispiel, um meineDatei.bin in das Verzeichnis /ftp-in auf 85.214.91.9 (mein Server) hochzuladen.

ncftpput 85.214.91.9 ftp-in meineDatei.bin

Dateien per SSH übertragen

scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
ssh server "cat entfernte_datei" > lokale_datei 
ssh server "gzip -c entfernte_datei" > lokale_datei
ssh server "gzip -c entfernte_datei" | gunzip > lokale_datei

Mit rsync Dateien one-way synchronisieren

Zum Beispiel von der Fotoplatte auf das heimische NAS

rsync --delete -av /media/rk/Fotos/sortiert/ /mnt/nas/Fotos/

Mit rsync und SSH Dateien übers Netz aktualisieren

Kann auch wunderbar fürs Backup verwendet werden. Entweder man sichert so lokale Dateien auf einen Server (Beispiel) oder eben einen Server auf eine lokale Festplatte. Allerdings müssen die Verzeichnisse in letzterem Fall natürlich andersherum angegeben werden. Die Altdaten werden den aktuellen Daten angeglichen, es wird ensprechend überschrieben bzw. gelöscht und neu hinzugefügt.

rsync --delete -avze ssh /mein/lokales/Verzeichnis/mit/aktuellen/Daten/ benutzer@127.0.0.1:/srv/Remoteverzeichnis/mit/alten/zu/erneuernden/Daten/

Grafiken erstellen und bearbeiten

Sämtliche META-Daten aller JPG-Dateien in einem Verzeichnis löschen

Wenn man nicht will, dass einer weiß, was man für eine Kamera hat oder wie auch immer.

exiv2 -d a *.jpg

QR-Code aus Datei erstellen

Dem Hype der Stunde Passion gewähren.

qrencode -o QR-Code.png < Datei.txt

Beispiel für Codierung einer HTTP-URL in hoher Auflösung ohne Rand, z.B. für Druckerzeugnisse:

qrencode -s 20 -m 0 -o QR-Code.png http://rkcsd.de

Bilder stapelweise Skalieren

Immerwieder nötig! Hier beispielsweise auf eine Breite von 640 Pixeln bei gleichbleibendem Seitenverhältnis.

Per Schleife

for i in *.jpg ; do convert "$i" -resize 640x "$i" ; done

Es geht auch einfacher

convert -resize 640 *.jpg

Video-Konvertierung

MOV-File in ein FLV-Video

Mit ffmpeg ein MOV-File in ein FLV-Video (für's web, auf altmodische Art) konvertieren.

ffmpeg -i MEIN_HANDYVIDEO.MOV -deinterlace -ar 44100 -r 25 -s 960x540 webvideo.flv

Rohdaten in ein MPEG verwandeln

ffmpeg -i <movie.avi> -target ntsc-vcd <filename.mpg>

Man kann mit ffmpeg natürlich noch viel mehr machen, auch ganz hypermoderne MP4s erstellen. Mehr dazu unter HTML5-Videos

ffmpeg -i INPUT.mov -vcodec libx264 -level 12 -b 128kb/s -r 25 -bt 144kb/s -s 240x192 -coder 1 -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method full -subq 7 -me_range 23 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -bf 16 -refs 6 -directpred 2 -trellis 1 -flags2 +bpyramid+wpred+mixed_refs+dct8x8+fastpskip -f mp4 -ab 56kb/s -ac 2 -ar 48000 OUTPUT.mp4

Bildschirmvideo aufnehmen

ffmpeg -f alsa -i pulse -f x11grab -r 15 -s 1280*800 -i :0.0 -vcodec libx264 -preset ultrafast -threads 4 -y -sameq MeinBildschirmvideo.mkv

Vektor- und PDF-Geschichten

pdftk

Damit kann man PDFs aneinanderreihen…

pdftk MeineTeXpdf1.pdf MeineTeXpdf2.pdf cat output ALLES-zusammen.pdf

…oder Seiten extrahieren.

pdftk ALLES-zusammen.pdf burst output ALLES-nichtmehrzusammen-Seite_%d.pdf

PDF-Datei komprimieren

Für z.B. eingeskannte Dokumente, die man per E-Mail versenden will. (Wandelt nach PS und zurück zu PDF um, ist danach meistens kleiner ohne sichtbaren Qualitätsverlust.)

pdf2ps GewA.pdf - | ps2pdf - GewA_E-Mail.pdf

svg2eps

Eine SVG-Datei in eine EPS-Datei mit Inkskape konvertieren.

inkscape -z -f infile.svg -E outfile.eps

epstopdf

Eine EPS-Datei in eine PDF-Datei umwandeln.

epstopdf --outfile=outfile.pdf outfile.eps

convert

PDF-Dateien stapelweise in JPG's konvertieren:

for i in *.pdf ; do `convert -density 300 -trim "$i" -quality 200 "$i".jpg` ; done

CD's brennen

Video-CD-Image erstellen

vcdimager -t vcd2 -l "Movie Title" -c <filename>.cue -b <filename>.bin <filename>.mpg

CUE-Datei brennen

cdrdao write -device <device> <filename>.cue

Das vielleicht wichtigste überhaupt: ISO-Abbilder brennen

Vorher muss man rausfinden, welche Devicenummer das CD-Laufwerk hat, das dann bei der Option dev angeben.

cdrecord -v -eject dev=3,0,0 dvd.iso 

Der Festplatte Befehle erteilen

Standby

Zum Beispiel in Standby schalten via:

hdparm -y /dev/festplatte0

Mehr

Weitere, auch GEFÄHRLICHE, Befehle kann man mit folgendem Befehl „erfragen“:

hdparm --help

Datenträger verschlüsseln

Unter Debian:

cryptsetup -y -v luksFormat /dev/sdx

Initialisieren:

cryptsetup luksOpen /dev/sdx geheimeslaufwerk

Formatieren mit:

mkfs.ext4 /dev/mapper/geheimeslaufwerk

Benennen mit:

e2label /dev/mapper/geheimeslaufwerk neuername

Systemeinstellungen

Wieviel Speicher im Dateisystem ist noch frei

Menschenlesbar und schön tabellarisch wird das so aufgelistet:

df -h

Es werden sogar USB-Datenträger, verschlüsselte Laufwerke und NFS-Netzlaufwerke mit aufgelistet. So zum Beispiel auf meinem Notebook:

$ df -h
Dateisystem                             Größe Benutzt Verf. Verw% Eingehängt auf
rootfs                                   106G     49G   52G   49% /
udev                                      10M       0   10M    0% /dev
tmpfs                                    396M    876K  395M    1% /run
/dev/mapper/rkCSD--Laptop-root           106G     49G   52G   49% /
tmpfs                                    5,0M       0  5,0M    0% /run/lock
tmpfs                                    792M     22M  770M    3% /run/shm
/dev/sda1                                228M     21M  196M   10% /boot
/dev/sr1                                 7,0M    7,0M     0  100% /media/2.0.4.45685_RC1
192.168.0.10:/srv/datastorage/dsk0/pool   63G     54G  5,2G   92% /mnt/server/pool
192.168.0.10:/srv/datastorage/dsk1        63G     54G  5,2G   92% /mnt/server/users

Maus-Cursor-Thema systemweit einstellen

Global für den X-Server; wird insb. von GDM übernommen.

update-alternatives --config x-cursor-theme

Standard-JRE einstellen

Die OpenSoucre-JRE tut manchmal halt nicht, und ggf. wird die trotz installation der Sun/ORACLE-Variante immernoch verwendet.

update-alternative --config java

GNOME2: Volumes auf dem Desktop

Unter GNOME2 kann man mit folgendem Befehl das Erscheinen der gemounteten Volumes auf dem Desktop abschalten.

gconftool-2 --set --type boolean /apps/nautilus/desktop/volumes_visible false

Screenblanking im Textmodus verhindern

Wer im Textmodus den „Bildschirmschoner“ abschalten möchte (deaktivieren der Anzeige eines schwarzen Bildschirms nach ein paar Minuten) kann dies wie folgt erreichen:

setterm -powersave off -blank 0

Systemdienste an- und abschalten

Wenn das konventionelle Initsystem initd verwendet wird lautet der Befehl zum Aktivieren

update-rc.d <dienstname> defaults 20

und zum Deaktivieren

update-rc.d <dienstname> remove

Wenn das neuere System systemd an Stelle von initd verwendet wird, lautet der Befehl zum Aktivieren

systemctl enable <dienstname>

und zum Deaktivieren

systemctl disable <dienstname>

Arbeiten mit Remote-Diensten

Share bei RDP-Verbindung beim Zielsystem mounten

Möchte man bei einer RDP-Verbindung zusätzlich einen Share im Arbeitsplatz mounten, der auf dem Host-System existiert, kann dies mit dem folgenden Befehl durchgeführt werden:

rdesktop -r clipboard:CLIPBOARD -r disk:share=/pfad/zum/lokalen/ordner -P rdp.example.com

Dies ermöglicht einen vereinfachten Zugriff auf Daten vom Wirtsystem und erlaubt unter Linux auch eine direkte Datenübertragung zum Zielsystem.

Noch mehr!

Diese Tools sollte man auch haben, Beschreibung folgt.

# apt install tmux bmon iftop vim tig