[TOOL-002][입문] 터미널·셸·명령어 첫걸음
페이지 정보

본문
[이번 수업]
이번에는 터미널, 셸, 명령어의 차이를 이해하고 현재 위치 확인, 폴더 이동, 파일 생성과 내용 확인을 안전한 임시 폴더에서 연습합니다. Windows PowerShell과 macOS/Linux 명령을 따로 안내합니다.
[선수지식]
파일과 폴더가 무엇인지 알면 충분합니다. Windows에서는 PowerShell, macOS에서는 Terminal, Linux에서는 설치된 터미널 앱을 엽니다.
[학습목표]
1. 터미널·셸·명령어를 구분한다.
2. 현재 작업 폴더와 절대·상대 경로를 설명한다.
3. 자신의 운영체제에서 폴더와 파일을 안전하게 다룬다.
[핵심개념]
터미널은 글자로 입출력하는 창입니다. 셸(shell)은 그 창에서 입력한 문장을 해석하고 프로그램을 실행하는 소프트웨어입니다. 같은 터미널 앱에서도 다른 셸을 실행할 수 있으므로 둘은 같은 말이 아닙니다.
명령은 보통 ‘명령 이름 + 옵션 + 인수’로 구성됩니다. 예를 들어 ls -l notes에서 ls는 명령, -l은 표시 방법을 바꾸는 옵션, notes는 대상 경로입니다. PowerShell의 Get-ChildItem -Path notes도 같은 목적을 더 명시적인 이름으로 표현합니다. 화면의 $, %, PS> 같은 프롬프트(prompt, 입력을 기다린다는 표시)는 복사하지 않습니다.
현재 작업 폴더는 상대 경로의 출발점입니다. 절대 경로는 루트나 드라이브부터 전체 위치를 적고, 상대 경로는 현재 폴더를 기준으로 적습니다. 점 하나 .는 현재 폴더, 점 두 개 ..는 부모 폴더를 뜻합니다. Windows 경로는 보통 역슬래시와 드라이브 이름을 사용하고 macOS/Linux는 슬래시로 시작합니다. 공백이 있는 경로는 따옴표로 감싸세요.
파이프 |는 앞 명령의 출력을 다음 명령의 입력으로 보냅니다. POSIX 계열 셸에서는 주로 텍스트 스트림을 연결하고, PowerShell 파이프라인은 명령 사이에 객체를 전달합니다. 꺾쇠 >는 출력을 파일에 쓰며 기존 내용을 덮어쓸 수 있으므로 대상을 확인해야 합니다.
[따라하기]
본인의 운영체제에 맞는 블록 하나만 실행하세요. 둘 다 운영체제의 임시 위치 아래 nalcoding-cli 폴더를 사용합니다.
Windows PowerShell:
$NalcodingWorkDir = Join-Path ([IO.Path]::GetTempPath()) "nalcoding-cli"
New-Item -ItemType Directory -Force $NalcodingWorkDir
Set-Location $NalcodingWorkDir
"hello" | Set-Content -Encoding utf8 hello.txt
Get-Location
Get-ChildItem
Get-Content hello.txt
macOS/Linux zsh 또는 Bash:
nalcoding_workdir=$(mktemp -d)
cd "$nalcoding_workdir"
printf '%s\n' 'hello' > hello.txt
pwd
ls
cat hello.txt
출력 경로는 컴퓨터마다 다릅니다. 공통으로 파일 목록에 hello.txt가 보이고 마지막 줄에는 hello가 출력됩니다. PowerShell의 Get-Location과 POSIX의 pwd는 현재 위치, Get-ChildItem과 ls는 목록, Get-Content와 cat은 파일 내용을 보여 줍니다.
[흔한 실수]
프롬프트 기호까지 붙여 넣거나 다른 셸의 명령을 그대로 실행하지 마세요. ‘명령을 찾을 수 없음’ 오류가 나면 철자와 사용 중인 셸을 먼저 확인합니다. 경로에 공백이 있는데 따옴표를 빼거나, 현재 폴더를 확인하지 않고 상대 경로를 쓰는 실수도 흔합니다. 대소문자를 구분하는 파일 시스템에서는 Hello.txt와 hello.txt가 다를 수 있습니다.
[보안 주의]
출처를 모르는 명령을 붙여 넣기 전에 각 부분의 의미를 확인하세요. 특히 관리자 권한 요청, 재귀 삭제, 디스크 초기화, 다운로드한 내용을 바로 셸로 넘기는 명령은 실행하지 않습니다. >는 파일을 덮어쓸 수 있고 와일드카드 *는 여러 파일을 가리킬 수 있습니다. 비밀번호·토큰을 명령줄에 직접 적으면 셸 기록이나 프로세스 목록에 남을 수 있습니다. 실습은 자신이 만든 임시 폴더 안에서만 진행하세요.
[직접 해볼 과제]
실습 폴더에서 second.txt를 만들고 내용으로 world를 저장하세요. 두 파일의 목록과 내용을 확인한 뒤, 현재 위치를 출력하고 ..로 부모 폴더에 이동해 위치가 어떻게 바뀌는지 기록합니다. 명령 이름·옵션·인수를 각각 표시해 보세요.
[확인문제]
1. 터미널과 셸은 어떻게 다른가요?
2. 상대 경로의 기준은 어디인가요?
3. >와 *를 실행하기 전에 대상을 확인해야 하는 이유는 무엇인가요?
[다음 학습]
순환 커리큘럼의 다음 수업은 PY-002 ‘숫자·문자열·불리언’입니다. 도구 트랙에서는 TOOL-003 ‘패키지 관리자와 의존성’으로 이어집니다.
[공식 참고 자료]
Ubuntu Linux command line
https://ubuntu.com/tutorials/command-line-for-beginners
PowerShell Locations
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_locations
PowerShell Pipelines
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipelines
Apple Terminal
https://support.apple.com/guide/terminal/welcome/mac
이번에는 터미널, 셸, 명령어의 차이를 이해하고 현재 위치 확인, 폴더 이동, 파일 생성과 내용 확인을 안전한 임시 폴더에서 연습합니다. Windows PowerShell과 macOS/Linux 명령을 따로 안내합니다.
[선수지식]
파일과 폴더가 무엇인지 알면 충분합니다. Windows에서는 PowerShell, macOS에서는 Terminal, Linux에서는 설치된 터미널 앱을 엽니다.
[학습목표]
1. 터미널·셸·명령어를 구분한다.
2. 현재 작업 폴더와 절대·상대 경로를 설명한다.
3. 자신의 운영체제에서 폴더와 파일을 안전하게 다룬다.
[핵심개념]
터미널은 글자로 입출력하는 창입니다. 셸(shell)은 그 창에서 입력한 문장을 해석하고 프로그램을 실행하는 소프트웨어입니다. 같은 터미널 앱에서도 다른 셸을 실행할 수 있으므로 둘은 같은 말이 아닙니다.
명령은 보통 ‘명령 이름 + 옵션 + 인수’로 구성됩니다. 예를 들어 ls -l notes에서 ls는 명령, -l은 표시 방법을 바꾸는 옵션, notes는 대상 경로입니다. PowerShell의 Get-ChildItem -Path notes도 같은 목적을 더 명시적인 이름으로 표현합니다. 화면의 $, %, PS> 같은 프롬프트(prompt, 입력을 기다린다는 표시)는 복사하지 않습니다.
현재 작업 폴더는 상대 경로의 출발점입니다. 절대 경로는 루트나 드라이브부터 전체 위치를 적고, 상대 경로는 현재 폴더를 기준으로 적습니다. 점 하나 .는 현재 폴더, 점 두 개 ..는 부모 폴더를 뜻합니다. Windows 경로는 보통 역슬래시와 드라이브 이름을 사용하고 macOS/Linux는 슬래시로 시작합니다. 공백이 있는 경로는 따옴표로 감싸세요.
파이프 |는 앞 명령의 출력을 다음 명령의 입력으로 보냅니다. POSIX 계열 셸에서는 주로 텍스트 스트림을 연결하고, PowerShell 파이프라인은 명령 사이에 객체를 전달합니다. 꺾쇠 >는 출력을 파일에 쓰며 기존 내용을 덮어쓸 수 있으므로 대상을 확인해야 합니다.
[따라하기]
본인의 운영체제에 맞는 블록 하나만 실행하세요. 둘 다 운영체제의 임시 위치 아래 nalcoding-cli 폴더를 사용합니다.
Windows PowerShell:
$NalcodingWorkDir = Join-Path ([IO.Path]::GetTempPath()) "nalcoding-cli"
New-Item -ItemType Directory -Force $NalcodingWorkDir
Set-Location $NalcodingWorkDir
"hello" | Set-Content -Encoding utf8 hello.txt
Get-Location
Get-ChildItem
Get-Content hello.txt
macOS/Linux zsh 또는 Bash:
nalcoding_workdir=$(mktemp -d)
cd "$nalcoding_workdir"
printf '%s\n' 'hello' > hello.txt
pwd
ls
cat hello.txt
출력 경로는 컴퓨터마다 다릅니다. 공통으로 파일 목록에 hello.txt가 보이고 마지막 줄에는 hello가 출력됩니다. PowerShell의 Get-Location과 POSIX의 pwd는 현재 위치, Get-ChildItem과 ls는 목록, Get-Content와 cat은 파일 내용을 보여 줍니다.
[흔한 실수]
프롬프트 기호까지 붙여 넣거나 다른 셸의 명령을 그대로 실행하지 마세요. ‘명령을 찾을 수 없음’ 오류가 나면 철자와 사용 중인 셸을 먼저 확인합니다. 경로에 공백이 있는데 따옴표를 빼거나, 현재 폴더를 확인하지 않고 상대 경로를 쓰는 실수도 흔합니다. 대소문자를 구분하는 파일 시스템에서는 Hello.txt와 hello.txt가 다를 수 있습니다.
[보안 주의]
출처를 모르는 명령을 붙여 넣기 전에 각 부분의 의미를 확인하세요. 특히 관리자 권한 요청, 재귀 삭제, 디스크 초기화, 다운로드한 내용을 바로 셸로 넘기는 명령은 실행하지 않습니다. >는 파일을 덮어쓸 수 있고 와일드카드 *는 여러 파일을 가리킬 수 있습니다. 비밀번호·토큰을 명령줄에 직접 적으면 셸 기록이나 프로세스 목록에 남을 수 있습니다. 실습은 자신이 만든 임시 폴더 안에서만 진행하세요.
[직접 해볼 과제]
실습 폴더에서 second.txt를 만들고 내용으로 world를 저장하세요. 두 파일의 목록과 내용을 확인한 뒤, 현재 위치를 출력하고 ..로 부모 폴더에 이동해 위치가 어떻게 바뀌는지 기록합니다. 명령 이름·옵션·인수를 각각 표시해 보세요.
[확인문제]
1. 터미널과 셸은 어떻게 다른가요?
2. 상대 경로의 기준은 어디인가요?
3. >와 *를 실행하기 전에 대상을 확인해야 하는 이유는 무엇인가요?
[다음 학습]
순환 커리큘럼의 다음 수업은 PY-002 ‘숫자·문자열·불리언’입니다. 도구 트랙에서는 TOOL-003 ‘패키지 관리자와 의존성’으로 이어집니다.
[공식 참고 자료]
Ubuntu Linux command line
https://ubuntu.com/tutorials/command-line-for-beginners
PowerShell Locations
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_locations
PowerShell Pipelines
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_pipelines
Apple Terminal
https://support.apple.com/guide/terminal/welcome/mac
- 이전글[PY-002][입문] 숫자·문자열·불리언 구분하기 26.08.29
- 다음글[CS-002][입문] 조건문과 반복문으로 흐름 만들기 26.08.29
댓글목록
등록된 댓글이 없습니다.
