본문 바로가기
AWS Cloud School 8기

리눅스 기초

by YUNZEE 2025. 1. 8.
728x90

최상위 디렉토리 => [root@web /]#

 

cd . : 현재 디렉토리

cd..: 한 단계 상위 폴더

트리구조

bin(빈 아님): 명령어, 실행파일

dev: device장치 관련

home: 사용자의 홈디렉토리

mnt: mount를 위한 용도 

tmp: 임시폴더

var: 다양한 문서, 변경될 수 있는 파일& 이메일

boot: 운영체제 파일들이 들어있음

etc: 물리적인 설정

lib: 라이브러리

media:  플래시메모리, dvd 같은 저장매체

root: 관리자의 홈디렉토리

user: 사용자의 앱

 

경로를 구분, 지정하는 방법

절대 경로

- 절대 변하지 않는, 언제나 같은 경로

 

상대 경로

- 내가 어디에 있는지(pwd)에 따라 다른 경로

 

디렉토리 만들기

test라는 디렉토리를 만들겠음

파일 만들기

- 디렉토리와 폴더의 차이

 

기본 단축키

-a -> 숨김파일 + l 자세히

앞에 d 붙은 건 디렉토리

안 붙은 건 파일 

 

- cat ~ 뒤에 붙은 cfg 출력해 줘 ~

 

- cp는 복사 뒤에 내용 복사

cp 복사/root/anaconda-ks.cfg 복사 대상/ 복붙 한 파일명 

 

- rm -r은 삭제

- rm -rf는 그냥 싹 삭제, 물어보지도 않음

- rm -rf / 기본으로 있는 명령어까지 삭제, 싸아아아아악 삭제

 

- 파일 생성됨

- redirection: 방향을 전환해 줌

그러니까 ana.cfg내용을 출력해 줘야 되는데 그 내용을  > (리다이렉션이라 함 > 모양)를 활용해서 내가 만든 re.txt 파일 내용이 들어간다는 의미임

 

- /dev/null 쓰레기통

- 결괏값을 거기로 버림 

 

- la -al > 파일명

- 원래 있던 파일에 데이터를 덮어쓰기

 

- >> 두 번 사용하면 추가해서 내용이 저장됨

 

- 파이프라인('ㅣ', shift + \)

- 여러 개의 명령어를 조합해서 쓰고 싶을 때 사용 

 

- 한 페이지씩 정보가 나눠서 보여줌

- ctrl + c 나가

- 명령어 1을 | 명령어 2로 전달해서 조합

- 파이프라인을 여러 번 사용 가능함

 

- grep이 포함된 줄을 출력해 줌

-> services라는 문자열을 포함하는 줄만 출력을 함 

 

- tail은 마지막 줄만 보여줌

- 마지막 -1 줄을 보여줌, 숫자는 변경 가능

 

- 정렬(오름차순, 내림차순)

 

clear

줄 지워줌 (정리)

vi 편집기(vim)

= 메모장

- 텍스트 에디터

입력모드 vi

-> 입력모드에서 명령모드로 간다면 shift + ; 고 명령모드 들어감. 그리고 원하는 명령어 입력

명령모드

:wq (저장하고 종료)

:set nu (입력모드에서 작성한 것들에 번호를 줌)

: 숫자 (숫자 줄로 이동)

:q! (저장하지 않고 종료)

dd 한 줄 삭제

 

vm가상환경 잘못 설정했을 때 수정 방법

- 네트워크 장치마다 스크립트 파일이 존재해야 한다고 생각하는 게 좋다

- ens33이라는 장치를 추가했다면, ifcfg-ens33이라는 파일도 존재를 해야 하고, 그 설정값도 적절하게 구성되어있어야 한다.

TYPE="Ethernet"

BOOTPROTO = "none" -> dhcp: 자동부여/ none: 수동입력 

NAME="ens32" -> 장치이름

UUID="c11~~~~" -> 장치나 SW식별

DEVICE="ens32" -> 장치

