본문 바로가기
Linux

리눅스 11

by 개발자 영만 2022. 7. 13.

vi /etc/fstab
맨 밑줄에
/dev/sdb1 /userhome ext4 defaults 0 0
/dev/sdb2 /userhome ext4 defaults,usrjquota=aquota.user,jqfmt=qqvfsv0 0 0

#cd /userhome
#apt install quota -y
#quotaoff -avug
/dev/sdb1 [/userhome] : user quotas turned off
#quotacheck -augmn
#ls
aquota.user
#rm -f aquota.*
#quotacheck -augmn
#touch aquota.user aquota.group
#ls -l
권한
#chmod 600 aquota.*
#ls -l
권한 600
#quotacheck -augmn
#aquotaon -avug

패키지 삭제 명령어 : sudo apt-get --purge remove quota


Shell Script 작성

  • 스크립트 파일명 : .sh
  • 첫줄 작성
    #!/bin/bash
    #!/bin/sh
  • 우분투의 bash 셸
    • 기본셸이 bash(Bourne Again Shell)
  • bash 셸의 특징
    • alias 기능(명령어 단축기능)
    • History 기능(위/아래 화살표키)
    • 연산기능
    • Job Control 기능
    • 자동이름완성기능(탭키)
    • 프롬프트 제어기능
    • 명령 편집기능
  • 셸의 명령문 처리방법
    (프롬프트) 명령어 [옵션] [인자]
    (ex) #rm -rf /mydir
  • 환경 변수
    • "echo $환경변수이름" 으로 확인 가능
    • "export 환경변수=값" 으로 환경변수의 값을 변경
    • 주요 환경변수
      HOME 현재 사용자의 홈 디렉터리
      LANG 기본 지원되는 언어
      TERM 로그인 터미널 타입
      USER 현재 사용자의 이름
      PS1 1차 명령 프롬프트 변수
      HOSTNAME 호스트의 이름
      PATH 실행파일을 찾는 디렉터리 경로
      PWD 사용자의 현재 작업 디렉터리
      SHELL 로그인해서 사용하는 셸
  • 셸 스크립트 프로그래밍
    • c언어와 유사하게 프로그래밍이 가능
    • 변수, 반복문, 제어문 등 사용가능
    • 별도로 컴파일 하지 않고 텍스트 파일 형태로 바로 실행
    • 리눅스의 많은 부분이 셸 스크립트로 작성되어 있음
  • 셸 스크립트의 실행
    • sh <스크립트 파일명>.sh
    • ./<스크립트 파일명>.sh
    • 스크립트 실행권한 주고 실행해야함
    • chmod +x <스크립트 파일명>.sh
    • chmod 755 <스크립트 파일명>.sh
  • 변수
    • 모든 변수는 '문자열(String)'로 취급
    • 변수 이름은 대소문자를 구분
    • 변수를 대입할 때 '='좌우에 공백이 없어야함
    • '$' 문자가 들어간 글자를 출력하려면 ''로 묶어주고너 앞에 '\'을 붙임
    • ""변수를 묶어줘도됨
  • 숫자계산
    • 변수에 대입된 값은 모두 문자열로 취급
    • 변수에 들어있는 값을 숫자로 해서 +,-,*,/ 등의 연산을 하려면 expr을 사용
    • 역따옴포(`)을 사용
    • 수식의 괄호 또는 곱하기는 그 앞에 꼭 역슬래쉬(\)를 붙임
  • 파라미터 변수
    • 파라미터(Parameter) 변수는 $0, $1, $2, ... 형태를 가짐
    • 전체 파라미터는 $*로 표현
      (ex) sh paravar.sh apt-get -y
        <$0>
        <$1>
  • if문
    • 형식
      if [조건]
      then
        참일경우 실행
      fi
  • if~else 문
    • 형식
      if [조건]
      then
        참일경우 실행
      else
        거짓일 경우 실행
      fi
    • 중복 if문을 위해서 else if가 합쳐진 elif문도 사용가능함
  • 조건문에 들어가는 비교 연산자
    • 문자열 비교
      "문자열1"="문자열2" : 두 문자열이 같으면 참
      "문자열1"!="문자열2" : 두 문자열이 같지 않으면 참
      -n "문자열" : 문자열이 NULL(빈 문자열) 이 아니면 참
      -z "문자열" : 문자열이 NULL(빈 문자열) 이면 참
    • 산술비교
      수식1 -eq 수식2 : 두 수식(또는 변수)가 같으면 참
      수식1 -ne 수식2 : 두 수식(또는 변수)가 같지 않으면 참
      수식1 -gt 수식2 : 수식1이 크다면 참
      수식1 -ge 수식2 : 수식1이 크거나 같으면 참
      수식1 -lt 수식2 : 수식1이 작으면 참
      수식1 -le 수식2 : 수식 1이 작거나 같으면 참
      !수식 : 수식이 거짓이라면 참
  • 파일과 관련된 조건
    • 파일조건 결과
    • d 파일이름 파일이 디렉터리면 참
    • e 파일이름 파일이 존재하면 참
    • f 파일이름 파일이 일반파일이면 참
    • g 파일이름 파일이 set-group-id가 설정되면 참
    • r 파일이름 파일이 읽기 가능이면 참
    • s 파일이름 파일크기가 0이 아니면 참
    • u 파일이름 파일에 set-user-id가 설정되면 참
    • w 파일이름 파일이 쓰기 가능상태면 참
    • x 파일이름 파일이 실행가능 상태면 참
  • case~esac문
    • if문은 참과 거짓 두 경우만 사용(2중분기)
    • 여러 가지 경우의 수가 있다면 case문으로 사용(다중분기)
  • AND, OR 관계 연산자
    • and는 '-a' '&&'를 사용
    • or 는 '-o' '||'를 사용
  • 반복문 (for~in문)
    • 형식
      for 변수 in 값1 값2 값3
      do
        반복할 문장
      done
  • util 문
    • while문과 용도가 거의 같지만, until문은 조건식이 참일때까지(=거짓인동안) 계속 반복함
  • break,continue, exit, return 문
    • break 문 : 주로 반복문을 종료할 때 사용
    • countinue 문 : 반복문의 조건식으로 돌아가게 함
    • exit 문 : 해당 프로그램을 완전히 종료
    • return 문 : 함수안에서 사용될 수 있으며 함수를 호출한 곳으로 돌아가게 함
  • 사용자 정의 함수
    • 형식
      함수이름 () { => 함수를 정의
        내용들
      }
      함수이름 => 함수 호출
  • 함수의 파라미터 사용
    • 형식
      함수이름 () => 함수 정의
        $1, $2, ... 등을 사용
      }
      함수이름 파라미터1 파라미터2, ... => 함수호출
  • eval
    문자열을 명령문 인식하고 실행
  • export : 외부 변수로 선언해준다. 선언한 변수를 다른 프로그램에서도 사용할 수 있도록 해줌
  • printf : c언어의 printf() 함수와 비슷하게 형식을 지정해서 출력

'Linux' 카테고리의 다른 글

7월 19일 Linux  (0) 2022.07.19
7월 18일 Linux  (0) 2022.07.18
리눅스10  (0) 2022.07.12
리눅스9  (0) 2022.07.11