| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sql injection
- Lv3
- topic
- 자료형
- Logstash
- Apache Kafka
- CSRF
- XSS
- segment
- Message
- programmers
- CORS
- 불리언
- 튜플
- Kafka
- 로그관리
- 문자열
- 프로그래머스
- BFS
- 딕셔너리
- Kibana
- queue
- Elasticsearch
- elk스택
- Python
- 데이터분석
- partition
- rabbitmq
- 조건문
- 숫자게임
Archives
- Today
- Total
dev-minchur 님의 블로그
커널과 셀이란?? 본문
셀의 역할
- 리눅스에서는 사용자가 커널을 직접 조작할 수 없기 때문에 커널이 명령어를 받아들이고 커널의 실행 결과를 출력하는 소프트웨어가 필요
- 이 역할을 수행하는 소프트웨어가 셸임
- 셸은 사용자와 커널의 인터페이스 역할을 함
- 셸은 리눅스 커널을 감싸는 역할을 담당하기 때문에 셸이라는 이름이 붙여졌다고 볼 수 있음
- 리눅스를 다룰 떄는 기본적으로 셸을 사용해야 하며, 리눅스를 잘 다루기 위해서는 셸을 잘 알아야 함
커널과 셸의 분리
- 커널과 셸은 분리되어 있음
- 커널을 운영체제 핵심 소프트웨어 이므로 교체하기 힘듬
- 셸은 사용자의 요구사항에 맞게 선택할 수 있음
프롬프트
[사용자이름]@[호스트 이름]:~$- 셸의 프롬프트(prompt)라고 함
- 프롬프트는 사용자에게 어떤 결정을 내리도록 한다는 의미
- 즉, 셸이 사용자에게 명령어를 받아들일 준비가 되었음을 나타낸다고 보면 됨
프롬프트 기호
- 일반 사용자의 프롬프트 기호는 $ / 슈퍼 유저일 경우 #
로그인 셸
- 사용자가 로그인할 때 리눅스가 자동으로 셸을 시작하기 떄문에 리눅스에 로그인하면 셸이 사용자의 입력을 기다림
- 로그인 후 처음으로 시작되는 셀을 로그인 셸이라고 부름
셸 스크립트
- 명령어를 직접 입력하고 그 결과를 확인하는 조작 방식을 대화형(인터렉티브)방식이라고 함
- 실행하고 싶은 명령어들을 미리 파일에 기록하고 그 파일을 셸에 넘겨주는 방식으로 명령을 수행할 수 있도록 만든 파일을 셸 스크립트라고 함
- 셸 스크립트는 명령어를 조합해 복잡한 처리를 수행한다는 리눅스의 철학이 담긴 강력한 도구
#! /bin/bash today =$( date "+%d")종류
- 리눅스에서 기본적으로 사용하느 셸은 bash를 사용
- 리눅스에서 bash 외에도 다양한 셸을 사용할 수 있음
sh
- 아주 오래전에 만들어진 셸이며 리눅스 뿐만 아니라 유닉스 계열에서도 사용할 수 있음
- 현재도 셸 스크립트를 작성할 때는 sh를 사용하는 것이 일반적임
- 하지만 오래된 셸이라 기능이 적고 특히 대화형에서 사용하기는 불편하기 때문에 일반 사용자가 사용하는 경우는 거의 없음
csh
- csh도 무척 오래된 셸 중 하나 C셸로 불림
- sh보다 대화형 조작에 편리한 기능을 갖고 있어 인기가 많았지만 셸 문법이 sh와 달라 셸 스크립트 작성에는 적합하지 않음
- 현재는 csh의 뒤를 잇는 tcsh가 나와 많이 사용하지 않음
bash
- sh를 바탕으로 기능이 추가된 셸
- sh와 호환성이 있어 sh를 대체할 수 있고, 대화형 조작에 필요한 기능을 갖추고 있어 많은 리눅스에서 기본 로그인 셸로 사용하고 있음
- 셸 스크립트를 작성하는 데도 적합함
tsch
- csh에 이어 개발된 C셸 계열의 셸
- 대화형 조작에 편리한 기능을 많이 갖추고 있지만, csh와 마찬가지로 셸 스크립트에 적합하지 않음
- tcsh등 C셸 계열엣는 일반 사용자 프롬프트가 $이 아닌 %를 사용
- 맥OS도 10.2전까지는 기본 로그인 셸로 tcsh를 사용함
zsh
- 비교적 최근에 개발된 셸로, bash와 tcsh의 기능에 독자적인 기능이 추가됨
- 무척 다양한 기능을 갖추고 있어 메뉴얼만 17개 섹션에 달한다.
- 모든 기능을 익히는 데 시간이 걸리지만, 익숙해지면 작업 효율을 크게 높일 수 있음
- 다만 초보자가 바로 시작하기에는 다소 어려움이 있음