Monatsarchiv für August 2011

 
 

Befehl im Hintergrund ausführen

Häufig habe ich einen Befehl ausgeführt, ohne auf die Laufzeit zu achten. Solange ein Programm aktiv läuft, ist das Terminal nicht zu verwenden. Mit der Tastenkombination Strg + Z kann man den Befehl einfrieren und ihn anschließend mit bg in den Hintergrund verfrachten. Schon kann man das Terminal weiter verwenden.

$ bg

Um einen Befehl wieder in den Vordergrund zu holen, benutzt man fg.

$ fg %1

Wenn man im vorherein weiss, das die Ausführung länger dauert, kann man den Befehl auch direkt in den Hintergrund verfrachten indem man ein & (Kaufmanns-Und) anhängt.

$ befehl &

Um zu erfahren welche Prozesse im hintergrund gerade laufen – oder auch nicht – gibt der Befehl jobs Auskunft.

$ jobs

Weitere Informationen zum Thema:
http://wiki.ubuntuusers.de/shell/prozesssteuerung

Doppelte Zeilen aus Datei entfernen

Heute habe ich eine Excel Tabelle erhalten, die ich in eine Datenbanktabelle importieren wollte. Das Problem: die Quelle hatte einige Dopplungen die mit dem UNIQUE KEY der Datenbanktabelle kollidierten. Damit der Import der weit über 16000 Zeilen ohne händisches Zutun importiert werden konnte, musste ein Script her.

Die Lösung ist eine Kombination der Programme cat, sort und uniq. Diese erledigt die Arbeit sogar in einer Zeile.

Die folgende Zeile entfernt doppelte Einträge und speichert das Ergebnis dann in einer neuen Datei ab.

$ cat dateiname | sort | uniq > dateiname.neu

Weitere Informationen zum Thema:
http://manpages.ubuntu.com/manpages/lucid/en/man1/cat.1.html
http://manpages.ubuntu.com/manpages/lucid/en/man1/sort.1.html
http://manpages.ubuntu.com/manpages/lucid/en/man1/uniq.1.html

Bash Historie leeren

So toll die Historie der Bash auch sein mag, so negativ kann sie unter Umständen auch sein (z.B. wenn ein Passwort oder andere Sicherheitskritische Informationen als Parameter eines Programms übergeben werden). Diese Informationen können dann von jedermann der Zugriff auf diesen Benutzer/Sitzung hat, eingesehen oder nochmals verwendet werden.

Beispiel: MySQL Zugangsdaten

sven@ubuntu-eeepc:~$ history
  823  mysql -u root -p geheim datenbank</tmp/dump.sql
  824  history

Um dieses Problem zu umgehen, kann man die Historie mit dem folgenden Befehl leeren.

$ history -c

Weitere Informationen zum Thema:
http://manpages.ubuntu.com/manpages/hardy/man3/history.3readline.html