{"id":3912,"date":"2011-03-17T16:26:52","date_gmt":"2011-03-17T15:26:52","guid":{"rendered":"http:\/\/tuxproject.de\/blog\/?p=3912"},"modified":"2011-03-17T16:26:52","modified_gmt":"2011-03-17T15:26:52","slug":"console2-und-pycmd-cmd-fur-fortgeschrittene","status":"publish","type":"post","link":"https:\/\/tuxproject.de\/blog\/2011\/03\/console2-und-pycmd-cmd-fur-fortgeschrittene\/","title":{"rendered":"Console2 und PyCmd: cmd f\u00fcr Fort\u00adge\u00adschrit\u00adte\u00adne"},"content":{"rendered":"<p><span style=\"font-style:italic\">(Aus Gr\u00fcn\u00adden folgt ein wei\u00adte\u00adrer Bei\u00adtrag aus der belieb\u00adten Rei\u00adhe \u201elang\u00adwei\u00adli\u00adges Com\u00adpu\u00adter\u00adkrams\u201c. Ich bit\u00adte um freund\u00adli\u00adche Apa\u00adthie.)<\/span><\/p>\n<p>Linux\u00adnut\u00adzer bel\u00e4\u00adcheln oft die Win\u00addows-Text\u00adkon\u00adso\u00adle <tt>com\u00admand<\/tt> bzw., in NT-basier\u00adten Ver\u00adsio\u00adnen, <tt>cmd<\/tt>, da sie funk\u00adtio\u00adnal Unix-Shells wie der Z\u2011Shell (<tt>zsh<\/tt>) nicht viel ent\u00adge\u00adgen\u00adzu\u00adset\u00adzen habe.<\/p>\n<p>Dass auch \u00fcber\u00adzeug\u00adte, Win\u00addows nur m\u00fcde bel\u00e4\u00adcheln\u00adde Linux\u00adnut\u00adzer ohne exter\u00adne Befeh\u00adle wie <tt>grep<\/tt>, <tt>ack<\/tt> und <tt>ls<\/tt>, die \u00fcbri\u00adgens alle\u00adsamt auch f\u00fcr Win\u00addows ver\u00adf\u00fcg\u00adbar sind (<tt>ls<\/tt> und <tt>grep<\/tt> etwa <a href=\"http:\/\/utools.com\/msls.asp\">hier<\/a>), nicht viel Freu\u00adde an ihrer Shell h\u00e4t\u00adten, w\u00e4re ein guter Ein\u00adstieg in ein Streit\u00adge\u00adspr\u00e4ch mit ihnen, da ich hier aber gera\u00adde kei\u00adnen Linux\u00adnut\u00adzer zur Hand habe, schrei\u00adbe ich statt\u00addes\u00adsen etwas ande\u00adres.<\/p>\n<p>Auf mei\u00adnem Win\u00addows\u00adlap\u00adtop n\u00e4m\u00adlich bekom\u00adme ich <tt>cmd<\/tt> nur sel\u00adten zu sehen, all\u00adzu auf\u00adre\u00adgend ist der Anblick auch wahr\u00adlich nicht:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/cmd.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/cmd-300x108.png\" alt title=\"cmd\" width=\"300\" height=\"108\" class=\"alignnone size-medium wp-image-3913\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/cmd-300x108.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/cmd-120x43.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/cmd.png 602w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Bereits vor vie\u00adlen Mona\u00adten aber fand ich Gefal\u00adlen an <a href=\"http:\/\/sourceforge.net\/projects\/console\/\">Console2<\/a>. Console2 ist eine freie, alter\u00adna\u00adti\u00adve Ober\u00adfl\u00e4\u00adche f\u00fcr eine (ein\u00adstell\u00adba\u00adre) Shell unter Win\u00addows-Syste\u00admen, die eini\u00adge Zusatz\u00adfunk\u00adtio\u00adnen bie\u00adtet, etwa zus\u00e4tz\u00adli\u00adche Tasten\u00adk\u00fcr\u00adzel, umfang\u00adreich kon\u00adfi\u00adgu\u00adrier\u00adba\u00adre Tabs, Alpha\u00adtrans\u00adpa\u00adrenz und eine (abschalt\u00adba\u00adre) Sym\u00adbol\u00adlei\u00adste. So ver\u00adschafft man sich Bedien\u00adkom\u00adfort, ohne sich umge\u00adw\u00f6h\u00adnen zu m\u00fcs\u00adsen, denn Console2 sieht zwar nicht mehr aus wie <tt>cmd<\/tt>, f\u00fchlt sich aber genau so an:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/Console2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/Console2-300x180.png\" alt title=\"Console2\" width=\"300\" height=\"180\" class=\"alignnone size-medium wp-image-3914\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/Console2-300x180.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/Console2-120x72.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/Console2.png 640w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Console2, mit\u00adtels <a href=\"http:\/\/activaid.telgkamp.de\/\">ac\u2019ti\u00advAid<\/a> (ich erw\u00e4hn\u00adte es <a href=\"https:\/\/tuxproject.de\/blog\/2010\/06\/tiling-window-managers-awesome-fur-windows\/\" title=\"Tiling Window Managers: awesome f\u00fcr Windows\">hier<\/a> schon ein\u00admal) auf eine gut erreich\u00adba\u00adre Tasten\u00adkom\u00adbi\u00adna\u00adti\u00adon gelegt, ist zwar ein durch\u00adaus nicht unkom\u00adfor\u00adta\u00adbles Werk\u00adzeug, in der Stan\u00addard\u00adkon\u00adfi\u00adgu\u00adra\u00adti\u00adon jedoch nur wenig funk\u00adti\u00adons\u00adrei\u00adcher als das tri\u00adste <tt>cmd<\/tt>. Hier tritt <a href=\"http:\/\/sourceforge.net\/projects\/pycmd\/\">PyCmd<\/a> auf den Plan. (Der arme Plan!)<\/p>\n<p>PyCmd, so steht\u2019s in der Datei README.txt, ist eine Erwei\u00adte\u00adrung f\u00fcr die Ein\u00adga\u00adbe\u00adauf\u00adfor\u00adde\u00adrung von Win\u00addows (eben <tt>cmd<\/tt>) mit dem Ziel, eini\u00adge der aus Unix bekann\u00adten Shell\u00adfunk\u00adtio\u00adnen wie eine \u201eintel\u00adli\u00adgen\u00adte\u201c Befehls\u00adver\u00advoll\u00adst\u00e4n\u00addi\u00adgung, ein Befehls\u00adver\u00adlauf auch \u00fcber Sit\u00adzun\u00adgen hin\u00adweg und eini\u00adge wei\u00adte\u00adre bereit\u00adzu\u00adstel\u00adlen. PyCmd ist im Wesent\u00adli\u00adchen eine Samm\u00adlung kom\u00adpi\u00adlier\u00adter Python-Skrip\u00adte und l\u00e4sst sich, Kennt\u00adnis\u00adse in die\u00adser Spra\u00adche vor\u00adaus\u00adge\u00adsetzt, qua\u00adsi belie\u00adbig erwei\u00adtern.<\/p>\n<p>Um es zu instal\u00adlie\u00adren, gen\u00fcgt es, das .zip-Archiv in ein belie\u00adbi\u00adges Ver\u00adzeich\u00adnis zu ent\u00adpacken, im Bei\u00adspiel <tt>C:\\Program Files\\PyCmd<\/tt>. Star\u00adtet man aus die\u00adsem Ver\u00adzeich\u00adnis her\u00adaus PyCmd, so wird man von einem <span style=\"font-style:italic\">irgend\u00adwie anders<\/span> aus\u00adse\u00adhen\u00adden Kon\u00adso\u00adlen\u00adfen\u00adster \u00fcber\u00adrascht:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-300x163.png\" alt title=\"PyCmd\" width=\"300\" height=\"163\" class=\"alignnone size-medium wp-image-3915\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-300x163.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-120x65.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd.png 554w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>\u201ePF\u201c steht hier f\u00fcr \u201ePro\u00adgram Files\u201c. PyCmd k\u00fcrzt Pfad\u00adna\u00admen stan\u00addard\u00adm\u00e4\u00ad\u00dfig ab, um Platz zu spa\u00adren, was gut\u00adzu\u00adhei\u00ad\u00dfen ist, denn so bewahrt man auch in tief ver\u00adschach\u00adtel\u00adten Ver\u00adzeich\u00adnis\u00adsen ein wenig \u00dcber\u00adsicht, ohne ver\u00adse\u00adhent\u00adlich in einer fal\u00adschen Ver\u00adzeich\u00adnis\u00adebe\u00adne zu arbei\u00adten. Die Funk\u00adtio\u00adnen, die PyCmd bereit\u00adstellt, sind f\u00fcr Umstei\u00adger beein\u00addruckend und zu viel\u00adf\u00e4l\u00adtig, um sie an die\u00adser Stel\u00adle ange\u00admes\u00adsen w\u00fcr\u00addi\u00adgen zu k\u00f6n\u00adnen. Neben dem \u201edau\u00ader\u00adhaf\u00adten\u201c Befehls\u00adver\u00adlauf ist aber auch und vor allem die schnie\u00adke Pfad- und Befehls\u00adver\u00advoll\u00adst\u00e4n\u00addi\u00adgung via Tab- bzw. Pfeil\u00adta\u00adste zu nen\u00adnen. W\u00e4h\u00adrend n\u00e4m\u00adlich <tt>cmd<\/tt> nur die ersten Zei\u00adchen liest und den Benut\u00adzer bei Bedarf mit\u00adtels Tabu\u00adla\u00adtor\u00adta\u00adste zwi\u00adschen den dann noch m\u00f6g\u00adli\u00adchen Alter\u00adna\u00adti\u00adven umschal\u00adten l\u00e4sst, spen\u00addiert PyCmd direkt eine Befehls\u00ad\u00fcber\u00adsicht und kann im Befehls\u00adver\u00adlauf auch Teil\u00adtref\u00adfer fin\u00adden:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-Vervollst\u00e4ndigung.png\" alt title=\"PyCmd-Vervollst\u00e4ndigung\" width=\"203\" height=\"114\" class=\"alignnone size-full wp-image-3916\"><\/p>\n<p>\u00dcbri\u00adgens funk\u00adtio\u00adnie\u00adren auch Platz\u00adhal\u00adter (*, ?). Nun haben wir ein m\u00e4ch\u00adti\u00adges Kom\u00adman\u00addo\u00adzei\u00adlen\u00adpro\u00adgramm (PyCmd) und eine h\u00fcb\u00adsche Ober\u00adfl\u00e4\u00adche, aber betrach\u00adte\u00adten bis\u00adher bei\u00addes getrennt von\u00adein\u00adan\u00adder. Aller\u00addings erw\u00e4hn\u00adte ich oben, der Inter\u00adpre\u00adter, den Console2 nutzt, sei ein\u00adstell\u00adbar. Da liegt es doch nahe, die bei\u00adden Anwen\u00addun\u00adgen mit\u00adein\u00adan\u00adder zu ver\u00adkn\u00fcp\u00adfen.<\/p>\n<p>Das geht direkt aus Console2 her\u00adaus: Im Ein\u00adstel\u00adlungs\u00addia\u00adlog (stan\u00addard\u00adm\u00e4\u00ad\u00dfig via Strg+S auf\u00adzu\u00adru\u00adfen) unter \u201eCon\u00adso\u00adle\u201c ist der voll\u00adst\u00e4n\u00addi\u00adge Pfad der Datei PyCmd.exe ein\u00adzu\u00adtra\u00adgen.<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-in-Console2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-in-Console2-300x50.png\" alt title=\"PyCmd in Console2\" width=\"300\" height=\"50\" class=\"alignnone size-medium wp-image-3917\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-in-Console2-300x50.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-in-Console2-120x20.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2011\/03\/PyCmd-in-Console2.png 319w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Fort\u00adan begr\u00fc\u00dft den Anwen\u00adder beim Start von Console2 der PyCmd-Prompt.<\/p>\n<p>Etwa\u00adige Erg\u00e4n\u00adzun\u00adgen oder Anre\u00adgun\u00adgen bit\u00adte ich im Kom\u00admen\u00adtar\u00adfeld zu hin\u00adter\u00adlas\u00adsen.  <img src=\"https:\/\/tuxproject.de\/blog\/wp-content\/plugins\/wp-monalisa\/icons\/smiley_emoticons_smilenew.gif\" alt=\":)\" width=\"18\" height=\"18\" class=\"wpml_ico\"> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Aus Gr\u00fcn\u00adden folgt ein wei\u00adte\u00adrer Bei\u00adtrag aus der belieb\u00adten Rei\u00adhe \u201elang\u00adwei\u00adli\u00adges Com\u00adpu\u00adter\u00adkrams\u201c. Ich bit\u00adte um freund\u00adli\u00adche Apa\u00adthie.) Linux\u00adnut\u00adzer bel\u00e4\u00adcheln oft die Win\u00ad\u00addows-Tex\u00adt\u00ad\u00adkon\u00adso\u00ad\u00adle com\u00admand bzw., in NT-basier\u00adten Ver\u00adsio\u00adnen, cmd, da sie funk\u00adtio\u00adnal Unix-Shells wie der Z\u2011Shell (zsh) nicht viel ent\u00adge\u00adgen\u00adzu\u00adset\u00adzen habe. Dass auch \u00fcber\u00adzeug\u00adte, Win\u00addows nur m\u00fcde bel\u00e4\u00adcheln\u00adde Linux\u00adnut\u00adzer ohne exter\u00adne Befeh\u00adle wie grep, ack und \u2026<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/2011\/03\/console2-und-pycmd-cmd-fur-fortgeschrittene\/\" class=\"more-link\">\u2018Console2 und PyCmd: cmd f\u00fcr Fort\u00adge\u00adschrit\u00adte\u00adne\u2019 wei\u00adter\u00adle\u00adsen \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[19],"tags":[],"series":[],"class_list":["post-3912","post","type-post","status-publish","format-standard","hentry","category-nerdkrams"],"share_on_mastodon":{"url":"","error":""},"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/3912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/comments?post=3912"}],"version-history":[{"count":0,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/3912\/revisions"}],"wp:attachment":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/media?parent=3912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/categories?post=3912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/tags?post=3912"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/series?post=3912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}