월루를 꿈꾸는 대학생

리눅스 기초 구조 & 실습 본문

Server&Network

리눅스 기초 구조 & 실습

하즈시 2020. 12. 28. 18:04
728x90

리눅스 기초 리눅스 기초 구조 & 실습

 

80번 포트 ! 방화벽이 80번 포트만 허용하도록 제어 했으니까 

 

java 는 jsp 를 쓰는 거 같다 . 

 

active service 는 window 기반이라 리눅스에서 잘 안 돌아간다

 

##################################3

 

커널 사이트

 

http://archive.kernel.org/

 

cent OS가 무료

-- 리눅스 먼지 모르겠지만 기본 틀은 같더라

 

 

 

하드웨어 : 모든 물리적 장치

 

커널 : 하드웨어를 전부 관리 할 수 있는 명령어 커널은 기계어로 되어 있음 . 

---- 커널까지는 개발자끼리 만들고 그 이후 쉘부분부터는 공유해서 입맛대로 바꿀 수가 있다. 

---- 하드웨어 관리할 수 있는 명령어 집합 

 

쉘 : 커널과 응용 프로그램 사이에서 중간 번역기 역할 응용프로그램은 프로그래밍 언어 커널은 기계어로 되어 있으니 둘 사이의 번역을 해 줄 수 있는 언어

 

응용프로그램 :  하드웨어 제어하기 위해서 쓰는 친구

 

리눅스는 아무리 해 봤자 512mb 들어갈 텐데 윈도우는 2gb나 쓴다 왜 그런가??

 

리눅스 명령어 집합들을 입맛에 바꿔서 새롭게 운영체제를 만들 수가 있고 작게 보면 api 크게 보면 새로운 os 라고 할 수가 있다

 

################################################################

 

리눅스는 폴더라는 개념을 통해서 공간을 차지한다 그리고 그것을 구조로 친다 

 


 리눅슨느 데이터 블록에 실제 데이터를 차곡 차고 쌓아둔다 또한 ls 명령어 치면 파일이 나오는데 그것은 데이터가 아니라 아이노드 목록을 보여준것 

 

vi로 아이노드 작업하면 아이노드가 데이터 블록 위치를 가지고와서 화면에 띄우거나 실행 

 

 

Ø아이노드(Inodes)
- 파일의 소유자ID, 파일 그룹 ID, 파일 크기, 파일 주소, 사용자 접근모드(읽기, 쓰기, 실행
 
권한), 파일 타입, 마지막으로 파일에 접근/수정한 시간, 아이노드에 대한 디렉토리 참조
 
링크 수, Inode number와 같은 파일 및 디렉토리의 정보 보유

데이터 블록(Data Blocks) : 실제 데이터가 파일의 형태로 저장되는 공간

 

부팅을 위해서 쓰는 부분 = 부트 블럭  

켜 지면 부트블럭을 먼저 보고 데이터가 어디 있겠네 그걸 끌어 올린다. 

 

리눅스의 계층적 트릭구조 

 

 

Ø일반 파일 : 데이터 파일이나 실행

Ø디렉터리 : 유닉스에서는 디렉터리도 파일에 해당, 디렉터리가 담고 있는 여러 파일과 하위 디렉터리 정보가 있음

Ø특수 파일 : 프린터나 터미널, 테이프 드라이버 같은 물리적인 장치를 특수 파일을 통해  접근, 특수 파일은 /dev(device)있음

Ø파이프 파일 : | 문자를 말하며, 2개의 명령을 연결 시 사용, 임시 파일이 생성 되었다가 명령수행을 마치면 사라지는것으로, 이파일을 파이프 파일이라고 함

 

디렉토리도 파일로 되어 있네 ... 임마도 아이노드랑 데이터 블록으로 이루어져있고.. 이걸 파일로 취급-> 엄밀히 말하면 임마도 파일이라 할 수 있다.

 

 

Ø유닉스/리눅스의 부팅 순서

 

Ø유닉스/리눅스의 부팅 순서

 1단계 : POST(Power On Self Test) 수행

 2단계 : 기본 부팅 관련 설정사항 로드

 3단계 : MBR(Master Boot Record, 마스터 부트 레코드) 로드

 4단계. 부트 로더(Boot Loader) 실행

---- LILO(Linux Loader)GRUB(GRand Unified Bootloader, GNU 프로젝트의 부트 로더) 사용

---- LILO/etc/lilo.conf에 설정 GRUB/etc/grub.conf (=/boot/grub/grub.conf)에 설정

 5단계. 실행 레벨에 따른 서비스 실행

