Archive for May, 2009

Alle meine Komandozeilenbefehle

… für’s Netzwerk:

Ich habe mich mal Spaßes halber hingesetzt und eine kleine Auflistung von mehr oder minder üblichen Befehlen unter Windows und Linux erstellt.

Windows Linux Zweck
ipconfig /all ifconfig, iwconfig
Anzeige der Netzwerkkonfiguration bzw. Ändern dieser unter Linux/Unix
netstat netstat
Anzeige von Netzwerkverbindungen
ping ping
Ping an einen anderen Rechner senden
telnet telnet
Verbindung über Telnet zu einem anderen Rechner aufbauen
nmap
Portscanner
netsh ipconfig, iwconfig
Netzwerkkonfiguration eines Rechners ändern
nslookup nslookup, dig
Abfragen und Untersuchen der DNS Infrastruktur
route route, ip
Anzeige und Anpassen der IP-Routing Tabelle
tracert traceroute
Ermitteln der Route, die zum Erreichen eines Hosts verwendet wurde
getmac ifconfig
Anzeige der MAC-Adresse der Netzwerkkarte
ipseccmd
Anpassen der IPSec Regeln
ipxroute ip
Anzeige und Modifikation der IPX-Routing Tabelle
hostname hostname
Ausgabe des Hostnamens
arp arp
Anzeige und Modifikation der Einträge im ARP Cache
nbtstat
NetBIOS Status und Informationen abfragen

Wie ihr sehen könnt, gibt’s Lücken hier und da. Das liegt dann entweder daran, dass es für das jeweilige Betriebssytem von Natur aus keine Entsprechung für diesen oder jenen Befehl gibt. (Z.B.: nbstat - Linux bzw. Unix haben an sich nicht viel mit NetBIOS zu tun, bis man natürlich einen Samba-Server draufpackt.) Oder – das wäre der andere Fall – ich habe an der einen oder anderen Stelle eine Wissenslücke. Ergänzungen bzw. Berichtigungen sind herzlich willkommen. :-D

USB Stick mount-Probleme

Heute hab ich mal mit meinem Läppi ein bisschen gearbeitet. Irgendwann musste ich etwas auf meinen USB Stick packen, damit ich ein paar Daten zu einem anderen Rechner tragen konnte. Wird wohl kein Problem sein, dachte ich mir da so nichts ahnend.

Also Stick rangesteckt. Linux merkte auch, dass da jetzt ein USB Stick an einem USB Port eingesteckt wurde, nur konnte ich nicht auf den Inhalt des USB Sticks zugreifen. Stattdessen bekam ich eine Fehlermeldung, dass das Automounting seit neuestem verboten wäre. Besonders dieser Teil der Meldung brachte mich zum Grübeln:

org.freedesktop.Hal.Device.PermissionDeniedByPolicy: org.freedesktop.hal.storage.mount-removable no <– (action, result)

Häh, was willst du von mir, dachte ich da im ersten Moment. Hatte ja bis zu diesem Augenblick nie Probleme mit der Verwendung von USB Sticks. Da ich aber unbedingt Danten auf den Stick übertragen wollte, hab ich den Stick händisch per

mount -t vfat /dev/disk/by-id/eine-gaaanz-lange-Bezeichnung-für-den-Stick /media/USB_Stick

eingebunden. Die Datei konnte ich allerdings immer noch nicht so ohne weiteres im Dateimanager Dolphin rüberziehen. Also erneut zur Konsole gegriffen und mit einem

cp DateiName /media/USB_Stick/

war’s dann auch erledigt. Woran das wohl gelegen haben könnte, habe ich nur vermuten können. Mein Verdächtiger war in diesem Fall ein laufender Kerberos Client bzw. die Dienste für Kerberos. Den habe ich dann beendet, aber da trat das selbe Problem erneut auf. Schlussendlich habe ich den Rechner nochmal neu gestartet und dann ging wieder alles ohne diese Problemchen.

Ubuntu 8.04 Server

Meine Reise durch die Ubuntu-Welt geht noch etwas weiter. Nachdem ich Kubuntu 9.04 hinter mir lassen musste, wollte ich mir mal ein Server-Ubuntu anschauen, obwohl ich selbst in meinen vier Wänden keinen eigenen Server betreibe.  Ich habe auch ein paar Screenshots gemacht, wie die Installation so von statten geht.

