학교/리눅스프로그래밍

\u : 사용자명 , \h : host 명에서 base 명 PS1 = "Love" 로 설정하면 커맨드창 왼쪽이 Love로 변경된다. 위 명령어 결과 이번에는 $ 로 변형하면 $로 변경된다. $OLD_PROMPT로 변경하면 원래 기본값으로 변경된다. PS1="\t"를 하면 현재 시간을 나타낸다. "\t\n$" 를 하면 시간과 그 다음 줄에 $를 표시한다. 이번에는 PS2=">>" 를 하고 ls \ 를 입력하면 PS2가 적용된다. env | more 명령을 입력할 때 명령의 대상을 찾는 경로 다음 명령을 통해 터미널 제목을 변경할 수 있다. 이 때 033 007은 8진수를 나타낸다. 다음 명령을 통해 글자 색을 바꿀 수도 있다. 다음 명령을 통해 원래의 글자색으로 돌아갈 수 있다.
w7 디렉터리 안에 make3 파일들을 복사해서 make4로 붙여넣기 Makefile 을 다음과 같이 수정 make clean 명령을 통해 목적코드와 실행파일을 지우고 make 명령어를 실행 ./diary 로 실행파일을 실행시키면 다음과 같은 결과가 나타남 which cc 명령 실행 다음 명령을 통해 cc 명령은 gcc와 링크되어있다는 걸 알 수 있음
w7 디렉터리를 만들고 w6에 있는 make2를 w7으로 옮기기 w7에서 make2를 복사해서 make3를 만들기 make -p 실행(내장 매크로를 볼 수 있음) ^는 맨 앞을 의미 맨 앞에 알파벳이 있고 = 앞에 스페이스가 있어도 되고 = 뒤에 스페이스가 있어도 된다는 의미 내장 매크로와 매크로가 겹칠 경우 가장 최근에 정의된 매크로에 의해서 프로그램이 실행된다. w7 디렉터리 안에 있는 make3 안에 Makefile 을 vi로 실행시킨다. Makefile을 위와 같이 수정한다. make clean 명령으로 목적파일과 실행파일을 지우고 다시 make 명령을 통해 컴파일 과정을 거치고 ./diary 명령을 통해 실행시킨다. 7-3 영상보고 과제(시험 지나고 다음주 보고서 제출)
w6 밑에 macro 디렉터리 생성 후 vi macro1 명령 실행 macro1 의 내용은 위와 같음 make -f macro1 실행하면 위와 같은 결과가 나옴 또 w6 디렉터리 밑에 macro 디렉터리 밑에 macro2 파일 생성 macro2 의 내용은 위와 같음 make -f macro2 를 실행하면 다음과 같이 출력됨 또 w6 디렉터리 밑에 macro 디렉터리 밑에 macro3 파일 생성 macro3 파일은 위와 같음 make -f macro3를 하면 다음과 같이 출력됨 macro3 를 위 화면처럼 변경하고 make -f macro3 를 실행하면 다음과 같은 결과가 뜬다. 다시 macro3를 위 화면처럼 수정하고 make -f macro3 를 하면 위와 같은 결과 출력된다. vi macro3 를 위..
w6 - diary 밑에 vi Makefile 을 한 뒤 위와 같은 코드 작성 그럼 다음과 같이 파일이 남게 된다. make 명령을 실행하면 다음과 같은 동작이 실행된다. ls -F 를 하고 ./diary 실행파일을 실행하면 다음 화면과 같다. 그 후 make 명령어를실행하면 위와 같이 "~할 일이 없습니다." 라고 뜬다. make clean 을 하면 rm -rf *.o diary 명령이 실행된다. 그 후 다시 make 명령을 치면 다시 다음과 같은 명령이 실행된다. touch memo.c 명령을 통해 memo.c의 시간 정보를 최신으로 변경시킨다. 그 후 make 명령을 치면 다음과 같은 명령이 실행된다. 그리고 main.c 의 시간 정보를 최신으로 변경하고 그러면 다음과 같은 명령이 실행된다. 그리고..
w4 디렉터리 밑에 foo.c 만들기 전처리기 처리를 위해 cpp -o foo.i foo.c 를 한다 gcc -S foo.i 를 통해 컴파일을 한다. 그러면 foo.s 파일과 a.out이라는 실행파일이 생긴다. cat foo.s 를 하면 위 같은 화면이 나타난다 다음과 같이 명령을 치면 에러가 안 나타난다. 다음과 같이 명령을 치면 에러가 안 나타난다. 이 때 -Wall 은 대부분의 일반적인 문제에 대해 경고를 출력한다. 다음과 같이 명령을 치면 에러가 출력된다. unsigned int 로 정의한 x 와 int 로 정의한 y 의 타입이 다르기 때문에 그렇다. w4 디렉터리 밑에 as -o foo.o foo.s 명령을 통해 어셈블리 코드(foo.s)를 목적 코드(foo.o)로 변환한다. 목적코드는 cat ..
명령 옵션 -D 를 사용하여 매크로를 정의할 수 있다. ex) cpp -DYAGE=20 -o like.i like.c w4 디렉터리 만들기 위 코드의 clear.c 파일 만들기 cpp -D __LINUX__ -o clear.i clear.c cat clear.i 하면 다음과 같은 결과가 나옴 cpp -D __WINDOWS__ -o clear.i clear.c 하면 다음과 같은 오류가 발생 따라서 다음과 같이 주석처리를 해준다음 cpp -D __WINDOWS__ -o clear.i clear.c 를 하고 cat clear.i 를 하면 다음과 같은 결과가 나타남 하고 cat debug.i 를 한 결과 다음과 같은 결과가 나타나게 된다.
w3 밑에 like 밑에 like.c like.h 만들기 gcc -v --save-temps -o like like.c 하면 like.i , like.o , like.s 나옴 like.i , like.s , like.o 삭제 후 like.c 에 include 삽입 cpp -o like.i like.c 하면 like.i 가 나옴 more like.i 해서 자세히 보기 기존에 있던 like 실행파일과 like.i 삭제 후 inc 디렉터리 생성후 밑에 mv like.h inc 명령어로 like.h 옮기기 cpp l-o like.i like.c 명령어 실행 cpp -I ./inc -o like.i like.c 명령어 실행 mv like.h ..명령어 실행 inc 안에 있던 like.h 를 like 디렉터리 안으..
C소스 전체 컴파일 과정 ●전처리 ●컴파일링 ●어셈블링 ●링킹 gcc란 GNU 프로젝트의 일환으로 만들어진 C컴파일러 전체 컴파일 과정 중요(시험 문제 가능성) 위의 4개의 c 파일과 헤더파일을 생성 후 gcc hello.c linux.c win32.c ./a.out mv hello.c hello mv linux.c hello mv hello.h hello mv win32.c hello 명령어로 hello 파일에 모두 옮겨줌
디렉터리는 /home 하위에 둠 ex) /home/mylinux cd / : 루트로 감 cd~ : 자기 홈으로 들어감 cd ~family : family 사용자 디렉터리로 감 ls -l /home : 홈디렉터리를 자세히 볼 수 있음 sudo su - : root 권한을 갖게 됨 cd ~donghun : donghun 이라는 사용자 디렉터리로 가게 됨 rmdir : 디렉터리 삭제 명령어 내부 파일이 있을 경우 삭제 불가 rm : 파일 삭제 명령 내부 파일이 있을 경우 삭제 불가 man 명령어 : 메뉴얼 표현 sudo dnf install gcc : gcc 컴파일러 설치 권한 x : 실행하는 권한 ./a.out : 컴파일된 c파일 실행 rm a.out : 실행파일 제거 gcc -o hello hello.c ..
공부 기록장
'학교/리눅스프로그래밍' 카테고리의 글 목록 (2 Page)