Skip to content

TTY

[Stable: 2 - Stable]

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

소스 코드: lib/tty.js

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

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

Node.js가 텍스트 터미널("TTY")이 연결된 상태로 실행 중임을 감지하면, process.stdin은 기본적으로 tty.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)

추가된 버전: v0.7.7

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

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

원시 모드에서는 입력이 수정자를 포함하지 않고 항상 문자 단위로 사용할 수 있습니다. 또한 터미널에서 문자를 특수 처리하는 기능(입력 문자 에코 포함)이 모두 비활성화됩니다. 이 모드에서는 +가 더 이상 SIGINT를 발생시키지 않습니다.

클래스: tty.WriteStream

추가된 버전: v0.5.8

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

new tty.ReadStream(fd[, options])

[기록]

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

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

new tty.WriteStream(fd)

추가된 버전: v0.5.8

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

Event: 'resize'

Added in: 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])

[History]

버전변경 사항
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])

[History]

버전변경 사항
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])

[History]

버전변경 사항
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가 음수가 아닌 정수가 아닌 경우도 포함됩니다.