터미널 (통신)
터미널(Terminal)은 통신의 처음과 마지막에 위치하는 장치로, 컴퓨터나 컴퓨팅 시스템에 데이터를 입력하거나 표시하는 데 쓰이는 하드웨어 기기이다.[1][2]
개요
터미널은 컴퓨터와 사용자 간 서로 소통해주는 인터페이스라고 할 수 있고, 원래 유닉스 기반의 대형 컴퓨터에서 사용자들이 컴퓨터에 접속하기 위해 사용했던 단말기를 의미한다.[3] 인터페이스란 텍스트 기반과 그래픽 기반(GUI) 두 가지 기반을 포함하는 용어이다. 터미널은 컴퓨터와 소통하기 위해 키보드를 사용하는 것을 뜻하고, 어떻게 만들지에 따라 컴퓨터 간의 소통도 가능하다. 터미널은 기본적으로 셸(Shell)을 사용한다.[4] 맥 OS와 리눅스에는 터미널 애플리케이션이 기본적으로 제공된다. 맥 터미널은 애플이 개발한 맥(Mac) OS 운영체제에 포함된 단말 에뮬레이터이다.[5] 텍스트 기반과 그래픽 기반을 포함하는 인터페이스와 달리, 리눅스 터미널은 텍스트 기반만을 말한다. 셸과 같이 명령을 기반으로 하는 프로그램이 주로 사용되기 때문에 커맨드라인 인터페이스라고도 한다. 이 터미널은 물리 하드웨어를 소프트웨어로 구현한 애플리케이션이다.[6]
셸
특정한 목적을 가지고 실행되는 프로그램이라기보다는 컴퓨터에 명령을 내리기 위한 인터페이스 역할을 한다. 즉, 문자 기반의 명령어들을 컴퓨터 언어로 변환하여 컴퓨터와 소통을 가능하게 해준다. 기본적으로 bash, tcsh 등이 사용되고, 윈도에서는 cmd를 기반으로 사용된다. 커맨드라인 인터페이스로 구현된 가장 대표적인 프로그램이다.[4][6] 셸은 크게 그래픽 사용자 인터페이스(Graphic User Interface, GUI), 명령 줄 인터페이스(Command Line Interface, CLI)로 나눌 수 있다. 그래픽 사용자 인터페이스(GUI)는 사용자가 편리하고 직관적으로 알아볼 수 있도록 그래픽으로 입출력 등의 기능을 수행해서 보여준다. 편리성과 쉬운 접근성으로 대부분의 운영체제는 그래픽 사용자 인터페이스 기반이지만, 그래픽 사용자 인터페이스가 필요하지 않은 환경에서 또는 명령 줄 인터페이스로 더 간편하고 빠르고 자동화하여서 할 수 있는 일들이 존재해서 명령 줄 인터페이스가 많이 사용된다. 명령 줄 인터페이스(CLI)는 터미널 등의 프로그램을 통해서 문자열을 입력하고, 문자로 반환되는 결과를 확인하는 인터페이스이다. 맥(Mac)과 리눅스는 유닉스 기반으로 만들어진 운영체제이기 때문에 명령 줄 인터페이스에서 사용되는 명령어가 대부분 비슷하거나 같다.[7]
입력 모드
터미널은 다양한 오퍼레이션을 제공한다. 오퍼레이션이 입력 모드에 따라서 다르게 동작한다. 정규 모드(Canonical Mode)는 줄 단위로 터미널 입력을 처리하고, 줄 편집이 활성화되어 있다. 이 모드는 기본 입력 모드이다. 비정규 모드(Noncanonical Mode)는 줄 단위 편집이 아닌 문자 단위 편집 기능을 제공한다. 터미널은 일반 문자뿐만 아니라 다양한 특수 문자도 해석하고, 특수 문자는 고유의 기능이 있다.[8]
가상 터미널
터미널 동장 방식에 대한 추상적인 표현으로, 원격지 터미널 에뮬레이터 기능을 하는 가상 단말 서비스 및 프로토콜을 총칭한다. 에뮬레이터(Emulator)는 한 시스템에서 다른 시스템을 복제하는 것으로, 그리하여 두 번째 시스템이 첫 번째 시스템을 따라 행동하는 것이다.[9] 터미널 에뮬레이터로 유닉스에 로그인하게 되면 가상 터미널을 이용하게 된다. tty 명령어를 실행하면 현재 사용하고 있는 가상 터미널의 디바이스 명을 확인할 수 있다.[10] pseudo-device들의 쌍으로 존재하고, 구성요소는 기능에 따라 마스터(Master), 슬레이버(Slaver)로 구분된다. 마스터는 에뮬레이터가 슬레이버를 제어할 방법을 제공하고, 슬레이버는 tty의 디바이스처럼 실제 터미널의 디바이스를 의미한다.[11] 터미널 동작 방식을 에뮬레이터 하기 위해 동작 특성 관점에서 터미널의 상태를 표현하는 자료구조의 생성과 유지, 실제 터미널 특성 규칙으로의 번역이 필요하고, 네트워크 세션 관점에서는 두 응용 엔티티 간에 연결 설정 및 관리와 연결을 통해 수행되는 허용 가능한 동작에 대한 협상이 필요하다.[12]
명령어
- 맥OS
현재 화면을 깨끗이 지우고, 프롬프트를 상단으로 올려주는 "clear", 현재 디렉토리의 위치를 나타내주는 "pwd", 디렉토리를 변경하는 "cd", 현재 디렉토리에 있는 파일목록을 보여주는 "ls" 명령어가 있다. 또한, 새로운 디렉토리를 만드는 "mkdir", 디렉토리 삭제는 "rmdir", null 파일 생성은 "touch", 시스템의 파티션 구조를 보여주는 "df", 현재 날짜와 시간을 보여주는 "date" 등 명령어가 있다.[13][14]
- 리눅스
사용자 계정의 패스워드를 등록하거나 변경하는 경우 이용하는 "passwd", 현재 디렉토리 내의 파일과 디렉토리 정보를 출력하는 명령어는 "ls"이다. 또한, 디렉토리를 이동할 때 사용하는 "cd", 하나 이상의 원본파일을 대상 파일이나 디렉토리로 복사하는 "cp", 새로운 디렉토리를 생성하는 명령어인 "mkdir", 빈 디렉토리를 제거하고, 읽기 권한이 허용되어야만 디렉토리를 삭제할 수 있는 명령어인 "rmdir"이 있다. 그리고 파일이나 디렉토리를 삭제할 때 사용하는 "rm", 파일의 이름이나 위치를 변경할 때 사용하는 "mv", 파일의 이름, 수정 날짜, 소유주, 허가 등을 기준으로 검색해주는 "find" 명령어 등이 있다.[15]
기타
"콘솔"(console)은 시스템 제어를 위한 특수 목적 터미널로, 시스템 또는 특정 기능들을 한 곳 또는 한 화면에 모아두고 손쉽게 제어하고, 수행하기 위한 조정용 터미널, 화면, 장치 등을 일컫는다. "tty"는 Teletypewriter의 약자로, 과거 유닉스에서 중대형 호스트에 비동기 직렬 통신 방식으로 연결된 문자 중심의 입출력 장치를 뜻하는 용어이다. 일반 명령 줄 인터페이스(CLI)용 콘솔인 "tty", 시리얼 통신용 콘솔인 "ttys", 기본 X 윈도를 위한 가상 콘솔인 "pts", 외부 원격 접속을 위한 가상 콘솔인 "pty"가 있다.[2][16] 또한, 입출력 제어 장치와 1대 이상의 입출력 장치가 있고, 전송 제어 장치를 통해서 시스템에 접속되는 "리모트 터미널"(Remote Terminal), 미니컴퓨터를 내장하고 있는 단말기로써, 데이터의 입출력뿐만 아니라 입출력 데이터의 체크, 편집, 파일링, 간단한 연산, 터미널 제어, 통신 제어 등의 기능이 있는 "인텔리전트 터미널"(Inteligent Terminal)이 있다. 인텔리전트 터미널을 플로피 디스크나 자기 디스크, 디지털 카세트 레코더 등을 시스템으로써 가지고 있는 것도 있다.[17] "단순 단말기"(Dumb Terminal)는 프로세서가 없으며, 화면과 키보드만을 갖춘 채, 주전산기에 접속되어 단순히 데이터를 입력하거나 검색하는 데 사용되는 장치를 가리킨다. 스마트 단말기만큼 빠르지 않고, 많은 표시 기능을 지원하지 않지만, 대부분의 업무 수행에 충분하다.[18] "휴대용 데이터 단말기"(Portable Data Terminal, PDT)는 무선 전송을 통해 데이터를 입력하거나 검색하는 데 사용되는 전자 디바이스이다. EDA(Enterprise Digital Assistant), 데이터 캡처 모바일 장치, 배치 터미널 또는 휴대용 장치라고도 한다. 바코드 판독기 역할을 할 수 있으며, 대형 상점, 창고, 현장 정보 또는 병원에서 원격 위치에서 데이터베이스에 접근하는 데 사용된다.[19]
각주
- ↑ 〈단말기〉, 《위키백과》
- ↑ 2.0 2.1 〈Terminal 터미널, 단말기〉, 《정보통신기술용어해설》
- ↑ 〈3. 터미널과 CLI〉, 《Dinefree》
- ↑ 4.0 4.1 〈#3.Linux 터미널〉, 《티스토리》, 2015-04-04
- ↑ 〈터미널(macOS)〉, 《위키백과》
- ↑ 6.0 6.1 Daegwon Nacyot Kim, 〈커맨드라인 인터페이스, 셸, 터미널이란?〉, 《44bits》, 2021-01-22
- ↑ younuk23, 〈(TIL) 리눅스&터미널 간략 개념 정립〉, 《velog》, 2020-08-01
- ↑ 〈터미널〉, 《티스토리》, 2013-07-17
- ↑ 〈에뮬레이터〉, 《위키백과》
- ↑ 친절한 찬찬이 아빠, 〈(RHEL 공통)터미널(단말)이란〉, 《티스토리》, 2021-02-18
- ↑ 〈가상터미널〉, 《티스토리》, 2013-07-20
- ↑ 〈VT Virtual Terminal, Remote Login 가상 단말, 가상 터미널, 원격 로그인〉, 《정보통신기술용어해설》
- ↑ recordboy, 〈맥 터미널 명령어〉, 《velog》, 2020-06-07
- ↑ 〈맥(MacOS) 유용한 터미널 명령어 정리〉, 《인포로그》
- ↑ seon_u, 〈(Linux)리눅스 터미널 명령어(Terminal Command) 모음〉, 《티스토리》, 2018-01-23
- ↑ George 혜성 Hyesung, 〈운영체제(os), 쉘(shell), 콘솔(console), 터미널(terminal), 커널(용어 개념 정리〉, 《티스토리》, 2019-12-05
- ↑ 〈6.11. 단말기란 무엇인가?〉, 《IT문화원》
- ↑ 〈dumb terminal ; 단순 단말기〉, 《텀즈》
- ↑ 〈휴대용 데이터 단말기〉, 《위키백과》
참고자료
- 〈단말기〉, 《위키백과》
- 〈Terminal 터미널, 단말기〉, 《정보통신기술용어해설》
- 〈3. 터미널과 CLI〉, 《Dinefree》
- 〈#3.Linux 터미널〉, 《티스토리》, 2015-04-04
- 〈터미널(macOS)〉, 《위키백과》
- Daegwon Nacyot Kim, 〈커맨드라인 인터페이스, 셸, 터미널이란?〉, 《44bits》, 2021-01-22
- younuk23, 〈(TIL) 리눅스&터미널 간략 개념 정립〉, 《velog》, 2020-08-01
- 〈터미널〉, 《티스토리》, 2013-07-17
- 〈에뮬레이터〉, 《위키백과》
- 친절한 찬찬이 아빠, 〈(RHEL 공통)터미널(단말)이란〉, 《티스토리》, 2021-02-18
- 〈가상터미널〉, 《티스토리》, 2013-07-20
- 〈VT Virtual Terminal, Remote Login 가상 단말, 가상 터미널, 원격 로그인〉, 《정보통신기술용어해설》
- recordboy, 〈맥 터미널 명령어〉, 《velog》, 2020-06-07
- 〈맥(MacOS) 유용한 터미널 명령어 정리〉, 《인포로그》
- seon_u, 〈(Linux)리눅스 터미널 명령어(Terminal Command) 모음〉, 《티스토리》, 2018-01-23
- George 혜성 Hyesung, 〈운영체제(os), 쉘(shell), 콘솔(console), 터미널(terminal), 커널(용어 개념 정리〉, 《티스토리》, 2019-12-05
- 〈6.11. 단말기란 무엇인가?〉, 《IT문화원》
- 〈dumb terminal ; 단순 단말기〉, 《텀즈》
- 〈휴대용 데이터 단말기〉, 《위키백과》
같이 보기