Shell 기초 지식

DokBak·2022년 6월 23일
0

Linux

목록 보기
1/6

Shell 기초 지식

1. Shell의 종류

구분 sh bash csh zsh
정식 명칭 Bourne Shell Bourne-agin Shell C Shell Z Shell
설명 유닉스의 기본 셸로 모든 셸들의 부모라고 볼 수 도 있다. [본 셸] 본 셸이 버전업된 셸이라 생각하면 좋다. C언어를 기반으로 만들어, 문법또한 C와 비슷 상호작용 로그인 셸, bash, ksh, tcsh의 일부 기능을 포함하여 수많은 개선 사항이 갖추어진 확장형 본셸

참조 자료

셸 종류 : https://support.apple.com/ko-kr/HT208050

sh : https://ko.wikipedia.org/wiki/%EB%B3%B8_%EC%85%B8

bash : https://ko.wikipedia.org/wiki/%EB%B0%B0%EC%8B%9C_(%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%85%B8)

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

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

2. Shell 역할

  • Kernel(커널)

    • 커널은 하드웨어 제어를 담당하는 OS의 핵심 기능
    • 구성 : C언어, 어셈블리언어
    • 역할
      • 디바이스 관리
        • 입출력 디바이스, 메모리, 디스크, CPU 등의 하드웨어를 디바이스 드라이버 소프트웨어로 제어
      • 프로세스 관리
        • 리눅스는 명령을 실행시, 파일에 저장된 내용을 읽어 메모리에 올린 뒤 실행
        • 이 때 실행된 프로그램을 프로세스라 한다.
        • OS구동이나 소프트웨어를 실행하면 여러 프로세스가 동시에 올라와 진행되며, 동시에 진행되는 여러 프로세스를 PID 식별자를 부여해 관리하고 실행에 필요한 CPU 자원을 적절히 할당하는 역할
      • 메모리 관리
        • 프로세스가 동작시 메모리상에 있는 프로그램과 데이터가 함께 실행되는데, 커널은 물리적인 메모리 자원에 적절하게 분배해주는 역할을 한다.
        • 실행이 끝난 프로세스의 경우, 메모리 영역을 반납하는 기능을 수행
  • Shell(셸)

    • 리눅스 커널을 사용자가 조작하기 위해 셸(Shell)을 사용한다. 셸은 사용자가 커맨드에 입력한 명령을 리눅스 커널에 전달하는 역할
    • 역할
      • 애플리케이션 실행/정지/재시작
      • 환경변수의 관리
      • 커맨드 히스토리 관리
      • 커맨드 실행 결과 표시, 파일 출력
  • Shell Script(셸 스크립트)

    • 셸로 실행하려는 명령을 텍스트 파일로 저장한 것.
    • 일반적인 프로그래밍 언어처럼 조건문이나 반복문 등의 제어 구문을 사용 가능하다.

3. Linux 파일 시스템 구조

  • /bin : 기본명령어
  • /boot : 리눅스 구동 파일
  • /dev : 디바이스 관련
  • /etc : 환경변수, 비밀번호 등 설정파일
  • /home : 홈 디렉토리
  • /lib : 라이브러리 파일
  • /media : 외장 디스크
  • /opt : 애플리케이션 집합
  • /proc : 프로세스 정보
  • /root : super 유저의 홈 디렉토리
  • /sbin : 관리자용 명령어 ifconfig
  • /srv : 시스템 데이터
  • /tmp : 공용디렉토리
  • /usr : 일반 유저들이 사용하는 디렉토리
  • /var : logs, ftp 파일등 운용중 생성되거나 삭제되는 일시적으로 사용되는 디렉토리

참고 자료

https://webdir.tistory.com/101

https://www.youtube.com/watch?v=6Sr3e5MEUvI&list=PLEOnZ6GeucBVj0V5JFQx_6XBbZrrynzMh&index=5

4. Linux Ports

Port 역할 설명
20 FTP(Data) 실질적인 데이터 교환이 이루어지는 포트
21 FTP(Control) 20번 포트에서 데이터 교환이 이루어지기전에 유저 체크등의 처리를 진행하는 포트, 성공시 20번포트를 열어 데이터 교환을 실시한다.
22 SSH Telnet의 보안 강화 프로토콜, 원격시스템에 로그인하고 명령을 실행하는데 모든 트래픽을 암호화 하여 도청(해킹)이 어려워지도록 하는 장점이 있다.
23 Telnet 인터넷을 통하여 원격 호스트 컴퓨터에 접속시 지원되는 프로토콜. IP주소와 인증키로 통신한다.
25 SMTP 인터넷에서 이메일을 보내기 위한 프로토콜
53 DNS Domain Name System을 사용하기 위한 프로토콜, UDP: 일반적인 DNS 조회시 사용, TCP : DNS패킷을 전송해야 할 경우
80 HTTP Hyper Text Transfer Protocol의 줄임말로 서버와 클라이언트간에 데이터를 주고 받는 프로토콜, 텍스트, 이미지, 영상, JSON 등등 거의 모든 형태의 데이터를 전송할 수 있다.
443 HTTPS HTTP 프로토콜은 TCP위에서 동작하는데 그 위에 SSL이라는 보안 계층 보안계층이 하나더 추가되어서 SSL 암호화 통신을 한다.이때 SSL 암호화 통신은 공개키 암호화 방식이라는 알고리즘으로 구현
110 POP3 메일 서버에 접속하여 메일을 가져오고 메일 서버의 이메일은 삭제된다.
995 POP3S POP에 대한 암호화 통신을 위한 프로토콜,TLS/SSL을 사용

FTP 통신 모드

모드 설명
Active Mode 클라이언트가 서버에게 포트번호를 전달하여 서버가 데이터를 전송
Passive Mode 서버가 클라이언트에게 포트번호를 알려주고 클라이언트가 데이터를 전송

5. 개행문자

줄 바꿈에 대한 문자열

5-1. 개행문자의 종류

LF(Line Feed) : 커서를 한 칸 아래로 이동하여 새로운 라인을 추가
CR(Carrige Return) : 커서를 맨 왼쪽으로 이동

개행문자는 운영체제에 따라서 다르게 사용되어지고있다. 따라서 다른 운영체제에서 문서를 작성하고 유닉스, 리눅스로 실행할 경우에는 개행문자를 LF로 지정하여 작성하는 습관을 들이는 것이 좋다.

  1. 윈도우 : CRLF(\r\n)
  2. 유닉스/리눅스 : LF(\n)
  3. 맥 : CR(\r)

0개의 댓글