----부트 로더는 스와퍼(Swapper)라는 pid 0번 프로세스를 실행, 스와퍼는 다시 pid 1init(/sbin/init) 프로세스를 실행

 

이 각 작업을 알아야 우리가 어디서 문제가 생겼는지가 알 수 있다 . 

비프음으로 에러 찾기 등등 

 

yum rpm 

 

Ø각각의 가상 콘솔로 이동하는 단축키는 Ctrl+ Alt + F2 ~ F6  (Ctrl + Alt + F1X윈도우 모드)

 

런레벨

 

 

init 0 -> 정상적인 종료

power off -> 데이터 손실 방지 .. 강제 종료

 --> 이렇게 power off 자주 하면 코드가 자주 꼬여서 블루 스크린 유발 한다

 

 

 

h j k l -> 이거는 꼭 외우기 = 방향키

 

마운트란??

 

window 에서는 플러그앤플레이라고 자동으로 os가 알아먹는데... 리눅스에서는 이걸 수동으로 마운트 해주어야 인식을 할 수가 있다 

 

운영체제가 저장장치를 인식하는 과정 전체를 뜻한다

 

ISO - > 디스크 이미지 파일 

 

폴더도 파일 취급이니까 그거 RF 옵션 쓰면 그 하위까지 다 가져갈 수가 있다 

 

 

ls > text1.txt -> 출력물을 txt 파일로

ls >> text1.txt -> text1.txt 파일에 이어서 복사 붙여넣기 

 

#########################################################

 

쉘 스크립트 짤 때

ls >> text1.txt
해서 임마 로그같은거를 계속 받도록해서 파일 저장하기

날짜 바뀌면 해당 파일 만들도록 구상할 수도 있다

.sh 확장자 뽑아서 파일로 만들 때

 

#############################################################

 

 

 tail -f 실시간 파일 확인 가능  -> 로그 볼 때 좋다 

 

리눅스 자체가 다중 사용자 시스템이다 

-> 윈도우는 ?? 윈도우도 가능하다 

 

각 계정에 그룹 넘버가 나오고 내가 안 만든 계정도 있는데 이는 사용자가 쓰기위한 환경설정 등을 위해 미리 설치 된 것이다

 

 

 비밀 번호가 root 있음

*는 패스워드 설정이 안 되어 있다 

예약으로 만들어진 계정 -> 즉 쓸 수 없는 계정 

 

패스워드를 보면 쓰고 있는지 예약인지 알 수가 있다.

 

여기서 내가 쓸 수 있는 것만 추려서 볼려면?? 

 

사용자는 기본적으로 사용자 이름으로 그룹을 만들고 권한을 할당 

 

 

 

#############################

 

계정하나 파서 거기 권한 설정하고 다른 계정 파서 그 파일로 접속하기 연습 

 

#############################

 

chown centos.centos sample.txt

- 파일의 소유권을 centos 그 그룹을 centos 로 해주는 명령어 

- . 으로 소유권과 그룹을 준다

 

Ø# chown centos.centos sample.txt  또는 -> 점이라는 분류 기호로 이어준다

        # chown centos sample.txt  및  # chgrp centos sample.txt

 

계정이 멀티유저다 보니 루트 제외한 다른 계정이 들어올 수가 잇다 그래서 권한을 통해서 보안을 설정 

-> 이걸 id 소유자 그룹을 통해서 보안 처리 

 

https://ngee.tistory.com/298

 

usradd test2 하고 passwd test2 해서 비번 넣어서 계정을 만든다

 

그럼 홈 폴더가 test test2 총 2개가 생성 

 

chmod 777 test2 해서 임마 폴더는 누구나 다 들어 올 수 있도록 권한을 만든다

 

그다음 test2 에 mkdir 111 해서 만들면 이 폴더는 test 계정으론는 권한이 700 이라서 접근이 불가 즉 test2 계정에 접근은 가능하나 그 폴더에는 권한이 없어서 접근이 불가 

 

 ####################################

 

관리자가 전체 권한을 가지고 있고 각각의 권한은 변경해서 보안을 줄 수가 있다. 

 

권한을 그룹으로 맞추어서 그 특정 폴더에 대한 권한을 주어서 그 계정에 대한 소속을 쉽게 바꿀 수가 있다 . 

 

VI 편집기 

 

링크 = 바로가기!!! 

 

심볼릭 링크 -> 링크 

 

