본문 바로가기
리눅스 마스터

리눅스 마스터 13

by 윤라경 2024. 8. 3.

[2024.08.03]

 

[리눅스 네트워크]

 

> 인터페이스 정보 확인

[root@localhost ~]# ifconfig

 

> 인터페이스 활성화/비활성화

[root@localhost ~]# ifconfig ens160 [up/down]

 

> IP 주소 설정

[root@localhost ~]# ifconfig ens160 192.168.217.128/24

 

 

 

01. 고정 IP 설정

 

> 설정 파일 및 경로

/etc/NetworkManager/system-connections/ens160.nmconnection 파일

 

[ipv4]

method=[auto/manual]

address1=192.168.10.100/24,192.168.10.2

dns=8.8.8.8;

 

#systemctl restart NetworkManager

 

*192.168.10.100의 경우 10 자리는 VM에서 NAT에서 설정된 값으로 진행시켜야 된다

 

 

 

먼저 고정 IP를 설정하기 위해서는 해당 경로로 이동하여

ens160.nmconnection이라는 파일을 실행한다

 

 

method를 auto로 되어 있는 부분에서 manual로 수정시킨다

그런 다음 IP 주소와 DNS까지 설정 후 저장하면 고정 IP 값이 설정된다

현재 두 개의 Rocky Linux를 설치한 상태로 두 개의 리눅스의 고정 IP 설정을 진행했다

 

*uuid의 경우 인터페이스 아이디를 뜻한다

 

 

[셸(Shell)]

 

> 명령어 해석기, 프로그램 언어

 

> 환경 설정 파일

/etc/bashrc

 

01. 셸 변수 기호

 

₩u: 사용자명

₩h: 호스트명

₩W: 최종 디렉터리 표시

₩w: 전체 경로 표시

₩t: 24시간제 표시

₩T: 12시간제

₩d: 날짜 표시

₩@: 오전/오후 표시

 

 

 

먼저 셸의 변수 기호에 대해 알아보기 위해

/etc/bashrc라는 파일을 실행시켰다

먼저 43번 줄의 PS1="[\u@\h \w] 부분에서 소문자 w를 대문자 W로 변경시킨다

 

 

그런 다음 로그아웃 후 다시 접속 시 최종 디렉터리가 표시된다

 

 

또한 d 옵셔을 주게 되면 앞부분에 날짜가 표시된다

 

 

소문자 t를 넣게 되면 24시간제로 시간이 표시된다

 

 

대문자 T의 경우 12시간제로 시간이 표시되는 걸 확인할 수 있다

 

 

@ 해당 골뱅이 표시의 경우 오전/오후 표시를 할 수 있다

 

 

home의 test 디렉터리에서 실행하고자 한다면,

ls -al로 숨김 파일 목록을 확인한 후 .bashrc에서 수정을 진행하면 된다

 

 

02. 별칭(alias)

 

#alias [별칭]=[실행 명령어]

 

> /etc/bashrc

#alias 1='ls -l'

 

 

 

이번에는 별칭으로 alias를 진행시켰는데,

셸에서 alias 1='ls -l'을 입력하게 될 시

1을 입력하기만 해도 디렉터리 및 파일 목록을 확인할 수 있게 된다

 

 

alias만 입력 시 사용할 수 있는 명령어들이 몇 가지 나온다

 

 

하지만 셸에서 할 경우 로그아웃 후 다시 재로그인 시에는 사용할 수 없으며,

지속적으로 이용할 경우 반드시 환경 설정 파일인 bashrc 파일에 입력해야 된다

 

 

환경 설정 파일에서 지우게 되면 1을 입력해도 더이상 alias가 실행되지 않는다

 

 

03. 셸 변경

 

1) 명령어

#chsh

 

2) 편집기

 

 

 

셸 변경은 chsh를 입력 후 변경할 셸을 입력해 주면 된다

현재 화면에서 /bin/sh로 변경해 주었기 때문에

 

 

/etc/passwd 파일에 들어가서 확인 시 /bin/bash였던 셸이

/bin/sh로 변경되어 있는 걸 확인할 수 있다

 

 

04. 셸 환경 변수 출력

 

#env

#set

#declear

#printenv

 

 

 

 

[프로세스 명령어]

 

01. ps

 

> 프로세스 상태 확인

#ps [옵션]

 

<옵션>

-a: 모든 프로세스 출력

-u: 사용자명

-x: 터미널과 관련 없는 프로세스 출력

 

 

 

기본적으로 ps를 실행시키면 프로세스 상태를 확인할 수 있다

 

 

기본 상태에서 옵션을 더해 실행시키게 되면 그에 맞게 출력된다

현재는 -a 옵션으로 모든 프로세스를 출력시켰다

 

 

 

user까지 출력되는 화면

 

 

