Shell-Befehle anschauen und ausführen

In diesen Artikel beschreibe ich kurz wie man die Bash-History nutzt, dafür stellen wir als erstes einige Dinge in der „.bashrc„-Datei in unserm Home-Verzeichnis ein.

vim ~/.bashrc

 

#keine doppelten Eintraege hintereinander in die History schreiben

 

export HISTCONTROL=ignoreboth

 

#History Datei niemals ueberschreiben, sondern neue Eintraege unten anfuegen

 

shopt -s histappend

 

#Datum zum Historylog hinzufuegen

 

export HISTTIMEFORMAT="%F %T"

 

# History auf 3000 Eintraege erweitern export

 

HISTSIZE=3000

 

Befehl Beschreibung
fc -l zeigt die letzten Befehle in einer Liste an
Strg + L führt den clear-Befehl aus und säubert sozusagen die Konsole ;-) Die Befehle „reset“, „TERM=linux“ und „loadkeys de“ (amerikanischen Tastaturlayout – Bild) können einem auch weiterhelfen…
Strg + r sucht einen Befehl in der Bash-History (mehrmaliges drücken von Strg+r geht weiter in der History zurück)
Alt + . schreibt den letzten Parameter des letzen Befehls auf die Konsole
!$ schreibt den letzten Parameter des letzen Befehls auf die Konsole (Alt + .)
!! führt den letzten Befehl noch einmal aus
!string startet den letzten Befehl, der mit sting anfängt
!?string startet den letzten Befehl, der string enthält
^sting1^string2 wiederholt den letzten Befehl, wobei sting1 doch string2 ersetzt wird

Ports via ssh weiterleiten

OpenSSH kann mehr als verschlüsselte Verbindungen zwischen Client und Server aufzubauen, z.B. kann man beliebige TCP-Ports an das andere Ende Ihrer Verbindung weiterleiten, so dass man z.B. auf unverschlüsselte Dienste / Programmen per ssh von Extern zugreifen kann.

ssh führt eine lokale Weiterleitung so durch, dass es einen lokalen Port belegt, die Verschlüsselung durchführt, dann die verschlüsselten Daten an das andere Ende der ssh-Verbindung sendet, sie entschlüsselt und an jenen entfernen Rechner (Port) sendet.

Beispiele:

pop3 verschlüsselte Verbindung über localhost:110 ->

ssh -f -N -L110:mailhost:110 -l user mailhost

Außerdem kann man solange man die Verbindung nicht mit „-f -N“ in den Hintergrund schiebt, kann man auf dem remote Server auch noch weitere ssh-Verbindungen zum Port von der Arbeitsstation aufbauen.

pop3 & smtp verschlüsselte Verbindung über localhost:110 & localhost:25

ssh -f -N -L11:mailhost:110 -L25:mailhost:25 -l user mailhost

alle Verbindungen auf Port 8000 z.B. auf einen Gateway werden auf einen intern Rechner (192.168.1.100:80) weitergeleitet

ssh -f -g -N -L8000:localhost:80 192.168.1.100

Dateien in der Shell bearbeiten

Es kommt öfter vor, dass man schnell in mehreren Dateien etwas ändern möchte, Linux sieht für diesen Fall „sed“ vor.

z.B.:

sed -i 's/Ubuntu/Windows/g' test.txt

Alternativ kann man dies auch mittels Perl realisieren.

find . -name '.cfg' | xargs perl -pi -e 's/alt/neu/g'

Mit dem zuvor genannten Befehl kann man in allen Dateien, ab den aktuellen Verzeichnis, welche auf „.cfg“ enden, „neu“ gegen „alt“ ändern. Ggf. kann man den Befehl auch noch in der .bashrc aufnehmen, um diesen noch einfacher und schneller einsetzten zu können. Somit muss man nur noch „replace Pfad alt neu“ z.B.:

sudo replace /etc/ host_alt host_neu
# mehrere Dateien gleichzeitig aendern
replace()
{
if [ $3 ]; then
    find $1 -type f | xargs perl -pi -e 's/$2/$3/g'
else
    echo "Missing argument"
    echo "example: replace /wo alt neu"
fi

offene Ports analysieren

Als erstes müssen wir erst-einmal herausfinden, welche Port eigentlich offen sind.

nmap localhost

bzw.

nmap deine_IP

bzw. um nur zu schauen, welche PC im Netzwerk sind


nmap -sP 192.168.50.0/24


bzw. wenn man mehr Infos zu einer IP-Adresse haben möchte


sudo nmap -O -T4 -sS 192.168.1.100


oder man möchte nur Infos zu einem bestimmten Port haben


nmap -sV -P0 -p 80 suckup.de


mit dem folgenden Kommando kann man dann den Port, daraufhin analysieren welche PID-Nummer (Programm) diesen nutzt.

z.B.

nmap localhost -p 80

Ausgabe:

Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-08 00:47 CET
Interesting ports on local (127.0.0.1):
PORT STATE SERVICE
80/tcp filtered http

fuser -n tcp 80

Ausgabe:

80/tcp: 32182 32183 32184

ps aux | grep 32182

Ausgabe:

nginx: master process /usr/sbin/nginx

Ggf. kann man auch mit netstat + ss + lsof die Ports analysieren!

Nautilus Flickr – Uploader

Nautilus Flickr Uploader ist eine einfache GUI, um Bilder bei deinem Flickr Account hochzuladen.

sudo aptitude install libgtk2-ex-simple-list-perl libgtk2-gladexml-perl libyaml-perl libflickr-api-perl libxml-parser-lite-tree-perl perlmagick
wget http://www.usebox.net/jjm/nautilus-flickr-uploader/deb/nautilus-flickr-uploader_0.03-1_all.deb
sudo dpkg -i nautilus-flickr-uploader_0.03-1_all.deb
sudo apt-get install -f
nautilus -q

Wenn du nun Nautilus (Datei-Manager) startest und auf ein Bild bzw. mehrere Bilder deiner Wahl mit der rechten Maustaste drückst

→ Öffnen mit → Upload pictures to Flickr

nun kannst du diese direkt hoch-laden.

nautilus_flickr
nautilus+flickr

[gefunden auf webupd8.org]

Alternativ bringt die neuster Version von gThumb (GIT vom März 12, 2010) diese Funktion ebenfalls mit.