IP 설정 변경
IP 변경
# ip addr change/delete [ip/mask] dev [NIC]
- 영구 설정 아님
- change는 add와 동일함으로 기존 IP는 del 해야 한다.
- 이거 쓰면 ip가 추가가 된다, 지우려면 delete
예)
# ip addr change 192.168.11.21/24 dev ens224
Gateway 변경
# ip route [add|del|change] default via [gateway ip] dev [NIC]
• 영구적인 설정이 아님
예)
# ip route change default via 192.168.11.245 dev ens224
Local DNS 변경
• /etc/resolv.conf 파일 수정
- 수정하면 바로 적용된다.
지금쓰는 명령어는 리부팅하면 다 날라갑니다...
위에 명령어로 ip바꿔보기 실습.
ip a show ens224 | grep ens224
ip a change 192.168.11.156/24 dev ens224
ip a show ens224 | grep ens224
ip a del 192.168.11.157 dev ens224 ip a del 192.168.11.157/24 dev ens224
ip a show ens224 | grep ens224
ip link set ens224 down && ip link set ens224 up ← 껏다가 키면
ip a show ens224 | grep ens224 ← 파일에 저장한것이 아니기때문에 원래 설정으로 돌아감
디폴트 게이트웨이 바꿔보기
[root@Linux156 ~]# ip route change default via 192.168.10.254 dev ens160
RTNETLINK answers: No such file or directory
이런 오류가 뜰건데 이유는
작업하는 내용과 작업한 내용이, 커널이 확인했을때 이상하기 떄문에 안할꺼라는 뜻입니다.
change명령에서만 이런 현상이 일어납니다.
(네트워크상에는 254가 없는거 같은데 왜 이렇게 바꿔?? 나 안할꺼야!)
IP 설정 변경 : 항구적 변경
시스템 설정을 바꾸는것은 보통 systemctl많이 사용함
/etc/sysconfig/network-scripts/ifcfg-NIC 파일 편집 (살아있는동안에는 절대 건들지 않기)
- 네트워크 재 시작이 필요하다.
- 기존 ip는 직접 삭제해야 한다.
- 이런 불편은 nmtui나 nmcli등을 이용하면 해소할 수 있다.
네트워크 재시작
# systemctl restart NetworkManager.service
Hostname 변경
# hostnamectl set-hostname [호스트명]
• shell 재시작 필요 : # exec bash 또는 exec $SHELL
밑에 방법이 가장 일반적으로 바꾸는법
실습
ip link set ens224 down && ip link set ens224하면 설정이 초기화된것을 볼수 있습니다.
Warning: Executing wildcard deletion to stay compatible with old scripts. Explicitly specify the prefix length (192.168.11.156/32) to avoid this warning. This special behaviour is likely to disappear in further releases, fix your scripts!
이런 경고가 나왔는데 제가 뒤에 /24(cidr)를 붙히지 않아서 일어난 오류인거 같습니다.
이 특별한 자동 처리(wildcard)는 앞으로 사라질 예정이라고 합니다.
ARP
전체 ARP 테이블 확인 | ip neighbor show | ip n |
특정 인터페이스의 ARP 테이블 확인 | ip n show dev [NIC] |
특정 IP의 ARP 정보 확인 | ip n show [IP] |
ARP 엔트리 수동 추가 | ip n add [IP] lladdr [MAC] dev [NIC] |
특정 ARP 엔트리 삭제 | ip n del [IP] dev [NIC] |
ARP 테이블 초기화 | ip n flush all |
특정 인터페이스의 ARP 테이블 초기화 | ip n flush dev [NIC] |
arp 스푸핑때문에 mac주소를 강제로 입력하는 경우도 있다.
예시)
# ip n show 192.168.11.1
# ip n show dev ens224
# ip n add 192.168.11.200 lladdr 00:1c:2d:3e:4f:5g dev ens224
# ip n del 192.168.11.100 dev ens224
# ip n flush dev ens224
REACHABLE : 최근 패킷 전송, 상대와 통신 가능
STALE : MAC은 존재, 일정 시간 동안 통신 없음
DELAY : 응답 대기 중 (5초)
PROBE : ARP 요청을 보내는 중
FAILED : ARP 응답을 받지 못함
PERMANENT : 직접 입력됨
arp 테이블 수동으로 조작
ip n
ip n add 192.168.10.1 lladdr 58:86:94:49:b7:3c dev ens160
ip n del 192.168.10.1 dev ens160
ip n add 192.168.10.1 lladdr 58:86:94:49:b7:3c dev ens160
ip n
ip n flush all
ip n
이미 arp가 있으니까 add로 추가 등록하기 실패
삭제 후 수동으로 등록하면 PERMANENT로 상태가 바뀜.
재시작하면 PERMANENT초기화 됩니다.(리부팅전까지는 지워지지 않습니다.)
ip n del 192.168.10.1 dev ens160 ← 완전 삭제 방법
리눅스 복제(clone)
스냅샵으로 돌려도 용량이 줄어들지는 않는다
클론을 만드는 이유
- 리눅스를 맨날 깔아서 쓰는게 귀찮음.
- 시스템을 백업하는 목적으로
- 등..
새로운 리눅스 다운로드!
기존에 있던 리눅스를 지우고 새로 다시 다운로드 합니다.
기존 디스크를 지우고, 새로운 디스크(Sata)50G, ip는 156, bridge로 설정하고 만들어줍니다.
이제 이 리눅스가지고 클론을 만들어 사용할것입니다.
이제 리눅스를 처음 실행했을때 해줄 명령어를 입력해줄것입니다.
rm -f /etc/issue.d/cockpit.issue
rm -f /etc/motd.d/cockpit
vi /etc/selinux/config
ㄴ SELINUX=disabled
systemctl disable firewalld.service
systemctl stop firewalld.service
(확인하기)
ifconfig
netstat -nr
cat /etc/resolv.conf
systemctl is-enabled firewalld.service
systemctl is-active firewalld.service
sestatus
압축해서 파일을 가지고있으면 이제 들고다니면서 사용할수 있습니다.
이제 만든 가상머신을 클론을 사용해서 계속 만들것입니다.
클론은 원래 기존 가상머신과 mac주소가 같기때문에 꼭 제너레이트 해주셔야 합니다.
/etc/hosts
C:\Windows\System32\drivers\etc
ㄴ 윈도우에서의 /etc/hosts
DNS 서버 없이도 로컬에서 도메인 이름을 특정 IP로 해석가능합니다.
PHP
switch 문
- Switch 문은 값이 일치하는 case 절을 실행하기 위한 분기문
switch (변수 또는 수식) {
case 값1 :
문장1;
문장2;
...
break;
case 값2 :
문장1;
문장2;
...
break;
...
default :
문장1;
문장2; ...
}
- Switch문은 조건을 판별하는 것이 아니라 변수 또는 수식의 값을 판별해서 일치하는 case절
- Case 값에는 변수가 올 수 없습니다.
- Case 값에는 변수 이외 제약 사항이 없습니다.
- 실수, 문자 등 다양한 값이 가능
- break;를 쓰지 않으면 이하의 모든 실행문이 실행됩니다.
- break; 문은 제어문이나 순환문으로부터 탈출합니다.
- 일치하는 값이 없을 경우 default에 정의된 문장을 실행하고 switch문이 종료합니다.
실습
<html>
<head>
<title>입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post" action="02_11.php">
학년을 입력하세요(예 1,2) : <input type="text" name="syear"><br>
<input type="submit" name="확인" value="확인">
</form>
</body>
</html>
<?
$syear = $_POST["syear"];
switch ($syear) {
case 1:
echo("당신은 {$syear} 학년입니다.");
break;
case 2:
echo("당신은 2 학년입니다.");
break;
case 3:
echo("당신은 3 학년입니다.");
break;
case 4:
echo("당신은 4 학년입니다.");
break;
default :
echo("학년을 잘못 입력했습니다.");
}
?>
<?
echo("<br><hr><br>");
show_source(__FILE__);
?>
ceil = 지정된 값보다 큰 정수를 출력해주는 것.
ceil(0.1) = 1
ceil(0.9) = 1
ceil(1.2) = 2
$sal = 90
ceil($sal/100) → ceil(90/100) → ceil(0.9) = 1
실습
급여계산 프로그램 2-4.html
<html>
<head>
<title>2-3.html 급여 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<form method="post" action="2-4.php">
현재 급여를 입력 하세요 : <input type="text" name="sal">만원<br>
<input type="submit" name="확인" value="확인">
<input type="reset" name="취소" value="취소"><br>
</form>
</html>
2-4.php
<?
$sal = $_POST["sal"];
$con = ceil($sal/100);
switch ($con){
case 1:
$sal = round($sal*1.15);
echo(" 당신의 내년 급여는 15% 인상된 {$sal}만원입니다.");
break;
case 2:
$sal = round($sal*1.1);
if ($sal >= 115)
echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
else
echo(" 당신의 내년 급여는 115만원입니다.");
break;
case 3:
$sal = round($sal*1.05);
if ($sal >= 220)
echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
else
echo(" 당신의 내년 급여는 220만원입니다.");
break;
case 4:
$sal = round($sal*1.02);
if ($sal >= 315) // 3 등급 인상 후 최대 급여 315만원
echo(" 당신의 내년 급여는 10% 인상된 {$sal}만원입니다.");
else
echo(" 당신의 내년 급여는 315만원입니다.");
break;
default :
if ($sal >= 408) // 2 등급 인상 후 최대 급여 408만원
echo(" 당신의 내년 급여는 동결된 {$sal}만원입니다.");
else
echo(" 당신의 내년 급여는 408만원입니다.");
}
?>
<?
echo("<br><hr><br>");
show_source(__FILE__);
?>
ceil는 실무에서도 많이 사용되니까 잘 알아두면 좋습니다.
반복문
- 조건에 일치하는 동안 실행부를 반복적으로 실행하도록 하는 문법 요소
while (조건) {
실행문;
}
- 조건이 참인 동안 실행문이 반복되어 실행된다.
- 반복을 벗어나기 위해서는 실행문내에 조건을 변경하거나 break문이 필요하다.
- 조건에 변화가 없으면 무한 반복된다.
- 조건은 실행문이 반복될 때 마다 반복해서 실행된다.
반복문은 항상 4가지 요소를 가집니다.
- 초기식
- 조건
- 명령문
- 증감식
실습
sum.html
<html>
<head>
<title>3-1.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<form method="post" action="sum.php">
1보다 큰 값을 입력하세요 : <input type="text" name="num"><br>
<input type="submit" name="확인" value="확인">
<input type="reset" name="취소" value="취소"><br>
</form>
<hr>
</html>
sum.php
<?
$num = $_POST["num"];
$a = 1 ;
if($num > 1) {
while($a <= $num) {
echo" {$a}";
$a++;
}
}
else echo("입력 값이 올바르지 않습니다.");
echo("<hr>");
show_source(__FILE__);
?>
'kh교육' 카테고리의 다른 글
(20250723020)프로세스&RPM, OSPF (3) | 2025.07.23 |
---|---|
(20250722019)라우팅정보 추가/삭제,nat구성 (1) | 2025.07.22 |
(20250717017)네트워크 설정 확인,변경 & Default router (4) | 2025.07.17 |
(20250716016)파티션&정적 라우팅, Default 라우팅, 동적 라우팅 (1) | 2025.07.16 |
(20250715015)파티션 (0) | 2025.07.15 |