Ich liebe es, mein Terminal unter Unix zu dehnen. Was ist die Geschichte oder der Grund hinter der Windows Lame-Befehlszeile?
Ich liebe es, mein Terminal unter Unix zu dehnen. Was ist die Geschichte oder der Grund hinter der Windows Lame-Befehlszeile?
Antworten:
Ist es nicht. Sie können mit der rechten Maustaste auf die Titelleiste klicken, Eigenschaften auswählen und auf der Registerkarte "Layout" die Bildschirmpuffergröße (Zeilenbreite und Bildlauf) und die Fenstergröße (Ansichtsfenstergröße) ändern. Wenn Sie cmd über eine Verknüpfung gestartet haben, können Sie diese Einstellungen für zukünftige Sitzungen speichern.
Wenn Sie mausphobisch sind, können Sie dies auch einfach in das cmd-Fenster eingeben:
mode <cols>,<lines>
mode 80,25
mode 120,50
etc.
Es ist nicht begrenzt.
Vielleicht möchten Sie die Konsole auschecken . Es ist eine Open Source-App, mit der Sie mehrere Shells in einer Umgebung mit Registerkarten ausführen können. Sie können auch die Alpha-Transparenz der Shells einstellen.
RE: Weil MS Wert auf "Abwärtskompatibilität" für viele Dinge legt und ich in diesem Fall vermute, dass es eine fehlgeleitete Überzeugung ist, dass es die Leute irgendwie nerven wird, wenn sie nicht ihr Standardfenster mit einer Breite von 80 haben.
Die Abwärtskompatibilität funktioniert jedoch ziemlich schrecklich. Ich kann mir nicht vorstellen, dass Microsoft die Implementierung ziemlich gründlich durchgeführt hat, und ich glaube, Microsoft ist der Aushängeschild, um sicherzustellen, dass neuere Versionen auf älteren Versionen nicht funktionieren. Unter COMMAND.COM funktioniert vieles nicht richtig, was die Nützlichkeit erheblich beeinträchtigt, ganz zu schweigen davon, dass Sie DOSONLY eingeben müssen, damit einige Programme ordnungsgemäß ausgeführt werden. Außerdem hat Microsoft nützliche Befehle entfernt. Ehrlich gesagt kann ich mir nicht vorstellen, dass Microsoft die "Abwärtskompatibilität" sehr schätzt.
Darüber hinaus denke ich, dass der wahre Grund, warum die Zeilenlänge bei einem Standard von 80 Spalten liegt, darin besteht, dass die meisten Befehlszeilenprogramme usw. unter der Annahme arbeiten, dass der Benutzer an einer Eingabeaufforderung mit 80 Spalten begrenzt ist, was bedeutet, dass eine Erhöhung der Breite dazu führen kann Formatierungsfehler oder schlimmer noch, möglicherweise brechen Programme insgesamt.
Wie von jmucchiello erwähnt, funktioniert MODE gut, um die Größe des Fensters zu ändern, wenn Sie Lust dazu haben.
Konfiguriert Systemgeräte. Serielle Schnittstelle: MODE COMm [:] [BAUD = b] [PARITY = p] [DATA = d] [STOP = s] [to = on | off] [xon = on | off] [odsr = on | off] [octs = on | off] [dtr = on | off | hs] [rts = on | off | hs | tg] [idsr = on | off] Gerätestatus: MODE [Gerät] [/ STATUS] Umleitungsdruck: MODE LPTn [:] = COMm [:] Codepage auswählen: MODE CON [:] CP SELECT = JJJ Codepage-Status: MODE CON [:] CP [/ STATUS] Anzeigemodus: MODE CON [:] [COLS = c] [LINES = n] Typematische Rate: MODE CON [:] [RATE = r DELAY = d]
Wenn Sie DOSONLY auf Ihrer CONFIG.NT aktiviert haben, erbt COMMAND.COM jedoch eine korrekte Linienauflösung im DOS-Stil von cmd.exe, Sie können MODE jedoch nicht in COMMAND.COM aufrufen. Wenn Sie die Größe in COMMAND.COM ändern möchten, müssen Sie folgende 16-Bit-Montageanweisungen verwenden:
80x50 Zeilenauflösung (Kein Framebuffer, kein SVGA, praktisch universell unterstützt.)
DEBUGGEN A100 MOV AX, 1112 INT 10 INT 20 G Q.
132x60 Zeilenauflösung (Kein Framebuffer, erfordert SVGA. Funktioniert nicht auf ATI-Gfx-Karten, funktioniert normalerweise auf nVidia-Gfx-Karten, afaict funktioniert immer auf integrierten Intel-Gfx-Karten.)
DEBUGGEN A100 MOV AX, 4F02 MOV BX, 010C INT 10 INT 20G Q.
Wenn Sie dies in Ihre COMMAND.COM eingeben, erhalten Sie die angegebene Auflösung. (Warnung: Wenn Ihr Monitor alt genug ist, um den Modus nicht zu unterstützen, wird er möglicherweise zerstört. Randnotiz: Wenn Sie Windows ausführen können, sollte Ihr Monitor in Ordnung sein. Haftungsausschluss: Der Schwerpunkt sollte und Sie wurden gewarnt Es ist also nicht mein Problem, wenn Ihr Monitor brät. ;-) Wenn Sie dies jedoch ohne DOSONLY verwenden, wird COMMAND.COM die Größe der vorherigen Größe sofort nach der Anwendung zurücksetzen (in diesem Fall, es sei denn, Sie haben es an a geschrieben Datei und ausgeführt, dass DEBUG) beendet wird.
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .
Alternativ können Sie auch MODE.COM von FreeDOS verwenden, das unter COMMAND.COM, das auf DOSONLY eingestellt ist, ordnungsgemäß ausgeführt wird. Sie können es entweder vom Disk-Image auf der offiziellen Website (freedos.org) abrufen oder unter herunterladen
Neuer FreeDOS-MODUS von Eric Auer 2003-2005. Lizenz: GPL. (Version 12may2005) MODE [Gerät] [/ STA [TUS]] (Status eines oder aller Geräte anzeigen) MODE LPTn [:] cols [, [lines] [, retry]] (cols oder cpi, 6/8 lpi, retry p oder n) MODE LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (Wiederholungsversuch: p unendlich / n keine) MODE LPTn [:] = [COMn [:] | NUL] (Druckerdaten an serielle Schnittstelle oder NUL umleiten) MODE COMn [:] Baud, Parität, Daten, Stopp, Wiederholung (leere Werte erlaubt) MODE COMn [:] [BAUD [HARD] = ...] [PARITY = ...] [DATA = ...] [STOP = ...] [RETRY = ...] Baud kann mit einem eindeutigen Präfix abgekürzt werden, die Parität kann o / e / n / s / m sein letztere 2 bedeuten Leerzeichen / Markierung, Daten können 5..8 sein, Stopp 1..2. Wiederholungsversuch wird ignoriert! GEPLANT: Wiederholen Sie b / e / r -> beschäftigt / Fehler / bereit, wenn beschäftigt, p / n unendlich / keine Wiederholung. MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (FreeDOS DISPLAY muss geladen sein) MODE CON [:] [CP | CODEPAGE] REF [RESH] (muss angezeigt werden) MODE CON [:] [CP | CODEPAGE] SEL [ECT] = Nummer (muss angezeigt werden) MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((Codepage) Dateiname) (benötigt DISPLAY) Verwenden Sie PREP = ((, cp2, cp3 ,, cp5) ...), um Codepages in anderen Puffern vorzubereiten. MODUS [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, Zeilen] (Zeilen können 25, 28, 43 oder 50 sein) Verwenden Sie 8, 14 oder 16 als Zeilenwert, wenn Sie nur die Schriftart ändern möchten. MODUS [CO40 | CO80 | ...], [R | L] [, T] (CGA nach links / rechts verschieben, T ist interaktiver Modus) MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = Wert Der Wert kann sein: + oder - für die Sperren oder ein Zeichen für den Switchar. MODE CON [:] [COLS = ...] [LINES = ...] (mögliche Werte hängen von Ihrer Hardware ab) MODE CON [:] [RATE = ...] [DELAY = ...] (Standardrate 20, Standardverzögerung 1) Die Rate kann 1..32 für 2..30 Zeichen / Sek. Sein, die Verzögerung kann 1..4 für 1 / 4..4 / 4 Sek. Sein.
Aus den gleichen Gründen wie beim von mir bereitgestellten ASM-Code wird das Fenster nach dem Beenden von MODE.COM sofort auf die vorherige Größe zurückgesetzt, es sei denn, Sie führen es in COMMAND.COM aus, wobei DOSONLY zu Ihrer CONFIG.NT-Datei hinzugefügt wurde.
Wie bereits erwähnt, können Sie diese Einstellungen auch ändern, indem Sie mit der rechten Maustaste auf die Titelleiste der Eingabeaufforderung klicken und Eigenschaften -> Layout ändern. Ebenso können Sie die Auflösung für Verknüpfungen auf CMD.EXE und Batchdateien festlegen (Rechtsklick auf die Verknüpfung -> Eigenschaften -> Layout). Dies funktioniert nur für CMD.EXE, nicht jedoch für COMMAND.COM.
Ich kenne die Geschichte dahinter nicht, aber dieser Artikel auf der Wunschliste des Autors von PuTTy ist ein interessanter Beitrag, der die technischen Hürden erklärt, die mit jeder Art von cmd.exe-Ersatz verbunden sind, der nicht lahm ist:
http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html
Sie erwähnen nicht, dass Sie nach einem Ersatz suchen, aber wenn ja, können Sie sich auch einige der cmd.exe-Ersetzungen wie Console 2 oder JP Software's Take Command usw. ansehen. Ich habe auch einige gute Erfahrungen mit PuTTy- gemacht. Cyg, mit dem Sie PuTTy als Cygwin-Shell verwenden können.
Obwohl die Breite nicht begrenzt ist, wie andere Antworten zeigen, fand ich es immer seltsam, dass man die Höhe mit der Maus ziehen und ihre Größe ändern kann , aber nicht die Breite .
Ich denke, die Standardbreite von 80 Zeichen hängt mit der Kompatibilität mit alten Programmen zusammen, bei denen davon ausgegangen wird, dass das Terminal nicht breiter als 80 Zeichen ist. Ich denke jedoch nicht, dass dies seit etwa einem Jahrzehnt ein realistischer Grund ist.
Wie andere bereits betont haben, ist es nicht auf 80 Zeichen beschränkt, aber meine Vermutung, warum es standardmäßig 80 Zeichen enthält, ist, dass es aus den DOS-Tagen übrig geblieben ist, als CRT-Anzeigen 80 Zeichen breit waren.
Sie können auch eine andere Terminalanwendung verwenden, z. B. Console2 , mit der Sie die Größe des Fensters nach Belieben ändern können (z. B. Transparenz und die Möglichkeit, eine beliebige Schriftart zu verwenden). Es ist eine großartige Anwendung, ich habe darauf umgestellt und jetzt benutze ich sie nur, cmd.exe
wenn ich unbedingt muss.
Da es sowohl von links nach rechts als auch nach oben und unten scrollen wird, definiere ich als erstes auf einem System meine Breite als 180 und speichere sie. Das ist im Allgemeinen genug, damit Stapelspuren nicht zum größten Teil gewickelt werden müssen, aber nicht so sehr, dass Sie eine Menge Platz beanspruchen.
Stellen Sie währenddessen die vertikale Größe (Scrollback-Puffer) auf alle 9 ein. Du wirst froh sein, dass du es eines Tages getan hast.
Weil MS Wert auf "Abwärtskompatibilität" für viele Dinge legt und ich in diesem Fall vermute, dass es eine fehlgeleitete Überzeugung ist, dass es die Leute irgendwie nerven wird, wenn sie nicht ihr Standardfenster mit einer Breite von 80 haben.
Natürlich könnte es sein, dass es für eine feste Breite von 80 Zeichen programmiert wurde, wenn dies ziemlich universell war, und die zusätzlichen Eigenschafteneinstellungen waren ein bisschen wie ein Hack.
Es ist begrenzt. Hör zu. (Ich meine Fenstergröße NICHT Puffer)
Sie werden feststellen, dass die maximale Breite, die Sie einstellen können, begrenzt ist, jedoch je nach Bildschirmauflösung variiert. Wenn Ihre Auflösung auf 1024 x 768 eingestellt ist, können Sie nur in der Breite der Eingabeaufforderung 128 erreichen. 128/1024 = .125
Sie werden feststellen, dass dieses Verhältnis auf ganzer Linie konsistent ist. Ich habe eine RDP-Sitzung mit 2000 x 768 (auf zwei meiner drei Monitore) und erhalte eine maximale Breite von 250.
Nun, das ist tatsächlich etwas größer als Ihre Actaul-Monitorgröße, aber ich habe drei Monitore, auf denen alle einzelne Desktops laufen. (also im Wesentlichen 3 Auflösungen von 1024 x 768) und wenn ich etwas SO EINFACHES tun möchte, um eine Eingabeaufforderung auf zwei oder mehr Monitore zu verteilen, kann ich das nicht. (Ich möchte, wenn ich Dinge mit sehr langen Pfaden mache (diruse.exe / etc.) ...
-c
Dies ist nicht geschlossen. Es sollte also beachtet werden, dass Windows Terminal jetzt all dies ändert:
https://github.com/microsoft/terminal https://www.theverge.com/2020/1/9/21059316/microsoft-windows-terminal-crt-effects-retro-search-tabs-features https: // devblogs.microsoft.com/commandline/windows-command-line-backgrounder/ https://github.com/microsoft/terminal/blob/master/doc/terminal-v1-roadmap.md https://www.microsoft.com / de-de / p / windows-terminal-vorschau / 9n0dx20hk701? activetab = pivot: Übersichtstabelle
Weil die Verbesserung der Benutzerfreundlichkeit und Funktionalität von allem, was eine Unix / GNU-ähnliche Entwicklung erfordert, Windows als kommerzielle Plattform für Microsoft-Partner untergräbt. Um dies zu verhindern, müssen die Produkte anderer großer Unternehmen für Entwickler, wie z. B. verbesserte Terminals, und andere allgemeine Produkte von Drittanbietern wie Textverarbeitungsprogramme, Videoplayer usw. nicht mit der vorhandenen Unix / GNU-Software konkurrieren. Ohne dies wäre Windows keine profitable Plattform, und Microsoft würde sein Desktop-Monopol verlieren.
Aus diesem Grund ist das Terminal scheiße, es gibt keine POSIX-API, keine C99-Unterstützung in MSVC und die Liste geht weiter. Zur Verdeutlichung werden gängige Unix / GNU-Technologien und -Entwicklungen absichtlich nicht unterstützt, damit große kommerzielle Softwarehäuser nicht mit ihnen konkurrieren müssen.