명령줄 인터페이스(CLI) 기본: 명령 구조, 터미널 작업
1. Linux 명령줄과의 첫 만남
왜 명령줄인가?
우리가 깊이 들어가기 전에, 먼저 가장 중요한 질문에 답하자: 왜 Linux에서 예쁜 그래픽 인터페이스가 있는데도 명령줄이 필요한 걸까? 명령줄(Command Line Interface, CLI)은 전문가들, 시스템 관리자 및 프로그래머들을 위한 도구야. CLI를 사용하면 작업을 더 빠르게 수행하고, 반복적인 작업을 자동화하며, 손을 키보드에서 떼지 않고도 백그라운드 마법 같은 것도 처리할 수 있어. CLI는 Linux 세계에서 너를 더 효율적으로 만들어 줄 초능력 같은 거지.
터미널, 쉘과 CLI
첫 명령을 입력하기 전에, 터미널의 마법 뒤에 어떤 비밀이 숨어 있는지 함께 알아보자.
1. 터미널
터미널은 명령줄에 접근할 수 있게 해주는 프로그램이야. 텍스트를 통해 운영체제와 상호작용할 수 있어. Linux에서는 다음과 같은 인기 있는 터미널들이 있어:
- GNOME Terminal (GNOME에서).
- Konsole (KDE에서).
- xterm (전설적이지만 오래된).
- Windows Terminal for WSL
2. 쉘 (Shell)
쉘은 명령을 해석하고 이를 운영체제에 전달하는 소프트웨어야. Linux에서 가장 인기 있는 쉘은 Bash (Bourne Again Shell)이고, 대안들도 있어:
- Zsh: 커스터마이징 애호가들을 위한 확장된 명령 쉘.
- Sh: 클래식 Unix 쉘 (최소주의).
우리는 시작 단계에서는 Bash로 작업할 거야. 왜냐하면 그게 표준이니까.
2. 명령의 구조
CLI에서 명령은 엄격한 형식을 가지고 있으며 이를 이해하는 것이 성공의 열쇠야.
명령의 기본 형식
모든 명령은 세 부분으로 구성돼:
[명령] [옵션] [인수]
- 명령: 시스템에 요청하는 작업. 예를 들어,
ls
(파일 목록 보기). - 옵션 (또는 플래그): 명령의 동작을 수정해. 예를 들어,
-l
(ls
명령에 대한 자세한 목록). - 인수: 명령에 전달하는 추가 데이터. 예: 파일 또는 폴더의 경로.
예제:
ls -l /home
여기서:
ls
— 명령;-l
— 자세한 목록 옵션;/home
— 인수 (내용을 보고 싶은 폴더).
3. 네비게이션과 CLI 기본 명령
시스템과 상호작용을 시연하는 가장 간단한 명령부터 시작하자.
1. 나는 누구인가? 나는 어디에 있는가?
whoami
: 현재 사용자를 보여준다.$ whoami student
pwd
(print working directory): 현재 디렉토리를 보여준다.$ pwd /home/student
대부분의 Unix/Linux 쉘에서는 $
기호가 터미널에서 프롬프트로 사용된다. 이는 시스템이 명령을 받을 준비가 되었음을 나타낸다. $
기호는 사용자가 입력해야 하는 명령과 해당 명령의 출력물을 구분하는 데 사용된다.
2. 주변을 살펴보자
ls
(list): 현재 디렉토리의 내용을 보여준다.$ ls Documents Downloads Music
유용한 옵션:
-l
: 파일 및 폴더에 대한 자세한 정보.-a
: 숨겨진 파일 표시.
예제:
ls -la
3. 폴더 간 이동
cd
(change directory): 디렉토리 간 이동을 가능하게 한다.$ cd /home $ pwd /home
4. 터미널 단축키
커맨드 라인은 여러 편리한 키 조합을 제공해:
Ctrl+C
: 현재 명령 실행 중단.Ctrl+D
: 현재 세션 종료.Tab
: 파일이나 폴더 자동 완성. 진짜 유용하니까 자주 써봐.Arrow Up/Down
: 최근 명령들 간 전환.
실용적인 팁: 너가 해커가 된 기분을 느끼고 싶으면, Ctrl+C
를 누르고 멋쩍은 시선으로 옆을 보는 게 완벽한 스타일이야.
5. 간단한 명령어 예제: 이제 시작하자!
간단한 실습 과제를 만들어서 CLI로 해결해 보자.
과제:
- 현재 사용자를 알아내기.
- 홈 디렉토리로 이동하기.
- 그곳에 무엇이 있는지 확인하기.
test_folder
폴더 생성하기.- 폴더가 생성되었는지 확인하기.
해결 방법:
# 현재 사용자 확인
whoami
# 홈 디렉토리로 이동
cd ~
# 디렉토리 내용 확인
ls
# 폴더 생성
mkdir test_folder
# 폴더 생성 확인
ls -l
단계 설명:
whoami
명령어로 우리가 어떤 사용자로 작업 중인지 확인했다.cd ~
명령어로 홈 디렉토리로 이동했다.~
기호는 항상 현재 사용자의 홈 폴더를 가리킨다.ls
명령어는 폴더를 생성하기 전과 생성 후의 디렉토리 내용을 보여주었다.
6. 흔한 실수와 피하는 방법
커맨드 라인을 사용하다 보면 특히 처음에는 항상 실수를 하게 돼. 여기 몇 가지 흔한 상황들이 있어:
파일/폴더 이름에 공백. 이름에 공백이 포함되어 있다면 반드시 따옴표로 감싸줘. 예를 들어:
mkdir "My Folder"
잘못된 경로.
No such file or directory
메시지가 보인다면, 존재하지 않는 경로를 지정한 거야.cd /unknown/path
명령어 오타. 터미널은 실수를 허용하지 않아:
lss
대신ls
를 써야 돼 — 아니면 그 명령어가 아예 없을 수도 있어.
7. 이게 왜 필요할까?
CLI는 어떤 시스템이든 제어할 수 있는 강력한 도구야. 서버를 설정하거나 자동화 스크립트를 작성할 때까지 어디에서나 사용돼. 회사 면접에서도 종종 터미널로 작업을 수행하는 명령어를 묻기도 하니까, 지금 배우는 지식이 나중에 중요한 무기가 될 거야.
추가로 CLI는 git
같은 버전 관리 시스템을 다루거나, 서버 애플리케이션 개발, 자동화 스크립트 작성에도 도움을 줄 거야. 명령 구조, 폴더 간 이동, 기본 키 조합 같은 기초를 이해하는 것부터 시작해.
실습 조금 해보기
다음 과제를 한번 해결해 봐:
- 현재 날짜를 확인하기.
logs
폴더 만들기.- 그 안에
log.txt
파일을 만들어 현재 날짜를 기록하기.
해답 예제
# 현재 날짜 확인하기
date
# logs 폴더 만들기
mkdir logs
# 날짜를 log.txt에 기록하기
date > logs/log.txt
# 파일 내용 확인하기
cat logs/log.txt
이제 다음 단계로 넘어갈 준비가 됐어 — 파일 시스템과 그 내용 작업!
GO TO FULL VERSION