ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LPIC level 1 102 공부 - 1장 정리 (쉘, 스크립트)
    [공부] 프로그래밍/Linux 2023. 9. 10. 13:41

     

    1-1 유저홈 디렉토리 내 파일에서 bash 쉘 환경의 커스터마이즈에 사용되는 것

    : .bashrc 와 .bash_profile

     

    1-2 bash를 로그인 쉘로 하는 모든 유저가 공통으로 사용 가능한 변수와 값을 설정

    : /etc/profile

     

    1-3 bash를 로그인 쉘로 하는 유저가 로그인할 때, 설정파일을 불러들이는 순서

    : /etc/profile -> .bash_profile -> .bash_login -> .profile

     

    1-4 ~/.bash_profile의 설명

    : ~/.bash_profile 파일의 파미션에는 읽기 권한이 필요

    이 홈디렉토리의 소유자인 유저는 읽기, 쓰기 권한을 가지고 있음

     

    1-5 커맨드 cmd의 실행 결과를 쉘 변수 var에 격납

    : var=$(cmd)

    var=`cmd`

     

    1-6 일련의 처리를 子쉘이 아닌 현재의 쉘에서 실행한 경우

    : 쉘의 함수기능 function을 사용

     

    1-7 실행하면 "Hello"라고 표시하는 함수 func1을 정의하고 있은 경우

    : function func1 (){ echo Hello;}

    -> function 함수명 (){실행하는 커맨드 리스트}

    $ function func1 (){ echo Hello;}
    $ func1
    Hello
     

     

    1-8 현재 실행 중의 쉘의 쉘변수 VAL을 서브프로세스로 부터 참조 가능하도록 하는 커맨드 : export VAL

     

    1-9 쉘 내의 모든 쉘변수와 환경변수 또는 함수를 표시하기 위한 커맨드

    : set, declare

     

    1-10 alias의 목적

    : 입력하는 커맨드라인를 짧게 하기 위해

    -> alias는 임의의 별명을 부여 할 수 있다.

    alias 삭제 : unalias

     

    1-11 ls의 alias를 일시적으로 삭제

    : \ls

     

    1-12 bash의 프로젝트에서 echo $$ 실행

    : bach 자신의 프로세스 ID

     

    $$
    쉘의 PID
    $?
    마지막에 실행 한 커맨드의 종료 값
    $#
    인수의 개수
    $*
    구별 문자에서 구별 되어진 모든 인수
    $0
    실행 파일명
    $1, $2,,,
    1번째의 인수, 2번째의 인수

     

    1-13 커맨드가 정상 종료했을 때 값

    : 0

     

    1-14 표준적인 쉘 스크립트의 1번째행

    : #!/bin/sh

    -> 쉘 스크립트에서는 파일 1번째행은 #!으로 시작

     

    1-15 쉘 스크립트의 1번째행에는 #!의 다음에 바이너리 커맨드의 파일 패스가 적혀 있다. 바이너리 커맨드의 역활

    : 스크립트를 해석해서 실행

     

    1-16 일반 유저가 자신의 홈 디렉토리 아래에 작성한 쉘 스크립트를 커맨드로서 실행하기 위한 최소한의 필요한 파미션

    : r-x

     

    1-17 아래의 쉘 스크립트 script-args.bash를 [./script-args.bash a b s]로 실행 했을 때 : ./script-args.bash a b

     
    #!/bin/bash
    ehco $0 $1 $2

    -> $0에는 실행 파일명

    $1에는 첫번째 인수

    $2에는 두번째 인수

     

    1-18 아래의 쉘 스크립트는 실행 유저의 홈디렉토리의 아래에 .bashrc가 있는지 알아본 후 존재한다면, ~/.bashrc exists! 라고 표시하는 프로그램

    : fi

    if [ -f ~/.bashrc ]; then
      echo '~/.bashrc exists!'
    _________________________
     

    -> if문 : if 커맨드1

                     커맨드2

                  fi

    -d 파일명
    파일이 존재해, 디렉토리 파일이면 true
    -e 파일명
    파일이 존재하면 true
    -f 파일명
    파일이 존재해 통상 파일이면 true
    -x 파일명
    파일이 존재해 실행 가는 하면 true
    -n 파일명
    문자열의 길이가 0보다 크면 true
    -z 파일명
    문자열의 길이가 0이면 true
    정수 1 -eq 정수 2
    1=1 true
    정수 1 -ge정수 2
    1>=2 true
    정수 1 -gt 정수 2
    1>2 true
    정수 1 -le 정수 2
    1=<2 true
    정수 1 -lt 정수 2
    1<2 true
    정수 1 -ne 정수 2
    1<>2 true

     

    1-19 test 커맨드에서 2개의 값을 비교하는데 사용되는 연산자

    : -lt, -eq

     

    1-20 아래와 같은 파일 /dev/sda1과 쉘스크립트 myprog가 존재하고 있으며 ./myprog /dev/sda1을 실행시

    : -e is true라고 표시

    // /dev/sda1
    $ ls -l /dev/sda1
    brw-rw---- 1 root disk 8, 1 6月 13 00:30 2019 /dev/sda1
     
    // myprog
    #!/bin/bash
    if test -d $1; then
      echo "-d is true";exit
    elif test -f $1;then
      echo "-f is true"exit
    elif test -e $1;then
      echo "-e is true"
    fi
     

    -> ./myprog /dev/sda1의 실행은 $1에는 /dev/sda1가 대입

    test -d /dev/sda1, test -f /dev/sda1, test -e /dev/sda1순으로 체크

    -d, -f는 false, -e true

     

    1-21 아래의 빈칸 : do

    #!/bin/sh
    for i in 1 2 3 4 5
    __________________
      echo $1
    done
     

    -> for 쉘변수 in 값 리스트

         do 

              커맨드

         done

     

    1-22 아래의 커맨드에 따른 처리 생성

    : 12345

    n=1
    while [ $n -le 5]
    do
      echo -n $n // -n: 개행X
      let "n=n+1"
    done

     

    1-23 아래의 쉘스크립트를 실행 했을때, 쉘 변수 a, b, c에는 어떤 값

    : a에1, b에2, c에 3 4 5 6

    read a b c <<END
    1 2 3 4 5 6
    END
     

     

    1-24 seq 10을 실행하면?

    : 1씩 증가하여 1부터 10까지 표시

    -> seq 종료값

    seq 초기값 종료값

    seq 초기값 증가값 종료값

     

    1-25 bash 스크립트중에서 커맨드가 정상 종료한것을 확인하고 싶은 경우

    : 정상 종료값 0을 확인

    -> true는 0, false는 1을 반환

     

Designed by Tistory.