Freunde der grafischen Benutzeroberfläche werden allerdings enttäuscht sein. Wenn Ubuntu mal installiert ist, wird es keine KDE oder Gnome Fenster geben. Ein Server braucht so etwas auch nicht, da dieser kein normaler Arbeitsplatzrechner ist, den man sonderlich bedienen muss.
Die Installation ist im Vergleich zum Desktop-Ubuntu mehrschrittiger. Zunächst möchte als erstes das Netzwerk eingerichtet werden. (IP, Subnetzmaske, Gateway, Rechnername etc.)

Installation, Sprachauswahl

Installation, Sprachauswahl

Glücklicherweise kann ich schon auf ein wenig Erfahrung mit der Installation eines Linux-Systems vorweisen und war deswegen sehr dankbar. Da ich mehr als ein Betriebsystem nutze, muss ich die Patritionierung manuell einrichten. Will schließlich nicht mein Produktiv-System zerschießen. Nach den Einstellungen für das Netzwerk, startet die eigentliche Geräteerkennung und es wird zunächst ein Grundsystem installiert, bevor man in einem Menü wählen kann, welche Art von Server man betreiben möchte. Zur Auswahl stehen z.B.:

  • DNS-Server
  • LAMP-Server (Linux – Apache – MySQL – PHP, kurz LAMP)
  • OpenSSH-Server
  • Mail-Server
  • Samba-Server
  • Druck-Server

Je nachdem wird die entsprechende Server-Software installiert.

Patritionierungsmenü

Patritionierungsmenü

Da mir XAMPP als LAMP-Server bekannt ist, habe ich mich zunächst für den LAMP-Server entschieden. Vom Kofigurieren eines DNS-Server zum Beispiel, habe ich ehrlich gesagt keine Ahnung. Die Installation ging relativ flott von der Hand. Auch hier wird mein WLAN-Stick nicht automatisch erkannt. Ich muss noch den Ndiswrapper kompilieren und dann Einrichten. Ob dann danach das Internet benutzbar ist, kann ich zum jetzigen Zeitpunkt nicht sagen. Gut Ding will Weile haben.

Bootmenü

Bootmenü

Immer wieder schön finde ich es, wenn ich ein Linux installiere, dass es auch noch andere Betriebssysteme erkennt und nicht gnadenlos den Master Boot Record der Festplatte überscheibt, so wie es Windows tut. Ich habe am vergangenen Wochenende aber nicht all zu viel Zeit auf die Konfiguration verwendet – nur ein wenig durch die Verzeichnisse gegangen und geschaut, welche Prozesse laufen.

Login am Server

Login am Server

Kleiner Post für den Technorati Bot

Technorati Profile
v2fd9e8bbk

HeidiSQL vs. phpMyAdmin

Verwaltungsfrontends für Datenbanken gibt’s ja reichlich. Unter Windows habe ich versucht mit dem Programm HeidiSQL warm zu werden. Jedoch konnte ich mich mit dem übersichtlich gestalteten HeidiSQL aus diversen Gründen nicht anfreunden.

Ich hatte so meine liebe Not damit, die Kollationen (vereinfacht gesagt, die verwendeten Zeichensätze bei Textinhalt) einer importierten Datenbank zu ändern, damit diese einheitlich sind. Komischerweise blieb das Programm immer bei latin1_swedish_ci anstatt das von mir gewünschte utf8_general_ci als Einstellung für die Kollation zu übernehmen. Auch Teile des Bedienkonzeptes konnten mich nicht wirklich glücklich machen. Zum Beispiel das Hinzufügen neuer Spalten geht nur für jede Spalte einzeln:

HediSQL 4.0

HediSQL 4.0

phpMyAdmin hat hier den Vorteil, dass man vorweg sagen kann, wie viele Spalten man in der Tabelle haben möchte. Und diese kann man dann bequem per Tab erreichen, um so die Eigenschaften für die jeweilige Spalte festzulegen. Zusätzlich bietet phpMyAdmin die Möglichkeit, mittels Abfrageeditor Abfragen für Tabellen zu entwerfen. Wer MS Access kennt, wird sich hieran erinnert fühlen.

In HeidiSQL kann man unterhalb des Tabs “Query” seine SQL-Ausdrücke eingeben und sie ausführen. Das war anfangs für mich etwas problematisch, da ich in SQL nicht allzu geübt bin. An sich lässt sich das noch einigermaßen verkraften. Doch was für mich das absolute No-Go ist, wenn ein Programm die SQL-Anweisungen derartig exportiert, dass diese nicht konform zur SQL-Syntax sind! Kurzes Beispiel:

INSERT INTO "meineTabelle" ("spalte1", "spalte2") VALUES ('Ein Text', 123);

