[멋쟁이사자처럼부트캠프] ターミナルちゃん、超カワイイ!
오늘字
터미널 아이콘을 보고 문득 그런 생각이 듭니다. 이 얼마나 귀여운 모습인가...
터미널 짱를 보니 갑자기 제가 행복해집니다. 아리따운 터미널 짱과 같이 있다니...... 이런 터미널 짱을 위해서 명령어를 공부해서 터미널 짱을 잘 챙겨봅시다!!@@!
프롬프트(Prompt)와 홈 디렉터리
A. 프롬프트 개념
프롬프트는 시스템이 사용자의 명령을 입력받을 준비가 되었다는 것을 나타내는 신호입니다.

- 기본 포맷 분석:
ubunt@lris-minecraft-frp-vnic:~$ ubunt: 현재 로그인한 사용자 계정lris-minecraft-frp-vnic: 시스템의 호스트명 (cat /etc/hostname으로 확인 가능)~: 현재 사용자의 홈 디렉터리 경로 의미 (/home/user1)$ / #: 사용자 권한 구분 기호
B. 사용자 권한에 따른 프롬프트 구분
| 구분 | 프롬프트 기호 | 주요 특징 및 작업 권한 |
|---|---|---|
| 일반 사용자 | $ |
프로그램 실행, 파일 생성 가능 ⚠️ 오직 자신에게 할당된 홈 디렉터리(~) 내에서만 작업 가능 |
| 관리자 (root) | # |
시스템 전체 권한 보유 사용자 생성, 패키지 설치 및 삭제(apt), 시스템 서비스 관리 등 수행 |
C. 쉘(Shell) 정보 확인 환경변수
- 현재 사용자 확인:
whoami - 호스트 정보 확인:
hostname - 현재 지정된 쉘 확인:
echo $SHELL(출력값:/bin/bash등) - 프롬프트 포맷 확인 및 변경:
echo $PS1(변경 시:export PS1="[변경할포맷]")
일반 사용자에서 관리자(root) 권한으로 전환하는 방법
1) 일회성 관리자 권한 실행
명령어 앞에 sudo를 붙여 해당 명령만 임시로 관리자 권한으로 실행합니다.
sudo apt update
sudo apt install openssh-server
2) root 계정 쉘로 완전히 전환 ($ ──> #)
- 방식 A (현재 작업 경로 유지):
sudo -s(또는sudo su)
ubunt@lris-minecraft-frp-vnic:~$ sudo -s
root@lris-minecraft-frp-vnic:/home/ubuntu# pwd
/home/ubuntu
- 방식 B (root 계정의 환경까지 완벽 복사 및 root 홈으로 이동):
sudo su -
ubuntu@lris-minecraft-frp-vnic:~$ sudo su -
root@lris-minecraft-frp-vnic:~# pwd
/root
3) 관리자 인증 캐시 삭제하기
sudo 비밀번호를 한 번 입력하면 일정 시간 동안 재입력을 요구하지 않습니다. 이 인증 캐시를 즉시 만료시키려면 다음을 입력합니다.
sudo -k
💡 su 명령어 요약su: 관리자(root) 계정으로 전환 (패스워드 필요)su 사용자명: 현재 환경 변수를 유지한 채 지정한 사용자로 전환su - 사용자명: 지정한 사용자의 환경 변수와 홈 디렉터리까지 모두 반영하여 전환
리눅스 명령어 매뉴얼 및 위치 확인
1) man 명령어 (상세 설명서)
man ls # ls 명령어의 상세 매뉴얼 페이지 오픈
- 매뉴얼 화면 내 단축키:
q: 매뉴얼 종료하고 터미널로 복귀g/G: 맨 위로 이동 / 맨 아래로 이동Ctrl + B/Ctrl + F: Page Up / Page Down/검색어: 본문 내 단축어 검색 (n: 다음 매칭 단어,N: 이전 매칭 단어)
2) --help 옵션 (간이 설명서)
ls --help # 명령어 뒤에 붙여 핵심 옵션만 빠르게 확인
3) which 명령어 (명령어 실행 파일의 실제 경로 확인)
which ls # 출력: /usr/bin/ls
터미널 조작 꿀팁 및 히스토리(History) 단축키
A. 필수 터미널 단축키
Tab키: 파일명, 디렉터리명, 명령어 자동 완성 (강력 추천)Ctrl + L: 터미널 화면 깨끗하게 정리 (clear명령어와 동일)Ctrl + A/Ctrl + E: 커서를 문장의 맨 앞으로 / 맨 뒤로 이동Ctrl + U/Ctrl + K: 커서 기준 앞쪽 전체 삭제 / 뒤쪽 전체 삭제Ctrl + R: 이전에 사용했던 명령어 실시간 검색 (검색 후Esc로 모드 탈출 가능)
B. 명령어 히스토리 관리 및 활용
터미널에 입력했던 명령어들은 가상 메모리와 물리 파일에 기록됩니다.
- 기록된 목록 보기:
history - 히스토리 기반 재실행 단축키:
!번호: 히스토리 리스트의 해당 번호 명령어 실행 (예:!3입력 시apt update실행)!!: 바로 직전에 내렸던 명령어 그대로 다시 실행!글자: 해당 글자로 시작하는 가장 최근 명령어 실행- 메모리 히스토리 비우기:
history -c - 물리적인 기록 파일:
~/.bash_history - 완전 영구 삭제를 원할 시:
rm -rf ~/.bash_history(재접속 시 다시 자동 생성됨) - 💡 꿀팁: 명령어 입력 시 맨 앞에 공백(한 칸 띄우기)을 주고 명령어를 입력하면 해당 명령은 히스토리 기록에 남지 않습니다.
리눅스 파일 시스템 (File System)
1. 개념 및 파일 종류
⚠️ 리눅스의 대원칙: "Linux는 모든 장치, 디렉터리 등 모든 것을 '파일'로 간주하여 관리한다."
- 가. 일반 파일: 일반 데이터(텍스트, 이미지, 바이너리 등)를 저장하는 파일
- 나. 디렉터리: 파일들을 체계적으로 분류하기 위한 폴더. 리눅스에서는 디렉터리 자체도 하나의 파일로 취급됩니다.
- 다. 심볼릭 링크: 윈도우의 '바로가기 아이콘'과 같은 개념의 연결 파일
- 라. 장치 파일: 하드웨어 장치들을 제어하기 위한 파일 (예: 첫 번째 디스크
/dev/sda, 두 번째 디스크/dev/sdb)
2. 파일 종류 및 데이터 형식 확인 방법
A. file 명령어 활용 (가장 정확한 파일 형식 확인)
file /etc/passwd # 출력: /etc/passwd: ASCII text (텍스트 파일)
file /etc # 출력: /etc/: directory (디렉터리 파일)
file /dev/sda # 출력: /dev/sda: block special (블록 장치 파일)
💡 리눅스 표준 입출력 장치 파일 파일 매핑 (Java의 System.in/out과 일치)file /dev/stdin: 0번 (표준 입력)file /dev/stdout: 1번 (표준 출력)file /dev/stderr: 2번 (표준 에러)
B. ls -F 옵션 활용 (끝 문자로 종류 구별)
ls -aF /etc
- 이름 끝에 붙는 기호의 의미:
/: 디렉터리 (Folder)@: 심볼릭 링크 (바로가기)*: 실행 파일 (Executable)- 기호 없음 : 일반 파일
3. 디렉터리 계층 구조
리눅스는 드라이브 개념(C:\, D:\)이 없으며, 최상위 디렉터리인 / (루트 디렉터리)를 기점으로 모든 것이 나무뿌리처럼 뻗어나가는 단일 트리 구조입니다.
/ (최상위 루트 디렉터리)
┌───────┬───────┼───────┬───────┬───────┐
/bin /etc /usr /home /tmp /dev
│
/user1 (일반사용자 홈)
A. 주요 핵심 디렉터리 역할 요약
/bin: 리눅스 기본 시스템 명령어가 들어있는 방/home: 일반 사용자들의 개인 홈 디렉터리가 생성되는 공간 (예:/home/user1)/root: 최고 관리자(root)만을 위한 독립된 홈 디렉터리/etc: 리눅스 시스템 및 패키지들의 모든 중요 설정 파일 보관소/usr: 일반 사용자들이 쓰는 응용프로그램 설치 경로/var: 로그(Log) 파일이나 데이터베이스 등 수시로 변경되는 가변 데이터 저장소/tmp: 시스템이나 프로그램이 사용하는 임시 보관소 (재부팅 시 삭제될 수 있음)
B. 트리 구조 시각화 패키지 (tree)
sudo apt update && sudo apt install tree -y
tree # 현재 디렉터리 하위 구조 시각화
tree -d # 오직 디렉터리 구조만 시각화
4. 홈 디렉터리 vs 작업 디렉터리
- 홈 디렉터리 (
~): 로그인 시 사용자가 처음 위치하게 되는 고유의 영토입니다. 환경변수$HOME에 주소가 설정되어 있습니다. 보안을 위해 일반 사용자 공간(/home/사용자)과 관리자 공간(/root)이 엄격히 분리되어 있습니다. - 작업 디렉터리 (
.): 현재 내가 명령어를 내리며 머물고 있는 공간을 뜻합니다.pwd명령어로 현재 작업 디렉터리의 전체 경로를 출력할 수 있습니다. .: 현재 디렉터리..: 상위(부모) 디렉터리
5. 경로 이동 (cd)
절대 경로(/로 시작하여 고정된 위치를 찾음)와 상대 경로(현재 작업 공간 기점)를 모두 활용해 이동합니다.
cd /etc # 절대 경로로 /etc 이동
cd ../tmp # 상대 경로로 부모로 올라간 뒤 tmp 디렉터리로 이동
cd ~ # 로그인한 사용자의 홈 디렉터리로 즉시 이동
cd # 아무것도 치지 않아도 홈 디렉터리로 즉시 이동
6. 디렉터리 내용 상세 조회 (ls)
ls [옵션] [대상경로]
- 핵심 옵션 조합:
-a: 숨김 파일(파일명이.으로 시작하는 파일)까지 전부 출력-l: 파일의 상세 정보(권한, 크기, 수정일 등) 리스트 형태로 출력-h: 파일 크기를 가독성 있게 단위 조합(K,M,G)으로 변경하여 출력-R: 하위 디렉터리 내부까지 재귀적으로 전부 탈탈 털어서 출력-i: 파일 고유 식별 번호인inode번호 출력
📊 ls -l 출력 결과 완벽 분석
d rwxr-xr-x. 2 user user 4096 2월 13 22:14 공개
① ② ③ ④ ⑤ ⑥ ⑦ ⑧
- ① 파일 종류:
d(디렉터리),-(일반파일),l(심볼릭링크) - ② 권한(Permission): 소유자 권한(
rwx) / 그룹 권한 (r-x) / 기타 사용자 권한 (r-x) - ③ 하드 링크 수: 해당 파일에 연결된 하드 링크의 개수
- ④ 소유자: 파일을 소유한 사용자 계정명
- ⑤ 소유 그룹: 파일을 소유한 그룹명
- ⑥ 파일 크기: 바이트(Byte) 단위 크기
- ⑦ 수정 날짜: 파일이 마지막으로 생성/변경된 시간
- ⑧ 파일명: 디렉터리 혹은 파일의 이름
7. 파일 내용 확인 명령어 가이드 (4가지 방식)
1) cat (데이터 용량이 적을 때)
파일 내용 전체를 터미널 화면에 한 번에 쏟아냅니다.
cat -n /etc/passwd # -n 옵션 사용 시 줄 번호(Line Number)와 함께 출력
2) less (데이터 내용이 방대할 때 ★실무 정석)
화면 단위로 끊어서 출력해주며 대용량 로그 분석 시 필수적입니다.
- 조작법:
man명령어 단축키와 동일 (q로 종료,/검색어로 키워드 검색 가능, 화살표 및 PageUp/Down 동작)
3) tail (파일의 뒷부분만 보기)
기본적으로 파일의 마지막 10줄을 출력합니다.
tail -n 3 /etc/passwd # 마지막 3줄만 커스텀하여 출력
- 🔥 실무 핵심 옵션
-F(실시간 로그 모니터링):
터미널 창 두 개를 열어 로그 기록을 실시간 확인하는 모니터링 기법입니다.
# 1번 터미널 창: 실시간 인증 로그 대기 상태 진입
tail -F /var/log/auth.log
# 2번 터미널 창: 일부러 틀린 암호로 관리자 로그인 시도
sudo -s (비밀번호 고의 오입력)
# 결과: 1번 터미널 창에 실시간으로 인증 실패(Failure) 로그가 올라오는 것을 목격 가능!
4) head (파일의 앞부분만 보기)
기본적으로 파일의 상위 10줄을 출력합니다.
head -n 5 /etc/passwd # 상위 5줄만 출력
8. 주기적 명령 반복 실행 모니터링 (watch)
지정한 명령어를 특정 주기마다 반복 실행하여 변화를 화면에 하이라이트해 주는 유용한 도구입니다.
watch [옵션] 명령어
- 옵션:
-n [초](실행 주기 지정),-d(기존 화면과 바뀐 변동 사항 하이라이팅)
📈 실시간 패킷 전송 모니터링 실습
# 1. 네트워크 도구 패키지 설치
sudo apt install net-tools -y
# 2. 1초 주기로 인터페이스 상태 확인 모드 진입 (패킷 크기 주시)
watch -n 1 -d ifconfig
# 3. 이 상태에서 파이어폭스 등 웹 브라우저를 켜고 사이트에 접속하면?
# -> 패킷 전송량이 증가함에 따라 바뀐 수치 데이터가 터미널 화면에 실시간으로 번쩍이며 하이라이팅됩니다!

독자 분들도 터미널 짱을 소중히 다뤄봅시다www