공부해봅시당

[리눅스] 셸과 프롬프트 본문

STUDY/운영체제

[리눅스] 셸과 프롬프트

tngus 2022. 1. 19. 04:35

본 포스팅은 뉴렉처님의 리눅스 강의를 바탕으로 학습 내용 정리의 용도로 작성한 것임을 명시합니다.


1. 셸(Shell)이란?

명령어와 프로그램을 실행할 때 사용하는 인터페이스

 

즉, 커널과 사용자간의 다리역할

 

윈도우에서는 아래 그림과 같은 명령 프롬프트창이 일종의 셸이라고 할 수 있다.

윈도우에서의 셸(Shell)

 

아래는 위키백과 정의이다.

셸(shell)은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸은 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다.
셸은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다. 명령 줄 셸은 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공하는 반면에, 그래픽 셸은 그래픽 사용자 인터페이스(GUI)를 제공한다.
CLI와 GUI 기반 셸의 상대적 장점에 대해서는 논쟁이 많다. CLI 지지자는 CLI 셸 상에서 일반적인 수행(파일 이동 등)을 훨씬 빠르게 할 수 있다고 주장한다. 반대로 GUI 지지자는 GUI 셸의 상대적 사용성과 간편함을 내세운다. 일반적으로 성능을 중시하고 숙련된 관리자의 작업에 주로 사용되는 서버의 경우는 CLI가 많이 쓰이며 반면 일상적인 업무에 사용되는 컴퓨터엔 GUI가 많이 사용된다.

 


2. Shell의 종류

  • bash shell : Bourn Again Shell - Stephen Bourne
    • 최초의 유닉스 셸인 Bourne Shell과 호환되도록 만들어진 셸
    • 모든 유닉스가 가지고 있는 셸은 Bourn Shell -> 실습 시 사용할 셸
  • csh : C shell - BSD 계열 유닉스 사용자들이 선호
    • C언어 기반
    • 크기 커지고 처리 속도 느려짐
    • 기능은 편리
  • ksh : Korn shell - UNIX System V 계열 유닉스 사용자들이 선호
    • Bourn 셸 확장
    • C셸의 기능 추가 -> C셸 특징 모두 제공 + 처리 속도 빠름
  • 그 외의 리눅스 셸
    • tcsh : C shell과 호환되는 셸, ash : Bourne Shell과 호환되는 또 다른 본셸

 

3. 관리자 권한 얻기

최초 시작 후 명령 프롬프트에서 아이디와 패스워드를 입력하면 창은 아래와 같다

 username@server:~$

 

여기서 우리는 $와 #의 차이를 알아볼 필요가 있다

 username@server:~$
 root@server:~#

위 코드의 @ 앞부분에서부터 알 수 있듯 $는 일반유저 권한, #는 관리자 권한을 나타낸다

 

보안을 위해 최초 시작 시에는 관리자 권한으로 로그인할 수 없다

 

따라서 일반유저로 최초 로그인한 이후에, 관리자 권한이 필요한 경우 두 가지 방법 중 하나를 택할 수 있다

 

1. 계정 전환 없이 : sudo 명령어 사용

아래는 그 예시이다

$ sudo reboot
$ sudo halt

 

2. 계정 전환 후 사용

항상 일일이 sudo를 입력해야하는 위 방법이 번거로울 경우 root 계정으로 전환하여 사용할 수 있다

아래는 root 계정으로 전환하는 방법이다

(아래 예시 중 3번째는 현재 사용자의 계정에서 root 사용자의 계정으로 완전히 바뀌는 것이 아니라 권한만 root로 바뀜)

$sudo su - root
$sudo su -
$sudo su

 

  • sudo 명령어 : substitute user do(다른 사용자의 권한으로 실행)
    • root가 아닌 사용자가 root에 준하는 능력으로 sudo 다음에 나오는 명령을 실행하게 하는 명령어
  • su 명령어 : switch user(다른 계정으로 전환) - 일반 사용자는 사용 불가능한 명령어이기 때문에 sudo가 필요
    • su -계정이름 : 다른 계정으로 전환 + 그 계정의 환경변수 적용
      • 예) su - root : 관리자(root) 계정으로 전환
    • su - : 기본 계정으로 변경(따로 설정을 하지 않으면 기본은 root로 default 설정되어있음)
    • su : 현재 사용자의 계정에서 root 사용자의 계정으로 완전히 바뀌는 것이 아니라 권한만 root로 바뀜

 


4. 계정 로그아웃

exit 입력 시 계정 로그아웃


출처

https://www.youtube.com/watch?v=4HuraA6bItU&list=PLq8wAnVUcTFU9zLWK-dHWrvTJ0PF8Y0Sf&index=9 

https://jhnyang.tistory.com/57

 

[리눅스]셸(Shell)이란? 셸의 변경, 쉘 개념, 기능, 종류와 특징(sh, bash, csh, tcsh, ksh)

리눅스 완전 정복 : 리눅스 목차 셸 스크립트 프로그래밍을 하려면 셸이 무엇인지 먼저 알아야겠죠! [목차] 1 셸이란 2. 셸의기능 3. 셸의 종류와 특징 4. 사용중인 셸 확인 5. 셸 변경하기 셸(Shell)

jhnyang.tistory.com

https://ko.wikipedia.org/wiki/%EC%85%B8

 

셸 - 위키백과, 우리 모두의 백과사전

1990년대의 그래픽 인터페이스는 man page를 위한 TUI 창을 제공하였다. 그 밖에 텍스트 창 또한 부분적으로 보인다. 셸(shell, 문화어: 쉘, 자령해석프로그램)은 운영 체제 상에서 다양한 운영 체제 기

ko.wikipedia.org

https://brownbears.tistory.com/227

 

[Linux] sudo, su의 차이점

차이점 sudo: 현재 계정에서 다른 계정의 권한만 빌림 su: 다른 계정으로 전환 su -: 다른계정으로 전환 + 그 계정의 환경변수 적용 상세내용 sudo는 root가 아닌 사용자가 root에 준하는 능력으로 sudo 

brownbears.tistory.com

 

'STUDY > 운영체제' 카테고리의 다른 글

[OS] 데드락(Deadlock, 교착 상태)이란?  (1) 2024.03.27
[OS] 프로세스와 스레드  (1) 2024.03.27