Man beachte die doppelten Anführungszeichen (a.k.a. Gänsefüsschen) um meineTabelle sowie spalte1 und spalte2. Solch eine Anweisung kann man natürlich so nicht in einem anderen MySQL-Client benutzen. phpMyAdmin hat mir da zunächst einen Fehler in meiner SQL-Syntax ausgespuckt. Und so hätte es richtig heißen müssen:

INSERT INTO `meineTabelle` (`spalte1`, `spalte2`) VALUES ('Ein Text', 123);

Vorher, wenn ich ein von HeidiSQL generiertes SQL-Script in phpMyAdmin benutzen wollte, habe ich erst einmal die Textersetzungsfunktion eines Editors bemühen müssen. Tja und das kann dann mal dauern, wenn man eine sehr große Datei durchrödeln muss.

phpMyAdmin hat allerdings den Nachteil, dass man immer einen Webserver (z.B. XAMPP) braucht auf dem das in PHP geschriebene Programm läuft. Aber mit dem freierhältlichen XAMPP hat man für Windows und Linux verfügbare Versionen.

VB.Net Spielchen 2

Parallelen

Nach ein wenig Visual Basic Lektüre – vorzugsweise das OpenBook “Einführung in Visual Basic.Net 2008” von Galileo Computing – habe ich doch ein paar Parallelen zu Java, C++, C und vor allem Pascal entdeckt.

Die Gestaltung des objektorientierten Bereiches (sprich das, was mit Klassen und Objekten zu tun hat), sieht äußerst Java-like aus. Wenn sich die Syntax an manchen Stellen in Visual Basic nicht anders schreiben würde, so könnte man annehmen, dass man als gestandene(r) Javaprogrammierer(in) in Java unterwegs ist.

Bei manch anderem Konstrukt in VB kommen dunkle Erinnerungen an Delphi/Pascal hoch. Zum Beispiel bei den im OpenBook als Eigenschaftsmethoden bezeichneten Konstrukten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Property PGeschwindigkeit() As Integer 
      Get 
         Return geschwindigkeit 
      End Get 
      Private Set(ByVal wert As Integer) 
         If wert > 100 Then 
            geschwindigkeit = 100 
         ElseIf wert < 0 Then 
            geschwindigkeit = 0 
         Else 
            geschwindigkeit = wert 
         End If 
      End Set 
   End Property

In Delphi gibt’s sowas auch und ich hab das mal im Informatikunterricht verwenden dürfen, nur die genaue Schreibung dafür, habe ich leider vergessen.

In meinen Augen ist Visual Basic eine Mischung aus Pascal und Java. Dazu noch eine kleine Brise C++. Es hat nur eine Weile gedauert, bis ich zu einer .Net Sprache gekommen bin, aber es ist passiert. Immerhin taugt das Ganze sehr gut zum schnellen Erstellen von Klickibunti Anwendungen unter Windows.

VB.Net Spielchen

Als besondere Wochenendgestaltung hat sich bei mir überraschend der Einstieg in Visual Basic.Net ergeben.

So wie es an den meisten Samstagen bei mir üblich ist, komme ich nur abends an den Rechner. Vorher gibt es meist wichtigeres zu erledigen, z.B. Dinge, die in den vergangenen Tagen liegen geblieben sind. Dummerweise hat die Installation der Visual Basic Express Version mehr Zeit in Anspruch genommen, als ich angenommen hatte. Dafür ist nun die vollständige Installtion von VB.Net mit satten 1,4 GB auf der Platte gelandet 8-O .

Nachdem das auch geschafft war, stand ein Blick in die Einführung zu Visual Basic auf dem Programm. Ok, etwas andere Syntax als die, die ich sonst so sehe (C und Java), aber die bekannten “Zutaten” wie Schleifen, Verzweigungen und Variablen sind ja da.

Da ich zu vorgerückter Stunde nicht gerade kreativ war, ist mein erstes Progrämmchen nicht sehr aufregent:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Module Module1
 
    Sub Main()
        Dim foo As Integer = 42
        Dim bar(2, 2) As Integer
        ' Ein zwei-dimensionales Array mit Werten fuellen
        For zeile As Integer = 0 To 2
            For spalte As Integer = 0 To 2
                bar(zeile, spalte) = 42 * spalte
                Console.Out.WriteLine("Koordinaten: " & zeile & " " & spalte)
                Console.Out.WriteLine("Wert: " & bar(zeile, spalte))
            Next
        Next
        ' Damit die Konsole mit den Ausgaben nicht sofort verschwindet
        Console.In.Read()
    End Sub
 
End Module

