728x90

IP(Internet Protocol) 란?


사전적으로 인터넷 상에서 독립적으로 운영되고 있는 통신망들을 서로 연결하는 규칙입니다.

IP는 인터넷과 연결할 때의 고유 ID라고 생각하면 됩니다.

생활 예시로는 우리를 고유하게 나타내는 주민등록번호라고 생각할 수 있습니다.
동일한 주민등록번호가 존재한다면 우리나라에는 많은 혼란이 야기될 것 입니다.

이러한 현상을 방지하기 위해서 웹 에서는 유니크한 IP를 만들어 혼란을 방지하고 있습니다.

IP는 전 세계적으로 동일하게 컴퓨터 마다 IP주소를 부여 받아 사용합니다.
각 나라마다 나라의 공인기관에서 IP를 할당하고 관리합니다.

한국은 한국인터넷진흥원에서 할당 관리를 하며
이를 통신사가 받아 모뎀을 통해 PC에 IP를 할당해 줍니다.

 

 

 

IPv4 vs IPv6?

* IPv4

 

IPv4는 32비트의 값을 가지며, 각 숫자는 8비트씩 0~255의 10진수 숫자로 나타냅니다.
총 32비트의 정보를 가지고 약 40억개의 고유한 주소를 부여됩니다.

 

예) 211.111.111.111


하지만 (IETF:Internet Engineering Task Force)에서 2008 ~ 2011년 IP의 숫자가 부족하게 될거라는 예측이 나오면서 새로운 기술의 대한 요구가 나왔습니다. 이 후 IPv6가 나오게 되었습니다.

 

* IPv6

 

IPv6는 128비트 의 값을 가지며, 각 숫자는 16비트씩 8부분으로 나누어 16진수 숫자로 나타냅니다.

 

) 2005:230:aaaa:bbbb:1111:1111:cccc:1111

 

최대 1조개 이상(2^128)을 마련할 수 있는 점이 특징입니다. IPv6가 쓰이게 되면 많은 IP를 확보하게 되면서 전자제품의 일부 회로가 서로 다른 IP주소를 갖게 되며 무궁무진한 발전을 할 수 있게 될수 있는 발판을 마련해줬습니다.

 

또한 서비스에 따라 각기 다른 대역폭을 확보할 수 있도록 지원, 일정한 수준의 서비스 품질(QoS)을 요구하는 실시간 서비스를 더욱 쉽게 제공할 수 있고 인증, 데이터 무결성, 데이터 기밀성을 지원하도록 보안기능을 강화한 것이 IPv6입니다.

 

고정 IP vs 유동 IP

* 유동 IP

 

말 그대로 유동적인 IP라고 할 수 있습니다.

통신업체에서는 하루에도 많은 고객들이 해지하고 가입을 합니다. 그럴때마다 IP를 다시 분배하고 해지하는 것을 반복하는 낭비비용은 엄청 클 것 입니다. 이러한 낭비를 방지하기 위해 나타낸 유동IP는 IP주소 관리 방법이라고도 할 수 있습니다.

 

고객에게 분배해주는 IP를 고정IP로 주는 것이 아니라, 일정한 주기 또는 새로운 접속시마다 새로운 IP 즉 유동IP로 주는 것입니다.

 

* 고정 IP

 

고정 IP방식은 서버를 운영 목적으로 사용시에는 IP를 고정해야할 경우가 생기기 때문에 그럴 시에 사용하는 방법입니다. 

 

공인 IP vs 사설 IP

* 공인 IP

 

전 세계에서 유일한 IP인 공인 IP는 인터넷 상에 접속되어 고유한 주소를 가지게 됩니다.

다른 사람들이 그 주소로 찾아가며, 집으로 들어오는 공인 IP는 1개 입니다.

ISP에서 IP를 부여합니다.

 

* 사설 IP

 

장비만 있으면 어디서든 사용하는 사설 네트워크로 사설 IP를  사용가능하며

사설 IP는 네트워크 상에서 유일하며 공유기를 통해 부여됩니다.

클래스 주소 사용 처
A Class 10.0.0.1 ~ 126.255.255.255 로컬, 지역, 국가
B Class 127.0.0.1 ~ 191.255.255.255 회사, 공공기관
C Class 192.168.0.1 ~ 223.255.255.255
D Class 224.0.0.0 ~ 239.255.255.255 멀티캐스팅 용 주소 개인 및 단체 사용 x
E Class 240.0.0.0 ~ 255.255.255.255 연구 목적용 개인 및 단체 사용 x
반응형

'네트워크 > 기본용어' 카테고리의 다른 글

프록시(Proxy) 서버란? (프록시 서버 설정 및 해제)  (0) 2021.04.06
Yum 이란?  (0) 2021.03.11
728x90

우리는 리눅스 즉 서버에 대해서 이야기할 때 쉘이라는 말을 수도 없이 많이 들을 것입니다.

