Linux 기초

2023. 9. 7. 16:14Linux

  • OS는 하드웨어자원을 관리하고 임의의 프로그램이 실행되는 환경을 제공하는 소프트웨어이다.
  • 소프트웨어를 커널(kernel) 이라고 부른다.
  • 커널의 인터페이스는 Software Layer로 system call 이라고 불린다. 대부분의 함수들의 라이브러리는 이런 시스템 콜 인터페이스 위에서 생성된다.
  • Application(어플리케이션)은 시스템 콜과 라이브러리 모두를 사용할 수 있다.
  • Shell(쉘)은 특별한 어플리케이션으로 다른 어플리케이션이 실행될 수 있는 인터페이스를 제공한다!

Shell


리눅스의 쉘은 프로그램을 실행할 때 사용하는 인터페이스이다.

즉, 쉘은 커널(Kernel)과 유저간의 통로 역할을 한다. - 사용자로부터 명령을 받아 해석하고 실행하는 역할.

쉽게 말하면 아래 사진과 같이 우리가 명령어를 입력하는 환경이다.

Shell의 기능

  • 사용자와 커널 사이에서 명령을 해석해 전달하는 명령어 해석기 기능( Command Line interpreter)이 있습니다.
  • Shell의 사용자 환경 설정의 기능 ? -> 사용자의 환경을 설정할 수 있습니다. 로그인을 하면 초기화 파일이 실행되어 사용자의 초기 환경이 설정된다.

쉘의 종류와 특징

쉘은 커널에서 분리된 별도의 프로그램이어서 다양한 종류의 쉘이 존재.
간단히 종류만 소개하고 넘어갈 예정

  • Bourne shell(sh) 본쉘 : 유닉스 쉘의 오리지널이며, 최초의 본격적인 쉘이다.
  • Korn Shell (ksh) 콘 쉘 : 본 셸을 확장해서 만든 쉘이다.
  • Bourne Again shell (bash) 배시 : 리눅스의 표준셀이며, 다양한 기능을 제공하고 있다.
  • 이외의 C-shell 등이 존재하고 현재까지 개발진행중이다.

 

 echo $SHELL명령어를 통해 확인이 가능하다.

 

 

File and File system


  • Unix(Linux) 에서는 프로세스를 제외한 모든것들이 파일이다.
    • 파일에는 text파일 ,이미지 ,컴파일 프로그램등이 포함된다.
    • 하드웨어 디바이스와 디렉토리 역시 포함된다!
  • File system 이란?
    • 파일 시스템은 파일과 디렉토리의 계층형 배열구조이다. 
      • 즉, '/' 라는 root 디렉토리에서 부터 뻗어나오는 계층형 구조라는것이다.
      • ex) C:\cygwin64\home\user
  • 파일 네임
    • "/"로 파일을 구분하기 때문에 파일 이름에는 "/"가 들어가면 안된다. null문자도 포함!!
    • 우리가 새롭게 mkdir와 같은 명령어로 디렉토리를 생성했을 때,  두 가지의 파일네임이 자동생성된다.
      • " . " :  현재 디렉토리
      • " .. " : 부모 디렉토리
  • Working directory 
    • 모든 프로세스는 워킹 디렉토리를 가진다! 
    • current working directory라고도 불린다.
    • 상대경로명이 해석되는 디렉토리이기도 하다.
  • Home directory 
    • 그냥 우리가 로그인했을 때, 워킹디렉토리는 홈으로 설정되어있다.  
  • 경로명
    • 절대 경로 : /home/s.../file1
      • 절대경로는 파일의 root 부터 해당 파일까지의 전체 경로를 의미합니다.  
    • 상대 경로 : file1, ./src/components/Counter.js
      • 상대 경로는 현재 파일의 위치를 기준으로 연결하려는 파일의 상대적인 경로를 적는 것을 의미한다.