22일차_NETWORK

서창민·2023년 4월 11일
0

NETWORK

목록 보기
2/8
post-thumbnail

23.04.11 화 22일차

네트워크 (리눅스 GCC)

  • 리눅스 용어
# - 주석
// yum을 사용하여 패키지 또는 모듈 다운로드
yum install -y 패키지 또는 모듈명

yum install gcc - gcc 다운로드 명령
gcc - 유닉스에서 사용하는 C언어 프로그램
gcc -v  - gcc 다운로드 확인

YUM - 의존성 있는 패키지까지 자동설치
nabi - 한글 프로그램
init 6 - 재부팅
SHIFT+SPACE - 언어 변경
install -y - 다운로드 여부 YES로 자동 선택 동작

\n - 줄바꿈
\t - 띄어쓰기(Tab)
ls - 목록보기
ls -l -목록보기(리스트형식)

// 명령어
/var - 가변길이영역 (로그, 프린터, 메일, 홈페이지....)
/bin - 실행 명령어
/boot - 부팅 관련 파일 목록
/dev - 장치 드라이브
/etc - 설정파일
/home - 계정의 홈 디렉토리
/lib - 프로그램 라이브러리 파일

리눅스(GCC)에서 C언어 사용

  • 파일 생성 수정 후 출력
// test1.c 파일 생성(편집)
#> vi test1.c

tip!
vi 파일명 입력시 존재하는 파일이 없을때
자동으로 파일이 신규 생성된다.

// print문 작성

i 입력으로 입력 화면(insert) 진입

#> #include <stdio.h>
#> #include <stdlib.h>

#> int main(){
#>   printf("hello world !!");
#>   printf("\n");
#>   printf("환영합니다 !! \n");

#>   return 1;
#>  }

esc + :wq! 로 저장후 빠져나오기

----------------------------------------

// 실행 프로그램 만들기

// 형식
#> gcc -o 실행 파일 원본파일
ex ) gcc -o test1.exe test1.c

//실행 
#> ./ 실행파일 
ex ) ./test1.exe

// 결과
hello world!!
환영합니다!! 
  • 파일 생성 후 정수형,문자열 활용하여 출력
// 파일 생성
#> vi test2.c 

i - 입력(insert) 설정

// 출력문 입력
// %d(정수) , %s (문자열), %f(실수), %c(문자)
#> #include<stdio.h>
#> void main(){
#>   printf("이름 : 홍길동 \n");
#>   printf("나이 : %d 살 \n", 13);
#>   printf("주소 : %s \n", "서울 강북구 삼양로");
#>   printf("몸무게 : %f Kg \n" ,70.5);
}

tip! 
void 선언 시 return 값 없이 현재 구문만 동작함

// 실행
#> ./test2.exe

// 결과
이름 : 홍길동
나이 : 13 살
주소 : 서울 강북구 삼양로
몸무게 : 70.500000 Kg
  • 변수 선언하여 연산 동작 후 출력
// 변수 선언 시 데이터 형 입력 필수
#> #include<stdio.h>
#> void main(){
#>     int dan = 3;
#>     printf("%d X %d = %d \n", dan, 3, dan*3);
#> }

// 실행
#>./test3.exe

// 결과
2 X 3 = 6
  • for문을 사용하여 구구단(2단~9단) 만들기
#> #include<stdio.h>
#> void main(){
#>   int dan = 2;
#>   for(int dan = 2 ; dan < 10; dan++){
#>     for(int i = 1; i < 10; i++){
#>       printf("%d X %d = %d \n", dan, i, dan*i);
#>      }
#>    }
#>  }

//실행
#> ./test4.exe

// 결과
2 X 1 = 2  2 X 2 = 4  2 X 3 = 6  2 X 4 = 8 2 X 5 = 10  
2 X 6 = 12  2 X 7 = 14  2 X 8 = 16  2 X 9 = 18
~
9 X 1 = 9  9 X 2 = 18  9 X 3 = 27  9 X 4 = 36  9 X 5 = 45
9 X 6 =54  9 X 7 = 63  9 X 8 = 72  9 X 9 = 81   
  • 함수활용(두 수의 합 출력)
#> #include<stdio.h>

