LINUX, shell 알아보기

2020. 10. 11. 20:51BACKEND/Linux

안녕하세요 〰️ 오늘은 리눅스의 권한 관리하는 법 3부입니다.

원래 특수권한과 같이 발행하려고 했는데, 포스팅의 길이가 너무 길어져서 따로 분리했습니다 🤣

 

*****************  INDEX  *****************

 

🚀 shell❓ 

💼 shell 종류

🌷 shell 변경

 

******************************************** 


 

🚀 셸❓

셸은 명령어와 프로그램을 실행할 때 사용하는 인터페이스입니다.

커널과 사용자간의 다리역할을 합니다.

 

명령어 해석기의 기능이 있어서 명령어를 입력해서 원하는 동작을 하곤하죠.셸은 컴퓨터를 사용했던 우리가 한 번쯤 보거나 사용해 보았을텐데요.검정색 배경에 텍스트만 보여지는 바로 그 창에서 사용하는 인터페이스입니다.

 

또, 프로그래밍 기능이 있어요. 셸 스크립트라고 하는데, 한 번쯤 알아보는 것도 좋을 것 같아요 〰️ 

 

 

💼 셸의 종류

리눅스에서 사용할 수 있는 Shell은 어떤게 있을까요❓ 

다음의 명령어를 입력하면 알아낼 수 있으니 한 번 해볼까요 ~.~

 

첫 번째 방법은 /etc/shells 을 확인하는 방법인데요.

사용할 수 있는 shell들을 확인할 수 있는 파일입니다.

 

$ cat /etc/shells

/bin/sh 		<-- 명령어 해석기. 커널에서 분리된 별도의 프로그램. 
/bin/ksh		<-- AT&T 사의 데이비드 콘이 개발. 명령어 완성 기능. 히스토리 기능.
/bin/bash		<-- ksh과 csh의 장점을 결합. (Bourne Again Shell) 리눅스 표준
/sbin/nologin
/bin/csh		<-- 버클리 대학의 빌조이가 개발. 
                        (강력한 프로그램 작성 기능. 히스토리, 별명, 작업 제어 등)
/bin/tcsh		<-- 편집 기능을 제공하는 확장 C셸

 

따로 설명하는 것보다는  <-- 마크로 설명하는 게 나을 것 같아서 그 이후부터는 해당 셸의 설명으로 봐주시면 됩니다 〰️ 

 

 

두 번째 방법/etc/passwd 파일에서 계정마다 할당된 셸을 확인할 수 있습니다.

 

gngsn:x:1001:1001::/home/gngsn:/bin/bash

 

위에 보면 맨 뒤에 사용자에 해당되는 로그인셸이 보이죠 〰️ 

 

 

셋 번째 방법은 'echo $SHELL' 명령어 입니다.

$SHELL 환경 변수에는 현재 자신이 사용하고 있는 셸을 확인할 수 있습니다.

 

~$ echo $SHELL
/bin/bash

 

확인해보면 현재 사용하고 있는 셸이 bash인 것을 확인할 수 있습니다.

 

 

셸은 본셸 계열과 C셸 계열로 나뉘어 집니다.

본 셸 계열은 프롬프트 '$'를 사용하고 C셸 계열은 '%' 프롬프트를 사용합니다.

하나씩 한 번 짚어볼까요❓ 

 

 

Bourn Shell 계열 : sh, ksh, bash,  zsh

✔️ sh

Bourne Shell을 의미합니다. 본 셸은 오리지널 셸을 뜻하는데요.

벨 연구소의 Steave Bourne(스티븐 본)이 1979년에 개발했는데, 스티븐 본의 이름을 따서 이름을 따서 지었습니다. 

 

실행 파일은 /bin/sh입니다.

 

 

✔️ ksh

AT&T사의 데이비드 콘(Korn)이 1986년에 개발했습니다. 콘의 이름을 따서 korn shell이라고 하는데요.벨 연구소에서 본셸을 확장해서 만들었습니다.

 

또, 명령어 완성 기능과 히스토리 기능을 가집니다.

 

실행 파일은 /bin/ksh입니다.

 

 

✔️ bash

bash은 현재 Linux의 표준 셸입니다.

브레인 폭스가 1989년에 본셸을 기반으로 GNU프로젝트에 의해 개발했습니다.

linux, macOS X 등 다양한 운영체제에서 사용합니다.

 

명령어 완성 기능, 히스토리, 명령어 치환, 편집 등의 지원합니다.POSIX와 호환이 가능합니다

 

실행 파일은 /bin/bash입니다.

 

 

✔️ zsh

Paul Faslstad가 콘 셸(Korn shell)을 재작성한 1990년에 개발했습니다.강력한 history 기능과 향상된 명령행 편집 기능, 파일명 중간에서부터도 자동 완성 기능을 가지고 있습니다. 

탭이나 화살표 키를 이용해 선택 기능을 포함합니다.

 

실행 파일은 /bin/zsh입니다.

 

 

 

C Shell 계열 : csh, tcsh

✔️ csh

버클리 대학의 빌조이가 1981년에 개발했습니다.

가장 큰 특징은 C 언어의 특징을 많이 포함하고 있다는 점인데요.

히스토리, 별명, 작업 제어 등의 기능을 포함할뿐만 아니라, 다양한 프로그래밍 작성 기능을 가지고 있습니다.

 

실행 파일은 /bin/csh입니다.

 

✔️ tcsh

Ken Greer가 1982년에 C셸을 확장해서 개발했습니다.명령어 편집 기능을 제공했습니다.자동 완성 기능, 자동 로그아웃, emacs, history explorer 등을 지원합니다. $host, $hosttype 새로운 환경 변수를 제공합니다.

 

실행 파일은 /bin/tcsh입니다.

 

 

 

🌷 Shell 변경

✔️chsh

$chsh [option] 계정명 셸

change shell인 것 같죠..? 

 

-s : 지정하는 셸을 앞으로 사용할 로그인 셸로 변경합니다.

-l : /etc/shells 파일 안에 지정된 셸을 나열합니다.

 

✔️ usermod

$usermod [option] 계정명

관리자 환경에서 지정된 계정자의 정보를 변경할 때 사용하는 명령어입니다.

 

 

 

'BACKEND > Linux' 카테고리의 다른 글

LINUX, 사용자 사용량 관리하기  (0) 2020.09.03
LINUX, 특수 권한  (2) 2020.09.03
LINUX, 권한 관리하기  (0) 2020.08.28
정규식, 제대로 사용하기 - 심화  (4) 2020.08.16
정규식, 어렵지 않게 사용하기 - 기본  (0) 2020.07.07