320x100
320x100
Why is it called Shell? - 왜 셸(쉘)이라 부르는가?
Shell은 영어 단어로 하면 껍질, 껍데기란 뜻이다
Q. 왜 OS에서 터미널, cmd등을 쉘이라고 부르는가?
A. 사용자와 운영체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다
What Shell is... - 셸(쉘)이란...
셸(shell)은 사용자와 컴퓨터 운영체제간의 대화형 인터페이스를 말한다. 사용자는 셸을 통해 컴퓨터에 명령을 입력하고, 셸은 그 명령을 운영체제가 이해할 수 있는 형태로 변환하여 전달한다.
그리고 운영체제는 이 명령을 실행하고 결과를 사용자에게 보여준다.
Kind of Shells - 셸(쉘)의 종류
인터페이스별
- 명령줄 인터페이스(CLI - Command Line Interface)
- 그래픽 사용자 인터페이스(GUI - Graphic User Interface)
운영체제별
유닉스/리눅스 기반 셸
- Bourne Shell (sh)
유닉스 셸의 원형이며, 다른 많은 셸의 기반이 되었다 - Bourne-Again Shell (bash)
가장 흔히 사용되는 리눅스 셸 중 하나로, GNU 프로젝트의 일부이다 - C Shell (csh)
C 프로그래밍 언어와 유사한 문법을 가진 셸 - Korn Shell (ksh)
Bourne Shell과 C Shell의 장점을 결합하여 만들어진 셸 - Z shell (zsh)
bash의 확장판으로 볼 수 있으며, 많은 강력한 기능과 테마, 플러그인을 지원 - Fish Shell (fish)
사용자 친화적인 기능과 편리한 자동 완성 기능을 제공하는 최신 셸 중 하나 - TC Shell (tcsh)
C Shell의 확장판으로, 여러 개선사항을 포함
윈도우 기반 셸
- Command Prompt (cmd.exe)
윈도우의 기본적인 CLI(명령줄 인터페이스) - PowerShell
고급 스크립팅 기능을 제공하며, .NET 프레임워크와 긴밀하게 통합되어 있음 - Windows Subsystem for Linux (WSL)
윈도우에서 리눅스 셸을 사용할 수 있게 해주는 호환 계층
기타 셸
- Git Bash
Git과 함께 제공되는 bash 셸로, 윈도우에서 bash 스크립트를 사용할 수 있게 해줌 - Cygwin
윈도우에서 리눅스와 유사한 환경을 제공하여, 여러 유닉스 셸을 사용할 수 있게 하는 도구
Features of each type of shell - 셸의 종류별 특징
크게 개발쪽에서 셸 스크립트로 프로그래밍을 한다고 하면 !#/bin/sh(본셸) 혹은 !#/bin/bash 두개 중에 하나로 작업한다
전역적인 호환을 위해선 /bin/sh로 하는 경우가 있는데.. 일단 두 셸의 차이를 알아보자
SH | BASH | |
history | X | O |
alias | X | O |
job control | X | O |
file name auto complete | X | O |
command line edit | X | O |
shell script | O | O |
start case | $, (#) | $(#) |
현대의 macOS나 최신 Linux 배포판에서는 /bin/sh가 실제로 bash나 dash같은 현대 셸의 시뮬레이션 모드를 실행하는 경우가 많기 때문에 sh가 위의 기능들을 지원하는 것처럼 보일 수 있다
그러나 sh가 Bourne Shell이나 전통적인 POSIX이라면 /bin/sh는 위와 같은 기능들이 누락되어 있는게 맞다
Check which shell you are currently using - 현재 사용중인 셸 확인
echo $0
또는
echo $SHELL
Check available shells - 사용가능한 셸 확인
cat /etc/shells
Exec shell - 셸 프로세스 실행
exec sh
exec bash
나가기: exit
Change shell - 기본 셸 변경
chsh -s /bin/bash
또는
chsh -s $(which bash)
zsh를 사용하는 경우에는 iTerm에서 변경내역을 확인해보면 된다
Oh my zsh 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
또는
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # install omyzsh
source .zshrc # restart zsh profile
320x100
'OS > Common' 카테고리의 다른 글
텍스트 에디터 종류 (0) | 2023.11.16 |
---|
댓글