본문 바로가기
반응형

프로그래밍/리눅스34

|이 대체 뭐야? 리눅스(Linux) 파이프라인(Pipeline)을 알아보자 파이프라인(Pipeline)파이프라인은 리디렉션에서 한걸을 더 나아간 기능이다. 리디렉션이 프로세스 스트림과 파일 간의 상호작용이라면 파이프라인은 프로세스 스트림 간의 상호작용이다.파이프라인의 개념과 사용법어떤 작업을 하는데 여러 프로세스가 상호작용해야 하는 상황을 생각해 보자. 예를 들어, ls로 /etc 디렉터리의 파일 중 'corn'이라는 단어가 포함된 파일 목록을 조회해야 한다고 해보자. 리디렉션으로 이 작업을 수행하려면 어떻게 해야 할까? 일반적으로 임시 파일을 사용한다. ls 명령어로 /etc 디렉터리의 파일 목록을 조회해서 result 파일에 저장한다.$ ls /etc > result다음은 grep 명령어로 result 파일의 내용 중 'cron'이라는 단어가 포함된 파일 이름을 찾는다.$ .. 2025. 2. 9.
리눅스(Linux) 리디렉션(Redirection)을 알아보자 리디렉션(Redirection)리디렉션(redirection)의 사전적 의미는 '방향 전환'이다. '스트림을 리디렉션 한다'라고 하면 스트림을 어느 방향으로 보내는 것일까? 정답은 파일이다. 리눅스의 리디렉션은 스트림을 파일로 저장하거나 파일의 내용을 스트림으로 가져오는 것을 의미한다.출력 리디렉션(Output Redirection)출력 리디렉션은 프로세스의 출력 스트림을 파일로 출력하는 것을 의미한다. 프로세스의 표준 스트림 중 표준 출력과 표준 에러가 출력 스트림이므로 두 스트림을 파일로 리디렉션 할 수 있다. 표준 출력과 표준 에러 외에도 프로세스가 열어놓은 다른 스트림을 파일로 출력할 수 있다.표준 출력과 표준 에러 리디렉션 하기출력 리디렉션의 기본 형식은 다음과 같다.$ command [stre.. 2025. 2. 9.
리눅스(Linux) IPC의 종류에 대해서 알아보자 IPC(Inter-Process Communication)어떤 프로그램은 다른 프로그램과 상관없이 독립적으로 작동하고, 어떤 프로그램은 다른 프로그램과 상호작용하며 작동한다. 또 어떤 프로그램은 하나 이상의 프로세스를 실행하기도 한다. 여러 프로그램이 문제없이 작동하려면 프로세스 간 데이터 교환이나 이벤트 발생을 알릴 수단이 필요하다. 이렇게 프로세스 간 통신에 사용하는 도구를 IPC(Inter-Process Communication)라고 한다. 리눅스에서 제공하는 IPC의 종류와 특징에 대해서 알아보자.파이프(Pipe)파이프(pipe)는 두 프로세스 간 데이터를 전송할 떄 사용하는 IPC다. 파이프는 데이터를 단방향으로만 전송할 수 있다. 한 프로세스가 데이터를 파이프에 쓰면 다른 파이프가 파이프에서 .. 2025. 2. 4.
리눅스(Linux) 포어그라운드 프로세스와 백그라운드 프로세스 포어그라운드 프로세스와 백그라운드 프로세스리눅스는 프로세스를 실행하는 방식에 따라 포어그라운드(foreground) 프로세스와 백그라운드(background) 프로세스로 구분한다. 둘을 나누는 가장 큰 기준은 프로그램과 사용자 간 인터페이스이다.  셸은 한 프로그램을 실행하면 그 프로그램이 종료돼야 다음 명령을 실행한다. 실행 시간이 짧은 프로그램은 별다른 문제가 없다. 사용자와 상호작용이 필요한 프로그램도 문제없다. 하지만 사용자와 상호작용이 필요하지 않고, 실행 시간도 긴 프로그램이라면 어떨까? 셸은 해당 프로그램이 종료될 때까지 대기해야 한다. 그리고 프로그램이 종료되기 전까지 다른 작업을 수행하지 못한다. 포어그라운드 프로세스는 사용자와 상호작용이 기본이기 때문에 사용자 입력을 받을 수 있다. 사.. 2025. 2. 4.
리눅스(Linux) 프로세스의 작동 프로세스의 생애 주기(Process Life cycle)프로세스를 운영체제 안에서 살아가는 생물이라고 보면 이해라기 쉽다. 우리가 지구라는 환경에서 살아가듯 프로세스는 운영체제라는 세계 안에 존재한다. 어떤 종의 개체가 태어나고 죽듯이 프로그램이 실행되면 프로세스가 생성되고 소멸된다.현실 세계 : 컴퓨터 시스템지구 : 운영체제생물의 종류 : 프로그램의 종류생명의 탄생 : 프로세스의 생성생명의 죽음 : 프로세스의 소멸사용자가 계산기 프로그램을 켭니다. 프로그램이 실행되며 프로세스가 생성된다. 이 프로세스는 계산기 프로그램을 실행하는데 필요한 여러 정보를 관리하는 객체이다. CPU가 프로그램을 실행하려면 프로그램의 실행 코드가 메모리에 적재되어야 한다. 그리고 메모리에 적재된 코드 정보는 프로세스에 저장하고.. 2025. 1. 31.
리눅스(Linux) 소유권과 권한 소유권(Ownership)과 권한(Permission)리눅스에서 파일이 생성되면 루트 디렉터리 아래 어딘가에 존재하게 된다. 그런데 리눅스는 여러 사용자의 수많은 파일이 루트 디렉터리에서 시작된 하나의 트리 안에 혼재되어 있다. 파일의 위치나 디렉터리 이름 같은 정보로는 파일의 소유자를 판단할 수 없다. 그래서 리눅스의 모든 파일에는 소유권이 설정되어 있다.파일 소유권이란소유권(ownership)은 파일이 사용자의 소유임을 나타내는 속성이다. 파일이 생성되는 순간 파일을 생성한 사용자(user)와 그룹이 소유권을 가지도록 설정된다. '내 파일'도 있지만 '우리 파일'도 있다는 뜻이다. 파일 소유권은 ls 명령어를 통해서 확인할 수 있다.$ ls -l출력된 내용 중에서 살펴볼 부분은 세 번째와 네 번째 필.. 2025. 1. 28.