Skip to content

Latest commit

 

History

History
131 lines (74 loc) · 3.56 KB

우분투의 bash 셸.md

File metadata and controls

131 lines (74 loc) · 3.56 KB

우분투의 bash 셸

  • 기본 셸은 bash이다
    • Alias 기능(명령 단축 기능)
    • History 기능
    • 연산기능
    • Job Control 기능
    • 자동 이름 완성 기능(Tab)
    • 프롬프트 제어 기능
    • 명령 편집 기능
  • 셸의 명령문 처리 방법
    • (프롬프트) 명령어 [옵션...] [인자...]
    • 예) # rm -rf /mydir

환경변수

  • "echo $환경변수이름"으로 확인 가능
  • "export 환경변수=값"으로 환경 변수의 값을 변경

셸 스크립트 프로그래밍

  • C언어와 유사하게 프로그래밍이 가능

  • 변수, 반복문, 제어문 등의 사용이 가능

  • 별도로 컴파일하지 않고 텍스트 파일 형태로 바로 실행

  • vi나 gedit으로 작성이 가능

  • 리눅스의 많은 부분이 셸 스크립트로 작성되어 있음

  • 실행 바법

    • "sh <스크립트 파일>"로 실행 -> 파일 속성을 변경할 필요가 없음
    • "chmod +x <스크립트 파일>" 명령으로 실행 속성 추가 후 "./<스크립트파일>"명령으로 실행

변수의 기본

  • 변수를 사용하기 전에 미리 선언하지 않으며, 변수에 처음 값이 할당되면서 자동으로 변수가 생성
  • 모든 변수는 "문자열(String)" 로 취급
  • 변수 이름은 대소문자를 구분
  • 변수를 대입할 때 "=" 좌우에는 공백이 없어야 함
  • 변수 참조할 경우 $붙여야 참조 가능

변수의 입력과 출력

  • $ 문자가 들어간 글자를 출력하려면 ' ' 로 묶어주거나 앞에 '\'를 붙임
  • 변수를 " " 로 묶어도 되고, 묶지 않아도 됨

숫자 계산

  • 변수에 대입된 값은 모두 문자열로 취급
  • 변수에 들어 있는 값을 숫자로 해서 +, -, *, / 등의 연산을 하려면 expr을 사용
  • 수식을 백틱(`) 문자로 묶어줘야함
  • 수식에서 괄호와 곱하기 기호는 반드시 역슬래쉬() 붙여야함

파라미터 변수

  • 파라미터 변수는 $0, $1, $2.... 의 형태를 가짐
  • 전체 파라미터는 $*로 표현

기본 if 문

  • 형식

    • if [ 조건 ] then

      ​ 참일 경우 실행

      fi

파일과 관련된 조건

파일조건 결과
-d 파일이름 파일이 디렉토리면 참
-e 파일이름 파일이 존재하면 참
-f 파일이름 파일이 일반 파일이면 참
-g 파일이름 파일에 set-group-id가 설정되면 참
-r 파일이름 파일이 읽기 가능하면 참
-s 파일이름 파일 크기가 0이 아니면 참
-u 파일이름 파일에 set-user-id가 설정되면 참
-w 파일이름 파일이 쓰기 가능한 상태이면 참
-x 파일이름 파일이 실행 가능 상태이면 참

case ~ esac 문

  • if문은 참과 거짓의 두 경우만 사용 (2중 분기)
  • 여러 가지 경우의 수가 있다면 case문 (다중분기)

반복문 - for~in문

  • 형식
    • for 변수 in 값1 값2 ...
    • do
    • ​ 반복할 문장
    • done

until 문

  • while문과 용도가 거의 같지만, until문은 조건식이 참일 때까지(=거짓인 동안) 계속 반복

set과 $(명령어)

  • 리눅스 명령어를 결과로 사용하기 위해서는 $(명령어) 형식을 사용
  • 결과를 파라미터로 사용하고자 할 때는 set과 함께 사용