gcc로 컴파일하기
$ gcc -g -o <실행파일명> <소스파일명> ...
$ gcc -g -o hello hello.c
- 자주 사용되는 컴파일 옵션
- -g → gdb 디버깅 정보포함
- -I → include 경로
- -Wall → all warning enable
- -O → optimization for code ( = -O1)
- 참고
vi 명령어
vi 명령어 | 동작 |
i | 현재 커서 위치에 삽입 (입력모드로 넘어감) |
a | 현재 커서 바로 다음 위치에 삽입 (입력모드로 넘어감) |
o | 현재 줄 다음 위치에 삽입 (입력모드로 넘어감) |
x | 커서가 위치한 곳의 글자 1개 삭제. (5x : 문자 5개 삭제) |
dw | 커서가 위치한 곳에서 부터 단어 삭제 (커서가 위치한 곳 부터 띄어쓰기 까지) |
dd | 커서가 위치한 곳의 한 줄 삭제 (삭제이지만, p로 복구 가능) |
u | 방금 한 명령 취소 (ctrl + z 라고 생각하면 됩니다) |
yy | 현재 줄을 버퍼로 복사 (한 줄을 ctrl + c 한다고 생각하면 됩니다.) - 5줄 복사 : 5yy |
p | 현재 커서가 있는 줄 바로 아래에 버퍼 내용 붙여넣기 (이전에 복사한 줄을 현재 커서 아래부터 ctrl + v 한다고 생각하면 됩니다.) - 5dd를 이용해서 다섯줄을 지운 것도 p 한번으로 붙여넣기 가능 |
(N)dd | N 행 삭제 (삭제가 되는 것 처럼 보이지만 실제로는 버퍼에 들어가 있습니다. 버퍼에 들어가 있기 때문에 p를 이용해서 붙여넣기 가능) - 잘라내기 라고 생각하면 됩니다. (ctrl + x) |
k | 위로 (커서가 한 줄 위로 올라감.) |
j | 아래로 (커서가 한 줄 아래로 내려감) |
l | 오른쪽으로 (커서가 한칸 우측으로 감) |
h | 왼쪽으로 (커서가 한칸 좌측으로 감) |
0 | 커서가 있는 줄의 맨 앞으로 감 (home 키라고 생각하면 됩니다)- 숫자 0(영) 입니다. |
$ | 커서가 있는 줄의 맨 뒤로 감 (end 키라고 생각하면 됩니다) |
( | 현재 문장의 처음 |
) | 현재 문장의 끝 |
{ | 현재 문단의 처음 |
} | 현재 문단의 끝 |
숫자- | 숫자 만큼 윗 줄로 이동 |
숫자+ | 숫자 만큼 아래 줄로 이동 |
G | 파일의 끝으로 이동. 대문자로 사용해야합니다. (Shift + g) |
r | 한 문자 변경 |
cc | 커서가 있는 그 줄의 내용 변경 |
마지막 행 모드(last line mode)에서의 명령어들:
vi 명령어 | 동작 |
w | 현재 파일명으로 파일 저장. (저장만 함 꺼지지는 않음) |
w [파일명] | 입력한 파일명으로 파일 저장. (저장만 함 꺼지지는 않음) |
q | vi 종료 (저장되지 않음) |
q! | vi 강제 종료 ( ! 가 붙으면 강제로 수행) |
wq | 저장 후 종료 |
wq! | 강제 저장 후 종료 ( ! 가 붙으면 강제로 수행) |
f [파일명] | 파일이름을 [파일명]으로 변경 - 예시 : f abc.txt |
숫자 | 해당 라인으로 커서 |
https://blockdmask.tistory.com/25
이번 과제는 우분투 서버 환경에서의 개발을 경험해보라는 지시가 있었다.
근데 vi로 하기에는 ... 이미 IDE 환경에 익숙해진 몸..
그래서 VScode로 원격 편집하고, 파일을 저장하면 자동으로 우분투 서버에서도 동기화되도록 세팅을 했다.
그래도 양심상 make test는 우분투 서버에서 했다. 왜냐하면 코드 작성 자체는 편의성을 위해 IDE에서 한다고 쳐도, 구동은 서버에서 해야 EC2 인스턴스의 제한된 리소스 하에서 개발하는 거라고 할 수 있을테니까??
VScode에서 작업한 파일을 우분투 서버에 자동으로 올리기
- VScode에서 SFTP 익스텐션 설치
- 작업폴더 하위에 ".vscode" 폴더 생성
- 해당 폴더 하위에 "sftp.json" 파일 생성
- 내 정보 입력해주기
{
"name": "mytest",
"host": "10.10.10.10", // 서버IP
"protocol": "sftp",
"port": 22,
"username": "ubuntu", // 서버접속 계정명
"remotePath": "/home/ubuntu/mytest", // 서버에 파일이 위치할 폴더경로
"uploadOnSave": true,
"privateKeyPath": "/Users/hongildong/sshkey/mykey" // 키페어파일 경로
}
이렇게 하면, VScode에서 업데이트하여 저장한 파일이 우분투 서버에 자동으로 함께 업로드 된다.
vi 에디터로 파일보기
기본 터미널 상에서 직접 vi 에디터로 파일을 열람하고 싶다면 아래와 같이 하면 된다.
ubuntu@ip-172-31-9-21:~/week0406$ ls
RB_Tree testing testing.c testing.out
ubuntu@ip-172-31-9-21:~/week0406$ cd RB_Tree
ubuntu@ip-172-31-9-21:~/week0406/RB_Tree$ ls
README.md src test
ubuntu@ip-172-31-9-21:~/week0406/RB_Tree$ cd src
ubuntu@ip-172-31-9-21:~/week0406/RB_Tree/src$ ls
rbtree.c
ubuntu@ip-172-31-9-21:~/week0406/RB_Tree/src$ vi rbtree.c
vi 에디터를 실행하여 지정한 파일 내용을 읽을 수 있다.
다시 터미널로 나오기
':wq' 입력
VScode 터미널에서 원격 우분투 서버 연결하기
실행이든 디버깅이든 VScode내에서 전부 다 하고 싶다면 VScode 에서 "Remote-SSH" 익스텐션을 설치한다.
'프로그래밍 언어 > C' 카테고리의 다른 글
C 언어 | 구조체 (Structure, struct) (2) | 2023.11.04 |
---|