본문 바로가기

3. Pwnable (포너블)

[2022.10.8] 포시즌 - 포너블팀 활동보고

포너블 팀별 활동 4주차 입니다. 

c언어는 배열, 포인터, 함수 부분에 관해 강의를 듣고 백준문제를 풀었습니다. 

 

백준문제 1546번 (배열로 평균 구하기)

#include<stdio.h>

int main() {

int n;

int max = 0;

double avg = 0;

scanf("%d", &n); //과목의 수

int score[1001];//세준이의 점수들

for (int i = 0; i < n; i++) {

scanf("%d", &score[i]); //세준이가 입력하는 과목의 점수들

if (max < score[i]) // 과목1부터 MAX를 찾는다.

max = score[i];// 최대값을 찾음

}

for (int i = 0; i < n; i++) { //평균값구하기

avg = avg + (double)score[i] / max * 100; //수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점

}

printf("%f\n", avg / n); //새로운 평균

 

return 0;

}

 

백준문제 15596번 (함수구현)

long long sum(int* a, int n) {

long long ans = 0;

for (int i = 0; i < n; i++) ans += a[i];

return ans;

}

 

리눅스는 인프런 [생활코딩 - Linux]에서 섹션 5까지 듣고 정리했습니다. 

 

-컴퓨터 구조 

storage : 가격 낮고 용량 많고 속도 느림 (프로그램이 저장되있는 곳)

memory: 가격 비싸고 용량이 적지만 속도가 빠름 (프로그램이 실행하면 메모리에 적재됨)

command: 사용자가 입력하는 명령어

명령어는 /bin이나 /sbin같은 디렉토리나 파일의 형태로 저장 = program

program: 명령어가 컴퓨터에 존재하는 방식

process란? program이 실행되면 memory에 적재되고

cpu (processor) 에 의해서 처리되어 실행되고 있는 프로그램을 process라 함.

 

-프로세스 모니터링

ps : process 리스트를 보여주는 명령어.

ps aux: 백그라운드에서 돌아가는 많은 프로그램 리스트를 보여줌

ps aux | grep apache : apache 검색

PID : process id

sudo kill (PID) : PID값 프로그램 삭제됨

sudo top: 작업관리자 기능

sudo apt-get install htop: htop 설치

sudo htop: 시각적으로 좋음 (그래픽)

 

-백그라운드 실행

fg: 백그라운드-> 포그라운드 전환 

jobs: 백그라운드에서 실행되고 있는 프로세스의 목록 출력

^c: 잡 정지

fg %2: 두번째 백그라운드 실행

kill (-9) %4: 4번 killed함

ls -R : 하위 디렉토리까지 모두 출력

ls -R / > result.txt 2> error.log : 출력한거 result.txt에 저장하고 2>는 실행중 에러 가 있으면 error.log에 저장

ls -R / > result.txt 2> error.log & : 실행이 즉각 백그라운드로 보내짐

&: 백그라운드에서 실행

 

-항상 실행 - 데몬의 개념

데몬 : 껐다 켰다 x 항상 실행함

ex) sever

 

-정기적 실행 (cron)1

ex) 백업

crontab -e : 크론탭을 설정할 수 있는 곳 (정기적 실행 설정)

crontab -l : 크론탭 내용 출력 <이미지 추가>

alias l='ls -al' : ls-al의 별명 -> l

출처 (http://www.davsclaus.com/2013/08/apache-camel-212-even-easier-cron.html)