Linux 기초
2023. 9. 7. 16:14ㆍLinux
- 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
- 상대 경로는 현재 파일의 위치를 기준으로 연결하려는 파일의 상대적인 경로를 적는 것을 의미한다.
- 절대 경로 : /home/s.../file1