Diese Übersicht ist aus den Blog-Beiträgen von ubuntuverse.at. Sie stammt ausdrücklich nicht von mir. Aber ab und zu vergisst das Internet doch was, darum hier meine Notiz. Ich habe die für mich nützlich erscheinenden Befehler drin gelassen. Mehr findet man in den Beiträgen im Link.

  1. Befehlsübersicht

    Um alle Tools und Programme die in den Pfaden der Umgebungsvariable PATH sich befinden, anzeigen zu lassen reicht 2 mal Tabulator und ein y (oder j) in der Konsole.

  2. Online GeoIP Daten einer IP abfragen. Zurück kommt ein json-formatierter String.
    curl -s "http://geoip.pidgets.com?ip=212.69.178.148&format=json"
  3. Eine ganz bestimmte Zeile einer Datei anzeigen lassen.
    head -n 23 /etc/passwd | tail -n 1

    oder mit sed

    sed -n 23p /etc/passwd
  4. Eine Datei in mehrere aufteilen. Neue Dateien enthalten jeweils 10 Zeilen und beginnen mit dem
    Namen neu-.


    split --lines 10 /etc/passwd neu-
  5. Dateien rekursiv durchsuchen mit grep und nur Dateinamen wo etwas gefunden wurde ausgeben.
    grep -r -l suche-nach *
  6. Fortschritts-Anzeige (progress bar) bei Dateien abgleichen mit rsync.
    rsync -avx --progress --stats "/pfad/original/" "/pfad/kopie/"
  7. Eingebauten CPU Namen ermitteln.
    grep "model name" /proc/cpuinfo |uniq
  8. Mit diff Unterschiede zwischen zwei Verzeichnissen anzeigen.
    $ diff folder1 folder2

    Das ganze geht auch über zwei per ssh erreichbare Server.

    $ diff <(ssh server01 "ls /tmp/") <(ssh server02 "ls /tmp/")
    1,8d0
    < lost+found
    < mysql.sock
    < orbit-root
    
  9. Mit time ist es möglich die Zeitdauer eines Befehls oder Skripts anzuzeigen (benchmark).
    $ time ruby script.rb
    
    real    0m0.017s
    user    0m0.008s
    sys     0m0.004s
    
  10. Datum in timestamp umwandeln.
    $ date --utc --date "2009-09-09 09:09:09" +%s
    1252487349
    
  11. Das gesamte interne Netzwerk nach erreichbaren IPs durchsuchen. nmap versucht dabei auch den Hersteller der Netzwerkkarte zu ermitteln.
    $ sudo nmap -sP 192.168.0.0/24
    
    Starting Nmap 4.76 ( http://nmap.org ) at 2009-09-03 18:28 CEST
    Host 192.168.1.122 appears to be up.
    MAC Address: 00:12:52:73:85:4C (Apple)
    Host 192.168.1.181 appears to be up.
    MAC Address: 00:0E:A8:D0:87:DE (Cisco Linksys)
  12. Wissenswerte Tastenkürzeln

    CTRL + l Leert den gesamten Bildschirm, das selbe wie der Befehl clear.

    CTRL + w Löscht nach links einzelne Wörter ab der Cursorposition.

    CTRL + r Inkrementelle Suche durch die Liste der letzt ausgeführten Befehle (bash history).

    ! ! Den letzten Befehl wiederholen.

    CTRL + d Um die Sitzung zu beenden, das selbe wie der Befehl exit.

  13. Wenn der letzte Befehl einen einfachen Schreibfehler hat wie hier eine “3? wo ein “e” sein sollte, so ist es möglich eine Korrektur vorzunehmen:
    $ echo "F3hler"
    F3hler
    
    $ ^3^e
    echo "Fehler"
    Fehler
    
  14. Herausfinden welcher Prozess (Id) auf Port 31337 lauscht.

    $ sudo fuser 31337/tcp
    31337/tcp:           29883
    
  15. Dateien umbennen mit rename. Als Beispiel werden alle .htm zu .html Dateien umbenannt.
    $ rename htm html *htm
  16. Dateiinhalte von unten nach oben anzeigen lassen, ein verkehrtes cat eben :)
    $ tac datei.txt
  17. Einen SSH key auf den Server kopieren muss nicht unbedingt ein langwieriger Prozess sein, das geht auch mit einem Kommando.
    ssh-copy-id user@host
  18. Wieder mal genervt von Programmen die immer eine Eingabeaufforderung brauchen? Noch dazu immer ein Y Enter?
    Dann hilft das Programm yes, das nicht mehr macht als ein “Y” gefolgt von einen Enter zu senden.



    yes | nervende_anwendung
  19. Rar Datei mit einem Passwort öffnen.
    unrar e datei1.rar -pmeinpasswort
  20. Den Computer um Mitternacht runterfahren lassen. Hier wird der Befehl at verwendet der im Gegensatz zu cron nur einmalig gilt.
    sudo halt | at midnight

    Eine Alternative von HogBeard:

    sudo shutdown -hP 00:00
  21. Stresstest für einen Web-Server mit dem Apache Benchmarking Programm ab.

    -n : Anzahl der Anfragen (requests) pro Session.
    -c : Anzahl der multiplen Anfragen pro Durchgang.

    ab -n 1000 -c 1000 http://localhost
  22. Festplatten oder USB sticks sicher Überschreiben mit Nullen, sd23 bitte mit Laufwerknamen ersetzen.
    dd if=/dev/urandom of=/dev/sd23
  23. Um die man pages mit Farbe zu versehen, können Farbwerte für less, am besten in der ~./bash_rc angegeben werden:
    export LESS_TERMCAP_mb=$'E[01;35m'
    export LESS_TERMCAP_md=$'E[0;34m'
    export LESS_TERMCAP_me=$'E[0m'
    export LESS_TERMCAP_se=$'E[0m'
    export LESS_TERMCAP_so=$'E[01;44;33m'
    export LESS_TERMCAP_ue=$'E[0m'
    export LESS_TERMCAP_us=$'E[0m'
    
  24. Port von anderen Rechner auf lokalen Rechner weiterleiten (SSH Tunnel). Habe das die Woche gebraucht weil ich am Server eine Postgres Datenbank laufen habe, aber lokal mit einem Datenbankbrowser arbeiten wollte.
    ssh -L 54321:meinserver.at:5432 -N -f user@meinserver.at

    Danach konnte ich die Datenbank in pgadmin3 über localhost auf Port 54321 ansprechen.

  25. Menschen die sich an elektronischen Tönen erfreuen, können mal ausprobieren Dateiströme, wie ein cat auf syslog an /dev/dsp zu senden.
    cat /var/log/syslog > /dev/dsp

    und das erinnert ja schon ganz schön an Weißes Rauschen.

    cat /dev/urandom > /dev/dsp
  26. Testen ob Internetverbindung besteht.
    if ping -c2 google.at >/dev/null 2>&1; then echo "online"; fi;

    Der Tipp kommt von Willie; damit wird auch gleich angezeigt welche externe IP man verwendet.

    if ping -c2 google.com >/dev/null 2>&1; then 
    echo "Deine derzeitige IP ist: "`wget -q -O – http://showip.spamt.net/`; fi;
  27. Vier Zeilen einer Datei, hier von /etc/passwd per Zufall auslesen.
    shuf /etc/passwd -n 4
  28. Immer wieder tauchen Base64 enkodierte Dateien auf, mit OpenSSL können sie einfach en/dekodiert werden:decode:
    openssl enc -base64 -in in_file -d

    encode:

    openssl enc -base64 -in in_file -e
  29. Website-Mirror ziehen:
    wget -m -k -K -E http://url/of/web/site
  30. Alle verwendeten IP Adressen anzeigen.
    ifconfig | ruby -n -e 'puts $1 if /addr:(S+)/'
    192.168.1.4
    127.0.0.1
    
  31. ~/.bashrc editieren, abspeichern und sofort ausprobieren:
    source ~/.bashrc
  32. Nur die Struktur (Schema) ohne Daten von einer MySQL-Datenbank erstellen.
    mysqldump -u user -ppasswort --no-data datenbankname > database_backup.sql
  33. Mit grep nach “foo” rekursiv in Dateien suchen ohne Unterordner von Subversion.
    grep foo -R  --exclude-dir='.svn' *
  34. Suche nach einem Text in allen Dateien inkl. Unterordner
    find . -name * -exec grep -i 'TEXT' '{}' ';'
  35. Zuletzt geänderten Datein rekursiv im aktuellen Ordner anzeigen.
    find . -printf "%T@ %pn" | sort -n | tail
  36. Nachschauen welches Programm den Port 1234 in Verwendung hat. Nützlich wenn man sich nicht sicher ist was da eigentlich läuft.
    netstat -plantu | grep :1234
  37. Vergleichen, mit vimdiff von einer lokalen (local.txt) und einer am Server (remote.txt) liegenden Datei.
    vimdiff local.txt scp://meinname@meinserver/remote.txt
  38. Nur bestimmtes Kommando für Benutzer auf Server über eine ssh-Verbindung zulassen.
    In ~/.ssh/authorized_keys wird vor den Schlüssel des Benutzers command und das Kommando eingetragen.


    command="/bin/ls -al" ssh-rsa AA...PmQ== benutzer@host
    

    Der Benutzer darf jetzt am Server, über ssh nur mehr ein ls -al ausführen.

  39. Einen Ordner via ssh mittels rsync clonen:
    rsync -avz -e 'ssh -p portnummer' user@host /Quellordner /Zielordner

    Wird der Quellordner ohne abschliessenden / angegeben, so wird der Quellordner selbst kopiert. Ansonsten nur der Inhalt

  40. Datenbank von einem anderen Server via ssh übernehmen:
    ssh user@host mysqldump -u dbuser_server -p dbpwd_server databasename 
    --lock-tables | mysql --verbose -u dbuser_local -p dbpwd_local