쉘 스크립트로 많은 리눅스 서버는 실행이 되고 활용이 됩니다. 또한 서버에 연동되어 사용되는 Jenkins 등 여러 페이지는 쉘 스크립트를 만들어 활용이 됩니다. 그렇다면 리눅스 프로그래밍에서 가장 기초인 쉘이란 무엇인지 알아보도록 하겠습니다.

쉘(Shell) 이란?

쉘은 리눅스에서 명령어와 프로그래밍을 실행할 때 사용되는 인터페이스입니다.

 

커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 합니다.

 

쉘 환경 화면(Putty)

 

리눅스 & 유닉스에서 많이 사용하는 주요 쉘 종류

구분 위치 비고
sh /bin/sh 대부분의 유닉스와 리눅스에 설치된 쉘
bash /bin/bash 리눅스의 기본 쉘, sh와 호환
ksh /bin/ksh 1980년대 벨 연구소에서 개발, 부동 소수점 계산 가능
csh /bin/csh C와 비슷한 스타일, 스크립트 작성 가능
tcsh /bin/tcsh csh에 커멘드 히스토리 등을 추가 기능 보완

쉘은 유닉스와 리눅스에서 지원하는 명령어들의 집합을 묶어 프로그램화합니다. 그래서 보통 프로그래밍 언어는

그 방식에 따라 컴파일과 인터프리터로 나누지만, 스크립트는 인터프리터 방식이라 각 언어별로 별도의 인터프리터가 존재합니다. 쉘은 쉘 자체 내의 인터프리터가 존재하기 때문에 별도로 설치할 필요가 없습니다.

 

쉘 스크립트 장점

쉘은 텍스트 기반 명령어로 이루어져 있기 때문에 강력한 리다이렉션 기능을 활용할 수 있습니다. 명령에 필요한 값을 받거나 또는 명령의 수행 결과를 파일이나 장비에 전송해 관리자가 원하는 형식의 결과로 재가공하거나 관리 절차는 자동화하는데 유용합니다.

 

* 리다이렉션(Redirection) 연산자 예시

 

리다이렉션 ">" 연산자로

파일이 존재하지 않으면 새로운 파일을 만들고, 같은 파일이 있으면 생성하여 hello.txt로 생성했고

cat을 통해 출력한 예시입니다.

 

 

* 좀 더 자세한 리다이렉션 참고자료

 

https://whitehats.tistory.com/37

장점 정리

 

1. 동일한 작업을 반복하거나 스케줄에 의한 자동화 구현 가능합니다.

 

2. 기본적인 명령어를 시스템 관리자만의 명령어로 보완해 제작, 즉 각 운영체제에서 기본적으로 제공하는 명령어에 따른 결과를 관리자가 원하는 결과로 재가공 가능합니다.

 

3. 특별한 툴 없이 개발 가능하며, 실행 속도가 빠릅니다. 대신에 쉘 스크립트 운영체제에 대한 이해가 선행되어야 합니다.

 

 

 

 

 

 

반응형
728x90

노련한 Linux 사용자가 되기 위해서는 리눅스(Linux) 명령어를 마스터하는 것은 필수적인 요소입니다.

 

모든 명령어를 암기하는 것은 힘들지만 많이 쓰이는 명령어는 필수적으로 알아야 된다고 생각하며 이 정도는 외워야 된다는 것들만

간추려고 포스팅 하게 되었습니다.

 

1. pwd

 

Print Work Directory

현재 사용자가 작업 중인 디렉토리를 보여줍니다.

사용자의 작업 위치를 알고 정확하게 작업을 할 수 있게 도와주는 역할을 합니다.

 

2. ls

 

List Segments

유닉스 세계에서 가장 유명한 명령어 중 하나 일 것입니다.현재 위치해 있는 곳의 파일, 디렉토리의 정보를 제공합니다. pwd와 함께 사용하면 파일의 위치 및 정보를 알아내는데 유용합니다.

 

ls -l 파일 상세정보 리스트로 표현
ls -a 숨어있는 파일들까지 리스트로 표현
ls -t 파일들을 생성된 순으로 리스트로 표현
ls -rt 파일들을 오래된 순으로 리스트로 표현
ls -F 파일을 표시할 때 마지막에 유형을 나타내는 파일명을 끝에 표현
ls -lrt 파일들의 상세정보, 오래된 순으로 리스트로 표현

 

 

3. cd

 

Change Directory

경로를 이동할 때 사용하는 명령어 입니다.

 

cd ~ 어느 곳에서든지 홈 디렉토리로 바로 이동
cd .. 상위 디렉토리로 이동
cd /dir 절대경로 dir로 이동
cd - 이동하기 직 전 디렉토리로 이동

 

4. touch

 

유효한 빈 파일을 작성하기 위한 명령어, 타임스탬프를 변경하기 위한 이동 명령어입니다.

터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 실시간으로 파일을 채울 수가 있습니다.

 

* fn = filename

touch fn fn 파일 생성
touch -c fn fn의 시간을 현재시간으로 변경
touch -t 날짜 fn fn의 시간을 날짜정보 (YYYYMMDDhhmm)로 변경
touch -r fn1 fn2 fn2의 날짜정보를 f1의 날짜정보와 같게 변경

 

