네트워크 (리눅스 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
#> #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
// 결과
여러분 환영합니다
// 순차적 출력(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와 다르게
간단하게 작성할 수 있었다.
기본 리눅스에 대한 지식도 같이 겸비하도록 해야겠다.