Eine mögliche Ursache: Es existiert noch eine andere Regel die etwas für eine Benutzergruppe (AD Gruppe) Einschränkt. Solange diese existiert muss der ISA Server eine Authentifizierung verlangen, da sonst diese Regel nicht überprüft werden kann. Wer sich nicht authentifiziert wird geblockt. Irgendwie logisch wenn man es von aussen betrachtet 🙂 Wenn tortzdem spezifische Deny Regeln existieren müssen, kann dies mit IP Reservationen und entsprechenden IP Objekten in der Deny-Regel gelöst werden.

TechNet says:

If a rule that matches a request requires authentication, client credentials are validated. If credentials are valid, access policy is implemented in accordance with the rule. If a client cannot present credentials, or credentials cannot be validated, the rule denies access (even if it is an allow rule), and no further rules are evaluated. This may happen for a number of reasons. For example, a request from a SecureNAT client who cannot authenticate, or Web Proxy listener settings that are incorrectly configured, such as not enabling an authentication method on the listener.

via error – ISA Server 2006 SP1 :: Any user group (even empty ones) applied to a rule – implements the rule for everyone – Server Fault.

Remoteverbindungsuntersuchung für Microsoft Exchange Server.

Mit diesem Onlinetool können verschiedene Exchange Server Tests von aussen gemacht werden. Bitte folgenden Hinweis beachten:

Um das potenzielle Risiko der Ausnutzung von Anmeldeinformationen, mit denen gearbeitet wird, und somit die Verletzung der Sicherheit der Exchange-Umgebung zu vermeiden, empfiehlt es sich dringend, ein Testkonto für die Verwendung dieses Tools zu erstellen und dieses Konto sofort nach Abschluss der Verbindungstests wieder zu löschen.

War ja klar… 🙂 Soll mal einer sagen 3 Jahre neben Mike sitzen hätten nichts gebracht….