728x90

쿠버네티스를 학습하기 전, 도커와 리눅스 쉘에 대해서 선행 학습이 되어야 하는데요.

저는 이성미 강사님의 '따라하면서 배우는 배시 쉘 프로그래밍' 시리즈를 수강하며 공부한 내용을 정리했습니다.

도커도 이성미 강사님의 따배도 시리즈로 공부할 예정입니다. :)

https://youtu.be/38wy3gsiR6Q

 

[따배셸] 0. 따라하면서 배우는 Shell Programming 소개 영상!

[공지] 안녕하세요, 편집자 밍밍&차차입니다! 여러분의 성원에 힘입어 쉘 프로그래밍과 더불어 새로운 콘텐츠를 기획 중에 있습니다~ 원하시는 콘텐츠를 따배런 커뮤니티탭 첫 게시글에 남겨주

youtu.be

 

학습 환경: CentOS 8, root 권한

 

1. Linux Shell

1. Shell 역할

Shell: 사용자 명령어 해석기

사용자가 프롬프트에 입력한 커맨드를 해석해서 운영체제 커널에게 전달

 

2. Shell 종류 - 알아야 하는 네 종류

종류 의미
Bourne shell(sh) AT & T 벨 연구소에서 만든 Original shell (1969년 처음 만들어진 Unix에 탑재된 shell)
C shell(csh, tcsh) C언어 문법 적용된 shell - History, aliases, job control, vi command editing and completion 기능 포함
Korn shell(ksh) AT & T 벨 연구소에서 Bourne shell에 C shell의 기능 포함
Bourne-again shell(bash) GNU Project로 만들어진 Linux, MAC OS의 기본 shell

 

3. Shell 구성하기

  • 사용 가능한 shell 리스트 확인
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
  • 사용 중인 shell 확인
[root@localhost ~]# echo $SHELL
/bin/bash
  • 로그인 shell 변경
// sudo 권한 필요
[root@localhost ~]# chsh
Changing shell for root.
New shell [/bin/bash]
/bin/sh
Shell changed.

// /etc/passwd 경로에 저장됨
[root@localhost ~]# grep <사용자명> /etc/passwd
root:x:0:0:root:/root:/bin/sh
operator:x:11:0:operator:/root:/sbin/nologin

 

2. Bash shell과 변수

1. Shell의 변수

  • Shell의 변수란?
    • 데이터를 넣는 그릇
    • 선언할 필요 없이 사용 가능
    • 변수명: 문자, 숫자, _(언더바)로 구성되며 반드시 문자나 _로 시작
  • 변수 선언: varname=value
    • =앞뒤로 띄어쓰기 있으면 안 됨
[root@localhost ~]# name=ncoding
[root@localhost ~]# age=20
  • 변수 확인: echo, set
[root@localhost ~]# echo $name
ncoding
[root@localhost ~]# echo $age
20
[root@localhost ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASHRCSOURCED=Y
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
// 등등...
[root@localhost ~]# set | grep name
name=ncoding
// grep을 통해 원하는 단어만 출력 가능
  • 변수 제거: unset varname
[root@localhost ~]# unset name

 

2. Shell의 환경 변수

  • Shell 환경 변수란?
    • 동작되는 프로그램에게 영향을 주는 변수
    • 일반 변수와 달리 이후에 실행되는 프로그램에게 전달된다
  • 환경 변수 선언: export varName=value
[root@localhost ~]# export NAME=ncoding
[root@localhost ~]# echo $NAME
ncoding
  • 시스템에 적용된 환경 변수 확인: env
[root@localhost ~]# env
...
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=localhost.localdomain
S_COLORS=auto
USER=root
PWD=/root
HOME=/root
NAME=ncoding
...
  • 기억해야 하는 환경 변수
PATH 명령어 탐색 경로
HOME 홈 디렉토리의 경로, cd 명령 실행시 적용
USER 로그인 사용자 이름
SHELL 로그인 shell의 이름
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
// $PATH: 명령어 실행 시, 해당 명령어가 어느 디렉토리에 있는지 경로를 제공하는 중요 환경 변수
[root@localhost ~]# echo $HOME
/root
[root@localhost ~]# echo $USER
root
[root@localhost ~]# echo $SHELL
/bin/bash
728x90

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

Linux BASH Shell (2) Shell의 기능  (2) 2021.09.16
[Linux]  (1) 2021.05.13
[Linux] /etc/fstab  (2) 2021.02.05