Sammlung praktischer Linux-Befehle

Aus Geekbox Wiki
Version vom 5. April 2012, 10:34 Uhr von Moses (Diskussion | Beiträge) (→‎Suchen und Ersetzen ohne einen Editor zu öffnen)

Wechseln zu: Navigation, Suche

Verzeichnisinhalt zeilenweise und maschinenlesbar auflisten

ls -1Ab #das erste zeichen hinter - ist eine eins, kein kleines L!

(praktisch zum Weiterverarbeiten der Liste mit einer for Schleife; ggf vorher grepen usw.)

Suchen und Ersetzen ohne einen Editor zu öffnen

v.a. um Werte in configdateien zu ändern etc.

sudo sed -i 's/firefox.desktop/chromium-browser.desktop/g' /usr/share/applications/defaults.list

im Beispiel wird Chromium für alles als Standardprogramm gesetzt, wofür bisher Firefox zuständig war.

Rückgängigmachen von versehentlichen Deinstallationen

sudo apt-get install $(for i in $(cat /var/log/dpkg.log |grep -oP "(?<=`date +%Y-%m-%d`\s\d\d\:\d\d:\d\d\sremove)\s\S*\s"); do echo -n "$i "; done;)

Der Befehl stellt alles "heute" deinstallierte wieder her.

relatiert:

[00:40:53 CEST] Moses: und als warnung: verwedendet besser nicht tasksel, macht nur probleme :-D 

gefilterte Prozessausgabe ohne grep-Prozess

ps ax | grep <myprocess> | grep -v grep

besser ist jedoch, pgrep zu nutzen:

pgrep -fl <myprocess>

bzw. um nur die PID zu ermitteln (hat allerdings den Nachteil, dass der Prozessname exakt angegeben werden muss (-> bashcompletion nutzen: pidof sky<TAB> -> pidof skype):

pidof <myprocess>

grep mit mehreren Strings

grep string1\|string2

Siehe auch: http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

Fehler direkt entsorgen

fehlerproduzierenderprozess 2> /dev/null

Ein Anwendungsfall folgt:

Pfad zu den USB-Geräten einer bestimmten VendorID finden

147e ist hier die VendorID

for i in /sys/bus/usb/devices/*-*; do if [[ $(cat $i/idVendor 2> /dev/null) == *147e* ]]; then echo $i ; fi ; done;

Dateien in umgekehrter Nummerierung umbenennen

Im aktuellen Verzeichnis wird der Ordner <neuer Ordner> erstellt, in dem sich die Dateien nach dem Umbennen befinden. Sonst kommt es ohne Benutzung eines prefixes zu Komplikationen.

mkdir <neuer Ordner>; j=<Anzahl Dateien>; for i in *.foo; do mv "$i" "./<neuer Ordner>/<prefix>$j.foo"; let j--; done

siehe auch

Checkliste für ein frisch eingerichtetes Linux