Skip to content

TTY

[Stable: 2 - 안정적]

Stable: 2 안정성: 2 - 안정적

소스 코드: lib/tty.js

node:tty 모듈은 tty.ReadStreamtty.WriteStream 클래스를 제공합니다. 대부분의 경우 이 모듈을 직접 사용할 필요가 없거나 불가능할 것입니다. 그러나 다음을 사용하여 액세스할 수 있습니다.

js
const tty = require('node:tty');

Node.js가 텍스트 터미널("TTY")이 연결된 상태로 실행되고 있음을 감지하면 기본적으로 process.stdintty.ReadStream의 인스턴스로 초기화되고 process.stdoutprocess.stderr 둘 다 기본적으로 tty.WriteStream의 인스턴스가 됩니다. Node.js가 TTY 컨텍스트 내에서 실행되고 있는지 여부를 확인하는 가장 좋은 방법은 process.stdout.isTTY 속성 값이 true인지 확인하는 것입니다.

bash
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false

대부분의 경우 애플리케이션에서 tty.ReadStreamtty.WriteStream 클래스의 인스턴스를 수동으로 만들 이유가 거의 없습니다.

클래스: tty.ReadStream

추가됨: v0.5.8

TTY의 읽기 가능한 측면을 나타냅니다. 일반적인 상황에서 process.stdin은 Node.js 프로세스에서 유일한 tty.ReadStream 인스턴스이며 추가 인스턴스를 만들 이유가 없어야 합니다.

readStream.isRaw

추가됨: v0.7.7

TTY가 현재 원시 장치로 작동하도록 구성된 경우 trueboolean입니다.

터미널이 원시 모드로 작동하더라도 프로세스가 시작될 때 이 플래그는 항상 false입니다. 해당 값은 setRawMode에 대한 후속 호출에 따라 변경됩니다.

readStream.isTTY

추가됨: v0.5.8

tty.ReadStream 인스턴스의 경우 항상 trueboolean입니다.

readStream.setRawMode(mode)

Added in: v0.7.7

  • mode <boolean> true인 경우, tty.ReadStream이 원시 장치로 작동하도록 구성합니다. false인 경우, tty.ReadStream이 기본 모드로 작동하도록 구성합니다. readStream.isRaw 속성은 결과 모드로 설정됩니다.
  • 반환: <this> 읽기 스트림 인스턴스.

tty.ReadStream이 원시 장치로 작동하도록 구성할 수 있습니다.

원시 모드에서는 수정자를 포함하지 않고 입력이 항상 문자 단위로 제공됩니다. 또한 입력 문자 에코를 포함하여 터미널에서 문자에 대한 모든 특수 처리가 비활성화됩니다. 이 모드에서는 +가 더 이상 SIGINT를 발생시키지 않습니다.

클래스: tty.WriteStream

Added in: v0.5.8

TTY의 쓰기 가능한 측면을 나타냅니다. 일반적인 상황에서는 process.stdoutprocess.stderr가 Node.js 프로세스에 대해 생성된 유일한 tty.WriteStream 인스턴스이며 추가 인스턴스를 만들 이유가 없어야 합니다.

new tty.ReadStream(fd[, options])

[기록]

버전변경 사항
v0.9.4options 인수가 지원됩니다.
v0.5.8Added in: v0.5.8

TTY와 연결된 fd에 대한 ReadStream을 만듭니다.

new tty.WriteStream(fd)

Added in: v0.5.8

TTY와 연결된 fd에 대한 WriteStream을 만듭니다.

이벤트: 'resize'

추가된 버전: v0.7.7

'resize' 이벤트는 writeStream.columns 또는 writeStream.rows 속성이 변경될 때마다 발생합니다. 호출 시 리스너 콜백에 전달되는 인수는 없습니다.

js
process.stdout.on('resize', () => {
  console.log('화면 크기가 변경되었습니다!');
  console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});

writeStream.clearLine(dir[, callback])

[히스토리]

버전변경 사항
v12.7.0스트림의 write() 콜백 및 반환 값이 노출됩니다.
v0.7.7추가된 버전: v0.7.7
  • dir <number>

    • -1: 커서 왼쪽
    • 1: 커서 오른쪽
    • 0: 전체 라인
  • callback <Function> 작업이 완료되면 호출됩니다.

  • 반환 값: <boolean> 스트림이 추가 데이터를 계속 쓰기 전에 호출 코드가 'drain' 이벤트가 발생할 때까지 기다리기를 원하는 경우 false입니다. 그렇지 않으면 true입니다.

writeStream.clearLine()dir로 식별된 방향으로 이 WriteStream의 현재 라인을 지웁니다.

writeStream.clearScreenDown([callback])

[히스토리]

버전변경 사항
v12.7.0스트림의 write() 콜백 및 반환 값이 노출됩니다.
v0.7.7추가된 버전: v0.7.7
  • callback <Function> 작업이 완료되면 호출됩니다.
  • 반환 값: <boolean> 스트림이 추가 데이터를 계속 쓰기 전에 호출 코드가 'drain' 이벤트가 발생할 때까지 기다리기를 원하는 경우 false입니다. 그렇지 않으면 true입니다.

