Terminal

macOS의-기본-터미널
macOS의 기본 터미널

일상에서 다양한 디지털 기기와 소통하며 생활하며, 그 기기들과 소통하는 방식은 다양합니다. 그 중에서도 컴퓨터와의 소통 방식은 특히 중요한 부분을 차지합니다. 컴퓨터와 소통하기 위한 방법 중 하나로, 운영체제의 Shell과 통신하는 방법이 있습니다. 이를 가능하게 하는 도구가 바로 터미널입니다.

사용자, 즉 클라이언트 측에서 운영 체제의 Shell과 소통하는 방식은 크게 CLI(Command Line Interface)GUI(Graphical User Interface) 두 가지 방식이 있습니다. GUI는 시각적인 그래픽 인터페이스를 활용하여 사용자와 컴퓨터 사이의 소통을 돕게 됩니다. GUI 도구 중에서 운영체제의 Shell과 통신하는 데 사용되는 도구로는 파일 탐색기(File Explorer)가 있는데 CLI 도구의 경우 터미널이 그 역할을 한다고 볼 수 있습니다.

터미널은 사용자가 직접 명령어를 입력하고 그 결과를 확인할 수 있는 도구로, 컴퓨터의 가장 기본적인 조작 방식을 제공합니다. 이는 운영체제의 깊은 곳까지 접근할 수 있게 해주며, 필요에 따라 다양한 작업을 수행할 수 있게 합니다.

Terminal이란

터미널(Terminal)은 컴퓨터에서 사용자와 컴퓨터 간의 상호 작용을 가능케 하는 텍스트 기반의 사용자 인터페이스입니다. 터미널은 주로 명령줄 인터페이스(Command Line Interface, CLI)로 알려져 있으며, 사용자는 명령어를 입력하여 컴퓨터에 다양한 작업을 지시할 수 있습니다.

터미널은 운영 체제에서 제공하는 셸(Shell)과 함께 작동하며, 사용자가 키보드로 입력한 명령을 해석하고 실행하는 역할을 합니다. 터미널을 통해 사용자는 파일 및 디렉토리 관리, 시스템 설정, 프로그램 실행 등 다양한 작업을 수행할 수 있습니다. Shell 더 알아보기

Windows 터미널 기본 Shell 변경하기

Terminal의 주요 특징

Terminal의 주요 특징은 다음과 같습니다.

  • 텍스트 기반 인터페이스: 터미널은 글자와 문자로 구성된 텍스트 기반의 환경을 제공합니다. 이는 GUI보다 자원 소모가 적으며, 이로 인해 비교적 가벼운 작업 환경을 유지할 수 있습니다. 또한 텍스트 기반 인터페이스는 원격 서버나 다양한 환경에서도 일관된 인터페이스를 제공할 수 있어, 환경에 구애받지 않고 작업을 수행할 수 있는 유연성을 제공합니다.
  • 명령어 실행: 터미널은 다양한 명령어를 실행하는 기능을 가지고 있습니다. 사용자는 터미널을 통해 파일 복사, 디렉토리 이동, 프로그램 실행 등의 작업을 수행할 수 있습니다. 특히, 명령어는 파이프라인, 리다이렉션 등을 활용하여 복잡한 작업을 단순화하거나, 여러 명령어를 결합하여 새로운 작업을 생성할 수 있습니다.
  • 스크립트 및 자동화: 터미널을 통해 작성된 명령어들은 스크립트로 저장되어 나중에 재사용하거나 자동화에 활용될 수 있습니다. 이는 반복적이거나 복잡한 작업을 간편하게 처리할 수 있게 합니다. 또한, 이 스크립트는 시스템 부팅 시 자동으로 실행되도록 설정하거나, 특정 시간에 실행되도록 예약할 수도 있습니다.
  • 권한 관리: 터미널을 통해 일부 작업은 루트 (root) 권한이 필요합니다. 이는 시스템의 핵심 부분에 접근하여 변경할 수 있는 능력을 의미합니다. 터미널을 통해 사용자는 권한을 관리하고, 필요한 경우 루트 권한으로 작업을 수행할 수 있습니다.
  • 다중 작업 및 원격 접속: 터미널을 사용하면 여러 작업을 동시에 처리하거나, 원격 서버에 접속하여 명령을 실행할 수 있습니다. 이는 터미널의 멀티태스킹 능력과 SSH(Secure Shell) 등의 원격 접속 도구를 통해 가능합니다. 이를 통해 사용자는 한 번에 여러 작업을 관리하거나, 원격 위치에 있는 시스템을 관리할 수 있습니다.

Terminal과 Shell

