리눅스 기초 개념

yoon__0_0·2024년 5월 8일
0

이어드림 수업

목록 보기
16/103

리눅스

유닉스

  • 미국의 전화회사 AT&T에 속한 벨연구소와 MIT가 1969년에 출시한 운영체제
  • 유닉스는 학교/회사와 같은 기관에 상업적으로 유로로 판매됨.
  • 유닉스는 개발자들이 소프트웨어를 개발하고 실행하기 편하게 개발됨 (비 개발자의 편의성을 염두하지 않음)
  • 리눅스는 유닉스 기반

리눅스 탄생

  • 리눅스 토르발즈가 1991년 linux kernel 발표
  • 이후 리처드 스톨먼의 GNU(GNU is Not Unix)의 유틸리티 내장을 통해 운영체제로서 자리잡음
  • GNU프로젝트 : 리처드 스톨먼의 주도하에 시작된 공개 소프트웨어 프로젝트
  • 리눅스는 원래 커널이고 운영체제 리눅스는 GNU리눅스라 불러야 정식 명칭이 맞음

리눅스 종류

  • 리눅스는 다양한 베포판들이 많지만 대표적으로 3가지의 파가 존재함

1) redhat

  • 유로의 리눅스로 고객관리를 잘해야 했음.
  • 서버를 타켓 (회사들)으로 만든 것
  • 이를 위해 만든 무로 체험판(테스트버전)이 centos
  • 현재 centos는 중지됨

2) debian

  • 개인을 노리고 만든 리눅스
  • 무료로 개방되어 있음
  • centos가 중지되어 ubuntu로 많이 넘어옴
  • 따라서 ubuntu도 데스크탑과 서버 버전으로 나누어져 있음.

3) slackware

  • 가장 유닉스다운 리눅스 비포판

AWS 에서 EC2 만들기

  • linux 서버를 사용하기 위해 EC2를 이용함
  • EC2 인스턴스 : 서버
  • 인스턴스 만들 때, key를 새로 만들거나 기존의 있는것을 사용할 수 있지만 그게 어느 경로에 다운받아져 있는지는 알아야함.
  • 인바운드 규칙
    • 나의 서버로 어떤 것이 들어올 수 있냐를 설정해주는 규칙
    • 기본적으로 22(ssh) 는 열려있음.

인스턴스를 만든 후 , 우분투에서 실행시키기

  • 키의 권한 변경
chmod 400 key경로
  • EC2 인스턴스로 들어가기 => ssh이용
ssh ubuntu@IP주소 -i key경로

리눅스 기초 용어

바이너리

바이너리
실행가능한 이진수로 이루어진 파일을 의미

  • 기계어라고 하기도 함
  • 윈도우에서 실행 파일을 생각하면 비슷한 개념
  • 바이너리는 주로 /usr/bin 혹은 /usr/sbin 디렉토리에 존재함
  • GNU core Utilities 들도 모두 바이너리 파일이기 때문에 위 폴더 경로에 존재함

GNU Utilies

GNU Binary Utilities
  • 바이너리 유틸리티는 바이너리를 조작하거나 정보를 위한 프로그램들의 모임
  • 여러 종류의 오브젝트 파일 형식을 조작하기 위한 프로그래밍 도구 모임
  • 소스코드를 컴파일하고 이진파일을 생성하는데에 사용함
  • as(어셈블리어), ld (링커), objcopy(객체파일 복사기) 등 이 있음
GNU core Utilities
  • 사용자가 로그인 한 이후 일반적인 작업수행시 필요한 명령어
  • 유닉스 계열 운영체제에 쓰이는 기본 도구들 다수의 재구현체들이 포함된 GNU 소프트웨어 패키지
  • 우리가 사용하는 기본적 명령어를 포함하고 있음
  • 이 또한 바이너리 파일로 되어 있음
  • cat, ps, ls 등

directory

  • 폴더와 동일한 개념

계정

root

  • 관리자(administrator) 또는 슈퍼유저(superuser) 계정
  • 시스템상에서 거의 모든 것을 할 수 있는, 믿을 수 있는 사람이 사용할 수 있는 계정
  • 루트 권한을 활용하면 사용자 추가(계정 생성), 비밀번호 변경과 같은 시스템 설정가능

사용자 계정

  • 보통 리눅스는 다중 사용자 시스템
  • 하나의 root 계정 아래에는 여러개의 사용자 계정을 가질 수 있음
  • 이 사용자 계정은 권한이 모두 다름 (적절한 자원 할당)

Shell

shell

  • 운영체제 속 내용물에 접근할 수 있는 기능을 제공하는 프로그램(명령어들의 집합)
  • 사용자가 글자를 입력하여 컴퓨터에게 명령할 수 있도록 하는 프로그램
  • shell을 통해서 운영체제와 상호 작용이 가능함.
  • bourne shell (/bin/sh)
  • bash shell (/bin/bash)
    • bourne again shell
    • 리눅스에서 사용하는 쉘
    • bash : 프로그래밍 언어
    • bash script : bash 로 쓰여진 프로그램 코드
  • zsh : 맥북에서 사용
  • ssh(secure shell) : 보안접속 프로그램

리눅스 기본 파일 시스템

1) / : root
2) /root : root 계정의 홈디렉토리
3) /boot

  • 부팅과 관련됨
  • 커널 이미지가 존재함
    • 이미지 : 실행하기 위해 모아놓은 데이터
  • 컴퓨터 전원을 키면 여기 존재하는 파일들이 Ram으로 저장됨

4) /etc

  • 기타 시스템 환경설정 파일 존재
  • fonts, vim, python 등

5) /mnt

  • 외부 파일 시스템 mount (임시로 마운트할때)
  • 외장파드(usb), 보조기억장치 (ssd)
  • 이어주기 위한 폴더

6) /proc : 프로세스 정보 (작업관리자)
7) /sys

  • system에 대한 정보
  • 현재 시스템 상태 및 하드웨어 정보와 관련된 파일
  • power, kernel, dev, devices

8) /dev

  • 시스템에서 사용하는 장치 파일들이 저장됨
  • 하드웨어 장치나 가상 장치에 대한 파일들이 존재

9) /bin

  • 바이너리 디렉토리
  • 일반 사용 바이너리 파일들이 저장됨 (기본적인거)
  • cat, chomd 등등
  • usr/bin으로 링크가 되어있음

10) /sbin

  • 기본적으로 필요한 System Program 관리 유틸리티
  • adduser 등의 명령어
  • ifconfig(네트워크설정 도구), fdisk (디스크 파티션관리도구) 등도 설치하면 여기에 저장됨
  • 일반 사용자가 실행할 수 없는 시스템 관리작업을 위한 명령어 위치
  • usr/sbin 으로 링크가 되어잇음

11) /lib

  • 리눅스 자체 라이브러리 (os 라이브러리 - 커널을 도와줌)
  • pip install 된건 포함되지 않음 (이건 pip list 를 통해 뽑아내야함)
  • apt는 install 한거는 또 다른 폴더에 저장됨
  • usr/lib 으로 링크가 됨

12) /usr

  • Unix System Resource의 약자
  • 보통 기본적으로 bin , sbin, lib 등 파일(폴더)들이 다 여기 저장되고 그냥 /bin, /sbin 등은 모두 /usr/bin , /usr/sbin 등등 으로 링크됨
profile
신윤재입니다

0개의 댓글