본문 바로가기

3. Pwnable (포너블)/2) 개념 정리

[2026.03.28] 아포 3주차 팀활동

인프런 생활코딩- Linux 강의 섹션 4, 5 수강

https://inf.run/2MTzX

 

[지금 무료]생활코딩 - Linux| Egoing Lee - 인프런 강의

현재 평점 4.9점 수강생 17,566명인 강의를 만나보세요. 본 수업에서는 리눅스의 사용법을 다룹니다. 특히 초심자들이 어려워하는 부분이 명령어를 이용해서 컴퓨터를 제어하는 법입니다. 여기서

www.inflearn.com

 

 

1. SHELL

 

사용자가 컴퓨터와 대화할 수 있게 해주는 명령어 인터페이스 프로그램.

키보드로 명령어를 입력하면 쉘이 이를 해석해서 운영체제에 전달하고 결과를 보여줌.

 

 

2. KERNEL

 

물리적인 기계를 직접적으로 제어하는 운영체제에서 가장 중심이 되는 코어.

 

예를 들어,

우리가 입력한 명령을 쉘이 해석해서 커널에게 전달하고 커널은 하드웨어를 제어해서 어떠한 처리를 수행할 수 있도록 명령함.

하드웨어는 어떠한 기계의 동작 결과를 커널에게 알려주면 커널이 쉘에게 알려주어 우리가 확인 할 수 있게 됨.

 

쉘과 커널을 분리하는 이유 -> 우리가 더 편리하게 커널을 제어할 수 있기 때문에

 

 

쉘과 커널의 위치를 한눈으로 나타낸 일러스트

 

 

3. bash vs zsh

 

차이점

bash는 안정성과 호환성이 뛰어나 스크립트 표준으로 널리 사용되는 기본 쉘

zsh은 강력한 자동완성과 커스터마이징 기능을 제공해 사용자 편의성이 높음

 

 

why라는 디렉토리로 들어가는 방법

bash -> cd /home/ubuntu/why

zsh -> cd /h/u/b

 

디렉토리 변경

zsh -> cd why dir1

bash -> 불가능

 

 

 

4. Shell Script

-> 여러가지 자동화된 작업을 처리 가능

 

mkdir script    // 디렉토리 들어감

cd script/

touch a.log b.log c.log    // 3개 파일 생성

mkdir bak    // 백업 폴더 생성

cp *.log bak   // log 로 끝나는 모든 파일을 bak이라는 디렉토리 안으로 저장

 

 

5. 쉘 스크립트 작성 예시

 

1) 현재 디렉토리에 bak라는 디렉토리가 없다면 만들고, 있다면 만들지 않는다.

2) 현재 디렉토리에 있는 모든 파일 중에 .log로 끝나는 파일을 bak라는 디렉토리로 복사한다.

 

#!/bin/bash 

if ! [ -d bak ]; then

           mkdir bak

fi

cp *.log bak

 

실행 결과

 

 

 

6. 디렉토리 구조

 

디렉토리란? 어떤 데이터, 프로그램 등을 정리 정돈하는 수단

 

 

linux directory structure

 

알아야 할 디렉토리

 

1. /  - Root

2. /bin - 이진수, 즉 실행 가능한 프로그램을 말함

3. /sbin - 시스템 관리자가 쓰는 프로그램 존재

4. /etc - 운영 체제와 프로그램의 설정 정보 저장

5. /var - 밑에 있는 파일 등이 바뀔 수 있다는 뜻

6. /tmp - 임시파일 저장

7. /home - 사용자의 파일들이 저장되는 디렉토리

8. /opt - 소프트웨어 설치 시 특정 디렉토리 지정

 

 

 

7. 파일 찾는 법

 

locate

디렉토리가 아닌 데이터 베이스 내에서 파일 검색

 

find

디렉토리 내에서 검색

(기능이 많으므로 자세히 찾아보는 것이 좋음)

 

whereis

실행 파일을 찾아줌

 

echo $PATH

path에 담겨있는 데이터들이 echo를 통해서 화면에 출력됨

$PATH는 리눅스가 기본적으로 가진 변수 -> 환경 변수