리눅스 기초인 bash 명령에 대한 내용을 간단히 요약하였다. 보다 자세한 내용은 가장 빨리 만나는 Docker, 4.2장을 참고하시길.
단순 명령
<
: 표준입력 다이렉션,cat < ./hello.txt
>
: 표준출력 다이렉션,echo "hello" > ./hello.txt
>>
: 표준출력 다이렉션을 기존 파일에 추가,echo "hello" >> ./hello.txt
2>
: 표준에러를 파일로 저장2>>
: 표준에러를 파일에 추가&>
: 표준출력과 표준에러를 파일로 저장1>&2
: 표준출력을 표준에러로 저장2>&1
: 표준에러를 표준출력으로 보냄,abcd > result.txt 2>$1
|
: 표준출력을 다음 명령의 표준입력으로 보냄=
: 변수 설정,hello="Hello World"
$
: 설정 변수 사용시,echo $hello
$()
: 명령 실행 결과를 변수화,echo $(date)
` `
: 명령 실행 결과를 변수화$()
와 동일&&
: 명령어 실행후 성공하면 다음 명령 실행,make && make install
;
: 한줄에서 여러개 명령 실행,false; echo "hello"
' '
: 문자열로 그대로 표현,echo '$USER'
" "
: 문자열내 변수를 변환후 표현,echo "$USER"
" ' ' "
: 문자열 내에 다시 문자열 이용,bash -c "/bin/echo Hello 'World'"
\"
: ' 안에서 “를 사용\$
: " 안에서 $ 사용${}
: 변수 치환HELLO=${HELLO-"abcd"}
: HELLO가 없을경우 “abcd” 대입HELLO=${HELLO:-"abcd"}
: HELLO가 있으나 NULL이면 “abcd” 대입<<<
: 문자열을 명령의 표준 입력으로 보냄<<EOF ... EOF
: 여러줄의 명령을 표준입력으로 보냄export
: 설정한 값을 환경 변수로 만듬export HELLO=world
#
: 주석
고급 명령
if
조건문
if [ $a -eq $b ]; then
echo $a
fi
- 숫자 비교: -eq 같다, -ne 같지않다, -gt 초과, -ge 이상, -lt 미만, -le 이하
- 문자열 비교: == 같다, != 같지않다, -z 문자열이 NULL일때, -n 문자열이 NULL아닐때
for
반복문
for i in $(ls)
do
echo $i
done
NUM=(1 2 3)
for i in ${NUM[@]}
do
echo $i
done
for ((i=0; i<10; i++))
do
echo $i
done
while
반복문
while:
do
echo "Hello World";
sleep 1;
done
printf
출력문
printf 80\\nexampleuser\\ny | example-config
example-config의 입력으로 80 \n exampleuser \n y 를 차례로 입력으로 전달 (\n enter)
sed
스트림 에디터
sed -i "s/hello/world/g" hello.txt
s
치환/
<찾을 문자열>/
<바꿀 문자열>/
g
전역
이정도가 docker를 빌드하기 위한 최소한의 명령이라 할 수 있다.