Diese Woche in der Konsole #10

Posted on November 15th, 2009 in Konsole, Ubuntu | 2 Comments »

  1. BASH Befehlsübersicht

    Um alle Befehle der BASH 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

Diese Woche in der Konsole #9

Posted on September 13th, 2009 in Konsole, Ubuntu | 8 Comments »

  1. 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
    
  2. tinyurl von der Konsole aus verwenden.
    $ curl -s http://tinyurl.com/create.php?url=http://www.ubuntuverse.at/ | \
    grep -o "http:\/\/tinyurl.com\/[a-z0-9][a-z0-9]*" | uniq
    
  3. 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
    
  4. Datum in timestamp umwandeln.
    $ date --utc --date "2009-09-09 09:09:09" +%s
    1252487349
    
  5. 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)
    

Diese Woche in der Konsole #3

Posted on July 19th, 2009 in Konsole, Ubuntu | 5 Comments »

Diese Woche in der Konsole

  1. Sich die Arbeitsstunden und den Wert eines Projektes anhand der Projektdateien anzeigen lassen mit sloccount.

    $ sloccount ~/project1/
    
    SLOC    Directory       SLOC-by-Language (Sorted)
    35344   lib             php=35344
    1049    tests           php=1022,sh=27
    911     templates       php=911
    653     lang            php=653
    471     top_dir         php=471
    426     resources       php=316,perl=108,sh=2
    206     config          php=206
    139     external        php=139
    69      api             php=69
    0       css             (none)
    0       images          (none)
    0       js              (none)
    0       tmp             (none)
    
    Totals grouped by language (dominant language first):
    php:          39131 (99.65%)
    perl:           108 (0.28%)
    sh:              29 (0.07%)
    
    Total Physical Source Lines of Code (SLOC)                = 39,268
    
    Development Effort Estimate, Person-Years (Person-Months) = 9.44 (113.23)
    (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
    
    Schedule Estimate, Years (Months)                         = 1.26 (15.08)
    (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
    
    Estimated Average Number of Developers (Effort/Schedule)  = 7.51
    
    Total Estimated Cost to Develop                           = $ 1,274,625
    (average salary = $56,286/year, overhead = 2.40).
    
  2. Nur die Struktur (Schema) ohne Daten von einer MySQL-Datenbank erstellen.

    mysqldump -u user -ppasswort --no-data datenbankname > database_backup.sql
  3. Mit grep nach “foo” rekursiv in Dateien suchen ohne Unterordner von Subversion.

    grep foo -R  --exclude-dir='.svn' *
  4. Suche nach einem Text in allen Dateien inkl. Unterordner

    find . -name * -exec grep -i 'TEXT' '{}' ';'
  5. Zuletzt geänderten Datein rekursiv im aktuellen Ordner anzeigen.

    find . -printf "%T@ %p\n" | sort -n | tail

Diese Woche in der Konsole #2

Posted on July 12th, 2009 in Konsole, Ubuntu | 2 Comments »

Diese Woche in der Konsole

  1. Shell-Ausgaben in die Zwischenablage bekommen mit xsel. Im Beispiel landet die Ubuntu Version in die Zwichenablage und kann mit CTRL v eingefügt werden.
    cat /etc/issue | xsel --clipboard
  2. Backup einer PostgreSQL Datenbank. Das Backup (dump.gz) wird mit gzip komprimiert.
    pg_dump meine_datenbank | gzip > dump.gz
  3. 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
  4. Vergleichen, mit vimdiff von einer lokalen (local.txt) und einer am Server (remote.txt) liegenden Datei.

    vimdiff local.txt scp://meinname@meinserver/remote.txt
  5. 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.