{"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 Fortgeschrittene"},"content":{"rendered":"<p><span style=\"font-style:italic\">(Aus Gr\u00fcn\u00adden fol\u00adgt ein weit\u00ader\u00ader Beitrag aus der beliebten Rei\u00adhe \u201clang\u00adweiliges Com\u00adput\u00aderkrams\u201d. Ich bitte um fre\u00adundliche Apathie.)<\/span><\/p>\n<p>Lin\u00aduxnutzer bel\u00e4cheln oft die Win\u00addows-Tex\u00adtkon\u00adsole <tt>com\u00admand<\/tt> bzw., in NT-basierten Ver\u00adsio\u00adnen, <tt>cmd<\/tt>, da sie funk\u00adtion\u00adal Unix-Shells wie der Z\u2011Shell (<tt>zsh<\/tt>) nicht viel ent\u00adge\u00adgen\u00adzuset\u00adzen habe.<\/p>\n<p>Dass auch \u00fcberzeugte, Win\u00addows nur m\u00fcde bel\u00e4chel\u00adnde Lin\u00aduxnutzer ohne externe Befehle 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 Freude an ihrer Shell h\u00e4t\u00adten, w\u00e4re ein guter Ein\u00adstieg in ein Stre\u00adit\u00adge\u00adspr\u00e4ch mit ihnen, da ich hier aber ger\u00adade keinen Lin\u00aduxnutzer zur Hand habe, schreibe ich stattdessen etwas anderes.<\/p>\n<p>Auf meinem Win\u00addowslap\u00adtop n\u00e4m\u00adlich bekomme ich <tt>cmd<\/tt> nur sel\u00adten zu sehen, allzu aufre\u00adgend ist der Anblick auch wahrlich 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>Bere\u00adits vor vie\u00adlen Monat\u00aden aber fand ich Gefall\u00aden an <a href=\"http:\/\/sourceforge.net\/projects\/console\/\">Console2<\/a>. Console2 ist eine freie, alter\u00adna\u00adtive Ober\u00adfl\u00e4che f\u00fcr eine (ein\u00adstell\u00adbare) Shell unter Win\u00addows-Sys\u00adte\u00admen, die einige Zusatz\u00adfunk\u00adtio\u00adnen bietet, etwa zus\u00e4t\u00adzliche Tas\u00adtenk\u00fcrzel, umfan\u00adgre\u00adich kon\u00adfig\u00adurier\u00adbare Tabs, Alpha\u00adtrans\u00adparenz und eine (abschalt\u00adbare) Sym\u00adbol\u00adleiste. So ver\u00adschafft man sich Bedi\u00adenkom\u00adfort, ohne sich umgew\u00f6h\u00adnen zu m\u00fcssen, 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\u2019\u00adti\u00advAid<\/a> (ich erw\u00e4h\u00adnte 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 erre\u00adich\u00adbare Tas\u00adtenkom\u00adbi\u00adna\u00adtion gelegt, ist zwar ein dur\u00adchaus nicht unkom\u00adfort\u00ada\u00adbles Werkzeug, in der Stan\u00addard\u00adkon\u00adfig\u00adu\u00adra\u00adtion jedoch nur wenig funk\u00adtion\u00adsre\u00adich\u00ader als das triste <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 Erweiterung f\u00fcr die Eingabeauf\u00adforderung von Win\u00addows (eben <tt>cmd<\/tt>) mit dem Ziel, einige der aus Unix bekan\u00adnten Shell\u00adfunk\u00adtio\u00adnen wie eine \u201cintel\u00adli\u00adgente\u201d Befehlsver\u00advoll\u00adst\u00e4ndi\u00adgung, ein Befehlsver\u00adlauf auch \u00fcber Sitzun\u00adgen hin\u00adweg und einige weit\u00adere bere\u00aditzustellen. PyCmd ist im Wesentlichen eine Samm\u00adlung kom\u00adpiliert\u00ader Python-Skripte und l\u00e4sst sich, Ken\u00adnt\u00adnisse in dieser Sprache voraus\u00adge\u00adset\u00adzt, qua\u00adsi beliebig erweit\u00adern.<\/p>\n<p>Um es zu instal\u00adlieren, gen\u00fcgt es, das .zip-Archiv in ein beliebiges Verze\u00adich\u00adnis zu ent\u00adpack\u00aden, im Beispiel <tt>C:\\Program Files\\PyCmd<\/tt>. Startet man aus diesem Verze\u00adich\u00adnis her\u00adaus PyCmd, so wird man von einem <span style=\"font-style:italic\">irgend\u00adwie anders<\/span> ausse\u00adhen\u00adden Kon\u00adsolen\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>\u201cPF\u201d ste\u00adht hier f\u00fcr \u201cPro\u00adgram Files\u201d. PyCmd k\u00fcrzt Pfad\u00adna\u00admen stan\u00addard\u00adm\u00e4\u00dfig ab, um Platz zu sparen, was gutzuhei\u00dfen ist, denn so bewahrt man auch in tief ver\u00adschachtel\u00adten Verze\u00adich\u00adnis\u00adsen ein wenig \u00dcber\u00adsicht, ohne verse\u00adhentlich in ein\u00ader falschen Verze\u00adich\u00adnisebene zu arbeit\u00aden. Die Funk\u00adtio\u00adnen, die PyCmd bere\u00adit\u00adstellt, sind f\u00fcr Umsteiger beein\u00addruck\u00adend und zu vielf\u00e4ltig, um sie an dieser Stelle angemessen w\u00fcrdi\u00adgen zu k\u00f6n\u00adnen. Neben dem \u201cdauer\u00adhaften\u201d Befehlsver\u00adlauf ist aber auch und vor allem die schnieke Pfad- und Befehlsver\u00advoll\u00adst\u00e4ndi\u00adgung via Tab- bzw. Pfeil\u00adtaste zu nen\u00adnen. W\u00e4hrend n\u00e4m\u00adlich <tt>cmd<\/tt> nur die ersten Zeichen liest und den Benutzer bei Bedarf mit\u00adtels Tab\u00adu\u00adla\u00adtor\u00adtaste zwis\u00adchen den dann noch m\u00f6glichen Alter\u00adna\u00adtiv\u00aden umschal\u00adten l\u00e4sst, spendiert PyCmd direkt eine Befehls\u00fcber\u00adsicht und kann im Befehlsver\u00adlauf auch Teil\u00adtr\u00ade\u00adf\u00adfer find\u00aden:<\/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\u00adtion\u00adieren auch Platzhal\u00adter (*, ?). Nun haben wir ein m\u00e4chtiges Kom\u00adman\u00addozeilen\u00adpro\u00adgramm (PyCmd) und eine h\u00fcb\u00adsche Ober\u00adfl\u00e4che, aber betra\u00adchteten bish\u00ader bei\u00addes getren\u00adnt voneinan\u00adder. Allerd\u00adings erw\u00e4h\u00adnte ich oben, der Inter\u00adpreter, den Console2 nutzt, sei ein\u00adstell\u00adbar. Da liegt es doch nahe, die bei\u00adden Anwen\u00addun\u00adgen miteinan\u00adder zu verkn\u00fcpfen.<\/p>\n<p>Das geht direkt aus Console2 her\u00adaus: Im Ein\u00adstel\u00adlungs\u00addi\u00ada\u00adlog (stan\u00addard\u00adm\u00e4\u00dfig via Strg+S aufzu\u00adrufen) unter \u201cCon\u00adsole\u201d ist der voll\u00adst\u00e4ndi\u00adge Pfad der Datei PyCmd.exe einzu\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>For\u00adt\u00adan begr\u00fc\u00dft den Anwen\u00adder beim Start von Console2 der PyCmd-Prompt.<\/p>\n<p>Etwaige Erg\u00e4nzun\u00adgen oder Anre\u00adgun\u00adgen bitte ich im Kom\u00admen\u00adtar\u00adfeld zu hin\u00adter\u00adlassen.  <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 fol\u00adgt ein weit\u00ader\u00ader Beitrag aus der beliebten Rei\u00adhe \u201clang\u00adweiliges Com\u00adput\u00aderkrams\u201d. Ich bitte um fre\u00adundliche Apathie.) Lin\u00aduxnutzer bel\u00e4cheln oft die Win\u00ad\u00addows-Tex\u00adtkon\u00ad\u00adsole com\u00admand bzw., in NT-basierten Ver\u00adsio\u00adnen, cmd, da sie funk\u00adtion\u00adal Unix-Shells wie der Z\u2011Shell (zsh) nicht viel ent\u00adge\u00adgen\u00adzuset\u00adzen habe. Dass auch \u00fcberzeugte, Win\u00addows nur m\u00fcde bel\u00e4chel\u00adnde Lin\u00aduxnutzer ohne externe Befehle 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\u00adgeschrit\u00adtene\u2019 weit\u00ader\u00adlesen \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,"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}]}}