Windows cmd.exe가 80 자로 제한되는 이유는 무엇입니까?


104

나는 유닉스에서 터미널을 늘리는 것을 좋아합니다. Windows 절름발이 명령 줄의 역사 또는 이유는 무엇입니까?


2
다른 많은 것들이 선택 인 것처럼 선택입니다. 크기가 고정 된 경우 한계를 정확히 알고 있기 때문에 "화면"을 디자인하는 것이 더 쉽습니다. 어떤 크기를 선택하든 항상 누군가 또는 무언가에 대해 잘못된다는 단점은 분명합니다. 과거에는 현재 Windows CMD 화면이 실제로 유일한 화면이었습니다. 사용 가능한 해상도는 많지 않았고 그 문제에 대한 고해상도도 거의 없었습니다.
tvCa 2015 년

답변:


147

그렇지 않습니다. 제목 표시 줄을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 "레이아웃"탭에서 화면 버퍼 크기 (라인 너비 및 스크롤 백)와 창 크기 (뷰포트 크기)를 변경할 수 있습니다. 바로 가기에서 cmd를 시작한 경우 이후 세션을 위해 이러한 설정을 저장할 수 있습니다.


2
글꼴 / 색상을 잊지 마세요. 명령 프롬프트를 열 때 복고풍 녹색 화면으로 돌아가는 것만 큼 좋은 것은 없습니다. 8 ^ D
Dillie-O

13
"글꼴을 consolas로 변경하는 것 외에는 아무것도 없습니다"를 의미합니다. hanselman.com/blog/UsingConsolasAsTheWindowsConsoleFont.aspx
Jimmy

5
저는 항상 뛰어 들어 너비를 180으로 설정하고 스크롤 백을 9999로 설정했습니다. 자주 필요한 것은 아니지만 아무 것도 다치게 한 적이 없습니다. 너비는 개인적인 취향이며 극한 상황을 제외하고는 컴파일러에서 줄 바꿈을 보는 것을 좋아하지 않지만 다른 사람들은 스크롤을 좋아하지 않습니다.
Bill K

4
화면 버퍼 높이를 높이는 것은 매우 과소 평가됩니다. 이러한 종류의 스크롤링은 프로그램의 출력을 화면으로 완전히 읽을 수있는 데 너무 자주 필요합니다 (MORE를 사용하지 않는 한).
Coding With Style

22
음, 그래 ...하지만 아니야. 창 가장자리를 드래그하여 창의 크기를 임의로 조정할 수 없으며 여기에 2012 년에 있으며 여전히 변경되지 않았습니다.
Alex B

108

마우스를 싫어하는 사람이라면 cmd 창에 다음을 입력 할 수도 있습니다.

mode <cols>,<lines>
mode 80,25
mode 120,50
etc.

11
이것은 출력 형식을 지정하기 위해 창의 크기를 확인하는 앱에서 "cmd / c ..."에 대한 시스템 호출을 처리하는 데 매우 유용했습니다. 부름과 삶이 좋기 전에 "모드 200,50 &&"를 던졌습니다
Thomas

하지만 적어도 Win7에서는 세로 스크롤을 잃게됩니다
golimar

44

제한되지 않습니다.

  1. cmd.exe 실행
  2. 화면 왼쪽 상단의 아이콘을 클릭합니다.
  3. 속성 선택
  4. 레이아웃 탭을 선택합니다.
  5. 버퍼와 창 너비를 원하는대로 설정하십시오.
  6. 확인 클릭
  7. 나중에 속성 저장 ...을 선택합니다.
  8. 확인을 클릭하십시오.

Console 을 확인하는 것이 좋습니다. 탭 환경에서 여러 셸을 실행할 수있는 오픈 소스 앱입니다. 셸의 알파 투명도를 설정할 수도 있습니다.


17

RE : MS는 많은 것들에 대해 "역 호환성"을 중요시하기 때문에이 경우 표준 80 와이드 윈도우가 없으면 사람들이 어떻게 든 불안해 할 것이라는 잘못된 믿음이 있다고 생각합니다.

그러나 이전 버전과의 호환성은 매우 끔찍하게 작동합니다. 나는 마이크로 소프트가 그것의 구현에 대해 꽤 철저하다고 생각하지 않는다. 나는 마이크로 소프트가 새로운 버전이 이전 버전에서 작동하지 않도록하는 포스터 소년이라고 믿는다. COMMAND.COM에서는 많은 기능이 제대로 작동하지 않습니다. COMMAND.COM은 일부 프로그램을 제대로 실행하기 위해 DOSONLY를 입력해야한다는 점은 말할 것도없고 유용한 명령을 제거했습니다. 솔직히, 마이크로 소프트가 "역 호환성"을 높이 평가한다고 생각할 수 없습니다.

