728x90
터미널 기본 명령어
기본 명령어
명령어 | 설명 |
pwd | 현재 위치 확인 |
ls -l | 현재 디렉토리 내용 확인 |
cd [폴더명] | [폴더명] 으로 이동 |
cd .. | 이전 디렉토리로 이동 |
touch [파일명] | 파일 하나 생성 |
rm [파일명] | 파일 삭제 |
mkdir [폴더 이름] | 디렉토리 생성 |
텍스트 검색 및 처리
명령어 | 설명 |
grep [패턴] [파일] | 파일에서 특정 문자열(패턴) 검색 예: grep error logfile.txt |
grep -r [패턴] [디렉토리] | 디렉토리 내 모든 파일에서 재귀적으로 검색 |
awk '{print $1}' [파일] | 파일의 각 줄에서 첫 번째 필드 출력 예: awk '{print $2}' access.log |
awk -F',' '{print $1}' [파일] | 구분자를 쉼표(,)로 설정해 필드 출력 |
sed 's/old/new/' [파일] | 첫 번째 일치 항목만 교체 (표준출력) 전체 교체는 s/old/new/g |
sed -i 's/old/new/g' [파일] | 실제 파일 내용 수정 (in-place 편집) |
환경에 따라 다른 형식
환경 | 기본 형식 | 설명 |
macOS | sed -i '' 's/old/new/g' 파일 | 백업 없이 in-place 수정 |
macOS | sed -i '.bak' 's/old/new/g' 파일 | .bak 확장자의 백업본 생성 후 수정 |
Linux | sed -i 's/old/new/g' 파일 | 별도 확장자 없이도 바로 in-place 수정 가능 |
파일 보기 및 조작
명령어 | 설명 |
tail [파일] | 마지막 10줄 보기 |
tail -n 20 [파일] | 마지막 20줄 보기 |
tail -f [파일] | 실시간 로그 확인 |
head [파일] | 처음 10줄 보기 |
head -n 20 [파일] | 처음 20줄 보기 |
less [파일] | 큰 파일을 페이지 단위로 보기 (q로 종료) |
네트워크 관련
명령어 | 설명 |
curl [URL] | URL의 데이터를 터미널에 출력 |
curl -O [URL] | URL의 파일을 현재 디렉토리에 저장 |
curl -X POST -d 'key=value' [URL] | POST 요청 보내기 |
wget [URL] | 파일 다운로드 |
wget -r [URL] | 웹사이트 전체 재귀 다운로드 |
파일 검색
명령어 | 설명 |
find [경로] -name [이름] | 이름 기준으로 파일 검색 예: find . -name "*.log" |
find [경로] -type f -size +10M | 10MB보다 큰 파일 찾기 |
원격 접속
명령어 | 설명 |
ssh [user]@[host] | 원격 서버에 SSH 접속 예: ssh root@192.168.0.1 |
ssh -i [key.pem] [user]@[host] | 키 파일을 이용한 SSH 접속 |
프로세스 관리
명령어 | 설명 |
ps aux | 현재 실행 중인 모든 프로세스 보기 |
kill [PID] | 지정한 PID의 프로세스 종료 |
kill -9 [PID] | 강제 종료 |
pkill [프로세스명] | 이름으로 프로세스 종료 |
기타
명령어 | 설명 |
history | 명령어 기록 보기 |
clear | 터미널 화면 정리 |
echo $PATH | 환경 변수 출력 |
which [명령어] | 명령어의 경로 확인 |
실습
- 실습 환경 준비
- 테스트용 디렉토리 만들기
- 명려어 실습
1. 실습 환경 준비
로컬 테스트
macOS나 Linux는 바로 터미널에서 가능
Windows는 WSL(Windows Subsystem for Linux) 설치 후 Ubuntu 사용 권장
2. 테스트용 디렉토리 만들기
mkdir terminal-test
cd terminal-test
echo "apple banana cherry" > fruits.txt
echo -e "line1\nline2\nline3" > lines.txt
mkdir logs
echo "error: something broke" > logs/app.log
명령어 | 설명 |
mkdir [폴더 이름] | 디렉토리 생성 |
cd [폴더 이름] | 이동 |
echo [-e] "문자열" > 파일명 | 문자열을 출력 > : 출력 리디렉션, 내용을 파일에 저장 [-e] : \n 등의 이스케이프 시퀀스를 해석하라는 의미 |
3. 명령어 실습
디렉토리/파일
pwd
ls -l
cd ..
cd terminal-test
touch newfile.txt
rm newfile.txt
명령어 | 설명 |
pwd | 현재 위치 확인 |
ls -l | 현재 디렉토리 내용 확인 |
cd [폴더명] | [폴더명] 으로 이동 |
cd .. | 이전 디렉토리로 이동 |
touch [파일명] | 파일 하나 생성 |
rm [파일명] | 파일 삭제 |
검색
grep banana fruits.txt
awk '{print $2}' fruits.txt
sed 's/cherry/grape/' fruits.txt
명령어 | 설명 |
grep [패턴] [파일] | 파일에서 특정 문자열(패턴) 검색 예: grep error logfile.txt |
awk '{print $2}' [파일] | 파일의 각 줄에서 첫 번째 필드 출력 |
sed 's/old/new/' [파일] | 첫 번째 일치 항목만 교체 (표준출력) → 원본 파일은 변경되지 않는다. 전체 교체는 s/old/new/g |
파일보기
1. 파일 보기
head lines.txt
tail -n 2 lines.txt
less lines.txt # q로 종료
명령어 | 설명 |
head [파일명] | **파일의 앞부분(기본 10줄)**을 출력 |
tail -n [숫자] [파일명] | 파일의 끝에서부터 N줄 출력 |
less [파일명] | 스크롤 가능한 화면으로 파일 전체 보기, 대용량 파일 확인에 유리 |
2. 실시간 로그 확인
tail -f fruits.txt # 종료 : Ctrl + C
다른(새로운) 터미널 탭 열고 파일에 줄 추가
echo "peach" >> fruits.txt
처음 터미널에 실시간으로 출력됨
명령어 | 설명 |
tail -f [파일] | 실시간 로그 확인 |
네트워크
curl https://example.com
wget https://example.com -O example.html
명령어 | 설명 |
curl [URL] | URL의 데이터를 터미널에 출력 |
wget [URL] | 파일 다운로드 |
파일찾기
find . -name "*.txt"
find . -type f -size -1M
명령어 | 설명 |
find [경로] -name [이름] | 이름 기준으로 파일 검색 . : 현재 디렉토리 |
find [경로] -type f -size -1M | 1MB보다 작은 파일 찾기 |
SSH
ssh user@host.com
테스트 서버가 없다면 실제 접속이 어렵다.
명령어 | 설명 |
ssh [user]@[host] | 원격 서버에 SSH 접속 예: ssh root@192.168.0.1 |
프로세스 관리
ps aux | head -n 10
kill 12345 # → 임의로 실행하지 마세요, 시스템 프로세스가 죽을 수 있음
명령어 | 설명 |
ps aux | 현재 실행 중인 모든 프로세스 보기 |
kill [PID] | 지정한 PID의 프로세스 종료 |
- ps : 현재 실행 중인 프로세스를 보여주는 명령어
- a : 모든 사용자의 프로세스를 표시
- u : 프로세스를 사용자 이름과 함께 표시
- x : 터미널에 연결되지 않은 프로세스도 포함하여 출력
- | : 파이프 기호로, 왼쪽 명령어의 출력을 오른쪽 명령어로 전달합니다.
- head -n 10 : 출력되는 상위 10줄만 표시
728x90
'개발 지식 > 기본지식' 카테고리의 다른 글
프로세스 간 통신(IPC) 란 (0) | 2025.05.16 |
---|---|
메모리 관리란 (2) | 2025.05.15 |
스레드와 동시성 (0) | 2025.05.13 |
프로세스 관리 (0) | 2025.05.08 |
운영체제(OS)의 일반적인 작동 원리 (0) | 2025.05.02 |