또 뭐하지

[기초] 리눅스 개념 간략 정리 본문

I.sly()/9기 기초 - 공통

[기초] 리눅스 개념 간략 정리

mameul 2024. 3. 28. 17:34
728x90

Linux

  • 운영 체제 (Operating System)
    : 컴퓨터 하드웨어를 구동하고 사용자의 요청을 받아 여러가지 응용프로그램을 실행시키는 프로그램
  • Unix
    • 다중 사용자 및 다중 작업 운영체제 : 여러 사용자가 동시 로그인, 동시 작업 가능, 각각의 사용자는 독립적으로 작업 가능
    • 고수준 언어(c)로 작성된 최초의 운영체제
    • 최소한의 조정으로 다른 기계에 쉽게 이식
    • 서버에 특화
  • Linux
    • Unix에서 파생된 컴퓨터 운영 체제
    • 오픈 소스 기반 : 누구나 자유롭게 접근과 수정이 가능
    • 다양한 배포판 존재 : 사용자의 요구에 맞게 선택 가능 (ex. Ubuntu)
    • 다중 사용자 및 다중 작업 지원, 다중처리 시스템
    • 안정성과 보안
    • 안정적인 네트워크 지원
    • 다양한 응용프로그램 제공
  • Ubuntu
    • Linux 배포판 중 하나
    • 사용자 친화적인 환경 제공
    • 쉽게 설치 가능하며 다양한 그래픽 도구 사용 가능

리눅스 문법

  • 파일 권한 : ls -l 명령을 사용하여 확인 가능
    • 1 번째 자리 : -(파일), d(디렉토리)
    • 2~4 번째 자리 : 유저owner의 권한
    • 5~7 번째 자리 : 그룹group의 권한
    • 8~10 번째 자리 : 제3자other의 권한
    • 순서대로 r(read, 읽기), w(write, 쓰기), x(execute, 실행) 권한을 나타낸다
    • 예시 : -rwxr-xr-x (해당 파일은 유저에게 모든 권한 부여, 그룹과 제3자에게는 읽기와 실행 권한만 부여)
  • ls(list) : 해당 디렉토리에 있는 파일의 목록 나열
    • ls -l : 자세히 나열
    • ls -a : 숨겨진 파일을 포함한 나열
    • ls -al : 숨겨진 파일을 포함하여 자세히 나열
    • 숨겨진 파일 : 파일이름이 .으로 시작, 일반 파일 목록에선 보이지 않음
  • pwd (Print Working Directory) : 현재 디렉토리의 전체 경로 출력
  • cd (Change Directory) : 디렉토리 이동
    • ~ : 홈 디렉토리
    • . : 현재 디렉토리
    • .. : 상위 디렉토리
  • cat (concatenate) : 파일 내용 출력
  • vi : 새로운 문서 편집
  • file : 어떤 종류의 파일인지 출력
  • clear : 터미널 화면을 깨끗하게 지움
  • mkdir(make directory) : 새로운 디렉토리 생성, 생성된 디렉토리는 만든 사용자의 소유
  • rm (remove) : 파일이나 디렉토리 삭제
    • rm -i : 정말 지울지 확인하는 메시지가 출력됨
    • rm -f : 확인하지 않고 바로 삭제
    • rm -r : 디렉토리와 디렉토리 안 파일까지 모두 삭제
  • mv (move) : 파일이나 디렉토리 이동 또는 이름 변경
  • cp (copy) : 파일이나 디렉토리 복사
  • find : 특정 파일의 위치 검색
    • find -name : 파일 이름
    • find -user : 파일 소유자
    • find -perm : 파일 권한
    • find -size : 파일 크기 (b: 블록단위 / c : byte / k : kbyte / w : 워드)
    • find -group : 파일 그룹
  • id : uid, gid 등을 출력
  • whoami : 현재 사용자 이름 출력
  • touch : 크기가 0인 새 파일을 생성하거나 최종 수정 시간 변경
  • *(와일드카드) : 임의의 문자(열)에 대응시키기 위하여 사용하는 문자
  • |(파이프라인) : 한 데이터 처리 단계에 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
  • grep [OPTION] [PATTERN] [FILE] : 파일 내에서 문자열 검색
    • OPTION : 출력
    • PATTERN : 검색할 문자열
    • FILE : 검색 대상 파일

리눅스 프로세스 메모리 구조 Linux Process Memory Layout

  • 프로세스의 메모리를 크게 5개의 세그먼트(Segment)로 구분
    • 세그먼트 : 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것
  • os가 각 용도에 맞게 적절한 권한을 부여할 수 있음 -> cpu가 메모리에 대한 권한이 부여된 행위만 할 수 있음

  • 코드 세그먼트 (Code Segment) : 실행 가능한 기계 코드가 위치하는 영역 (읽기, 실행 권한)
  • 데이터 세그먼트 (Data Segment) : 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치하는 영역 (읽기 권한)
    • 쓰기가 가능한 세그먼트 (=data segment) : 값이 변할 수 있는 데이터 (ex. 전역 변수)
    • 쓰기가 불가능한 세그먼트 (=rodata segment) : 값이 변할 수 없는 데이터 (ex. 전역 상수)
  • BSS 세그먼트 (BSS Segment) : 컴파일 시점에 값이 정해지지 않은 전역 변수가 위치하는 영역 (읽기, 쓰기 권한)
  • 스택 세그먼트 (Stack Segment) : 프로세스의 스택이 위치하는 영역, 실행 중에 동적으로 할당되어 임시 변수들이 저장됨 (읽기, 쓰기 권한)
  • 힙 세그먼트 (Heap Segment) : 힙 데이터가 위치하는 영역, 실행 중에 동적으로 할당 (읽기, 쓰기 권한)

SSH

  • shell : 사용자가 글자를 입력하여 컴퓨터에 명령할 수 있도록 하는 프로그림
  • SSH (Secure Shell) : 네트워크 상 다른 컴퓨터의 쉘을 사용할 수 있게 해주는 프로토콜, 강력한 보안 제공
  • PuTTY : windows를 위한 무료 SSH