Bei Basic kam ich mit meinem Vorwissen aus anderen Programmiersprachen gut zurecht, da Basic nicht allzu exotisch ist, wie z.B. Common Lisp, dass sich mit seiner Syntax und den seinen Konzepten abhebt. Somit wird meine Programmiersprachenliste wieder einmal etwas länger. Werde demnächst eine kleine Übersicht zusammenstellen :mrgreen:

Der Diamant

Ein paar schöne Verse für meine Taufpatin, die heute ihren 80. Geburtstag feiert.

Ein Diamant,
das ist etwas sehr Kostbares.
Ein Diamant,
das ist etwas sehr Seltenes.

Menschen, wie du
sind kostbar.
Menschen, wie du
sind selten

Ein Diamant,
verliert niemals seinen Glanz.
Ein Diamant,
verliert niemals seine Schönheit.

Ein guter Mensch,
so wie du,
Hat seine eigenen unvergänglichen Glanz.

Ein treuer Mensch,
so wie du,
Hat seine eigene unvergängliche Schöneheit.

Wer einen Diamanten besitzt,
der behüte ihn gut.
Denn, er kann sich glücklich schätzen.

Wer selbst ein Diamant ist,
der soll von allen geschätzt werden.
Denn, er ist ein ganz besonderer Mensch.

Ein Diamant,
ist uns wichtig.
Ein Diamant,
das bist Du!

Kubuntu 9.04 antesten – Teil 2

Wie ihr unschwer im Betrag Kubuntu 9.04 antesten nachlesen könnt, unternehme ich zur Zeit ein paar Annäherungsversuche in Richtung Ubuntu.

Die Hardware wird soweit ohne Schwierigkeiten erkannt, nur das Liebe WLAN bockt mal wieder. Mein USB-WLAN-Stick von Netgear (WG111T mit Atheros-Chipsatz, um genau zu sein) bekomme ich soweit nach dem Kompilieren und Installieren  der Ndiswrapper-Version 1.54 zum Laufen. Versuche Versionen, die vor Ndiswrapper 1.54 liegen zu übersetzen, scheitern beim Aufruf von make mit folgender Fehlermeldung (gekürzt):

/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver/iw_ndis.c: In Funktion »ndis_translate_scan«:
/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver/iw_ndis.c:1037: Warnung: Übergabe des Arguments 1 von »iwe_stream_add_event« von inkompatiblem Zeigertyp
/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver/iw_ndis.c:1037: Warnung: Übergabe des Arguments 3 von »iwe_stream_add_event« von inkompatiblem Zeigertyp
/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver/iw_ndis.c:1037: Warnung: Übergabe des Arguments 4 von »iwe_stream_add_event« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
... und noch ganz viele Fehler mehr ...
make[3]: *** [/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver/iw_ndis.o] Fehler 1
make[2]: *** [_module_/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver] Fehler 2
make[2]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.28-11-generic'
make[1]: *** [modules] Fehler 2
make[1]: Verlasse Verzeichnis '/home/compiler/ndiswrapper-1.53/ndiswrapper-1.53/driver'
make: *** [all] Fehler 2

Unter OpenSuSE 10.3 läuft Ndiswrapper 1.53 tadellos, aber das ist eine andere Baustelle.

Das kleine blaue Lämpchen blinkt nun munter, nachdem ich die Windowstreiber von der dazu gehörigen CD per Ndiswrapper installiert habe. Jetzt sollte man sich einfach verbinden können, doch ab diesem Punkt komme ich partout nicht weiter. Ich bekomme schlicht und ergreifend keine IP-Adresse zugewiesen. Nicht mal das manuelle Festlegen des Accesspoints mit

iwconfig wlan0 ap DER_ACCESSPOINT

oder

iwconfig wlan0 ap auto

zeigt irgendeine Wirkung. iwconfig wlan0 zeigt mir stets an, dass der Accesspoint nicht definiert wäre. Auch ein berherzter Versuch mit einem dhclient Aufruf auf der Shell blieb erfolglos. Leider bin ich jetzt mit meinem Latein am Ende, obwohl ich die gesamten Versuche ohne Verschlüsselung und Co durchgeturnt habe. Somit fällt diese Version als eventuelles Arbeitsbetriebssystem für mich schon einmal flach.

Rosa Rechner

Wie wär’s mal mit einem Farbwechsel beim nächsten PC-Kauf: :-D

Ein Computer im rosa Gehäuse

Ein Computer im rosa Gehäuse

Gestern beim Vorbeigehen am PC-Geschäft Zimmermann in Darmstadt gesehen.