컴퓨터와 사용자 사이의 상호작용을 가능하게 하는 두 가지 중요한 요소, Shell과 터미널에 대해 이야기해보겠습니다. Shell은 사용자가 입력한 명령을 커널에게 전달하고 그 결과를 사용자에게 반환하는 운영체제의 구성 요소입니다. 반면에, 터미널은 사용자와 쉘 간의 소통을 가능하게 하는 인터페이스 도구입니다.

참고: 사용자가 터미널에 ls 라는 명령을 입력하면, 쉘이 이를 해석하여 현재 디렉토리의 파일과 폴더를 나열하는 명령으로 커널에 전달합니다. 커널은 이 명령을 실행한 후 그 결과를 쉘에게 반환하고, 쉘은 이 정보를 터미널에 표시하여 사용자에게 보여줍니다.
  • Shell과 터미널의 주요 역할: Shell과 터미널은 각각 다른 역할을 수행합니다. Shell의 핵심 역할은 사용자의 명령을 해석하고 실행하여 시스템을 제어하는 것입니다. 이에 반해, 터미널의 주된 역할은 사용자와 시스템 간의 소통 창구를 제공하는 것입니다. 사용자는 터미널을 통해 명령을 입력하고, 시스템의 반응을 확인할 수 있습니다.
  • Shell과 터미널의 기능적 차이점: Shell과 터미널은 그들의 기능에 있어서 차이를 보입니다. Shell은 사용자의 명령을 해석하고 실행하는역할을 합니다. 즉, 터미널로부터 사용자의 명령을 받아, 이를 해석하여 커널에 전달하고, 커널이 처리한 결과를 받아와서 이를 터미널에 출력합니다. 반면에, 터미널은 사용자의 명령을 입력받고 시스템의 출력을 보여주는 역할을 합니다. 터미널 자체는 명령을 직접 해석하거나 실행하는 기능을 가지고 있지 않습니다.
  • Shell과 터미널의 사용자 인터페이스: Shell과 터미널은 사용자에게 다른 인터페이스를 제공합니다. Shell은 사용자가 시스템과 상호작용할 수 있는 환경을 제공합니다. 이는 명령어의 해석 및 실행, 프로그래밍 기능 등을 포함합니다. 반면에, 터미널은 주로 명령줄 인터페이스를 제공하며, 사용자는 이를 통해 텍스트 형태의 명령어를 입력하고 시스템의 반응을 확인할 수 있습니다.
Batch 배치파일 작성하고 만드는 방법

대표적인 Terminal

터미널 애플리케이션은 사용자가 시스템에 직접 명령을 내릴 수 있게 해주는 프로그램입니다. 다양한 터미널 애플리케이션들이 있지만, 그중에서도 가장 널리 사용되는 터미널 애플리케이션들을 소개하겠습니다.

  • Terminal.app (macOS): Terminal.app은 Apple의 macOS 운영 체제에 기본적으로 탑재된 터미널 애플리케이션입니다. 이 애플리케이션은 사용자에게 커맨드 라인 인터페이스를 제공하여 시스템 명령어를 입력하고 실행할 수 있게 해줍니다. macOS Terminal 앱 더 알아보기
  • iTerm2 (macOS): iTerm2는 macOS 전용 터미널 애플리케이션입니다. 기본 Terminal.app에 비해 확장성과 사용자 친화적인 기능이 풍부하여 많은 개발자들에게 선호됩니다.
  • Windows Terminal (Windows): Windows Terminal은 Microsoft가 제공하는 최신 터미널 애플리케이션입니다. PowerShell, Command Prompt, WSL(Windows Subsystem for Linux) 등 다양한 셸을 하나의 애플리케이션에서 사용할 수 있게 해줍니다. Windows Terminal 더 알아보기(링크 업데이트 예정)
  • PuTTY (Windows): PuTTY는 Windows 운영 체제에서 가장 널리 사용되는 무료 및 오픈 소스 터미널 에뮬레이터입니다. 이는 SSH, Telnet, rlogin, 그리고 원격 컴퓨터에 대한 raw socket connection을 지원합니다. PuTTY 더 알아보기(링크 업데이트 예정)
  • GNOME Terminal (Linux): GNOME Terminal은 GNOME 데스크톱 환경의 일부로 제공되는 터미널 에뮬레이터입니다. 이는 탭을 지원하며, 사용자 정의가 가능한 프로필, 다양한 문자열 인코딩 등의 기능을 제공합니다.
  • Konsole (Linux): Konsole은 KDE 데스크톱 환경의 일부로 제공되는 터미널 에뮬레이터입니다. 이는 세션 관리, 투명도, 탭 등의 기능을 제공하며, 사용자 친화적인 인터페이스를 제공합니다.

관련글

Leave a Comment