zsh - Z Shell

지 셸이라고 읽습니다.

유닉스 시스템의 명령어 번역기 입니다.

무료에다가 기존 셸들 보다 강력해서

최근에 MacOS에서 지셸을 채택했습니다.

 

셸? Shell?

 

처음으로 리눅스를 학습할 때

배시(bash) 셸이나 터미널 같은

용어를 들으면 무슨 의미인지

도통 알뜻 말뜻 합니다.

 

간단하게 설명하면

컴퓨터는 크게 하드웨어와

소프트웨어로 나눌 수 있는데

하드웨어를 움직이는 것은

소프트웨어입니다.

 

소프트웨어도 크게 나누면

운영체제와 응용프로그램으로

나눌 수 있고 여기서 또 다시

세분화가 되는데...

 

하드웨어(H/W) <-  운영체제(OS)

<- 커널(핵심 S/W) <- 셸(Shell)

<- 사용자(User)

 

로 사용자는 셸을 통해서 운영체제가

제공하는 각종 기능을 사용할 수 있습니다.

 

응용 프로그램이나 유틸리티 등을

사용하기 위해서도 셸을 통하기

때문에 셸은 사용자가 컴퓨터와의

접점(인터페이스)라고 할 수 있습니다.

흔히 셸을 CLI(Command Line Interface)로

GUI(Graphic User Interface)와 비교하는데

어쨋든 사용자가 뭔가 액션을 취해야

OS의 기능을 사용할 수 있기 때문에

본질은 똑같습니다.

 

윈도우즈 같은 GUI 방식의 운영체제는

컴퓨터를 모르는 사람들에게는

직관적이고 쉬운 방식이겠지만

컴퓨터 구조를 이해하며 효율성을

따지는 IT 커뮤니티의 관점에서는

매우 모호하고 난해한 것이 윈도우즈입니다.

 

마우스를 움직일 필요가 없는데

불필요한 행동을 해야하는 GUI라는

생각을 하면 고인물 취급을 받지만

논리적으로 생각하면 분명 아닌

부분도 많습니다.

 

어떤 프로그램을 설치하기 위해

홈페이지에 가서 다운로드 받고

압축을 풀고 실행 파일을 찾아

클릭하고 알 수 없는 옵션이나

소프트웨어 계약에 동의를 하고...

많은 경우 셸 방식을 사용하면

이미 패키지가 repository에 준비되어

있기 때문에 아래처럼 한 줄의

명령어만 필요합니다.

 

사실 sudo apt-get install

이건 반복이기 때문에 이름만 알면되죠.

sudo apt-get install 소프트웨어 이름

 

터미널(Terminal)

 

터미널이라고도 말합니다. 한글로는

단말기라는 말이 더 익숙할 것 입니다.

 

터미널은 셸을 실행하는

프로그램입니다.

터미널 자체도 여러 기능이 있습니다.

 

옛날 영화에 나오는 컴퓨터를 보면

입력과 출력만 가능한 구식 초록색

모니터같은게 단말기 입니다.

 

사실 지금이야 컴퓨터의 시대가 되서

누구나 컴퓨터 자원을 누리고 있지만

과거 컴퓨터의 초창기 시절에는

한 대가 굉장히 비싸서 하나의

컴퓨터를 여러 사람이 시간을

쪼개서 써야 했습니다.

 

오늘날 대부분 인터넷의 서비스를 하는

서버-클라이언트 구조와도 비슷한데

그러다 보니 자체의 처리기능은 없이

컴퓨터와 상호작용을 하기 위한

입출력 기능을 갖추면 터미널이라고 합니다.

 

터미널에서 사용하는 소프트웨어를

셸이라고 부릅니다.

실제로 리눅스 운영체제는 로컬

환경 뿐만 아니라 원격의 클라이언트

PC가 단말기가 되어

셸에 접속할 수 있습니다.

 

예를 들어 최근 대세인

AWS 클라우드를 사용하려면

그냥 내 PC를 터미널로 AWS

서버에 접속하면 됩니다.

리눅스를 설치한 인스턴스에서

사용하는 CLI도 셸입니다.

 

암튼 용어가 헷갈리긴 하지만

컴퓨터 자원을 사용하기 위해서

Shell 이라는 껍데기, 인터페이스를

사용한다- 정도로 이해하면 충분합니다.

 

입출력을 조작한다는 개념의

콘솔이라는 용어도 있는데

게임기 콘솔같이 물리적인 장치을

뜻했는데 지금은 비슷한 뜻으로

사용하고 있습니다.

 

- 셸, 터미널, 콘솔 ->

터미널은 같은데 셸이 다를 수도 있고

그 반대일 수도 있습니다.

너무 복잡하면 그냥 비슷한 의미로

사용해도 크게 문제는 없습니다.

(시스템 프로그래머가 아닌한)

 

*왜 GUI를 많이 사용하지 않을까?

 

리눅스도 X-Window의 GUI가 있지만

리눅스를 GUI 중심으로 사용하기엔

좀 장점을 활용하지 못하는 느낌입니다.

요새는 KDE GUI가 잘 나와서 PC의

