왜 터미널인가
계산은 대부분 원격 Linux 클러스터에서 돈다. 클러스터에는 화면이 없고, ssh로 접속해 글자로 명령을 주고받는다. 그래서 자기 컴퓨터에도 같은 환경을 하나 만들어 두면 좋다. 입력 파일을 미리 만들어 보고, 작은 xtb 계산을 돌려 보고, 받아 온 출력을 grep으로 뒤지는 연습을 로컬에서 할 수 있다.
터미널은 글자를 입력하고 출력을 보여 주는 창이고, 그 안에서 명령을 해석해 실행하는 프로그램이 셸이다. 이 가이드는 클러스터 기본 셸인 bash를 기준으로 쓴다.
Windows: WSL2
WSL(Windows Subsystem for Linux)은 Windows 안에서 진짜 Linux를 돌리는 기능이다. 버전 2(WSL2)는 실제 Linux 커널을 쓰므로 클러스터와 거의 같은 환경이 된다. Windows 10 최신 빌드나 Windows 11이면 명령 하나로 설치된다.
- 시작 메뉴에서 PowerShell을 찾아 오른쪽 클릭 → 관리자 권한으로 실행.
- 아래 명령을 입력하고 끝나면 재부팅한다. 기본으로 Ubuntu가 함께 설치된다.
- 재부팅 후 Ubuntu 창이 뜨면 Linux용 사용자 이름과 비밀번호를 정한다. Windows 계정과 달라도 된다.
# PowerShell (관리자)
wsl --install
# 설치된 배포판과 WSL 버전 확인
wsl -l -v
비밀번호를 칠 때 화면에 아무것도 찍히지 않는다. 고장이 아니라 원래 그렇다. 이 비밀번호는 나중에 sudo로
프로그램을 설치할 때 쓴다. 설치가 끝나면 패키지 목록부터 갱신한다.
$ sudo apt update && sudo apt upgrade
터미널 창은 Windows Terminal을 쓴다. Windows 11에는 기본으로 들어 있고, Windows 10은 Microsoft Store에서 받는다. 탭을 열 때 드롭다운에서 Ubuntu를 고르면 된다.
Windows 파일은 어디에 있나
WSL 안에서 Windows의 C 드라이브는 /mnt/c로 보인다. 바탕 화면은 보통 /mnt/c/Users/<Windows 사용자 이름>/Desktop이다.
반대로 Windows 탐색기에서 Linux 쪽 파일을 보려면 WSL 터미널에서 explorer.exe .를 입력한다. 현재 디렉터리가 탐색기로 열린다.
계산 디렉터리는 /mnt/c 아래가 아니라 Linux 홈(~, 즉 /home/<사용자>) 아래에 만든다.
/mnt/c는 두 운영체제 사이를 오가는 통로라 파일이 많으면 눈에 띄게 느리고, 권한(04장)이 제대로 표시되지 않는다.
Windows 메모장으로 만든 파일은 줄 끝 문자도 달라서 문제가 생긴다(03장).
macOS
macOS는 Unix 계열이라 따로 설치할 것이 적다. 응용 프로그램 → 유틸리티 → 터미널을 열면 된다. 탭과 창 분할이 더 편한 iTerm2를 쓰는 사람도 많다.
macOS Catalina(10.15)부터 기본 셸이 bash에서 zsh로 바뀌었다. 대화형으로 쓰는 명령은 거의 같아서 이 가이드를 따라가는 데 문제는 없다.
다만 macOS에 들어 있는 bash는 3.2로 오래됐고, sed, date 같은 기본 도구도 Linux(GNU)판과 옵션이 조금 다르다.
스크립트를 쓸 때는 이 차이 때문에 클러스터에서 도는 명령이 맥에서 안 돌 수 있다.
개발 도구와 패키지 관리자 Homebrew를 설치해 두면 나머지 프로그램을 받기 쉽다.
# git, make, 컴파일러 등 Xcode Command Line Tools
$ xcode-select --install
# Homebrew (brew.sh에 나온 명령 그대로)
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 최신 bash와 GNU 도구가 필요하면
$ brew install bash coreutils
Linux
Ubuntu 같은 데스크톱 Linux라면 이미 준비가 끝났다. Ubuntu에서는 Ctrl+Alt+T로 터미널이 열린다.
기본 셸도 bash다.
다른 선택지
Windows에서 클러스터에 접속만 하려면 MobaXterm이나 PuTTY 같은 ssh 프로그램도 쓸 수 있다. MobaXterm은 파일 전송 창이 붙어 있어 편하다. 하지만 이것들은 원격 접속용 창일 뿐 로컬에 Linux가 생기지는 않는다. 로컬에서 연습하고 스크립트를 시험하려면 WSL이 낫다.
셸과 프롬프트
터미널을 열면 이런 줄이 보이고 커서가 깜빡인다. 이 줄을 프롬프트라고 한다.
kim@laptop:~$
| 부분 | 뜻 |
|---|---|
kim | 로그인한 사용자 이름 |
laptop | 컴퓨터(호스트) 이름. 클러스터에 접속하면 로그인 노드 이름으로 바뀐다. |
~ | 지금 있는 디렉터리. ~는 홈 디렉터리를 줄여 쓴 것이다. |
$ | 입력을 기다린다는 표시. 관리자(root)면 #이 나온다. |
macOS의 zsh는 kim@MacBook ~ %처럼 %로 끝난다. 모양은 설정마다 다르지만 읽는 법은 같다.
프롬프트에 호스트 이름이 들어 있으니, 지금 명령을 치는 곳이 내 노트북인지 클러스터인지는 이것으로 확인한다.
첫 명령
명령을 입력하고 Enter를 누른다. 대소문자를 구분하므로 PWD가 아니라 pwd다.
$ whoami
kim
$ pwd
/home/kim
$ ls
$ date
Tue Sep 29 10:15:32 +08 2026
whoami: 지금 사용자 이름.pwd(print working directory): 지금 있는 디렉터리의 전체 경로.ls(list): 현재 디렉터리의 파일 목록. 막 설치한 홈은 비어 있어서 아무것도 출력되지 않는다.date: 현재 날짜와 시간.
Linux 명령은 성공하면 조용한 경우가 많다. 아무 출력 없이 프롬프트가 다시 나오면 대개 잘 된 것이다.
오류가 나면 메시지를 끝까지 읽는다. command not found는 명령 이름을 잘못 쳤거나 프로그램이 설치되지 않았다는 뜻이다.
도움말 보기
옵션을 외울 필요는 없다. 대부분의 명령은 설명서를 달고 있다.
# 전체 설명서. 화살표나 스페이스로 넘기고 q로 나간다
$ man ls
# 짧은 옵션 요약
$ ls --help
man 화면 안에서 /를 누르고 단어를 치면 검색된다(03장의 less와 같은 방식).
macOS 기본 명령 일부는 --help를 모르니 man을 쓴다.
cd처럼 셸에 내장된 명령은 help cd로 본다.
복사, 붙여넣기, 자주 쓰는 키
터미널에서 Ctrl+C는 복사가 아니라 실행 중인 명령을 중단하는 키다.
그래서 복사와 붙여넣기 단축키가 프로그램마다 다르다.
| 터미널 | 복사 | 붙여넣기 |
|---|---|---|
| Linux (GNOME Terminal 등) | Ctrl+Shift+C | Ctrl+Shift+V |
| Windows Terminal | 텍스트를 선택한 상태에서 Ctrl+C | Ctrl+V |
| macOS 터미널, iTerm2 | Cmd+C | Cmd+V |
| PuTTY | 마우스로 선택하면 복사 | 오른쪽 클릭 |
| 키 | 하는 일 |
|---|---|
↑ ↓ | 이전에 입력한 명령 불러오기 |
Tab | 파일 이름과 명령 이름 자동 완성 (02장) |
Ctrl+C | 실행 중인 명령 중단, 쓰던 줄 버리기 |
Ctrl+L | 화면 지우기 (clear와 같음) |
Ctrl+A / Ctrl+E | 줄 맨 앞 / 맨 뒤로 커서 이동 |
Ctrl+R | 지난 명령을 글자로 검색 |
웹 페이지나 PDF에서 명령을 복사하면 따옴표가 둥근 따옴표(“ ”)로 바뀌어 있거나, 줄 앞의 $까지 함께 딸려 오는 일이 있다.
붙여 넣은 뒤 Enter를 누르기 전에 한 번 훑어본다.