5. cat

 

Catenate

여러 파일을 연결하기 위해 고안된 cat

 

* fn = filename

cat fn fn 내용 출력
cat fn1 fn2 fn1과 fn2의 내용을 이어서 출력
cat fn1 fn2 | more fn1과 fn2를 페이지 별로 출력
cat fn1 fn2 | head fn1과 fn2를 처음부터 10번째까지 출력
cat fn1 fn2 | tail fn1과 fn2를 끝에서 부터 10번째까지 출력

 

6. mkdir

 

Make Drirectory

새로운 디렉터리를 생성하는 명령어로 mkdir에 필요한 권한을 가지고 있다면 사용 가능합니다.

 

* dn  = dirname

 

mkdir dn 현재 디렉토리에 dn 디렉토리 생성
mkdir /dn /fnxm 디렉토리에 dn 디렉토리 생성
mkdir dn1 dn2 dn3 현재 디렉토리에 dn1, dn2, dn3 디렉토리 생성
mkdir dn1/dn2/dn3 현재 디렉토리에 dn1 생성, 그 하위에 dn2 생성, 그 하위에 dn3 생성

 

7. cp

 

Copy

파일을 복사하는 명령어입니다.

 

* fn = filename

* dir = directory

 

cp fn fn1 f을 f1 이라는 이름으로 복사
cp -f fn fn1 복사할 떄 복사대상이 있으면 지우고 강제 복사
cp -R dir dir1 디렉토리 복사, 폴더안의 모든 하위경로 파일도 복사

 

8. rm

 

Remove

파일 또는 디렉터리를 삭제할 때 사용하는 명령어입니다.

 

* fn  = filename

 

rm fn fn을 삭제
rm -f fn fn을 묻지 않고 삭제
rm -r dir dir을 삭제. 디렉토리는 -r 옵션 없이는 삭제 불가

 

9. mv

 

Move

파일 이동하는 명령어입니다. cp와 비슷하지만 다른 점은 cp는 파일을 복사하여 원본 파일이 남아있지만

mv는 원본 파일이 남아있지 않습니다.

 

* fn  = filename

 

mv fn fn1 fn의 파일을 fn1의 이름으로 이동 및 변경
mv -b fn fn1 fn1의 파일이 존재하면 백업 후 이동
mv -f fn fn1 fn1의 파일이 존재하면 백업 없이 덮어쓰기

 

10. less

 

텍스트 파일을 한 번에 한 화면씩 보여주는 터미널 페이지입니다. 기능적으로 more와 유사하나 파일의 앞쪽과

뒤쪽으로 이동할 수 있는 more의 개량형 명령어입니다. less 내부 명령어를 이용하여 문서를 자유롭게 볼 수가 있습니다.

 

* fn  = filename

 

less 내부 명령어

page up & b 한 페이지 위로
page down & 스페이스바 한 페이지 아래로
위쪽 방향키 한 줄 위로
아래쪽 방향키 한 줄 아래로
G 텍스트 파일의 맨 마지막으로 이동
1G 또는 g 텍스트 파일의 맨 처음으로 이동
/문자열 아래 방향으로 진행하여 입력된 문자열 찾기
n 이전 검색어의 다음 찾기
h 도움말 보기
q 프로그램 종료

 

Linux에서 주로 많이 쓰이는 총 10가지의 기본 명령어에 대해서 정리해봤습니다.

이것뿐만 아니라 많은 명령어가 있지만 이 10가지의 기본 명령어를 익힌다면 Linux 사용하는데

크게 어려움은 없지 않을까??라고 생각합니다.

 

글을 읽고 큰 도움이 되길 바랍니다.

반응형
728x90

PuTTY

PuTTY는 Simon Tatham이 개발한 오픈소스 터미널 에뮬레이터입니다.

 

개인 PC 운영체제에서도 서버로 접속할 수 있도록 물리적인 단말장비가 아닌 논리적인 가상 단말기를 제공됩니다.

접속 방식으로는 Telet, SSH, Rlogin 등 다양한 방법을 제공하는 무료 오픈소스 프로그램 중 하나가 PuTTY입니다.

 

PuTTY 접속 방법

 

1. 푸티를 사용하는데 필요한 설정 및 기능 목록

2. 원격 서버 IP

3. 원격 서버 PORT

4. 서버 설정을 저장해서 사용하는 목록

 

2번 밑에 ContentType 즉 서버 접속방식을 선택하고

알맞은 IP와 Port를 입력하고 Open 버튼을 누르면 서버 접속이 완료됩니다.

 

인증키가 있는 경우

 

접속을 눌렀는데 putty no supported authentication methods available public key라는 오류가 발생하게 되면

인증키가 필요하다는 겁니다.

 

 

1. 키에 발급된 인증키를 갖고 옵니다.

 

1을 작업을 실행하고 접속하면 정상적으로 실행됩니다.

 

참고로 Saved Session에 저장된 것으로 open을 시키려면 다시 저장을 시켜주고 접속을 해야 합니다.

반응형

+ Recent posts