Eigene Shell mit CMD Modul

  • Hallo Leute! :D


    Ich habe vor kurzem ein Python Projekt angefangen.
    Ich versuche eine eigene Shell mithilfe Python und dem Modul cmd zu schreiben!


    Ich bin noch ziemlich am Anfang des Projekts, und brauche daher auch noch Hilfe.


    Ich habe es schon geschafft eine akzeptable Kommandozeile zu schreiben (nur ein paar Kommandos, zum Testen).


    Nun meine Fragen:

    • Wie kann ich es machen, dass ein Kommando, wenn ich es nicht selbst geschrieben habe, automatisch als Bash-Kommando ausgeführt wird und die Ausgabe des Programmes auch ausgegeben wird? (Und ich will das NICHT mithilfe eines Kommandos, z.B.: exe [kommando] realisieren)
    • Wie kann ich dann zum Schluss das ganze auch als Login Shell starten?



    Danke schon im Voraus! :danke_ATDE: Ich freue mich auf eine Diskussion und (natürlich) auf weitere Verbesserungsvorschläge!


    MfG


    AaronAlpha




    PS: Könntet ihr mir Ideen für einen Namen für die Shell geben?

    Remember: A hacker is a computer freak, a cracker is a Criminal Hacker!

    Edited once, last by AaronAlpha ().

  • Interessant. Ich mache schon länger mit Python rum - aber cmd ist mir noch nicht untergekommen. Habe dazu auch weil ich mal wissen wollte was das kann, einen hilfreichen Beitrag mit Beispielen dazu gefunden.


    Zu Deiner Frage 1: subprocess ist das Stichwort


    Zu Deiner Frage 2: Die habe ich nicht so ganz verstanden.

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


  • Um das ganze abzurunden..Ich hab mit beiden Fragen Verständnisprobleme. bei erstens hätte ich auch zuerst an subprocess gedacht, dann bin ich aber über cmd (Win) und exe (Win) in Kombination mit Bash gestolpert... Bei 2 kriegst du nur ein :denker:

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Interessant. Dann haben wir also fast alle Verstaendniskombinationen durch. Nur hat keiner beide Fragen verstanden :-/ Tenor: Der TE sollte noch mal genauer beschreiben was er eigentlich vorhat :shy:

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


    Edited once, last by framp ().

  • Oder wir warten noch ein bisschen ... evtl. kommt ja noch jemand mit einem hochinteressanten weiteren Aspekt hinzu ;) ...


    Nee ... hast schon recht, framp ... wobei sich mir die Frage stellt, wozu eine eigene shell gut sein soll. Wenn das was Vernünftiges werden soll, wird man da imho mit lex resp. flex drangehen ...


    cheerio,
    -ds-

  • Kommt auf den Anwendungsfall an. Im worst case muss auch yacc noch ran. Weiss aber nicht ob es lex und yacc in Python gibt ...

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003



  • Klar,bitte sehr

    Danke für den Link. Muss gestehen dass ich eben zu faul war zu suchen :blush: - hätte mich auch gewundert wenn es das nicht gibt in Python.

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


    Edited once, last by framp ().

  • Hallo!


    Noch einmal beide Fragen (aufgrund vin Verständnisproblemen:
    1. Wie kannn ich es machen, wenn ich das Kommando nicht selbst geschrieben habe, und dann sozusagen eine Meldung "Fehler, der Befehl existiert nicht" kommen sollte, der Befehl in der Bash ausgeführt wird.
    2. Wie kann ich das Python Programm als Login Shell verwenden (als richtige Shell)


    Danke!


    ArinAlpha

    Remember: A hacker is a computer freak, a cracker is a Criminal Hacker!

  • Befehle wie clear unter /bin , sind C Programme. ich weiß das weil ich den Befehl man und die Infos die rauskommen im Quelltext eines clock Programms gefunden habe. Man kann den C Programmen Parameter übergeben. die bash hat einen Form wie man die Parameter übergibt zb la -l .

    Es ist doch eigenartig das Parameter durch ein Lehrzeichen getrennt werden. in c ruft man andere Programme mit exec befehlen auf. für eine login shell müssest du einen eigene Art coden wie du Parameter übergibst.

    1. Wie kannn ich es machen, wenn ich das Kommando nicht selbst geschrieben habe, und dann sozusagen eine Meldung "Fehler, der Befehl existiert nicht" kommen sollte, der Befehl in der Bash ausgeführt wird.

    P.S. wie läuft es den ? :D der thread ist sehr alt aber ich mag das Thema