SYSDATE 함수 SYSDATE는 지정된 형식으로 현재 날짜와 시간을 표시하는 함수이다. SELECT SYSDATE FROM DUAL; 위와 같은 방식으로 사용할 수 있다. 사용환경에 따라 결괏값은 다르겠지만 보통 일-월-년도와 같이 출력된다. 날짜 포맷 정하기 TO_CHAR() 함수를 통하여 SYSDATE의 포맷을 원하는 대로 정할 수 있다. SELECT TO_CHAR(SYSDATE, 'YYYY') as "연도" , TO_CHAR(SYSDATE, 'MM') as "월" , TO_CHAR(SYSDATE, 'DD') as "일" , TO_CHAR(SYSDATE, 'HH24') as "시간" , TO_CHAR(SYSDATE, 'MI') as "분" , TO_CHAR(SYSDATE, 'SS') as "초" ..
Makefile이란? make 프로그램이란? 리눅스에서 Makefile은 소스 파일들을 쉽게 빌드할 수 있도록 돕는 make 프로그램의 설정 파일이다. [그림 1]과 같이 여러 개의 헤더 파일과 소스 파일을 빌드한다고 하자. 각 파일의 내용은 아래와 같다. hello.h void hello(); hello.c #include void hello() { printf("hello "); } world.h void world(); world.c #include void world() { printf("world\n"); } main.c #include "hello.h" #include "world.h" int main() { hello(); world(); return 0; } 이 헤더 파일과 소스 파일들을 ..
vi 편집기(vi editor)란? vi 편집기는 리눅스에서 기본으로 제공하는 문서 편집기이다. 다양한 명령어와 단축키를 지원하기 때문에 제대로 익힌다면 문서 작업의 효율성을 높일 수 있다. vi 편집기를 업그레이드 한 vim(vi improved) 에디터가 있는데, 근래 리눅스에서는 기본으로 vim 에디터를 적용하고 있다. 따라서 vi 명령어를 실행하면 기본적으로 vim 에디터를 실행하므로 vi와 vim 편집기를 구분하지 않고 vi라고 부르겠다. vi 초기 설정하기 vi는 편리한 도구이지만 그대로 사용하기에는 불편한 부분이 많다. 따라서 초기설정을 해주는 게 좋다. vi의 설정은 홈디렉토리(~)에서 .vimrc 파일을 변경하여 진행할 수 있다. 하지만 처음에는 .vimrc 라는 파일이 없기 때문에 만들..
GCC란? GCC는 GNU 컴파일러 모음(GNU Compiler Collection)이다. GNU는 운영 체제의 하나이자 컴퓨터 소프트웨어의 모음집이다.(참고1) 현재 대부분 GNU와 LINUX를 결합하여 사용하기 때문에 이 조합을 짧게 "Linux"라고 부르는 경우가 많다. 즉, GCC는 리눅스에서 사용하는 컴파일러 모음이라고 생각해도 무방하겠다. GCC는 한때 C언어만을 지원했지만 현재는 C++, JAVA, 포트란 등 다양한 언어를 컴파일 할 수 있도록 지원한다. 컴파일러에 대해 잘 모른다면 다음을 참고하자. 참고) [프로그래밍 언어론] 컴파일러와 인터프리터의 차이점 컴파일러(Compiler)란? 컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 ..
동시성(Concurrency)이란? 컴퓨터공학에서 동시성이란 여러 작업이 순서에 상관없이 동시에 진행되는 것을 뜻한다. 하지만 여기서 동시에 진행된다는 것은 실제로 여러 작업이 동시에 동작하고 있다는 뜻은 아니다. 여러 작업이 동시에 실행되고 있는 것처럼 보이는 것이다. CPU는 빠른 문맥 교환(context switch)을 통해 여러 작업이 동시에 실행되는 것처럼 보이게 할 수 있다. 실제로는 A라는 작업을 하다가 B작업을 하는 것이지만, 마치 A와 B가 같이 실행되는 것처럼 보이는 것이다. 이것을 동시성이라고 한다. 요리사가 어떤 요리를 한다고 하자. 이 때 재료도 썰고 냄비의 내용물이 타지 않게 저어주기도 한다고 하자. 요리사는 몸이 두 개가 아니기 때문에 실제로 동시에 재료를 썰면서 냄비의 내용물..
tar 명령어와 gz 파일 리눅스에서 tar 명령어를 사용하면 파일들을 아카이브(archive)로 압축할 수 있다. 하지만 정확히 말하면 압축(compress)하는 것이라기 보단 여러 파일을 하나의 파일(아카이브)로 묶는 것이다. 이렇게 tar 명령어로 파일들을 묶으면 기존 파일들의 속성, 심볼릭 링크, 디렉토리 구조 등이 변경되지 않고 유지된다. 따라서 파일의 크기도 줄어들지 않고 그대로 반영된다. 반면 gz파일은 파일들을 압축하기 때문에 파일의 용량이 줄어든다. gz 파일을 gzip 명령어를 이용해 압축할 수도 있고 tar 명령어에서 -z 옵션을 이용해 압축할 수도 있다. 리눅스를 사용하다보면 ~.tar.gz 와 같은 확장자의 파일을 볼 수 있다. 이것은 tar 명령어로 파일들을 묶고 gz 파일로 압..
touch 명령어 리눅스에서 touch 명령어를 사용하면 빈 파일을 생성하거나 파일의 여러 가지 시간을 수정할 수 있다. $ touch [옵션] [파일명] 위와 같이 사용할 수 있다. 만약 [파일명]이 존재하지 않는다면 용량이 0인 빈 파일을 생성한다. [파일명]이 존재한다면 파일의 시간을 수정한다. 이때 별도의 옵션을 설정하지 않으면 atime, mtime이 변경된다. 참고) 리눅스의 atime, ctime, mtime 설명 atime : 최종 접근 시간 (File Access Time)으로 파일에 마지막으로 접근한 시간을 뜻한다. ctime : 최종 변경 시간(File Change Time)으로 inode가 변경될 때(파일 권한 수정, 파일 소유자 변경, 하드 링크 생성 등 파일의 속성이 변할 때) ..
man 명령어 리눅스에서 man 명령어는 manual의 줄임말로 말 그대로 매뉴얼을 확인하는 명령어이다. 리눅스마스터 같은 리눅스 관련 자격증 시험을 볼 때 명령어의 자세한 사용법을 man 명령어로 확인할 수 있으니 미리 숙지해 두는 게 좋다. $ man [옵션] [섹션] [키워드] 기본적인 사용법은 위와 같다. 자주 사용하는 옵션 -k : apropos에 해당하는 매뉴얼의 내용을 출력. apropos란 완전히 일치하지 않아도 대략적으로 비슷한 단어를 뜻한다. 예를 들어 mount의 apropos는 amount, mounted, mounts 등이 있다. -f : 키워드와 완전히 일치하는 매뉴얼의 내용을 출력 -a : 매치되는 모든 매뉴얼 페이지를 출력 -s, -S : 특정 섹션 번호를 지정하여 출력 -w..
심볼릭 링크(symbolic link)란? 심볼릭 링크는 절대 경로 또는 상대 경로의 형태로 된 다른 파일이나 디렉터리에 대한 참조를 포함하고 있는 특별한 종류의 파일이다. -위키백과- 심볼릭 링크는 쉽게 말해 윈도우의 '바로가기'와 비슷한 역할을 한다고 볼 수 있다. 특정 파일 혹은 디렉토리를 가리키는 링크라고 봐도 무방하다. 즉 심볼릭 링크는 원본 파일을 가리키는 포인터와 같은 존재로, 심볼릭 링크로 파일을 수정해도 원본 파일이 수정되는 것을 확인할 수 있다. 심볼릭 링크 만들기 $ ln -s [원본 경로] [링크 경로] 심볼릭 링크는 위와 같이 만들 수 있다. hello.txt라는 파일의 심볼릭 링크로 link.txt라는 파일을 만들었다. 파일 목록을 보면 link.txt -> hello.txt의 ..
date 명령어 date 명령어를 사용하면 시스템 날짜 및 시간을 확인 할 수 있다. $ date [옵션] [+포맷] 기본적으로 위와 같이 사용할 수 있다. 옵션 없이 사용하면 기본적으로 locale을 기준으로 날짜가 출력된다. 예를 들어 locale이 한국이라면 한국 시간을 기준으로 출력된다. date 명령어는 포맷을 지정해 원하는 형식으로 날짜를 출력할 수 있다. 자주 사용하는 포맷을 정리하면 다음과 같다. %a : Sun, Mon와 같은 요일 약어 %A : Sunday와 같은 요일 전체 이름 %b : Jan, Feb 와 같은 달 약어 %B : January와 같은 달 전체 이름 %d : 일 %D: mm/dd/yy (달/일/년도) %F : yyyy-mm-dd %H : 시간(24시 기준) %l : 시간..