반응형
0. 들어가기 전에, 표준 입출력에 대해서 리눅스에서 cat 같은 명령어를 실행하면 자동으로 표준 입출력 채널이 열려 동작한다. 여기서 표준 입출력 채널은 아래의 세 채널을 합쳐서 말한다. 입출력 채널 내용 예 숫자 표준 입력(stdin) 데이터를 입력하는 채널 키보드 입력, 파일 입력 등 0 표준 출력(stdout) 실행 결과가 출력되는 채널 디스플레이 출력, 파일 출력 등 1 표준 에러 출력(stderr) 실행 중 발생하는 에러 메시지가 출력되는 채널 디스플레이 출력, 파일 출력 등 2 리눅스에서는 명령어의 입출력을 표준입출력으로 추상화하고 있다. 그래서 명령어 내부에서는 실제 입출력이 어디에 연결되는지 신경쓰지 않으며 사용자가 명령어를 실행할 때 자유롭게 지정할 수 있다. 1. 리다이렉션 (Redi..
1. 프로세스 명령어들의 실체는 디스크에 있는 실행 파일이다. 셸에서 명령어를 입력하면 커널이 해당하는 명령어 파일을 읽어 메모리에 올려 CPU가 프로그램을 실행시킨다. 이 때 메모리 위에 올린 프로그램을 프로세스라 한다. 같 은 프로그램을 실행하더라도 각 프로세스는 별도의 메모리 영역을 가지며, 파일의 소유자에따라 권한이 제한되는것 처럼 프로세스를 실행한 사용자에게 권한이 주어진다. 리눅스 커널은 각각의 프로세스에게 프로세스 ID 라는 고유한 번호를 할당해서 관리한다. 리눅스에서 새로운 프로세스는 기존에 존재하는 별도의 프로세스를 기반으로 만들어진다. 여기서 새로운 프로세스를 만드는 프로세스를 부모 프로세스라고 하며, 새롭게 만들어지는 프로세스를 자식 프로세스라고 한다. 예를들어 셸에서 ls 명령어를 ..
0. 리눅스의 텍스트 에디터에 대해서 리눅스에서는 설정 파일 등 많은 파일에서 텍스트 파일이 이용된다. 예를들어 맥에서 java 환경변수를 설정할 때도 필요하며, apache(아파치)의 설정 파일, 배시(bash) 설정 파일 등이 있다. 이 때문에 리눅스를 이용한다면 텍스트 편집기를 이용할 수 있어야 한다. 윈도우에는 메모장이 있고, macOS 에는 텍스트 편집기가 있듯이 리눅스에도 텍스트 에디터가 존재한다. 여러 종류가 있지만 대부분의 리눅스 배포판에 기본으로 설치되어 있어 실질적인 리눅스 표준 에디터라 보는 Vim이 있다. 참고로 이외에도 Emacs 라는 텍스트 에디터도 존재한다. Vim 은 GUI로 직관적으로 사용할 수 있는 윈도우의 메모장이나 맥OS의 텍스트 편집기와는 달라서 특별한 조작법을 익혀..
1. find : 디렉토리 트리에서 파일 검색 ◼︎ 파일 검색 find 를 기점으로 을 만족하는 파일들을 찾아 을 실행한다. 에 아무런 조건도 지정하지 않으면 지정한 디렉토리 안의 모든 파일과 디렉토리를 대상으로 이 실행된다. (예제) 현재 디렉토리 (.) 를 기점으로 file-A.txt 라는 파일을 찾아 경로를 출력하는 예이다. -name file-A.txt 가 검색조건에 해당하며, -print 는 액션을 의미한다. 참고로 액션부분을 생략하면 -print가 기본적으로 사용된다. $ find . -name file-A.txt -print 다음과 같이 테스트용 파일을 생성한 후 find 명령어로 file-A.txt 파일만 찾아 경로를 출력해보았다. 즉, find 명령어는 지정한 디렉토리 트리를 기점부터 내..
1. 리눅스의 디렉토리 구조 다음은 일반적인 리눅스의 디렉토리 구조를 표현한 것이다. 가장 최상단에 위치한 / 디렉토리를 루트(root) 디렉토리라고 한다. 모든 파일과 디렉토리의 부모이다. 이와같이 루트 디렉토리 아래에 파일과 디렉토리가 있는 계층 구조를 트리구조 라고 한다. 2. 윈도우와의 차이 윈도우도 리눅스와 비슷하게 디렉토리 트리 구조를 가진다. 하지만 윈도우에서는 물리디스크가 2개 있다면 디렉토리 트리도 2개가 된다. 하지만 리눅스에서는 항상 시스템 전체에 단 하나의 트리만 가진다. 리눅스에서는 디스크가 여러개 있다면 루트디렉토리 어딘가에 연결되어(마운트) 루트는 1개를 가진다. 3. 디렉토리의 역할 디렉토리 구조는 배포버전마다 차이가 있다. 그러므로 대부분 공통적으로 사용되는 대표적인 디렉토..