// 함수 식
#> int add(int a1, int a2){
#> return a1 + a2;
#> }

// return 형
#> int main(){

#> int k1 = 10;
#> int k2 = 20;

// 함수 사용(
#> int k = add(k1, k2);
#> printf("두수의 합 : %d", k);
#> return 0;
#> }


// 실행
#> ./test5.exe

// 결과
두수의 합 : 30
  • 함수활용(환영합니다 문구 반복 출력)
#> #include<stdio.h>

// 함수 식
#> void printK(){
#>    printf("환영합니다.\n");
#>    printf("환영합니다.\n");
#>    printf("환영합니다.\n");
#> }

// 함수 출력
#> void main(){
#>    printK();
#>    printK();
#>    printK();
#>    printK();
#>  }

// 실행
#> ./test6.exe

// 결과
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
환영합니다.
  • 함수활용( 여러분 + 환영합니다 문구 출력)
#> #include<stdio.h>
// C언어에서 문자열은 배열로 처리
// 문자열 변수 받아 함께 출력
#>   void printK(char k[]){
#>      printf("%s 환영합니다. \n", k);
#>      }

// 여러분 문자열 변수 지정
void main(){
    char k[] = "여러분";
    printK(k);
    }

// 실행
#> ./test7.exe

// 결과
여러분 환영합니다
  • 문자열 함수활용(str 사용)
// 순차적 출력(A~D 순)
#> #include<stdio.h>

#>   void main(){
#>    char str[6];
#>    str[0] = 'A';
#>    str[1] = 'B';
#>    str[2] = 'C';
#>    str[3] = 'D';
#>    str[4] = '\0';

#>   printf("%c \n", str);
#>  }

// 실행
#> ./test8.exe

// 결과
ABCD

----------------------------------------

// 반대로 출력(D~A 순)
#>  #include<stdio.h>

#>    void main(){
#>    char str[6];
#>    str[0] = 'A';
#>    str[1] = 'B';
#>    str[2] = 'C';
#>    str[3] = 'D';
#>    str[4] = '\0';
     
#>   for(int i=3; i >= 0; i--){
#>     printf("%c \n", str[i]);
#>   }
#> }

//출력
./test9.exe

//결과
D
C
B
A
  • 배열의 길이 구하기
#>  #include<stdio.h>
#>  #include<stdlib.h>
#>  #include<string.h>

#> void main(){
#>    char str[6];
#>    str[0] = 'A';
#>    str[1] = 'B';
#>    str[2] = 'C';
#>    str[3] = 'D';
#>    str[4] = '\0';

#> int k = strlen(str);
#> for(int i=k; i >= 0; i--){
#>     printf("%c ", str[i]);
#>   }
#> }


//출력
./test10.exe

//결과
D C B A
  • 파일 복사, 확인, 편집
// 앞 경로에 있는 파일을 현재 경로에 복사
cp /etc/httpd/conf/httpd.conf    ./httpd.conf

// 파일 확인
ls

// 파일 편집
vi httpd.conf

// 파일 내용 라인번호 부여
:se nu

// 기본포트 웹 브라우저
127.0.0.1:8099

// 아파치 데몬 재시작 
systemctl restart httpd

// 아파치 데몬 문법체크
httpd -t

// 포트번호,내용 변경
127.0.0.1:8088

  • 이미지 다운로드 후 현재 위치에 복사
// 이미지 경로 찾기
find / -name 파일명
EX) find / -name nya.jpg

// 현재 위치에 이미지 파일 복사
cp /home/korea/다운로드/nya.jpg ./nya.jpg

// 폴더 만들기
mkdir 폴더명
EX) mkdir img

// 현재 폴더에 이미지 이동하기
mv 파일 ./폴더명/
EX) mv *.jpg ./img/

  • 느낀점

오늘은 WMV 프로그램 fedora에서 C언어를 사용했다.
디렉토리를 만들고 수정하고 포트를 변경하여
웹에서 이미지를 띄우는 수업이었다.
수정하는 부분에서 기존 PHP와 다르게
간단하게 작성할 수 있었다.
기본 리눅스에 대한 지식도 같이 겸비하도록 해야겠다.

profile
Back-end Developer Preparation Students

0개의 댓글