티스토리 뷰
기본 명령어
· su : Switch User
· sudo : SuperUser DO
- sudo [명령어] : superuser 권한으로 명령어 실행
- 설치 및 파일 수정할 때 superuser 권한이 필요
· sudo su : superuser 계정으로 전환
· whoami : 현재 사용자 확인
· exit : superuser 계정이었다면 이전의 계정으로 이동
· pwd : Print Working Directory, 현재 위치한 디렉토리를 보여줌
· sudo apt-get install [설치할 프로그램명]
- superuser 권한으로 설치
- 터미널 켰을 때나 설치 후에 한 번씩 sudo apt-get update 해주기
- 자매품으로 sudo apt-get upgrade도 있음
· cd : Change Directory 현재 위치에서 directory 이동
- 절대 경로 : cd /home/pinguser/test
- 상대 경로 : cd ./test
- . 현재 directory, .. 상위 directory
· ls : list, 현재 위치한 디렉토리의 내용 출력
- ls : 현재 위치한 디렉토리 명 출력
- ls -l : 자세하게 출력
- ls -a : 숨김 파일까지 출력
· cat : 파일의 내용 출력
- cat 파일명
· cp : copy, 복사
- cp [옮길 파일 위치] [복사 될(이동 될) 파일 위치] → test 디렉토리의 a.txt파일을 test1 디렉토리의 b.txt파일로 복사)
- cp /home/pinguser/test/a.txt /home/pinguser/test1/b.txt
· mv : move, 이동
- mv [파일명]
· rm : remove, 삭제
- rm [파일명]
· mkdir : make directory, 디렉토리 생성
- mkdir [생성할 디렉토리명]
· rmdir : remove directory, 디렉토리 삭제
- rmdir [삭제할 디렉토리명]
vi 명령어
- 입력 모드로 변경 - i 또는 a
- 명령어 모드로 변경 - esc
아래는 모두 명령어 모드에서 실행
- 왼쪽으로 이동 - h
- 오른쪽으로 이동 - l
- 아래로 이동 - j
- 위로 이동 - k
- 커서가 위치한 한 글자 삭제 - x
- 한 단어 삭제 - dw
- 한 줄 삭제 - dd
- n번째 줄 삭제 - ndd
- 검색 기능 - /내용
- 현재 줄 복사 - yy
- 붙여 넣기 - p
- 실행 취소 - u
편집 후 저장하기, 명령어 모드로 전환 후
- 저장하지 않고 종료 - :q! (이전의 내용을 수정한 후 q! 실행하면 수정 전 내용만 남게됨)
- 저장 후 종료 - :wq 또는 :ZZ
- 저장 - :w
GCC ( GNU Complier Collection )
전처리기 → 컴파일러 → 어셈블러 → 링
1. 전처리 단계 (Preprocessing)
소스 코드로 전처리 작업 수행, 전처리기는 ‘#include’, ‘#define’ 등과 같은 전처리 지시 문 처리 및 헤더파일 (ex. ) 포함하거나, 매크로 확장 결과물은 c코드로 나타남
2. 컴파일 단계 (Compilation)
컴파일러는 전처리된 코드를 받아서 어셈블리 코드로 변환, 코드의 문법적 오류 검사 및 중간 어셈블리 코드 생성
3. 어셈블 단계 (Assembly)
컴파일된 어셈블리 코드를 기계어 코드로 변환(이진 코드)
4. 링크 단계 (Linking)
여러 개의 오브젝트 파일과 라이브러리를 받아 하나의 실행 파일로 만듦, 오브젝트 파일 은 컴파일된 소스 코드를 나타내며, 라이브러리는 여러 함수 및 기능을 제공하는 코드의 모음 아래의 명령어는 컴파일된 example.o 오브젝트 파일을 링크하여 example 실행 파일을 생성함
gcc 컴파일러를 사용해 .c파일→ .exe파일로 변환하기
1. c 파일 작성하기
2. c 파일을 .exe 파일로 컴파일하기
gcc -o example.exe example.c
3. 컴파일된 .exe 파일 실행하기
./example.exe
GCC 명령어
· 출력 파일명 지정 : -o (오브젝트 파일)
- 예시 : gcc ping_hello.c -o ping_hello
· 디버깅 위한 정보를 컴파일 하며 생성 : - g
· 라이브러리 이름 지정 : - l
· 모든 에러 메시지 출력 : - W
'System Hacking' 카테고리의 다른 글
[프로젝트] 악성코드 - 웜 (0) | 2024.02.24 |
---|---|
x86 Assembly (2) (1) | 2024.02.17 |
x86 Assembly (1) (0) | 2024.01.28 |
리눅스 메모리 구조 (Linux Memory Layout) (0) | 2024.01.28 |
컴퓨터 구조 (Computer Architecture) (1) | 2024.01.28 |