728x90
쿠버네티스를 학습하기 전, 도커와 리눅스 쉘에 대해서 선행 학습이 되어야 하는데요.
저는 이성미 강사님의 '따라하면서 배우는 배시 쉘 프로그래밍' 시리즈를 수강하며 공부한 내용을 정리했습니다.
도커도 이성미 강사님의 따배도 시리즈로 공부할 예정입니다. :)
학습 환경: 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 |