OSS - 시험 예상 문제

Pongchi·2022년 6월 13일
0

chap6

  • Vi editor에서 실행 언어 지정

    #!/bin/bash 또는 #!/bin/sh

  • 반복문의 무한 반복

for (( ; ; ))
do
 	echo "무한반복"
done

while :
do
	echo "무한반복"
done
  • Using function
datenow()
{
	date
}

: 사용할 땐 그냥 함수 이름만 적으면됨

  • 함수에서 지역변수 설정

    function foo()
    {
    	local value="1"
       echo "값 : ${value}"
    }
    
    foo
  • 함수에서 인자를 줄땐 함수이름 파라미터. 인자 받는법은 $1, $2, $3, ....

  • 함수에서 return 값은 echo 값

  • shell script에서 Argument 표현방식은

    $0 (예약) : 실행된 스크립트 이름
    $1~9
    ${10} ~ ${n}

  • expr을 이용한 연산


    Example: b=`expr $a + 1`
    ( 백쿼터 사용해야하고, = 을 적을 때 붙여야함 수식 사이엔 공백으로 분리

  • Special character

    $# : argument의 총 개수
    $* : 전체 argument 값

  • shell script에서 배열

  • 예제

#!/bin/bash
echo -n "select first station (st1 or st14):"; read first

cur_station()
{
	echo -n "go (y or Y):" ; read go
    if [ "$go" == "y" ] || [ "$go" == "Y" ]
    then
    	if [ "$station" == "st5" ] ; then
        	echo "current station is " $station "(exit)"
            exit
        else
        	echo "current station is " $station "(stay)"
        fi
    else
    	exit
    fi
}

if [ "$first" == "st1" ] ; then
	for station in st1 st2 st3 st4 st5 st6 st7 st8 st9 st10 st11 st12 st13 st14
    do
    	cur_station
    done
elif [ "$first" == "st14" ] ; then
	for station in st14 st13 st12 st11 st10 st9 st8 st7 st6 st5 st4 st3 st2 st1
    do
    	cur_station
    done
else
	exit
fi

chap7

  • make 실행

    make [-f] filename
    -> -f 옵션이 없으면 GNUmakefile, Makefile, makefile을 찾아서 사용

  • make 전체 실행

    make

  • make label 실행

    make [라벨이름]

  • 매크로 종류

  • 예제

OBJS = main.o a.o b.o c.o
TARGET = test
CC = gcc
INC = -I /home/
CFLAGS = $(INC)

$(TARGET) : $(OBJS)
	gcc -o $(TARGET) $(OBJS)

clean :
	rm $(OBJS) $(TARGET)
    
main.o : main.c
a.o : a.c
b.o : b.c
c.o : c.c

chap8

  • 사용자 이름 및 email등록

    git config --global user.name NAME
    git config --global user.email EMAIL

  • 터미널 생각 출력

    git config --global color.ui auto

  • 설정 확인

    git config --list

  • SSH key 생성

    ssh-keygen -t rsa -C NAME@changwon.ac.kr

  • 신규 파일 또는 수정한 파일을 Staging Area로 이동

    git add [filename]
    git add --all / git add .

  • 스토리지 상태 확인

    git status

  • Stating Area -> Working Dir

    git rm --cache [파일이름]

  • Commit 수정하기

    git commit --amend -m "새로운 메시지!"

  • 로컬 저장소 변경 내역을 원격 저장소로 전송

    git push orgin main


chap9

install uftrace

  • sudo misc/install-deps.sh
  • ./configure --prefix=/usr
  • make
  • sudo make install

using uftrace

  • gcc -pg -o main main.c
  • uftrace main

or Recoding

  • uftrace record main
    -> uftrace.data 디렉토리에 만들어짐

  • -k 옵션 : 커널 내부에서 어떤 작업이 일어나는지

  • -D [limit] 옵션 : 재귀함수가 너무 깊이 들어가는 경우 보여지는 것을 제한 가능

  • -F [함수이름] 옵션 : 함수이름만 보고 싶을 때

  • -N [함수이름] 옵션 : 함수이름을 제외한 결과를 보고싶을 때

  • -C [함수이름] 옵션 : [함수이름]을 호출한 함수까지 보여줌

  • -t [숫자]us 옵션 : [숫자] 시간만큼 이상 소요되는 함수 출력

  • -a 옵션 : 함수 파라미터와 리턴값을 10진수로 보여줌

  • -A, -R 옵션 : 함수 파라미터와 리턴값를 10진수 또는 16수로 선택해서 볼 수 있음
    example) uftrace record -A fib@arg1 -R fib@retval tests/t-fibonacci 5

profile
- I'm going to be a ???

0개의 댓글