Linux는 UNIX 계열의 운영체제(OS, Operation System).
UNIX의 무료 공개 버전.(GNU GPL, General Public License, 일반 공개 라이선스)
💡
Linux <명령어> -h or --help 를 입력하면 해당 명령어의 다양한 옵션과 사용법을 확인할 수 있다.
ex) ls --help

쉘은 OS 외부 계층, 커널은 OS 내부 계층에 속해있다.

cat /etc/shells 명령어를 통해 현재 운영체제 환경에서 사용할 수 있는 쉘의 종류를 확인할 수 있다.
(저는 kali linux를 썼어용)
| 이름 | 위치 | 특징 |
|---|---|---|
| sh (Bourne Shell) | /bin/sh | 최초의 유닉스 쉘로 스크립트를 지원하며 sh로 표기. 논리 및 산술 연산을 처리하는 내장 기능이 없어 이전에 사용한 명령을 기억할 수 없음. 스크립트 작성에 있어서 기본적인 기능만을 제공. |
| bash (Bourne Again Shell) | /bin/bash | 본쉘의 확장 버전으로 만든 Unix 쉘로 Linux, Mac의 기본 쉘로 사용된다. /bin/sh의 모든 기능을 포함하며 그 외에도 명령어 자동 완성, 명령어 히스토리, 직접적인 배열 조작 등 여러 편리한 기능 추가 제공. |
| zsh | /bin/zsh | bash, ksh, tcsh의 기능을 결합하여 맞춤법 검사, 로그인 감시, 자동 생성, 플러그인 및 테마가 지원되며, oh my zsh등의 사용자 정의 테마를 지원함. |
이 외에도 csh, ksh, tcsh 등 다양한 쉘의 종류가 있다.
대부분 bash, zsh를 많이 사용한다.

현재 사용 중인 쉘의 종류를 알아볼 수 있는 다양한 명령어들이다.
chsh -s /bin/[쉘이름] [사용자명]을 입력하면 현재 사용 중인 쉘을 변경할 수 있다.
+) 명령행 편집 기능 😲 🌟 ( mac에서도 command 말고 ctrl)
- ctrl + a : 가장 왼쪽으로 이동
- ctrl + e : 가장 오른쪽으로 이동
- ctrl + k : 커서 오른쪽 행 전체 삭제
- ctrl + u : 행 전체 삭제
- ctrl + y : 삭제 취소
💡 /bin/sh vs /bin/bash
둘 다 모두 쉘을 지칭하는 경로, /bin/bash는 /bin/sh의 확장된 버전이며, 더 많은 기능을 제공한다.
그러나 스크립트 작성 시엔 호환성을 위해 가급적 /bin/sh를 사용하는 것이 좋음. 모든 시스템이 bash를 지원하진 않아서 ..!