또한 줄 길이가 80 열 기준 인 진짜 이유는 대부분의 명령 줄 프로그램 등이 사용자가 80 열 프롬프트로 제한된다는 가정하에 작동하기 때문이라고 생각합니다. 즉, 너비를 늘리면 포맷 오류가 발생하거나 프로그램이 완전히 중단 될 수 있습니다.

jmucchiello가 언급했듯이 MODE는 원하는 경우 창 크기를 조정하는 데 잘 작동합니다.

시스템 장치를 구성합니다.

직렬 포트 : 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]

기기 상태 : MODE [기기] [/ STATUS]

인쇄 리디렉션 : MODE LPTn [:] = COMm [:]

코드 페이지 선택 : MODE CON [:] CP SELECT = yyy

코드 페이지 상태 : MODE CON [:] CP [/ STATUS]

표시 모드 : MODE CON [:] [COLS = c] [LINES = n]

유형별 비율 : MODE CON [:] [RATE = r DELAY = d]

그러나 CONFIG.NT에서 DOSONLY를 사용하도록 설정 한 경우 COMMAND.COM을 열면 cmd.exe에서 적절한 DOS 스타일 라인 해상도를 상속하지만 COMMAND.COM 내부에서 MODE를 호출 할 수 없습니다. COMMAND.COM 내에서 크기를 조정하려면 다음과 같이 16 비트 어셈블리 명령을 사용해야합니다.

80x50 라인 해상도 (프레임 버퍼 없음, SVGA 없음, 거의 보편적으로 지원됨)

디버그
A100
MOV AX, 1112
지능 10
지능 20

지
큐

132x60 라인 해상도 (프레임 버퍼 없음, SVGA 필요. ATI gfx 카드에서 작동하지 않음, 일반적으로 nVidia gfx 카드에서 작동, afaict는 항상 Intel 통합 gfx 카드에서 작동 함)

디버그
A100
MOV AX, 4F02
MOV BX, 010C
지능 10
지능 20

지 큐

COMMAND.COM에 입력하면 지정된 해상도를 제공합니다. (경고 : 모니터가 모드를 지원할 수 없을 정도로 오래 되었다면 파괴 될 수 있습니다. 참고 사항 : Windows를 실행할 수 있다면 모니터는 괜찮을 것입니다. 면책 조항 : 강조해야하며 경고를 받았습니다. , 모니터가 튀어도 문제가되지 않습니다. ;-) 그러나 DOSONLY를 활성화하지 않고 이것을 사용하면 COMMAND.COM은 응용 프로그램이 시작 되 자마자 이전 크기로 다시 조정됩니다 (이 경우에는 파일을 실행하고 DEBUG)가 종료됩니다.

또는 FreeDOS의 MODE.COM을 사용할 수 있으며, 이는 DOSONLY로 설정된 COMMAND.COM에서 제대로 실행됩니다. 공식 웹 사이트 (freedos.org)의 디스크 이미지에서 가져 오거나http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ .

Eric Auer 2003-2005의 새로운 FreeDOS 모드. 라이센스 : GPL. (2005 년 5 월 12 일 버전)
MODE [장치] [/ STA [TUS]] (하나 또는 모든 장치의 상태 표시)
MODE LPTn [:] cols [, [lines] [, retry]] (cols 또는 cpi, 6/8 lpi, retry p 또는 n)
MODE LPTn [:] [COLS = ...] [LINES = ...] [RETRY = ...] (재시도 : p 무한 / n 없음)
MODE LPTn [:] = [COMn [:] | NUL] (프린터 데이터를 직렬 포트 또는 NUL로 리디렉션)
MODE COMn [:] baud, parity, data, stop, retry (빈 값 허용)
모드 COMn [:] [잘못된 [하드] = ...] [패리티 = ...] [데이터 = ...] [중지 = ...] [재시도 = ...]
  Baud는 고유 한 접두사로 축약 될 수 있으며 패리티는 o / e / n / s / m 일 수 있습니다.
  후자의 2는 공백 / 마크를 의미하고 데이터는 5..8, 중지 1..2 일 수 있습니다. 재 시도는 무시됩니다!
  계획 됨 : 재시도 b / e / r-> 사용 중 / 오류 / 준비중인 경우, p / n 무한 / 재시도 없음.
