mikrocontroller.net

Forum: PC-Programmierung die *nix tools, die ihr nicht missen möchtet


Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss immer wieder feststellen, wie extrem nützlich awk ist,
wenn es darum geht aus den (Report,etc)Dateien etwas zu extrahieren.
Das was mich besticht, ist seine Schlichheit und doch eine 
Vielseitigkeit.
Mit sed dagegen komme ich nicht so gut zu recht.

zB mal die Zeilennummern hinzufügen
cat setup.sh | awk 'BEGIN{line=0}line++{print line, $0}'

oder in einer disassemblierten Datei eine Routine ausschneiden
objdump -d main | awk '/<atexit>:/,/^$/{print}'

oder aus einer Zeile eine Spalte herausschneiden, um diesen Wert
weiterzuverwenden
lsof -p $(ps -e | awk '/mp3blaster/{print $1}')

lsof steht für list_open_files des Processes mit der pid -p XXX

Die Syntax von awk hat vor allem wenige einfache Konstrukte.

Welche Tools findet ihr hilfreich?

Autor: Michael Niegl (bigmike47)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so ziemlich alles in /bin und /usr/bin

Autor: Ralf Schwarz (spacedog) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/dev/null

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grep, awk, find, netcat, mc (Midnight Commander)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin zu diesen Programmen über die Binutils gekommen, die bei WinAVR 
mitinstalliert werden, und die ich mittlwerweile auch an meinen anderen 
Windows-Rechnern installiere.

Nützlich finde ich dabei:
- grep (immer nützlich)
- sed (klar, etwas kryptisch, aber reguläre Ausdrücke können auch viele 
andere Programmiersprachen)
- tail
- wget

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wget nutze ich auch unter cygwin, besonders wenn aus unerklärlichen
Gründen das Öffnen eines pdf Dokuments im Browser(Firefox) den ganzen
Browser lahmlegt und der Downloadbalken hängt.
Wenn ich das Dokument haben will, ist es mit wget schnell erledigt.

find finde ich auch sehr Vielseitig und dennoch einfach in Bedienung.
Hab das zusammen mit grep untern anderem dazu benutzt in den header 
files
nach typedef Deklatationen zu suchen. Falls man wissen will woher eine
Deklaration kommt.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@daniel: CSCOPE :-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@daniel: schau dir mal pdfdownload an. Mich stört der hänger bei pdfs 
auch. Damit kannst auswählen, das ne pdf direkt geöffnet wird.

Autor: Frank B. (frankman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss zwar nicht, ob´s dazu passt, aber Docklight für die RS232 find 
ich ganz gut....

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder nimm den Foxit Reader, der nistet sich nicht zwangsläufig im 
Browser ein, da bleibt nix hängen.
Word verewigt sich auch im Internet Explorer. Das ist das Schlimmste, 
was es gibt.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das tool zum kompilieren:

"make"

Gruß

Gast

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das tool zum kompilieren:
make (egal welches) kann nicht kompilieren, nur Abhängigkeiten 
auflösen/abarbeiten...

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
apt-get moo

Ansonsten mag ich diese atheistischen Tools:
haku@haku-laptop[~] $ ar r god
ar: creating god
haku@haku-laptop[~] $

Autor: Ekschperde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$ opener < bottle
bottle: cannot open
opener: not found

Alt aber immer wieder lustig ;-)

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Welche Tools findet ihr hilfreich?

  init

btw: Warum überhaupt *nix? Mir fällt auf die Schnelle kein aktuelles OS
ein, für das der * durch etwas anderes als ein U zu ersetzen wäre, warum
also das U nicht gleich hinschreiben?. Klar, früher konnte der * auch
für Xe, Si, Mu usw. stehen, aber diese Zeiten sind sind längst vorbei.

Autor: schmocka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> btw: Warum überhaupt *nix?
Okay, aber
?.n.x
 sieht doch echt unverständlich aus... ;-)

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> btw: Warum überhaupt *nix?

ich wollte es nicht nur auf Li nux begrenzen
Für mich verstehe ich *nix als die grosse Familie der Unix Nachkommen ;)

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heute musste ich feststellen wieviel Speicher Dateien eines
bestimmten Typs einnehmen.

find -iname "*.cpp" -exec stat {} \; |
awk 'BEGIN{sum=0}/Size/{sum+=$2}END{print "total=", sum, "bytes"}'

oder eine Variante bei der man auch Codezeilen zählen kann

find -iname "*.cpp" -exec wc {} \; |
awk 'BEGIN{sum=0}{sum+=$1}END{print "total=", sum, "lines"}'

coole Sache^^

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zumindest auf Linux:

netstat -tulpen

zeigt alle aktuell laufenden Daemons an, die irgendwie von außen 
erreichbar sind. Eventuell muß  man noch checken, ob nicht vielleicht 
eine Firewall aktiv ist. (iptables -L -nv).

Dann ist netcat / nc (je nach Distribution) noch ein supercooles 
Werkzeug zur Netzwerkdiagnose. Damit kann man Server und Clients 
emulieren und prüfen, welche Daten übers Netz rüberkommen.

Dann ist noch "strace -p <PID>" interessant, um den Programmen 
zuzuhören, wie sie sich mit dem Kernel unterhalten. Damit kann man ganz 
gut nachvollziehen, ob eine Applikation noch was tut.

Grüße
Markus
DL8RDS

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
opener < bottle geht ned!!
Ich würd sagen, das geht schon lang nicht mehr... Eigentlich schade :-)