ONBOOT='yes' -> on/off 스위치(yes/ no)

IPADDR="~~" -> 아이피 주소

PREFIX="24" -> 서브넷마스크(프리픽스)

GATEWAY="~~" ->게이트웨이

- 메모한 것들은 중요

systemctl

입력 순서

1. systemctl

2.

- restart

- start

- stop

- status

-> 즉시 반영

- enable

- disable

-> 재부팅 시 반영 -> 활성화/ 비활성화

3. network

반드시 활성화 시켜줘야됨

 

방어벽

- 포트를 열고 닫는 행위

- systemctl status firewalld

- systemctl stop firewalld

- firewalld => d는 백그라운드에서 동작하는 프로그램

- 방어벽을 멈춰서 inactive 된 걸 확인할 수 있음

- background <-> foreground = 내 화면을 점유

- top

- top라는 명령어를 치면 현재 내 리소스에 대한 실시간 정보가 뜬다. (원도우의 작업관리자)

- 대표적인 포어그라운드(foreground)의 사례.

- top라는 프로세스가 내 화면을 '점유'했다. = 다른 명령을 칠 수 없음 

[root@web ~]# systemctl enable --now firewalld

- enable --now = start + enable 효과. restart(반영)은 안될 수 있음. 되도록이면 restart 하고 enable로 하는 게 정확하다.

- yum( 패키지 관리자 ) -y(의존성 해결 항상 yes) install(다운로드+설치) httpd(패키지 이름)

- 패키지 관리자

- -y를 통해 C패키지를 설치하기 위한 의존성 패키지 설치 여부에 대한 질문에 'yes'로 응답

 

문제 1
VM 이름 : srv1
CPU 2 core
RAM 2 GB
Storage 20GB

IP 10.10.2.10 /24

VM 이름 : srv2
CPU 2 core
RAM 2 GB
Storage 20GB

IP 10.10.2.20 /24

vm에 ip미리 설정해주지 말고 나중에 설정해 주기
위 두 개의 VM을 설치하고 srv1과 srv2가 서로 통신되는지 확인하고

 

1. VM서버 새로 만들기

그리고 root password와 user id & password랑 구분 잘하기

이제 root id와 password입력하면 됨

그리고

BOOTPROTO = "none" 수정해 주고

 

IPADDR="~~" -> 아이피 주소

PREFIX="24" -> 서브넷마스크(프리픽스)

를 추가로 입력해 줌

 

그리고  Xshell로 넘어가서 srv1과 srv2를 만들어줌

참고로 srv1 복붙가능

 

복붙하고 수정해 주면 됨 

srv1이랑 srv2랑 소통되는 걸 알 수 있음  

패키지 관리자

- yum -y install httpd

- def -y install httpd랑 동일

 

Rocky

 

VM

connect at power on만 된 것도 가능

암호로 로그인 허용

 

 

xshell

- 연결

- vm과 동일한 이름과 호스트 설정해 줘야 됨

- 사용자 인증

- 사용자 이름은 root

- 그에 맞는 암호도 입력

- 설치해 주기

- 연결 잘되는지 확인

- 웹페이지 연결이 안 된 걸 알 수 있음

- active 활성화 안된 걸 확인

- active 활성화하기

- 잘되는지 확인

- 웹페이지 확인

- 구글에 주소를 입력해 보지만 안 되는 걸 확인할 수 있음

 

 

- 이유는 80번 포트가 막혀있음

- firewell 방어벽으로 인해

- 비활성화해 줌

- 그래서 모든 포트가 열림

- 서버 외부에서 접속이 가능한 걸 확인 가능 

- 항상 기능적으로 문제가 없는지(curl)와 외부에서 접근 가능한지(방화벽)를 확인해야 한다.

 

[root@new-web ~]# history | cut -c 8-

# 내가 쳤던 명령어 목록을 앞에 줄번호 빼고 확인 가능.

 

- IP 주소 영문주소를 맵핑한 파일

- localhost가 127.0.0.1 임

728x90