목록전체 글 (281)
내 잡다한 노트
esc키를 누르고 :을 입력해 명령어 모드로 진입해야한다. /검색할 문자열 ====> 현재 커서 아래로 검색 /는 현재 커서를 기준으로 아래로 해당 문자열을 찾는다. ?검색할 문자열 =====> 현재 커서 위로 검색 ?는 현재 커서를 기준으로 위 방향으로 해당 문자열을 찾는다. 만약 파일 속에 해당 문자열이 여러개가 있다면 n, N을 활용할 수 있다. n은 다음 찾기, N은 이전 찾기. 문자열 부분에 정규 표현식을 사용할 수도 있다.
다른 브랜치에서 했던 작업과 합치는 명령어 # merge를 하는 방법 1. Fast-Forward 2. 3-way Fast-Forward 빨리 감기라는 뜻. 분기가 발생한 이후로 다른 한 브랜치에 작업이 없는 경우 3 - way 분기 이후에 두 브랜치 모두 변경이 발생한 경우에 merge 하는 방법 변경의 기준이 3개이기 때문에 3-way라고 불린다. main 브랜치 위에서 다른 브랜치를 merge하면 된다. 어쩌면 하다가 conflict 라는 문제가 발생할 수 있다. 이것은 같은 위치를 수정한 경우에 merge를 하면 충돌이 발생하게 된다. 이와 같은 경우, 개발자가 충돌이 발생한 경우를 직접 수정하여 해결해야한다. # merge의 종류 merge squash and merge rebase and me..
gcc 리눅스 환경에서 컴파일을 실행할 수 있는 툴 컴파일에 필요한 전처리기, 컴파일러, 어셈블러, 링커를 호출 gcc [-옵션] 옵션 내용 사용법 -o 출력할 파일명을 지정 gcc -o (출력파일) (컴파일 할 파일들) -c 링크를 하지 않음 gcc - c (컴파일 할 파일) 오브젝트 파일을 출력 Make Make를 쓰는 이유 - 각 파일에 대한 반복적 명령의 자동화로 인한 효율성 증가 - 프로그램의 종속 구조를 빠르게 파악할 수 있으며 관리가 용이하다. - 많은 c소스들중에 하나를 수정해도 make를 하면 전체 재 컴파일을 할 수 있다. vi Makefile 로 파일을 만든다. make 구성 - 목적파일(Target) : 명령어가 수행되어 나온 결과를 저장할 파일 (목적 or 실행파일) - 의존성(D..
각 지역별로 리전이 있고 가용영역들이 존재한다. 리전에 속해있지 않은 IAM, Amazon CloudFront. 리전안에 있지만 가용영역에는 속해있지 않은 vpc, S3가 존재하고, 가용영역에는 RDS와 EC2가 있다. 리전이란 전세계에 분포돼있다. 리전은 AWS의 서비스가 제공되는 서버의 물리적 위치이다. 각 리전에는 고유의 코드가 부여된다. 예시로 서울 리전은 ap-northeast-2 이다. 리전별로 가능한 서비스가 다르다. 리전을 선택할 때 고려할 점 1. 지연속도 2. 법률(데이터, 서비스 제공 관련) 3. 사용 가능한 AWS 서비스 가용영역(Availability Zone) 리전의 하부 단위. 하나의 리전은 반드시 2개 이상의 가용영역으로 구성. 간단하게 생각하면 데이터 센터라고 생각하면 된다..
SSH (Secure SHell) 일반적으로 서버 및 기타 네트워크 장치의 원격 관리에 사용된다. SSH를 통해 사용자는 원격 장치에 안전하게 로그인하고 장치의 물리적 콘솔에 앉아 있는 것처럼 명령을 실행할 수 있다. 이를 통해, 인터넷 연결이 있는 한 전 세계 어디서나 원격 장치를 관리할 수 있다. ssh는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다. 기본적으로 CLI 상에서 작업을 하며 기본 포트는 22번이다. 서버에 접속할 때 비밀번호 대신 KEY를 제출하는 방식이다. 공개 키 암호화를 사용하여 클라이언트와 서버를 인증하고 보안 연결을 설정하는 방식으로 작동한다.
fork() 부모 프로세스가 자식 프로세스를 만드는 시스템 콜. 자식 프로세스는 부모 프로세스의 데이터를 모두 복사해서 가지고 있는다. fork가 실행된 이후부터 자식 프로세스는 실행을 하게 된다. 리턴값으로 pid가 나오는데 이때 0이면 자식프로세스이고 0보다 크다면 부모 프로세스이다. 헤더 파일은 함수 원형 : pid_t fork(void) // pid도 pid_t로 선언해야함. exec () 이 시스템콜을 호출한 현재 프로세스 공간의 TEXT, DATA, BSS 영역을 새로운 프로세스의 이미지로 덮어씌운다. 별도의 프로세스 공간을 만들지 않는다. 이 말이 뭐냐면 프로세스 안에서 exec() 실행을 하면 새로운 프로세스를 만드는게 아니라 현재 만들어진 exec 인자에 들어가 존재하는 프로그램 실행 파..
# memset : memory setting. 즉, 메모리를 (특정 값으로) 세팅한다. 이 함수는 메모리의 내용을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수이다. 헤더파일은 memory.h 또는 string.h 둘 중 아무거나 void* memset (void* ptr, int value, size_t num) 첫번째 인자 *ptr은 세팅하고자 하는 메모리의 시작 주소. 포인터가 위치하는 자리 두번째 인자 value는 메모리에 세팅하고자 하는 값을 넣는다. 세번째 인자는 길이를 뜻하고 바이트 단위이다. 보통, 길이 * sizeof(데이터타입) 의 형태로 작성. 리턴값은 성공하면 ptr을 반환, 실패하면 null을 반환 ex) 문자 배열 변경, 배열 초기화 주의점) 0과 char 타입이 아닌 값을..
# sudo 명령어 일반 사용자가 root 권한을 사용하기 위한 명령어 /etc/sudoers 에서 허가된 사용자만 사용 가능 # apt-get 우분투, 데비안 계열 리눅스의 패키지 관리 도구 ex) apt-get install : 패키지를 설치한다. apt-get remove apt-get update : 패키지 정보를 업데이트 apt-get upgrade : 모든 패키지를 최신 버전으로 업데이트 비슷한 명령어로 apt가 있다. apt가 더 사용하기 좋다고 함. 같은 기능을 제공한다. apt-get과 명령어가 똑같다. apt install [패] # clear 터미널 화면 초기화 # ls [-option] 경로 내 파일 및 디렉토리 목록 확인 (LiSt) -l 옵션 : 상세 정보를 출력 -a 옵션 : ..