MODE CON [:] [CP | CODEPAGE] [/ STA [TUS]] (FreeDOS DISPLAY를로드해야 함)
MODE CON [:] [CP | CODEPAGE] REF [RESH] (디스플레이 필요)
MODE CON [:] [CP | CODEPAGE] SEL [ECT] = 숫자 (디스플레이 필요)
MODE CON [:] [CP | CODEPAGE] PREP [ARE] = ((코드 페이지) 파일 이름) (디스플레이 필요)
  다른 버퍼에서 코드 페이지를 준비하려면 PREP = ((, cp2, cp3,, cp5) ...)를 사용하십시오.
MODE [40 | 80 | BW40 | BW80 | CO40 | CO80 | MONO] [, rows] (행은 25, 28, 43 또는 50 일 수 있음)
  글꼴 만 변경하려면 8, 14 또는 16을 '행'값으로 사용하십시오.
MODE [CO40 | CO80 | ...], [R | L] [, T] (CGA를 왼쪽 / 오른쪽으로 이동, T는 대화 형 모드)
MODE CON [:] [NUMLOCK | CAPSLOCK | SCROLLLOCK | SWITCHAR] = 값
  값은 다음과 같을 수 있습니다. 잠금의 경우 + 또는-, 스위치의 경우 문자.
MODE CON [:] [COLS = ...] [LINES = ...] (가능한 값은 하드웨어에 따라 다름)
MODE CON [:] [RATE = ...] [DELAY = ...] (기본 속도 20, 기본 지연 1)
  속도는 2..30 char / sec에 대해 1..32가 될 수 있고 지연은 1 / 4..4 / 4 초에 대해 1..4가 될 수 있습니다.

내가 제공 한 ASM 코드와 같은 이유로, CONFIG.NT 파일에 DOSONLY를 추가 한 상태로 COMMAND.COM에서 실행하지 않으면 MODE.COM이 종료되면 창이 즉시 이전 크기로 다시 바뀝니다.

마지막으로 다른 사람들이 언급했듯이 명령 프롬프트의 제목 표시 줄을 마우스 오른쪽 단추로 클릭하고 속성-> 레이아웃을 수정하여 이러한 설정을 수정할 수도 있습니다. 마찬가지로 CMD.EXE 및 배치 파일에 대한 바로 가기의 해상도를 설정할 수 있습니다 (바로 가기-> 속성-> 레이아웃을 마우스 오른쪽 단추로 클릭). 이것은 CMD.EXE에서만 작동하지만 COMMAND.COM에서는 작동하지 않습니다.


14

항상 사용하는 창 크기를 수정하는 간단한 명령 :

wmic

Windows Management Instrumentation 명령 줄이 열리고 크기 제한이 제거됩니다. 그런 다음 Ctrl+로 닫으십시오 C.


6

그 뒤에 숨겨진 역사는 모르지만 PuTTy 작성자의이 위시리스트 항목은 절름발이가 아닌 모든 유형의 cmd.exe 교체와 관련된 기술적 장애물을 설명하는 흥미로운 게시물입니다.

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-command-prompt.html

대체품을 찾고 있다고 언급하지 않으 셨지만, 그렇다면 Console 2 또는 JP Software의 Take Command 등과 같은 cmd.exe 대체품도 확인해 보십시오. PuTTy에 대한 좋은 경험도 있습니다. Cyg는 PuTTy를 cygwin 쉘로 사용할 수있게합니다.


6

너비는 다른 답변에서 볼 수 있듯이 제한되지 않지만 마우스로 높이 를 끌고 크기를 조정할 수 있지만 너비 는 조정할 수 없다는 것이 항상 이상합니다 .

기본 80 자 너비는 터미널의 너비가 80자를 넘지 않을 것이라고 가정하는 이전 프로그램과의 호환성과 관련이 있다고 생각합니다. 나는 이것이 10 년 정도 동안 현실적인 이유라고 생각하지 않는다.


9
너비와 높이 모두 크기를 조정할 수 있으며 기본 창 너비가 버퍼 너비와 동일합니다. 창을 버퍼보다 ​​크게 만들 수 없으므로 유일한 옵션 (기본 80 열 설정 사용)은 너비를 줄이는 것입니다.
efotinis

4

다른 사람들이 지적했듯이 너비가 80 자로 제한되지는 않지만 기본값이 80 자로 설정되는 이유는 CRT 디스플레이가 80 자 너비였던 DOS 시대에서 남은 것입니다.

또한보십시오


