3 - Docker 이미지 만들기 전에 Bash 익히기

Yoony·2023년 6월 21일
0

Start Docker 

목록 보기
3/3

Bash 익히기

Docker는 리눅스 기반이기 때문에 이미지를 생성할때 Bash(Bourne-again shell)을 주로 사용합니다. 이미지를 생성하기 전에 자주 사용하는 Bash 문법을 간단히 정리합니다.

'>'

출력 리다이렉션. 표준 출력을 파일로 저장합니다.

$echo "hello" > ./hello.txt

'<'

입력 리다이렉션. 파일의 내용을 읽어 명령의 표준 입력으로 사용합니다.

$cat < ./hello.txt

'>>'

명령 실행의 표준 출력을 파일에 추가합니다. '>'는 이미 있는 파일에 내용을 덮어쓰지만 '>>'는 파일 뒷부분에 내용을 추가합니다.

'2>'

명령 실행의 표준 에러(stderr)를 파일로 저장합니다.

'2>>'

명령 실행의 표준 에러(stderr)를 파일에 추가합니다.

'&>'

표준 출력과 표준 에러를 모두 파일로 저장합니다.

'1>&2'

표준 출력을 표준 에러로 보냅니다. echo 명령으로 문자열을 표준 출력으로 출력했지만 표준 에러로 보냈기 때문에 변수에는 문자열이 들어가지 않습니다.

$ hello=$(echo "hello world" 1>%2) 
$ echo $hello 

'2>&1'

표준 에러를 표준 출력으로 보냅니다. abcd라는 명령어는 없음므로 에러가 발생하지만 에러를 표준 출력으로 보낸 뒤 다시 /dev/null로 보냈기 때문에 아무것도 출력되지 않습니다.

$adcd > /dev/null 2>%1

'|'

파이프. 명령 실행의 표준 출력을 다른 명령의 표준 입력으로 보냅니다. 즉 첫 번째 명령의 출력 값을 두 번째 명령에서 처리합니다.

$ ls-al | grep .txt 

$

bash의 변수입니다. 값을 저장할 때는 $를 붙이지 않고, 변수를 가져다 쓸 때만 $을 붙입니다.

& hello="hello world" 
$ echo $hello 
hello world 

'$()' / ''

명령 실행 결과를 변수화합니다. 명령 실행 결과를 변수에 저장하거나 다른 명령의 매개 변수로 넘겨줄 때 사용합니다. 또는 문자열 안에 명령의 실행 결과를 넣을 때 사용합니다.

$ sudo docker rm $(docker ps -aq) 
$ echo $(date) 
Tue Sep 9 21:24:30 KST 2014
$ sudo docker rm 'docker ps -aq' 
$ echo 'date'
Tue Sep 9 21:24:30 KST 2014

'&&'

한줄에서 명령을 여러 개 실행합니다. 단 앞에 있는 명령이 에러 없이 실행되어야 뒤에 오는 명령이 실행됩니다.

$ make && make install

''

문자열입니다. '' 안에 들어있는 변수는 처리되지 않습니다.

profile
Software Quality Engineer

0개의 댓글