9월, 2023의 게시물 표시

[Linux] Shell Variables - 지역 변수와 환경 변수

이미지
Shell Variables는 스크립트 작성에 있어서 필수적인 요소입니다. 변수는 크게 지역 변수(local variable)와 환경 변수(environment variable) 두 가지로 구분되며, 각각의 용도와 범위가 다릅니다. 이번 글에서는 이 두 변수의 차이점을 실제 예제를 통해 비교해 보겠습니다. Shell Variables - 지역 변수 지역 변수는 현재 쉘 또는 특정 스크립트 내에서만 유효한 변수 입니다. 이 변수는 해당 프로세스 내부에서만 사용 가능하며, 자식 프로세스에는 전달되지 않습니다 . 지역 변수 생성 및 확인 지역 변수는 리눅스 터미널에서 아래와 같이 간단히 정의할 수 있습니다. [root@rhel84 ~]# color=blue  이 경우 color 라는 변수에 blue 라는 값이 저장됩니다. 해당 변수는 현재 쉘 세션 내에서만 유효하며, 자식 프로세스에서는 사용할 수 없습니다. 다음으로, echo 명령어를 사용해 변수 값을 확인할 수 있습니다. [root@rhel84 ~]# echo $color blue 또한, 아래와 같은 스크립트를 생성해 자식 프로세스 내에서 변수 인식 여부를 테스트할 수 있습니다. [root@rhel84 ~]# cat color.sh #!/bin/bash echo $color [root@rhel84 ~]# sh color.sh [root@rhel84 ~]# echo $color blue 스크립트 내에서는 변수가 출력되지 않는 것을 확인할 수 있습니다. 이는 color 변수가 지역 변수이기 때문입니다. 지역 변수 확인 명령어 지역 변수는 set 명령어를 통해 확인할 수 있습니다. 이 명령어는 지역 변수와 환경 변수를 구분 없이 모두 출력 합니다. 아래 예제는 color 라는 지역 변수가 등록되어 있는지 확인하는 방법입니다. [root@rhel84 ~]# set | grep ^color= color=blue  환경 변수 - Shell Variables 환경 변수는 시스템 전체에서 사용 ...

[Linux] PATH 환경 변수(Environment Variables) 설정

이미지
  PATH Environment Variables는 명령어를 찾아주는 중요한 역할을 담당하고 있습니다. 이는 리눅스뿐만 아닌 윈도우에서도 명령어를 찾을 때 PATH Environment Variables를 이용합니다. PATH Environment Variables의 설정을 변경해 보면서 어떻게 동작하는지 알아보겠습니다. Environment Variables가 궁금하신 분들은 환경 변수 에서 확인하실 수 있습니다.   PATH Environment Variables & 명령어 PATH Environment Variables를 살펴보기 전에 리눅스에서 명령어를 어떻게 인식하는지 먼저 확인해 보겠습니다. 아래와 같이 date 명령어를 실행하면 현재 날짜가 출력됩니다. [root@server ~]# date Sat Sep 30 16:42:38 KST 2023 which 명령어는 실행 명령어의 전체 경로를 출력해 주는 도구입니다. 이를 통해 date 명령어가 어디에 위치하는지 확인할 수 있습니다. [root@server ~]# which date /usr/bin/date [root@server ~]# ll /usr/bin/date -rwxr-xr-x. 1 root root 108624 Apr 14 2020 /usr/bin/date date 명령어는 /usr/bin/date 에 위치하지만, 사용자는 전체 경로를 입력하지 않고도 어느 디렉터리에서든 명령을 실행할 수 있습니다. 이는 시스템이 PATH 환경 변수를 통해 명령어를 검색하기 때문입니다. [root@server tmp]# cd / [root@server /]# date Sat Sep 30 16:46:19 KST 2023 [root@server /]# cd /tmp [root@server tmp]# date Sat Sep 30 16:46:21 KST 2023 [root@server ~]# /usr/bin/date Sat Sep 30 16:46:25 KST 2023 이처럼 어...

[Linux] DNS 서버 구축 with bind

이미지
  리눅스에서 DNS(Domain Name System)의 개념과 구성 방법을 이해하고, BIND를 활용한 자체 DNS 서버 구축 실습을 진행합니다. DNS 란 네트워크에서 컴퓨터는 IP 주소를 기반으로 서로를 식별하고 통신합니다. 하지만 IP 주소는 숫자로 되어 있어 기억하거나 사용하기 불편합니다. 이를 해결하기 위해 DNS(Domain Name System)가 등장했습니다. DNS는 도메인 이름을 IP 주소로 변환하거나, 반대로 IP 주소를 도메인 이름으로 변환해주는 시스템입니다. 예를 들어 “naver.com”과 같은 도메인은 사람이 기억하기 쉬운 문자열이며, DNS는 이를 실제 통신에 사용되는 IP 주소로 바꿔주는 역할을 합니다. nslookup 명령어를 사용하면 도메인 이름을 DNS 서버에 질의하여 해당 IP 주소를 조회할 수 있습니다. 반대로 IP 주소를 입력해 도메인 이름을 확인하는 것도 가능합니다. 아래는 nslookup 명령어로 "naver.com"의 IP 주소를 조회하는 예입니다. 해당 질의에 응답한 DNS 서버의 IP는 “172.19.140.7”이며, 이 주소는 SKT에서 제공하는 DNS 서버입니다. 이처럼 통신사들은 자체적인 DNS 서버를 운영하고 있으며, DNS 서버는 인터넷 접속을 위한 필수 구성 요소입니다. 예를 들어 “kisa.or.kr”처럼 .kr로 끝나는 도메인 은 우리나라 국가 도메인입니다. .kr 도메인을 관리하는 DNS 서버가 여러 곳에 분산되어 있으며, 만약 이 서버들이 모두 중단된다면 .kr 도메인을 사용하는 웹사이트는 전혀 접근할 수 없게 됩니다 . 이런 이유로 주요 도메인에 대한 DNS 서버는 여러 위치에 분산 배치하여 안정적으로 운영 됩니다. <출처: https://krnic.kisa.or.kr/jsp/resources/dns/dnsInfo.jsp >   사용 가능한 외부 DNS 서버 주소 DNS 서버는 통신사뿐 아니라 다양한 기관에서도 운영 중입니다. 아래는 대표적인 외부 DNS ...