<Linux Shell Script Chapter 2> - 쉘 기초 명령어

심우열·2023년 2월 8일
0

Linux Shell Script

목록 보기
3/17

1. echo 의 사용법

  1. 화면 출력을 담당
  2. 문자열 사이에 공백문자가 하나 이상이라면 " "또는 ' '사이에 내용이 들어가야 함
  3. " "가 없다면 여러개의 공백문자도 하나의 공백문자로 취급
  4. echo -e 또는 echo $ 명령어를 이용하여 문자열 내에 '\n\'(줄바꿈)와 같은 제어 문자를 사용할 수 있음
  5. echo -n 명령어를 이용하면 터미널상에서 줄바꿈이 안됨
  6. echo * 명령어를 통해 현재 경로에 있는 파일 목록을 볼 수 있음
  7. substring 작업시 유익함

2. 명령의 구조

  1. 명령어는 뒤에 옵션을 가지고 있을 수 있음
  2. 또한 옵션 뒤에는 전달인자를 가지고 있을 수 있음
  3. 명령어, 옵션, 전달인자는 공백문자로 구별 됨

3. glob와 공백

  1. touch 명령어를 통해 전달인자에 해당하는 파일이 없다면 빈 파일을 생성해주고, 파일이 존재한다면 현재 시간으로 파일의 수정 시각을 업데이트 해줌
  2. ' 는 glob(전역)를 의미함, 예를 들면 rm 로 해당 디렉토리 파일 전체 삭제 가능

4. 인용문

  1. 전달인자로 공백문자가 포함된 어떠한 것을 사용하기 위해서는 인용문 표기를 사용해야 함.
  2. 전달인자는 공백문자로 구분되기 때문

5. [..]와 테스트

  1. 리눅스 쉘에서 '[ ]' 기호는 테스트 한다 라는 뜻을 가짐
  2. '[ ]'안의 내용이 참인지 거짓인지 판별함
  3. '[ ]' 기호도 하나의 명령어기 때문에 안의 내용과 공백문자로 구분을 해주어야 함

6. 명령어(wc)

  1. wc 명령어는 지정한 파일의 여러 요소들을 확인 할 수 있음

7. 명령어(tail)

  1. tail을 통해 파일의 뒤쪽 내용들을 출력해줌
  2. tail -n 10 num200: num200 파일의 뒤 10줄을 출력
  3. tail -n +10 num200: num200 파일의 10번째 줄부터 마지막 줄까지 출력
  4. tail -n +101 num200 | head -n 10 : num200 파일의 101번째 줄부터 마지막 줄까지의 출력 내용 중 위의 10줄만 출력
  5. tail -f /var/log/syslog 처럼 -f 옵션을 통해 로그 등을 실시간으로 출력할 수 있음

8. 별칭(alias)

  1. alias 명령어를 통해 원하는 명령어를 단축키처럼 설정 할 수 있음
  2. alias mkdir="mkdir -p": mkdir이란 명령어를 mkdir -p 라는 명령어의 단축키로 지정
  3. alias 는 전달인자를 넘겨주지 못하므로, 단축키의 생성에 제한이 있음
  4. 함수(function)를 통해 이러한 문제를 해결
  5. function mm() { minicom -w -D/dev/ttyS${1}; }: 단축 지정된 명령어 mm 의 첫번째 전달인자를 ${1} 부분에 대입(2이면 두번째 전달인자)
  6. alias 는 스크립트 파일 내부에서 사용이 불가능하지만 function 은 가능

9. 명령어(pushd/popd)

  1. pushd 명령어를 통해 지정한 경로를 스택에 저장 할 수 있음
  2. pushd . : 스택에 '.' 경로를 push
  3. popd 명령어를 통해 스택에 저장해둔 경로로 이동 가능, 스택에서 pop 을 하기 때문에 한번 사용시 스택에서 삭제
  4. cd - 명령어를 통해 이전 경로로 이동 가능

10. 명령어(printf)

  1. printf 명령어로 echo 명령어와는 다르게 형식화된 출력 가능
  2. printf "%05d\n" 1: 전달인자 1을 5자리 숫자형식으로 출력 후 줄바꿈
  3. printf -v (변수명) (저장할 내용) 을 통해 화면 출력대신 변수를 만들 수 있음
  4. name=michael; printf -v legend "%s jackson" $name; echo $legend: name이란 변수에 michael을 저장, legend란 변수를 생성하고, %s 부분에 name 변수값을 넣어 michael jackson을 저장, legend 를 출력
  5. '$' 는 변수의 참조를 의미함

11. 명령어(read)

  1. read 명령어를 통해 사용자 입력을 받아올 수 있음
  2. read num (Enter) 12345(사용자 입력 후 Enter), echo $num: num이란 변수에 사용자 입력값인 12345를 저장하고, num 변수를 화면에 출력
  3. read -p "what is your phone number " v: "What is your phone number" 를 출력하고 그다음에 사용자 입력을 v라는 변수에 저장
  4. read -s -n 1 -t 3 -p "Are you over 16? " v: "Are you over 16? "를 출력하고 -s 옵션으로 사용자 입력이 화면에 보이지 않으며 -t 3 옵션으로 3초간 사용자 입력이 없으면 종료됨, -n 1 옵션으로 한글자만 입력되면 입력이 종료되며,변수 v에 저장.

12. while..do..done

  1. 쉘에서 사용하는 반복문
  2. no=1; while ((no<10)); do printf "%02d\n" $no; ((no++)); done: no 변수를 선언해서 1을 대입,while: no 변수가 10이하일때까지 반복, do: 두자리의 정수로 no 출력, no 1씩 증가, done: 반복문 종료, 각 조건들은 '; '로 구분

13. 실행파일을 사용하는 방법

  1. 일단 실행파일을 실행하기 위해서는 실행권한이 있어야 함, chmod 명령어 사용
  2. ./(실행파일 이름) 을 통해 현재 경로에 있는 실행 파일 실행 가능.
  3. 기존 실행 파일들이 존재하는 경로(ex ./usr/bin)에 복사하여 이용하면 실행파일 이름 입력으로만 실행 가능
  4. 실행파일의 전체 경로 입력으로 실행 가능
  5. 실행파일의 경로를 환경 변수에 추가하기, PATH=$PATH:(실행파일 경로), 실행파일 이름 입력만으로 실행 가능
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글