최신 모니터는 텍스트 모드에서 80 자보다 더 넓을 수 있습니까?
macropas

이 작업을 수행하려면 프레임 버퍼 모드로 실행해야 할 수도 있습니다 (하지만 제가 틀렸을 수 있습니다.
오랜만

프레임 버퍼 모드를 사용하지 않고 폭이 132자인 SVGA 모드가 몇 가지 있지만 상당히 우연히 지원됩니다. 그 모드 중 하나가 내 대답에 나열되어 있습니다.
Coding With Style

3
IBM이 CRT 디스플레이를 80 열 너비로 만든 이유는 펀치 카드 너비가 80 열 이었기 때문입니다.
dan04 2010

2

또한 Console2 와 같은 다른 터미널 응용 프로그램을 사용하여 원하는 모든 창 크기를 조정할 수 있습니다 (투명도 및 원하는 글꼴 사용 기능과 같은 다른 기능 중에서). 그것은 훌륭한 응용 프로그램이고, 나는 그것으로 전환했고 지금 cmd.exe은 절대적으로해야 할 때만 사용 합니다.


1

위아래뿐만 아니라 왼쪽에서 오른쪽으로 스크롤되므로 시스템에서 가장 먼저 수행하는 작업은 너비를 180으로 정의하고 저장하는 것입니다. 그것은 일반적으로 스택 트레이스가 대부분을 감싸지 않아도 될 정도로 충분하지만, 당신이 많은 공간을 차지하고있을 정도는 아닙니다.

그 동안 수직 크기 (스크롤 백 버퍼)를 모두 9로 설정합니다. 언젠가는 당신이 기뻐할 것입니다.


1

MS는 많은 것들에 대해 "역 호환성"을 중요시하고이 경우에는 표준 80 와이드 윈도우가 없으면 사람들이 어떻게 든 불안해 할 것이라는 잘못된 믿음이 있다고 생각합니다.

물론 그것은 매우 보편적 인 경우 고정 된 80 자 너비로 프로그래밍되었을 수 있으며 추가 속성 설정은 약간의 해킹이었습니다.


1

제한적입니다. 확인 해봐. (내 말은 버퍼가 아닌 창 크기)

설정할 수있는 최대 너비는 제한되어 있지만 화면 해상도에 따라 다릅니다. 해상도가 1024 x 768로 설정된 경우 명령 프롬프트 너비에서 128까지만 얻을 수 있습니다. 128 / 1024 = .125

그 비율이 전반적으로 일관된다는 것을 알게 될 것입니다. RDP 세션이 2000x768 (내 모니터 3 대 중 2 대)에서 실행되고 최대 너비가 250입니다.

이제 실제 모니터 크기보다 약간 더 큰 것으로 판명되었지만 세 대의 모니터가 모두 개별 데스크톱을 실행합니다. (본질적으로 3 개의 1024x768 해상도) 2 개 이상의 모니터에 명령 프롬프트를 확장하는 것처럼 매우 간단한 작업을 수행하려면 할 수 없습니다. (매우 긴 경로 (diruse.exe / etc.)로 작업 할 때 원합니다.)

-씨


2
글꼴 크기를 더 작게 만들면 (상대적으로) 더 큰 창 크기를 얻을 수 있습니다. 1600x1200 화면에서 폭이 300 개가 넘었습니다.
Michael Myers

여전히 선 너비를 더 크게 만들고 창을 스크롤 할 수 있습니다. VGA 시절부터 160 또는 180 너비로 만들었습니다.
Bill K

0

-1

Unix / GNU 유사 개발에 필요한 모든 것의 유용성과 기능을 개선하면 Microsoft 파트너를위한 상용 플랫폼으로서의 Windows가 손상 될 수 있기 때문입니다. 이를 방지한다는 것은 향상된 터미널과 같은 다른 대기업의 개발자 용 제품과 워드 프로세서, 비디오 플레이어 등과 같은 기타 일반적인 타사 제품이 기존 Unix / GNU 소프트웨어와 경쟁하지 않음을 의미합니다. 이것이 없으면 Windows는 수익성있는 플랫폼이 될 수 없으며 Microsoft는 데스크톱 독점권을 잃을 것입니다.

이것이 터미널이 짜증나는 이유이며 POSIX API, MSVC의 C99 지원이 없으며 목록이 계속됩니다. 명확히하기 위해, 일반적인 Unix / GNU 기술 및 개발은 의도적으로 지원되지 않으므로 대규모 상용 소프트웨어 하우스가 경쟁 할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.