🌈 Shell vs Kernel
1. shell과 kernel 이란?
- shell과 kernel은 운영체제 안에 포함된 영역임
- shell은 껍데기, 주변이란 뜻을 갖고, kernel은 알맹이, 핵심과 같은 뜻이 있음
1) 쉘(shell)
- 사용자가 터미널에서 명령을 입력하였을 때, 이 명령을 Kernel이 이해할 수 있도록 처리
- 즉, 사용자의 요청을 shell의 프로그램을 통해 해석되고, 그 결과가 kernel에게 전달
2) 커널(kernel)
- 운영체제에서 가장 중심이 되어 하드웨어를 직접적으로 제어하는 것이 kernel의 역할임
- 쉘(shell)에게 전달받은 사용자의 요청을 하드웨어에게 전달하여 처리할 수 있게 함
2. ZSH 다루기
1) echo
- echo 명령어는 터미널에서 출력을 해주는 명령어(python에 print와 비슷함)
- echo [입력값] ⇢ 입력값 출력
- 🔍 echo $0 ⇢ 현재 사용중인 shell의 구체적인 제품명을 출력
2) ZSH 특징
- bash와 ZSH는 유사한 특징을 갖고 있으나, ZSH가 부가적인 기능을 포함하고 있어 편리하다는 평가를 받음
- ZSH에서는 탭으로 자동완성 기능이 가능
- 🔍 cd[tap]하면 숨긴 폴더가 보여짐
- 🔍 cd /u/j[tap]하면 자동완성됨 ⇢ pwd /Users/jangjaewon
🌈 디렉토리의 구조
1. 디렉토리의 구조란?
- UNIX 계열에서는 실행 프로그램의 성격에 따라서 위치하는 규칙이 존재함
- "/" ⇢ 는 최상위 디렉토리로 root라 부름(cd /)
- "/bin" ⇢ 는 User Binaries로 사용자가 사용하는 명령들이 여기 있음
- "/sbin" ⇢ 는 System Binaries PC를 끄거나, 재부팅하는 등 스시템을 제어하는 명령들이 여기 존재함
- "/etc" ⇢ 모든 프로그램에 필요한 구성 파일이 들어있고, 여기서 파일을 수정하면 프로그램의 설정을 변경 할 수 있음
- "/dev" ⇢ 장치파일이 존재하는 디렉토리로 터미널 장치, USB 또는 시스템에 연결된 모든 장치를 포함함
- "/var" ⇢ 변수 파일을 나타내는 디렉토리로 파일을 사용할 때마다 변경됨
- "/tmp" ⇢ 임시 파일이 포함된 디렉토리로 재부팅할 때마다 삭제됨
- "/usr" ⇢ 바이너리, 라이브러리, 문서 및 소스 코드를 포함함.
- "/home" ⇢ 모든 사용자가 개인 파일을 저장할 수있는 홈 디렉토리로, "cd ~"로 어디서든 한번에 이동 가능함
- "/opt" ⇢ 소프트웨어를 설치할 때, 위치를 설정하지 않아도 적절한 디렉토리에 자동으로 설치해주는데 이를 opt에서 관여함. 프로그램을 설치할 때 경로를 직접 저장해줘야하는 경우 opt에 설치해주는 것이 좋은 방법이라 함
- 프로그램이 어디에 설치되어있는지 찾는 방법 : whereis [프로그램명]
https://www.thegeekstuff.com/2010/09/linux-file-system-structure/