[Network 이론] FTP(File Transfer Protocol)
FTP는 파일 전송 프로토콜(File Transfer Protocol)의 약자로, 리눅스에서 파일을 전송하기 위해 사용되는 표준 네트워크 프로토콜이다. FTP는 서버와 클라이언트 간의 데이터 통신을 허용하며, 파일을 업로드하고 다운로드할 수 있도록 해준다. FTP 클라이언트는 사용자 컴퓨터에서 작동하는 프로그램으로, 원격 컴퓨터와 통신하여 파일을 가져오거나 보낼 수 있다. FTP는 일반적으로 데스크탑 FTP 클라이언트를 사용하여 원격 서버에 연결하고 파일을 업로드하거나 다운로드한다. FTP는 사용자가 로그인하여 원격 시스템에 액세스하는 방법을 제공한다[1]. FTP 서버는 사용자가 파일을 저장하고 접근할 수 있도록 해주는 소프트웨어 응용 프로그램이다. FTP는 TCP/IP(Internet Protocol..
2023.03.11
[Linux 이론] 서버와 클라이언트(+ DHCP)
리눅스에서 서버와 클라이언트는 서로 통신하며 작업을 수행하는 시스템이다. 서버는 서비스를 제공하는 컴퓨터를 의미하며, 클라이언트는 서비스를 요청하는 컴퓨터를 의미한다. 클라이언트는 서버에게 요청을 보내고, 서버는 그 요청에 응답하여 요청된 서비스를 제공하며 이러한 구조를 클라이언트-서버 모델이라고 한다. 리눅스에서는 DHCP(Dynamic Host Configuration Protocol) 서버를 사용하여 클라이언트의 IP 주소를 할당할 수 있다. 또한 NFS(Network File System)를 사용하여 클라이언트가 서버에 저장된 파일에 접근할 수 있다. 서버는 주로 파일 서버, 인증 서버, 이메일 서버, 웹 서버 등으로 사용된다. 클라이언트는 이러한 서버에서 제공되는 서비스를 이용하는 것뿐만 아니라..
2023.03.11
[Storage 이론] 파티션
파티션은 하드디스크를 논리적으로 분할하여 사용하는 기능이다. 이는 하나의 하드디스크를 여러 개의 파티션으로 나누어 각각 운영 체제 또는 데이터를 저장하는 것이 가능하게 한다. 파티션을 사용하면 컴퓨터를 조작하는데 있어 다양한 이점이 있다. 파티션은 운영 체제 설치 시 유용하게 사용될 수 있다. 하나의 하드디스크에 여러 개의 파티션을 만들어 각각 다른 운영 체제를 설치하면, 하드디스크를 여러 개로 인식하여 각각 다른 운영 체제를 실행할 수 있다. 이러한 방식으로 하나의 컴퓨터에서 여러 개의 운영 체제를 실행할 수 있으며, 이는 개발자나 시스템 관리자 등에게 매우 유용하다. 또한, 파티션을 사용하면 데이터를 분리하여 저장할 수 있다. 예를 들어, 운영 체제와 프로그램 등을 한 파티션에 저장하고, 사용자 데이..
2023.03.11
[Linux 이론] foreground, background
리눅스에서 Foreground와 Background를 이해하는 것은 중요한 개념이다. 기본적으로 리눅스에서 프로그램을 실행하면 해당 프로세스는 유니크한 ID(PID)로 생성되며 Foreground에서 실행된다. Foreground 프로세스는 사용자와 스크린 및 키보드를 통해 통신할 수 있다. Background 프로세스는 터미널과 연결되지 않으므로 사용자와 통신할 수 없다. 그러나 다른 명령을 실행할 수 있다. Background에서 프로세스를 실행하는 것은 터미널을 해제하거나 SSH 세션을 종료해야 할 때 유용하다. 리눅스에서 Foreground와 Background 프로세스는 터미널과의 연결 여부에 따라 구분된다. 연결된 프로세스를 Foreground Job이라고 하며 연결되지 않은 프로세스를 Bac..
2023.03.11
[Network 이론] APIPA
APIPA는 Automatic Private IP Addressing(자동 개인 IP 주소 할당)의 약어로, Windows 운영체제 등에서 DHCP(Dynamic Host Configuration Protocol) 서버에 연결할 수 없을 때, 컴퓨터가 자동으로 IP 주소와 서브넷 마스크를 구성할 수 있는 기능을 말한다. 이는 Microsoft Windows에서 네트워크 관리 프로토콜인 DHCP를 지원하지 않거나 DHCP 서버가 사용할 수 없을 때 컴퓨터가 자동으로 IP 주소를 할당하게 된다. APIPA는 DHCP 서버의 장애를 대비한 기능으로, DHCP 서버가 작동하지 않아도 컴퓨터가 IP 주소를 얻을 수 있게 한다. 이러한 기능을 통해, 작은 규모의 LAN(Local Area Network)에서 구성과..
2023.03.11
[Linux 명령어] 레드햇 패키지 매니저 (rpm)
리눅스에서 RPM(Red Hat Package Manager)은 소프트웨어 패키지를 만들고 설치하고 검증하고 갱신하며 제거할 수 있는 패키지 관리자로 리눅스 시스템에서 사용되는 모든 소프트웨어를 설치 및 삭제, 업그레이드하는 관리 툴이다. RPM 패키지의 구성 요소는 패키지 이름, 버전, 릴리즈, 아키텍처로 이루어져 있으며, 예를 들어 "mysql-5.0.22-2.1.i386.rpm"과 같은 형식으로 구성되어 있다. RPM 패키지를 설치하면 파일의 의존성을 자동으로 해결해주므로 패키지 설치 과정이 간편해지며, 설치된 패키지 정보는 "rpm -qa" 명령어를 통해 확인할 수 있다. RPM 패키지와 다르게 소스 패키지는 일반적으로 설치 경로를 수동으로 지정하여 설치한다. 이로 인해 RPM 패키지와 소스 패키..
2023.03.11
반응형

FTP는 파일 전송 프로토콜(File Transfer Protocol)의 약자로, 리눅스에서 파일을 전송하기 위해 사용되는 표준 네트워크 프로토콜이다. FTP는 서버와 클라이언트 간의 데이터 통신을 허용하며, 파일을 업로드하고 다운로드할 수 있도록 해준다.

 

FTP 클라이언트는 사용자 컴퓨터에서 작동하는 프로그램으로, 원격 컴퓨터와 통신하여 파일을 가져오거나 보낼 수 있다. FTP는 일반적으로 데스크탑 FTP 클라이언트를 사용하여 원격 서버에 연결하고 파일을 업로드하거나 다운로드한다.

 

FTP는 사용자가 로그인하여 원격 시스템에 액세스하는 방법을 제공한다[1]. FTP 서버는 사용자가 파일을 저장하고 접근할 수 있도록 해주는 소프트웨어 응용 프로그램이다. FTP는 TCP/IP(Internet Protocol) 네트워크를 통해 컴퓨터 간에 파일을 전송하는 데 사용되며, FTP 서버를 사용하여 파일 전송을 수행할 수 있다.

 

FTP를 사용하려면 먼저 FTP 클라이언트와 FTP 서버가 필요하다. FTP 클라이언트를 사용하여 FTP 서버에 연결하고 파일을 전송할 수 있다. FTP 클라이언트는 명령어 집합으로 두 호스트 간의 연결을 설정하고 파일을 전송한 후 연결을 종료한다.

 

리눅스에서 FTP를 사용하려면 기본적으로 설치되어 있는 FTP 클라이언트를 사용하거나, 다른 FTP 클라이언트를 다운로드하여 설치할 수 있다. FTP 명령어는 다음에 실습 혹은 이론 정리를 통해 다시 정리하도록 하겠다.


참고문헌 : [1][2][3][4][5][6]

반응형
반응형

리눅스에서 서버와 클라이언트는 서로 통신하며 작업을 수행하는 시스템이다. 서버는 서비스를 제공하는 컴퓨터를 의미하며, 클라이언트는 서비스를 요청하는 컴퓨터를 의미한다. 클라이언트는 서버에게 요청을 보내고, 서버는 그 요청에 응답하여 요청된 서비스를 제공하며 이러한 구조를 클라이언트-서버 모델이라고 한다.

 

리눅스에서는 DHCP(Dynamic Host Configuration Protocol) 서버를 사용하여 클라이언트의 IP 주소를 할당할 수 있다. 또한 NFS(Network File System)를 사용하여 클라이언트가 서버에 저장된 파일에 접근할 수 있다.

 

서버는 주로 파일 서버, 인증 서버, 이메일 서버, 웹 서버 등으로 사용된다. 클라이언트는 이러한 서버에서 제공되는 서비스를 이용하는 것뿐만 아니라, 로컬 컴퓨터에서 다른 컴퓨터로 파일 전송, SSH 연결, 원격 데스크톱 등의 작업도 수행할 수 있다.


DHCP

DHCP(Dynamic Host Configuration Protocol)는 네트워크 내의 모든 호스트들에게 IP 주소를 동적으로 할당하는 프로토콜이다.

 

DHCP는 호스트들의 IP 주소 할당뿐만 아니라 서브넷 마스크, 게이트웨이, DNS 서버 정보 등을 자동으로 구성할 수 있으며, 네트워크 관리자가 중앙에서 네트워크를 구성하고 관리할 수 있도록 한다. DHCP를 사용하면 새로운 사용자의 쉬운 처리와 IP 주소의 재사용을 쉽게 할 수 있지만, IP 충돌 문제가 발생할 수 있다는 단점이 있다.

 

Linux에서 DHCP 서버를 설정하기 위해서는 일반적으로 dhcpd(DHCP Daemon) 패키지를 설치하고, 설정 파일을 수정한 후에 DHCP 서버를 시작하면 된다. DHCP 클라이언트를 구성하려면, dhclient 패키지를 사용하여 DHCP 서버에서 자동으로 IP 주소를 받아올 수 있다.

 

DORA 과정을 통해 DHCP 서버가 클라이언트에게 IP 주소를 할당하고, 클라이언트가 IP 주소를 요청하고 수락하는 과정에서 네트워크 상에서 다양한 메시지 교환을 수행한다.


참고 문헌 : [1][2][3][4][5][7][8][9][10][11][12][13][14][15][16]

반응형
반응형

파티션은 하드디스크를 논리적으로 분할하여 사용하는 기능이다. 이는 하나의 하드디스크를 여러 개의 파티션으로 나누어 각각 운영 체제 또는 데이터를 저장하는 것이 가능하게 한다. 파티션을 사용하면 컴퓨터를 조작하는데 있어 다양한 이점이 있다.

 

파티션은 운영 체제 설치 시 유용하게 사용될 수 있다. 하나의 하드디스크에 여러 개의 파티션을 만들어 각각 다른 운영 체제를 설치하면, 하드디스크를 여러 개로 인식하여 각각 다른 운영 체제를 실행할 수 있다. 이러한 방식으로 하나의 컴퓨터에서 여러 개의 운영 체제를 실행할 수 있으며, 이는 개발자나 시스템 관리자 등에게 매우 유용하다.

 

또한, 파티션을 사용하면 데이터를 분리하여 저장할 수 있다. 예를 들어, 운영 체제와 프로그램 등을 한 파티션에 저장하고, 사용자 데이터를 다른 파티션에 저장할 경우, 시스템 장애가 발생해도 사용자 데이터는 보존할 수 있으며, 복구에 용이하다. 또한, 파티션을 나누어 사용하면 파일 시스템이 보다 안정적으로 운영될 수 있다.

 

파티션에는 기본 파티션, 확장 또는 보조 파티션, 논리 파티션 등이 있으며, 각각의 파티션은 운영 체제 설치, 파일 시스템 생성, 데이터 저장 등에 활용된다. 파티션을 만드는 방법은 운영 체제별로 다를 수 있으며, Windows 운영 체제에서는 디스크 관리 도구를 이용하여 파티션을 생성하고 삭제할 수 있다.

 

리눅스에서는 파티션을 생성하려면 fdisk나 parted 같은 명령어를 사용한다. fdisk 명령어를 사용하여 파티션 생성 모드로 들어갈 수 있다. 이때 입력한 명령어는 " fdisk [디스크 패턴]" 이다.

 

parted 명령어를 사용하여 디스크에 파티션을 생성할 수도 있다. 예를 들면, "parted -a opt /dev/sda mkpart primary ext4 0 % 100 %" 명령어를 사용하면 디스크 전체를 하나의 파티션으로 나눌 수 있다. 명령어에 대한 실습은 차후 진행하도록 하겠다.

 

파티션 테이블은 디스크의 파티션 레이아웃을 설명한다. MBR(Master Boot Record)와 GPT(GUID Partition Table)가 있다. MBR은 오래된 표준이고, GPT는 최근에 나온 표준이다.

 

리눅스에서는 일반적으로 세 가지 파티션으로 나눈다. 시스템 파일을 보관하는 루트 디렉토리(/)를 포함하는 파티션, 사용자 구성 파일과 개인 데이터를 보관하는 /home 디렉토리를 포함하는 파티션, 그리고 스왑 파티션이 있다.


참고 문헌 : [1][2][3][4][5][6][7][8][9]

반응형
반응형

리눅스에서 Foreground와 Background를 이해하는 것은 중요한 개념이다. 기본적으로 리눅스에서 프로그램을 실행하면 해당 프로세스는 유니크한 ID(PID)로 생성되며 Foreground에서 실행된다. Foreground 프로세스는 사용자와 스크린 및 키보드를 통해 통신할 수 있다. Background 프로세스는 터미널과 연결되지 않으므로 사용자와 통신할 수 없다. 그러나 다른 명령을 실행할 수 있다. Background에서 프로세스를 실행하는 것은 터미널을 해제하거나 SSH 세션을 종료해야 할 때 유용하다. 

 

리눅스에서 Foreground와 Background 프로세스는 터미널과의 연결 여부에 따라 구분된다. 연결된 프로세스를 Foreground Job이라고 하며 연결되지 않은 프로세스를 Background Job이라고 하다. Foreground 프로세스는 사용자와 상호작용하며 Background 프로세스는 사용자와 상호작용하지 않다. 

 

Background 프로세스를 실행하면 해당 프로세스는 키보드 입력을 대기하며, 필요한 경우 기다릴 수 있다. Background에서 프로세스를 실행하는 장점은 프로세스가 완료되기를 기다리지 않고 다른 명령을 실행할 수 있다는 것이다. 


foreground

리눅스에서 'foreground'란 용어는 사용자가 직접 터미널과 상호작용할 수 있는 프로세스를 의미한다.  즉, 사용자가 명령을 실행하면 해당 프로세스는 기본적으로 foreground에서 실행되며, 해당 프로세스의 작업이 완료될 때까지는 터미널을 사용할 수 없다. 그러나 프로세스를 중지하거나 종료하면 터미널에 다시 액세스할 수 있다.

 

프로세스가 foreground에서 실행되면 키보드로부터 입력을 받아들이고 스크린에 출력을 보낼 수 있지만,  만약 foreground 프로세스가 종료되지 않고 계속 실행되면 해당 터미널에서는 다른 작업을 수행할 수 없다.

 

리눅스에서는 background에서 실행하는 것이 필요한 경우가 있다.  이 경우, 프로세스는 터미널과 분리되어 실행된다. 이렇게 실행되는 경우, 프로세스는 사용자와 상호작용하지 않고 자신이 할 일을 마치면 종료된다.

 

fg 명령어는 현재 백그라운드로 실행중인 작업을 다시 포그라운드로 전환할 때 사용한다. 이때, 실행중인 백그라운드 작업의 PID(Process ID)를 확인한 뒤, 해당 PID 앞에 %를 붙여 명령어를 입력하다. 예를 들어, 현재 백그라운드에서 실행중인 작업의 PID가 1234라면, 다음과 같이 명령어를 입력한다.

 

fg %1234

background

리눅스에서 백그라운드(background)란 사용자와 상호작용 없이 터미널에서 실행되는 프로세스이다. 터미널을 사용하여 명령이나 프로세스를 백그라운드에서 실행하면 터미널을 계속해서 사용할 수 있다.

 

백그라운드에서 실행된 프로세스는 쉘 세션이 종료되어도 계속해서 실행될 수 있다. 백그라운드에서 실행 중인 작업을 확인하려면 "jobs" 명령어를 사용한다.

jobs (옵션x)

사용자가 키보드 입력을 요구하는 프로세스는 백그라운드에서 실행되지 않고 대기한다. 리눅스에서 백그라운드에서 실행되는 대표적인 프로세스로는 웹 서버인 Apache나 Nginx 등이 있다. 백그라운드에서 명령어나 프로세스를 실행하려면 명령어나 프로세스 뒤에 "&" 기호를 붙이다.

명령어 &

참고 문헌 : [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]

 

반응형
반응형

APIPA는 Automatic Private IP Addressing(자동 개인 IP 주소 할당)의 약어로, Windows 운영체제 등에서 DHCP(Dynamic Host Configuration Protocol) 서버에 연결할 수 없을 때, 컴퓨터가 자동으로 IP 주소와 서브넷 마스크를 구성할 수 있는 기능을 말한다.

 

이는 Microsoft Windows에서 네트워크 관리 프로토콜인 DHCP를 지원하지 않거나 DHCP 서버가 사용할 수 없을 때 컴퓨터가 자동으로 IP 주소를 할당하게 된다. APIPA는 DHCP 서버의 장애를 대비한 기능으로, DHCP 서버가 작동하지 않아도 컴퓨터가 IP 주소를 얻을 수 있게 한다. 이러한 기능을 통해, 작은 규모의 LAN(Local Area Network)에서 구성과 지원을 더욱 쉽게 할 수 있다.

 

APIPA는 Microsoft Windows 운영체제에 내장된 기능으로, DHCP 서버의 불가능성이나 사용 불가능성 등의 경우에도 컴퓨터가 IP 주소를 수동으로 구성하지 않고 자동으로 할당할 수 있게 해준다. APIPA는 Link-local address와 비슷한 개념이며, DHCP, DNS 또는 수동 IP 설정과 별도의 구성이 필요하지 않으며 컴퓨터나 하드웨어를 연결하고 즉시 작동할 수 있도록 해준다.


참고 문헌 : [1][2][3][4][5]

반응형

'Network > Network 이론' 카테고리의 다른 글

[Network 이론] DNS와 DNSSEC  (0) 2023.03.11
[Network 이론] FTP(File Transfer Protocol)  (0) 2023.03.11
[Network] 라우터 트렁크 모드란?  (0) 2023.03.05
[Network] 라우팅 프로토콜  (0) 2023.03.03
[Network] Super Netting  (0) 2023.03.03
반응형

리눅스에서 RPM(Red Hat Package Manager)은 소프트웨어 패키지를 만들고 설치하고 검증하고 갱신하며 제거할 수 있는 패키지 관리자로 리눅스 시스템에서 사용되는 모든 소프트웨어를 설치 및 삭제, 업그레이드하는 관리 툴이다.

 

RPM 패키지의 구성 요소는 패키지 이름, 버전, 릴리즈, 아키텍처로 이루어져 있으며, 예를 들어 "mysql-5.0.22-2.1.i386.rpm"과 같은 형식으로 구성되어 있다. RPM 패키지를 설치하면 파일의 의존성을 자동으로 해결해주므로 패키지 설치 과정이 간편해지며, 설치된 패키지 정보는 "rpm -qa" 명령어를 통해 확인할 수 있다.

 

RPM 패키지와 다르게 소스 패키지는 일반적으로 설치 경로를 수동으로 지정하여 설치한다. 이로 인해 RPM 패키지와 소스 패키지를 동일한 서버에 설치할 수 있지만, 같은 80 포트를 점유하기 때문에 동시에 하나만 열 수 있다. RPM 패키지를 설치할 때는 "rpm -i 패키지명" 혹은 "rpm -Uvh 패키지명" 명령어를 사용하며, 설치된 패키지는 "rpm -qi 설치된패키지명" 명령어를 통해 확인할 수 있다 .

 

RPM은 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제공한다. 이러한 설치파일의 확장명은 *.rpm이며, 이를 패키지라고 부르기도 한다. RPM을 사용하면 각 패키지의 필요 요소를 전부 따로 다운로드해야 하는 번거로움이 있다. 또한 RPM의 문제점으로는 의존성을 들 수 있는데, 예를들면 페도라의 기본 웹 브라우저인 Firefox는 X윈도우에서 가동된다면, X윈도우가 설치 되지 않는 상태에서 Firefox를 설치하면 설치가 되지 않다.


옵션

RPM 패키지는 rpm 명령어나 yum 명령어를 통해 설치 가능하다. 주요 4개 명령어에 대해서는 설치, 업그레이드, 삭제, 정보 확인이 있다. RPM 설치 관련 옵션은 다양하다. 예를들어 설치 관련 옵션 중 -i(--install)은 패키지 설치 시엔 -i 옵션을 사용한다. v(verbose), h 등의 옵션과 함께 사용 가능하다.

 

RPM 명령어의 사용법은 설치 모드, 갱신 모드, 제거 모드, 질의 모드, 검증 모드 등이 있다. RPM의 주요 기능 중 하나는 패키지 설치 및 업그레이드이며, 이 기능을 위해 i와 U 옵션을 사용한다.

 

rpm (옵션) (패키지명)

설치 관련 옵션

  • -i(--install) : 패키지를 설치할 때 사용하는 옵션입니다. v, h 옵션과 함께 사용 가능하다.
  • v (verbose) : 설치 시 상세 내용을 함께 출력한다.
  • h (hash marks) : 설치 시 진행 상황을 #으로 표시한다.
  • 예시 : rpm -ivh [패키지명]

업그레이드 관련 옵션

  • -U(--upgrade) : 기존에 설치된 패키지를 업그레이드할 때 사용하는 옵션이다. v, h 옵션과 함께 사용 가능하다.
  • 예시 : rpm -Uvh [패키지명]

삭제 관련 옵션

  • -e(--erase) : 패키지를 삭제할 때 사용하는 옵션이다. --nodeps 옵션과 함께 사용 가능하다.
  • --nodeps : 의존성 무시하고 강제로 삭제한다.
  • 예시 : rpm -e [패키지명]

정보 확인 관련 옵션

  • -q(--query) : 패키지 정보를 확인할 때 사용하는 옵션입니다. i, p, l, c, d 옵션과 함께 사용 가능하다.
  • i (info) : 패키지 정보를 출력한다.
  • p (provides) : 패키지가 제공하는 파일 목록을 출력한다.
  • l (list) : 패키지에 포함된 파일 목록을 출력한다.
  • c (changelog) : 패키지의 변경 내용을 출력한다.
  • d (docfiles) : 패키지 설치 시 생성되는 문서 파일 목록을 출력한다.
  • 예시 : rpm -qi [패키지명]

의존성 문제

 

의존성 문제가 발생하면 해당 패키지를 설치할 수 없다. 따라서 이를 해결하기 위해서는 필요한 라이브러리나 패키지를 먼저 설치해야 한다. 의존성을 확인하는 방법으로는 다음과 같은 방법들이 있다.

  • Shell 접속하여 bash 명령어로 $ rpm -qR [라이브러리명] 을 입력한다. 해당 라이브러리가 의존하는 다른 라이브러리나 패키지들을 확인할 수 있다.
  • 아래 사이트에서 라이브러리 검색 후 Requires 부분을 확인하여 의존성을 확인할 수 있다. [https://centos.pkgs.org/7/centos-x86_64/ CentOS 7 - CentOS x86_64 centos.pkgs.org]
  • rpm 명령어중 -qR 옵션은 현재 패키지가 의존하고 있는 패키지 목록을 보여준다. 

의존성 문제가 발생한 경우에는 다음과 같은 방법으로 해결할 수 있다.

  • 의존하는 패키지를 먼저 설치한다.
  • rpm 명령어에 --nodeps 옵션을 추가하여 의존성 문제를 무시하고 강제로 패키지를 설치한다.
  • yum을 사용하여 의존성 문제를 해결합니다. yum은 자동으로 의존하는 패키지를 설치한다. 

참고 문헌 : [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18]

반응형