1번이 최상위 프로세서로 PID를 확인할 수 있고,

STAT는 프로세서 상태, 언제 시작됐는지의 START 시간, TIME은 누적된 시간으로 볼 수 있다

 

 

aux에서는 ppid가 나오지 않으며, ef 명령어에서는 ppid가 나오게 되면서

각자 옵션의 미묘한 차이가 있다

 

 

grep으로 httpd의 ps 상태만 확인할 수도 있다

 

 

02. pstree

 

> 프로세스 상태를 계층적으로 출력

 

#pstree [옵션]

 

<옵션>

-p: PID 출력

 

 

 

 

03. top

 

> 실시간으로 프로세스 상태 출력

 

 

 

VIRT 실제 메모리, RES 가상 메모리

 

 

04. 프로세스 우선 순위 변경

 

1) nice [옵션] [설정 값] [프로그램명]

> 프로그램 실행 시 우선 순위 값 지정

 

> nice 값 범위: -20 ~ +19

#nice --10 top

 

2) renice

> 실행 중인 프로세스의 우선 순위 값 변경

 

> nice 값 범위: -20 ~ +19

#renice [옵션] [설저 값] [프로세스 ID]

 

#renice -10 PID

 

*nice에서의 --10은 일반 10이지만, renice에서 -10은 실제 마이너스 값이다

 

 

 

pr이 우선 순위이며, pr을 바꿈으로써 ni 값이 변경된다

 

 

#nice -10 top의 명령어로 +10으로 설정 시 pr 값이 30으로 올라가면서

우선 순위가 내려가는 것을 확인할 수 있다

 

 

우선 순위가 내려간 상태에서

 

 

renice 명령어로 -10을 top와 PID를 확인 후에 실행시킨다

 

 

실행시키고 난 후에는 30과 10이었던 PR, NI 값이 10과 -10으로 변경된 걸 확인할 수 있다

 

 

05. 프로세스 상태 메시지

 

> D: 디스크 입출력 대기

> R: 실행 중

> S: 짧은 시간 Sleep 상태

> Z: 좀비 프로세스

> T: 정지

 

 

06. 프로세스 종료

 

1) kill

#kill [옵션(시그널)] [PID]

 

#kill -9 1234

 

<옵션>

-l: 시그널 목록 출력

 

2) killall

#killall [옵션(시그널)] [프로세스명]

 

#killall -9 httpd

 

[프로세스 시그널 종류]

 

*파란색으로 밑줄 그어 놓은 것이 중요

 

 

현재 PID가 37678인 bash를 kill 명령어를 사용해 종료시켜 보려고 한다

 

 

누르고 다시 ps -aux를 실행하여 봤을 때 해당 번호의 bash는 사라지고,

kill 명령어를 입력한 셸 창도 사라지게 된다

결국 실행하고 있던 셸이 37678번의 bash였던 걸 알 수 있다

 

 

이번에는 37862번의 bash에 kill을 실행시킨다

 

 

그렇게 되면 ps를 확인하던 셸 창이 없어지게 되는 걸 실시간으로 확인할 수 있다

 

 

확인했을 때 httpd의 사용이 많은 걸 볼 수 있다

 

 

killall을 사용할 때에도 httpd와 같이 프로세스명을 입력하고

 

 

다시 확인하게 되면 httpd의 프로세스가 모두 종료된 상태인 것을 확인할 수 있다

 

 

[Linux Server]

 

01. 원격 접속

 

1) Telnet

> 설치

 

<서버>

#yum -y install telnet-server.x86_64

#dnf -y install 

 

> 서버 실행

#systemctl restart telnet.socket

 

<클라이언트>

#yum -y install telnet

#dnf -y install telnet

 

> 접속 방법

#telnet [서버 IP 주소]

#telnet 192.168.10.50

 

> 방화벽 중지

#systemctl stop firewalld

 

 

 

간단하게 ssh의 로그인 시도 및 로그아웃부터

 

 

telnet의 경우에도 접속을 시도할 수 있다

 

 

 

강의 소감

오늘은 전체적으로 리눅스 네트워크 부분에 대해 배웠다

그 중 가장 중요하다고 생각했던 것은 고정 IP 값을 설정하는 것이었다

고정 IP를 설정하지 않을 시 많은 변수가 생기기 때문에 꼭 설정하는 것이 좋다

또한, 네트워크를 배움으로 리눅스 서버에 관해서도 배울 수 있게 되었다

'리눅스 마스터' 카테고리의 다른 글

리눅스 마스터 15  (0) 2024.08.10
리눅스 마스터 14  (0) 2024.08.04
리눅스 마스터 12  (0) 2024.07.29
리눅스 마스터 11  (1) 2024.07.27
리눅스 마스터 10  (5) 2024.07.21