writeStream.clearScreenDown()은 이 WriteStream을 현재 커서 아래에서 지웁니다.

writeStream.columns

추가된 버전: v0.7.7

TTY가 현재 가지고 있는 열의 수를 지정하는 number입니다. 이 속성은 'resize' 이벤트가 발생할 때마다 업데이트됩니다.

writeStream.cursorTo(x[, y][, callback])

[기록]

버전변경 사항
v12.7.0스트림의 write() 콜백과 반환 값이 노출됩니다.
v0.7.7추가된 버전: v0.7.7
  • x <number>
  • y <number>
  • callback <Function> 작업이 완료되면 호출됩니다.
  • 반환값: <boolean> 스트림이 추가 데이터를 쓰기 전에 호출 코드가 'drain' 이벤트가 발생할 때까지 기다리기를 원하는 경우 false입니다. 그렇지 않으면 true입니다.

writeStream.cursorTo()는 이 WriteStream의 커서를 지정된 위치로 이동합니다.

writeStream.getColorDepth([env])

추가된 버전: v9.9.0

  • env <Object> 확인할 환경 변수를 포함하는 객체입니다. 이를 통해 특정 터미널의 사용을 시뮬레이션할 수 있습니다. 기본값: process.env.
  • 반환값: <number>

반환값:

  • 2색의 경우 1,
  • 16색의 경우 4,
  • 256색의 경우 8,
  • 16,777,216색을 지원하는 경우 24입니다.

이것을 사용하여 터미널이 지원하는 색상을 결정합니다. 터미널의 색상 특성상 거짓 긍정 또는 거짓 부정이 발생할 수 있습니다. 이는 프로세스 정보와 사용된 터미널에 대해 거짓 정보를 제공할 수 있는 환경 변수에 따라 달라집니다. env 객체를 전달하여 특정 터미널의 사용을 시뮬레이션할 수 있습니다. 이는 특정 환경 설정이 어떻게 동작하는지 확인하는 데 유용할 수 있습니다.

특정 색상 지원을 강제하려면 아래 환경 설정 중 하나를 사용하십시오.

  • 2색: FORCE_COLOR = 0 (색상 비활성화)
  • 16색: FORCE_COLOR = 1
  • 256색: FORCE_COLOR = 2
  • 16,777,216색: FORCE_COLOR = 3

NO_COLORNODE_DISABLE_COLORS 환경 변수를 사용하여 색상 지원을 비활성화할 수도 있습니다.

writeStream.getWindowSize()

추가된 버전: v0.7.7

writeStream.getWindowSize()는 이 WriteStream에 해당하는 TTY의 크기를 반환합니다. 배열은 [numColumns, numRows] 유형이며, numColumnsnumRows는 해당 TTY의 열과 행 수를 나타냅니다.

writeStream.hasColors([count][, env])

추가된 버전: v11.13.0, v10.16.0

  • count <integer> 요청된 색상의 수 (최소 2). 기본값: 16.
  • env <Object> 확인할 환경 변수를 포함하는 객체입니다. 특정 터미널의 사용을 시뮬레이션할 수 있습니다. 기본값: process.env.
  • 반환값: <boolean>

writeStreamcount에 제공된 것만큼 많은 색상을 지원하는 경우 true를 반환합니다. 최소 지원은 2 (흑백)입니다.

이는 writeStream.getColorDepth()에 설명된 것과 동일한 위양성 및 음성 위반을 갖습니다.

js
process.stdout.hasColors();
// `stdout`이 최소 16가지 색상을 지원하는지 여부에 따라 true 또는 false를 반환합니다.
process.stdout.hasColors(256);
// `stdout`이 최소 256가지 색상을 지원하는지 여부에 따라 true 또는 false를 반환합니다.
process.stdout.hasColors({ TMUX: '1' });
// true를 반환합니다.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// false를 반환합니다 (환경 설정은 2 ** 8개의 색상을 지원하는 척합니다).

writeStream.isTTY

추가된 버전: v0.5.8

항상 trueboolean입니다.

writeStream.moveCursor(dx, dy[, callback])

[기록]

버전변경 사항
v12.7.0스트림의 write() 콜백 및 반환 값이 노출됩니다.
v0.7.7추가된 버전: v0.7.7
  • dx <number>
  • dy <number>
  • callback <Function> 작업이 완료되면 호출됩니다.
  • 반환값: <boolean> 추가 데이터를 계속 쓰기 전에 호출 코드가 'drain' 이벤트가 발생할 때까지 기다리기를 원하는 경우 false; 그렇지 않으면 true입니다.

writeStream.moveCursor()는 이 WriteStream의 커서를 현재 위치를 기준으로 상대적으로 이동합니다.

writeStream.rows

추가된 버전: v0.7.7

TTY가 현재 가지고 있는 행 수를 지정하는 number입니다. 이 속성은 'resize' 이벤트가 발생할 때마다 업데이트됩니다.

tty.isatty(fd)

추가된 버전: v0.5.8

tty.isatty() 메서드는 주어진 fd가 TTY와 연결되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. fd가 음수가 아닌 정수가 아닌 경우도 포함됩니다.