OS로도 좀 관심을 받는 것 같긴한데

CLI가 더 효율적인 작업이 많습니다.

 

윈도우즈 같은 경우 애초부터 GUI가

중심으로 개발된 부분이라서

윈도우 관리를 대부분 GUI 로

처리하도록 유도하지만

파워셸(Power Shell)에서 셸에 관련된

모든 작업을 다할 수 있습니다.

하지만 그런 기능은 IT관리자나

개발자들이 주로 사용하는 것 이고

일반인들이 파워셸 같은 것으로

작업하지는 않습니다.

 

반면 리눅스는 GUI가 필수적이지 않고

사용자 자체가 일반인들 보다

IT지식이 많다고 볼 수 있습니다.

 

일부 그래픽 요소를 사용하는

프로그램을 제외하고

대부분의 리눅스 작업은

CLI가 중심이라고 봐야겠죠.

 

셸의 종류 bash

셸은 종류가 여러가지가 있는데

우분투에서는 bash를 기본으로

많이 사용합니다.

 

리눅스 교재라는 것에 나오는

대부분의 Shell 명령어들은

bash 가 기준입니다.

 

현재 시스템에서 사용가능한

셸의 리스트는 cat /etc/shells 에서

확인할 수 있습니다.

 

kayken@KAYSYS:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen

 

zsh 지셸의 설치

우분투 등 데비안 계열에서

지셸을 설치할 수 있습니다.

 

sudo apt install zsh

 

셸의 변경은 chsh(change shell)

명령어를 사용합니다.

현재 사용중인 셸이 아니라

다음번 로그인에 변경됩니다.

 

/etc/shells의 로그인 셸

중에서 선택할 수 있습니다.

 

kayken@KAYSYS:~/curl_tut$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh
kayken@KAYSYS:~/curl_tut$ chsh -s /bin/zsh
Password:
kayken@KAYSYS:~/curl_tut$ echo $SHELL
/bin/bash
kayken@KAYSYS:~/curl_tut$ echo $0
bash
kayken@KAYSYS:~/curl_tut$

 

 

zsh 설치
zsh 설치

 

OH-MY-ZSH

지셸을 더 잘 사용하기 위해서

설치하는 오픈소스 프레임워크입니다.

 

오마이지셸에는 지셸 커뮤니티가

지원하는 270여종 플러그인과

150개의 테마가 있습니다.

 

curl을 사용하여 설치할 겁니다.

 

sudo apt install curl

 

아래 명령어로 설치합니다.

 

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

 

OH MY ZSH 설치
OH MY ZSH 설치

 

테마 변경 OH-MY-ZSHELL

테마 변경은 홈디렉토리에 zshrc 를

수정해야 합니다.

vi 편집기를 열고 ZSH_THEME에

테마이름을 바꿔주면 됩니다.

vi ~/.zshrc

테마의 종류는 아래의 깃헙에서

찾을 수 있습니다.

종류가 워낙 많으니 하나씩 테스트하는

재미도 쏠쏠합니다.

 

Themes · ohmyzsh/ohmyzsh Wiki · GitHub

 

GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configu

🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, OSX, hub, docker, homebrew, node, php, python,...

github.com

 

oh my zsh 테마 변경 bira
oh my zsh 테마 변경 bira

 

각종 플러그인 OH-MY-ZSH

플러그인의 종류가 약 270여개에

달하는데 이것들도 zshrc 파일에서

설정할 수 있습니다.

 

강화된 검색 기능이라던가 여러가지가

있으니 상세사항은 깃허브를 참고합니다.

 

요약

지셸과 OH-MY-ZSH 의 설치하는

방법을 알아봤습니다.

 

bash 의 확장판이라고 생각하고

여러가지 기능중에 쓸만한 것들을

중심으로 적용하는 것을 추천합니다. 

 

MacOS에서는 zsh 가 기본 셸이 된 이후

OH-MY-ZSH가 더욱 빛을 발하고 있습니다.

 

구글에서 Zsh recommended plugin

같은 키워드로 검색하면 많이 나옵니다.

 

 

Z SHELL Documentation

- Z SHELL의 메뉴얼 등 상세한 내용을

확인할 수 있습니다.

 

ZSH - THE Z SHELL (sourceforge.io)

 

ZSH - THE Z SHELL

 

zsh.sourceforge.io

 

OH-MY-ZSH 깃허브

오마이지셸 프레임워크에 대한

모든 자료가 다 있습니다.

 

 

GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configu

🙃 A delightful community-driven (with 1800+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, OSX, hub, docker, homebrew, node, php, python,...

github.com

 

 

인터페이스는 무엇인가? GUI와 CUI와 UX와 UI

 

인터페이스는 무엇인가? GUI와 CUI와 UX와 UI

*자바의 AWT관련 포스팅을 하다 GUI 설명이 길어져 분리한 포스트입니다. GUI가 좀 낡은 개념 같기도 한데, 요새는 UX UI 라는 말을 더 많이 하죠. 과거에 컴퓨터를 한다는 말은 GUI를 사용한다는 말과

digiconfactory.tistory.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band