Markus
DL8RDS

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dann ist netcat / nc (je nach Distribution) noch ein supercooles
> Werkzeug zur Netzwerkdiagnose.

Das ist ja auch das TCP/IP-Swiss-Army-Knife :)

Nicht supercool, sondern ubercool ist übrigens socat, mit dem man so
ziemlich zwischen allen denkbaren Quellen und Senken von Datenströmen
hin- und hercatten kann.


> opener < bottle geht ned!!
> Ich würd sagen, das geht schon lang nicht mehr... Eigentlich schade :-)

Das ging wohl in der Bourne-Shell. Auf Linux-Systemen wird heute meist
die Bash  (Bourne-Again-Shell) eingesetzt, die zwar weitgehend
abwärtskompatibel ist, aber wohl nicht bei den Fehlermeldungen.

Für die, die's amüsiert: Hier sind noch ein paar Beispiele aus der
Vergangenheit, leider auch nur für Bourne und csh:

  http://www.gnu.org/fun/jokes/unix.errors.html

Zurück zum Thema: Hier ist noch ein weiteres wichtiges Tool für die
Liste:

  file

Es bestimmt des Typ einer Datei, dabei ist die Anzahl der erkannten
Dateitypen schlichtweg riesig.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...und die Dateiendung scheißegal :-) Das erleichtert einem das Erkennen 
von versteckten Windows-Programmen und Viren ungemein.

Autor: chester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cd /pub
more beer

;-)

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
_(){ _|_& };_

eingeben und staunen...

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

perl, grep, sed, .*sh

@Heinz
c't gelesen?

Matthias

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Heinz
> _(){ _|_& };_

Hab leider grad kein *nix zur Hand. Was bewirkt der'Befehl' ?

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
_(){
    _ | _&
};
_

Er definiert eine Funktion namens _ die sich selbst Aufruft
und ihre Ausgabe an eine Kopie von sich selbst weiterleitet.
Diese Kopie läuft durch das & als eingenständiger Prozess und
das Spiel beginnt von vorne. Bei jedem Durchlauf wird
ein neuer Prozess gestartet was sehr schnell zum Überlauf
der Prozesstabelle führt. Es können dann also keine neuen Programme
mehr gestartet, und die Maschine ist praktisch nicht mehr benutzbar.

pam_limits mit den richtigen Einstellungen in
/etc/security/limits.conf verhindert das sehr wirkungsvoll.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, coole Sache das! :D sowas kannte ich nicht.
Ich sollte mich wirklich mehr mit Unix befassen. Eigentlich toll, was 
man da alles mit der Konsole machen kann ;-) Dass sogar solch coole 
Absturz-Programme machbar sind, wusste ich aber nicht.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tobias Plüss: Ja, solltest du.
Unter Windows sollten derartige "Tricks" aber auch möglich sein.
z.b. in einer Schleife explorer.exe aufrufen oder so...


Und zur Frage des Ursprungsposts:
 - pwgen
 - cfagent
 - screen
 - rsync

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tim
naja, unter Windows kann man nicht ganz so coole Sachen machen :-( Mir 
ist jedenfalls nichts wirklich bekannt. Ich benutz da auch nur selten 
die Konsole, die bringts unter Windows wirklich nicht, sie bietet keine 
anderen oder bequemeren Features als die GUI.
Und, Asche über mein Haupt: auch unter Unix mache ich nicht ALLES in der 
Konsole. ;-)

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
locate
kombiniert mit grep ist richtig schnell beim aufspüren von Dateien.

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da bei mir über die enviroment Variable PATH einige Programme in
unterschiedlichen Versionen vorliegen (Paradebeispiel gcc)
ist es ganz nützlich zu wissen welches Programm genau aufgerufen wird.
(wo es im Filesystem liegt)

dazu ist which da

which gcc
/pool/installed_gcc/gcc-4.2.0/bin/gcc

das coolste ist aber, wenn man mal vergisst wo im Filesystem
überall die "übrigen" liegen, kann man sie sich anzeigen lassen
 which -a gcc
/pool/installed_gcc/gcc-4.2.0/bin/gcc
/pool/disk_hdc6/installed/gcc/gcc-4.2.2/bin/gcc
/pool/disk_hdc6/installed/gcc/gcc-3.4.6/bin/gcc
/usr/local/bin/gcc
/usr/bin/gcc

viel Spass mit neuem tool ;)

Autor: Daniel F. (df311)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kurzfassung:

bash + binutils + ein paar andere tools (eigentlich alle schon genannt) 
+ ethereal/wireshark (auch wenns das auch für windows gibt)

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@daniel:

> dazu ist which da

Nur zur Info: Benutzt du die Bash, ist type meist die bessere
Alternative zu which, da type auch Aliase und Shell-Funktionen
berücksichtigt. Auch hier gibt es die Option -a mit ähnlicher Semantik
wie bei which.

Beispiel:
$ type -a ls
ls is aliased to `ls -FH --color=auto'
ls is /bin/ls

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Heinz
> _(){ _|_& };_

Nennt man übrigens Fork-Bombe :-)

Autor: fbi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> > _(){ _|_& };_
>
> Nennt man übrigens Fork-Bombe :-)

... und funktioniert dank Cygwin/MSYS/etc. auch unter Windows :)

Autor: neeeee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welche Tools findet ihr hilfreich?

-Webmin
-Nagios

Autor: Bingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
krusader (X-windows MC Clone)
putty    (serial comm , like miniterm)
rapidsvn
codeblocks (Programming suite)
rsync
gkrellm    (load monitor)
wireshark
thunderbird
firefox
pidgin      (msn messenger)

/Bingo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.