하드링크 -> 실제 파일   

               - 하드링크 지우면 이 링크가 깨져서 심볼릭 링크 못 사용한다 

 

 

폴더에 계정 접근이 안 되더라도 심볼릭으로 링크 걸어 넣으면 그 파일을 엑세스 할 수 있는 권한이 있다면 충분히 접근 가능

 

리눅스에서 파일 설치 방법 2개 

 

setup 파일 실행하면  윈도우 환경 설정 참고 파일 = 레지스터에다가 추가하고 설치한다..

리눅스도 마찬가지.. 리눅스의 특정 라이브러리나 내부적으로 참조하는 세팅을 RPM 을 통해서 할 수 있다.

 

YUM(Yellowdog Updater Modified) 개념

--rpm”명령의 패키지 의존성 문제를 완전하게 해결됨.

Ø인터넷을 통하여 필요한 파일을 저장소(Repository)에서 자동으로 모두 다운로드해서 설치하는 방식

 

YUM과 RPM 차이는??? 

RPM은 내가 필요한 파일을 어디서 가지고 와서 내 리눅스 OS 안에 설치해서 실행  YUM은 인터넷을 통해서 파일 저장소에서 자동으로 모두 다운로드 해서 설치하는 방법

 

YUM은 MYSQL 설치만 하면 부수적으로 환경 설정까지 해주어 의존성 부분이 해결됨

다만 임마 YUM은 업데이트 상관 안 하고,,, MIRROR 라면서 웹상에 서버가 있는데 거기 파일을 알아서 다운 받는데 그게 버전과 맞지 않으면 ,... 블랙 아웃 현상 일어난다..임마는 애찯ㄱ 

 

RPM -Uvh

- 패키지 설치하는 것을 눈으로 볼 수 있다 . 

 

삭제 : rpm -e 패키지이름

 

ØRPM 단점

‘의존성’ 문제

A패키지가 설치되기 위해서 B패키지가 필요할 경우, RPM으로는 해결이 까다로움.

이를 해결하기 위해 YUM이 등장함

 

usr/local ---> 작업장

 

#############DB###############3

 

yum -y install mariadb-server

 

systemctl start mariadb -> 실행 / 시작

 

systemctl enable mariadb -> 서비스 등록해서 다음 번에 켜서도 동작하도록 

 

mysqladmin -u root password '1234' -> 명령어 설정  

 

mysql -u  계정 -p  --> mysql 들어갈 때 

 

가장 중요한 것은 

systemctl disable firewalld

systemctl stop firewalld

 

으로 방화벽 내려주어야 SQLyog 파일로 연결 가능 

 

이렇게 가상 머신 꺼 넣어주고 사용자 이름 비밀 번호는 mysql db 쪽 꺼 넣어주기

 

grant all privileges on *.* to root@'192.168.192.1' identified by '1234';

- grant (권한 준다)

- *.*  => * 데이터 베이스 이름* 이거 전부 권한을 준다 

-ex -> *mysql* 이면 mysql DB만 접속 가능 

 

 

flush privileges;

 

위 명령어로 권한을 설정하는데 이는 

가상 머신과 연결된 192.168.192.1 ip 를 써주고 양 끝에 작은 따옴표로 감싸줘야함

 

---------------------------------------------------------------------------------------------------------------------

mysql

데이터 베이스 

- 데이터를 공유하기 위해서 쓴다

- 데이터를 저장하는 공유 저장소 

 

 

grant 명령어 => 권한 주거나 만들거나 할 때 

 

파일과 데이터베이스 차이는 통합데이터 부분에서 차이가 남 즉 중복의 통제가 좀 힘들다 

마지막에는 , 없음

 

가장 큰 사이즈 설정해 주어야 함

 

CHAR -> 데이터가 있던 없던 고정

VARCHAR -> 가변적으로 공간 할당. . 공간 효율이 좋다 

 

 

프라이머리 키로 고객 아이디가 지정

특정 데이터를 찾기 위한 키!  이 키는 중복되어서는 안 된다.

고유한 데이터를 찾기 위한 속성

 

 

 

 

 

 

728x90

'Server&Network' 카테고리의 다른 글

power shell 참고 자료  (0) 2021.11.05
AI와 ML 그리고 DeepLearning  (0) 2021.10.18
DNS 설정  (0) 2020.12.26
라즈베리파이 ssh 포트 번호 변경  (0) 2020.12.26
Vmware tools 설치 하는 방법  (0) 2020.12.26