Apache 다운

HTML -> WEB Server

#yum -y install httpd

 

 

 

 

service httpd start 로 실행시킨다.

 

netstat -ant 를 입력하여 포트번호 80번이 뜨면 열린 것이다.

 

확인해보기 위해 자신의 리눅스 ip를 url에 입력해본다

 

apache의 홈 디렉토리 확인

- /var/www

 

cat /etc/passwd 를 이용해 확인

 

cd /var/www로 이동

 

 

 

문서들의 홈 디렉토리 : html

 

 

이런식으로 html 안에 있는 모든 파일은 url을 통해 열 수 있다.

 

 

전에 만들어 두었던 내용들을 html 파일로 옮긴다.

 

index.html 라고 저장하면 그 저장한 페이지가 도메인을 쳤을 때 그 페이지가 뜬다. 


 

다시 자신의 서버 아이피를 입력하면

 

자신이 만들었던 결과가 뜬다.

 

좀 더 쉽게 그냥 자기가 만든 파일을 rz를 이용해 옮기면 더 쉽다.

 

rz 패키지 다운

yum -y install lrzsz

 

 

 

 

 

 

'Web Security' 카테고리의 다른 글

데이터 전달  (0) 2018.02.20
CGI(PHP)  (0) 2018.02.19
키입력 받아서 화면에 출력  (0) 2018.02.14
웹의이해 (JavaScript)  (0) 2018.02.12
웹의 이해(html)  (0) 2018.02.08

최초로 공개된 웹 페이지(1989년)

- 문서 공유를 위해 나옴.

 

http://info.cern.ch/

 

 

 

 

 

 

 

1. WEB 1.0

 

1). HTML(Hyper-Text Markup-Language)

- 언어라고 하기에는 부족 : 분기, 반복 , 함수 . . . 존재x

- HTML5: html + javascript

- 문서 표준 : 태그로  표현

 

 

head : 화면에 보이지 않는 것들

body : 화면에 보여지는 내용들

 

 

 

2). 태그(tag) Vs. 요소(elements)

   - 컨텐츠(화면에 보여지는 내용)의 타입을 정하는 용도

   - <tag name> contents </tag name> 

         opening tag , begin tag , closing tag, end tag

   

   - <tag name/>  :  self clsing

 

   

3). 문서 표준

 

1~2 : block tag  

inline tag : img ...

 

3-1). 글자를 표현할 수 있는 태그

 

1. 제목 : heading

 

   - <h1> ~ <h6>   //번호가 높아질수록  작은 제목을 표현

 

 

확장자를 html로 변경하여 저장한 후, 웹브라우저를 실행 시키면 아래와 같이뜬다.

 

 

 

 

 

태그가 있고와 없고의 차이

 

 

 

 

 

 

 

 

 

 

아래 그림 처럼 표준제약을 지키지 않아도 되긴한다. 표준이라 쓴 것이다.

 

 

 

 

 

2. 본문,문단, 단락 , ..

 

paragraph : <p>    

  <span>

  <div>

 

enter와 같은 것 :      <br>  딱히 표준을 안지켜도 되지만     

     지키 려면 <br> </br> 같이 한쌍으로 표현

 

 

 

 

 

 

 

 

3. 목차 : list   항목 : list item -> <li>

 

 1). 정렬된 리스트 : ordered list

 

<ol> </ol>

 

 

 

 2). 비정렬된 리스트 : unordered list

 

<ul> </ul>

 

 

 

 

3-2) 그림을 표현할 수 있는 태그

 

 이미지 : image -> <img>

 

 <img> . . . <img>

 <img / >

 

 [속성] : attribute

- 오프닝(시작) 태그에 작성    

- 요소별로 속성항목은 다를 수 있다.

 

 

<img src="path"> //이미지 삽입

 

<img width ="가로" height="높이" src="path">

 

 

 

 

<img src="path"> //이미지 삽입

 

 

<img width ="가로" height="높이" src="path">

 

1. 개별 속성

 

2. 글로벌 속성

 

- 이벤트 속성 : 마우스,키보드,  . . .

- 스타일 속성 -> CSS(Casding Style Sheet )

 

- id, class 

 

id 와 class

 

1. id : 유일한 요소를 표현

 

 <p id="unique"> 어디에 기대 살아갈까 <br>
나를 스쳐가는 그 모든 것들이 상처인데</p>

 

이런식으로 id를 설정할 수 있다.

#을 이용하여 사용 한다.

#unique {
  color : red;
 
 }

 

 

 

2. class : 여러 요소를 표현

 

<p class="multi">내뱉는 숨마다<br>
가시 돋친 고통이어서 <br>
깊은 곳에 숨겨둔 사랑 또한<br>
그저 지워 내고</p>

 

이런식으로 class를 설정할 수 있다.

.을 이용하여 사용 한다.

 

.multi{
  color : green;
 }

 

 

 

 

 

 CSS ( Cascading Style Sheet )

확장자명 .css로 저장

 

- link : 해당 문서와 연결된 정보

 

다른 메모장에 style의 정보를 입력하고 .css로 저장

 

원래 소스가 있는 메모장에서

style이 있던 head 부분을

<link type= "파일의 타입" href= "파일의경로" rel= "무엇을 표현하는지" />

 

<link type= "text/css" href= "style.css" rel= "stylesheet" />

로 변경

 

라이브러리 처럼 인식해 언제든지 꺼내 사용 가능

 

 

 

 

3-3) 표를 표현할 수 있는 태그

 

표 :table

 

<table>

<thead>

<tr>                //표의 한줄

 

<td></td>  //표의 한칸

 

</tr>

</thead>

 

<tbody>

</tbody>

 

<tfoot>

</tfoot>

</table>

 

 

 

 

속성을 추가 했을 때

(참고사이트https://www.w3schools.com)

 

 

 

table style ="테두리: 색 : 선 굵기"

 

 

rowspan ="칸" : 원하는 칸 만큼 합침

 

 

3-4). 링크를 표현할 수 있는 태그

 

링크 : anchor , link

 

- 하이퍼 링크

-anchor: <a href="path|url"> 링크문자 </a>

 

네이버를 클릭하게 되면 내가 적은 사이트로 이동되게 된다.

    

 

번외

 

1. style 속성을 이용한 스타일 지정

 

2. <style> 태그를 이용한 방법(head 부분에 사용 )

 

<style>

selector {

 

}

</style>

 

*selector: tag name , id , class

 

 

 

노래가사 페이지 만들기

 

<!DOCTYPE html>

<html>

<head>
<style>
 h1 {
  color: blue;
  text-align: center;
  
 }
 p {
  color : white;
  text-align: left;
 }
 body {
  background-image:url("http://cphoto.asiae.co.kr/listimglink/6/2018020711081799066_1517969294.jpg");
  background-repeat: no -repeat;
  background-size : 120% 120%;
</style>
</head>

<body>
 <h1> My Way</h1>
 
 <p> 흐르는 물결이<br>
     내 발목에 감겨 나가면 <br>
깊은 곳에 숨겨둔 아픈 기억<br>
모두 살아나고</p>

<p> 어디에 기대 살아갈까 <br>
나를 스쳐가는 그 모든 것들이 상처인데</p>

<p>그댈 그린 밤들이<br>
내게 욕심이란 걸 맘 아프게 알아 <br>
나를 택한 운명이<br>
행여 그댈 맴돌아 붙잡지 못하게 <br>
이제 그대 곁에서 떠나가 </p>

<p>내뱉는 숨마다<br>
가시 돋친 고통이어서 <br>
깊은 곳에 숨겨둔 사랑 또한<br>
그저 지워 내고</p>

<p>어디에 기대 살아갈까 <br>
나를 스쳐가는 그 모든 것들이 상처인데</p>

<p>그댈 그린 밤들이<br>
내게 사치라는 걸 맘 아프게 알아 <br>
나를 택한 운명이<br>
행여 그댈 맴돌아 붙잡지 못하게 <br>
이제 그대 곁에서 떠나가</p>

<p>언젠가 그대 곁에 다시 돌아갈 수 있다면<br>
그때가 언제라도 나를 잊지 않았다면 </p>

<p>그댈 그린 날들이<br>
내게 마지막 남은 기쁨이었단 걸 <br>
내가 택한 운명이<br>
다른 무엇이 아닌 그대뿐이라는 걸</p>

<p>이제 그대 곁에서 영원히</p>

 

</body>

</html>

 

 

 

 

 

 

 

 

 

 

2. 참고 사이트

 

1). 동영상 강의    

- 생활코딩 (유튜브)

 

2). 코딩 교육 : codecademy.com

 멋쟁이 사자처럼

https://www.w3schools.com/

 

부트 스트랩  , Materialize : 디자인에 관련된 사이트

 

 

 

 

 

 

'Web Security' 카테고리의 다른 글

데이터 전달  (0) 2018.02.20
CGI(PHP)  (0) 2018.02.19
키입력 받아서 화면에 출력  (0) 2018.02.14
웹의이해 (JavaScript)  (0) 2018.02.12
Apache 서버  (0) 2018.02.12






수식 사용법

셀을 클릭하고  =(원하는 셀 클릭)




더 빠르게 수식 계산하는 법은 아래와 같다

동그라미 친 저 부분을 통해 좀더 빠르게 수식을 계산할 수 있다.



표시 형식





위에 동그라미친 곳에서 설정 가능하고,





마우스 우클릭으로도 설정이 가능하다.



여기서 상황에 맞는 형식을 골라 사용하면 된다.



이런식으로 사용하는 것이다.



사용자정의 표시 형식


-YUM

RPM 기반의 패키지 관리도구로 의존성 문제를 자동으로 해결

-설치 가능한 패키지에 대한 정보가 담긴 저장소(Repository)를 가지고 있다.

-DVD이미지 혹은, 인터넷이 되는 환경에서 사용할 수 있다.

 

yum [옵션] [명령] [패키지명]

      -y 설치 과정에 출력되는 모든 질문에 yes로 대답

          -h 도움말 출력

      -v 자세한 메세지 출력

 

#yum info [패키지명]    //패키지 정보 확인

 

#yum list

#yum list all        // 설치 되었거나 설치가 가능한 모든 패키지

의 목록을 출력

#yum list update    //업데이트가 가능한 패키지의 목록만 출력

#yum list installed  //이미 설치된 패키지 목록을 출력

#yum list installed [패키지명] //해당 패키지 설치유무 확인

== #rpm -qa

#yum localinstall [패키지명].rpm    //rpm 패키지 설치

 

 

패키지 설치 하기

- 저장소를 검색하고 패키지를 설치할 저장소 찾지를 못하면 자동으로 다른 저장소를 검색하여 패키지를 설치한다.

 

#yum install [패키지명] [패키지명] [패키지명] 다 설치 가능

#yum install autotrace

 

패키지삭제

#yum remove [패키지명] [패키지명] [패키지명] 여러가지 지울 수 잇음

 

패키지 검색

#yum search [패키지명]

 

#yum provides [파일이름]   // 특정 파일이 어느 패키지에 포함되어

있는지 확인

ex)#yum provides /bin/ls

 

#yum clean all        //기존에 다운로드한 패키지 목록을지워

        설치 시 새로운 목록을 다운로드

그룹 설치

#yum grouplist | more    // 그룹 설치가 가능한 패키지 목록 확인

 

#yum groupinstall [패키지 그룹 이름]

 

# yum  groupinstall "X Window System" "Desktop" "Fonts" "Korean Support"

 

 # yum grouplist | more(한글로 나오지만 설치 할때는 영어로 해야함)

 

(영어로 나오게 하는법)

# LANG=us_US.UTF-8
 # echo $LANG
us_US.UTF-8
 # yum grouplist | more

영어로 나옴

 

yum 동작 가정과 설정 파일

 

1. /etc/yum.conf         //yum 설정 파일

2. /etc/yum.repos.d/   //저장소 정보가 저장되어 있는 디렉토리

 

저장소(Repository) 줄여서 Repo 라고도 부름 

 

(1) Server-A : yum install 입력

(2) Server-A : /etc/yum.repos.d/ 디렉토리에 repo 파일을 열어 URL 확인

(3) Server-A : 패키지 목록 파일을 REPO에 요청

(4) Repo      : 패키지 목록을 Server-A에게 전달

//설치 패키지 파일을 다운받는게 아니라 설치하고자하는 패키지목록만 다운 받는거다.

(5) Server-A: 화면에 설치할 패키지와 관련 패키지 이름을 출력

(6) Server-A: Y를 입력하면 설치 하고자하는 패키지 파일을 REPO에 요청

(7)Repo : 설치할 패키지를 전달

(8)Server-A: 다운로드한 패키지를 자동으로 설치

Ex) #yum -y install vim

 

[base] - 저장소 식별자

         - 각 식별자는 독립적으로 존재하여 동작

name - 저장소의 이름

         - 보기 편한 이름으로 지정

mirrorlist

- baseurl 에 설정 값이 생략되어 있으면 대신 동작하는 항목으로

  해당 URL은 전세계에 분포된 여러개의 Repository와 연결되어

   있다.

baseurl

-Repository URL적혀 있으며 URL대신에 ftp주소, file 경로

등이 올 수 있다.

 

repository를 DVD이미지로 변경

 

#cd /mnt

#ls        //마운트 확인

#cd /etc/yum.repoas.d/

#mkdir backup    //백업 디렉토리 생성

#mv *.repo backup //현재 경로의.repo를 가진 파일을 이동

 

#touch dvd.repo    //새로운 repo 파일 생성

 

#vi dvd.repo

 

[dongsam-dvd]

name=CentOS DVD REPO

baseurl=file:///mnt/        //네트워크 주소가 아니라, DVD 경로 주소

gpgcheck=0

 

네트워크 차단

#ifdown eth0

 

VMware에서 설치

#yum clean all

#yum -y install mysql-connector-odbc

#yum -y install php

 

DVD이미지에서 직접 다운받기 때문에 패키지를 외부에서 다운로드 하는 과정이 없어 설치 속도가 빠르다

 

vi /etc/yum.repos.d/dvd.repo

 

[extras]

name=network

baseurl=http://ftp.daumkakao.com/centos/6.8/extras/x86_64

gpgcheck=0

 

네트워크 다시 연결

#ifup eth0 

 

#cd /mnt/Packages/

epel-release 패키지 존재 유무 확인

// #yum remove mysql-connector-odbc

mysql-connector-odbc  //로컬 dvd 이미지에 있는 패키지 파일

epel-release                //외부 레포에 있는 패키지 파일

 

#yum -y install mysql-connector-odbc epel-release

 

http://mirror.centos.org/centos/6/os/x86_64/

실제 CentOS에서 기본으로 제공하는 기본 Base RePO의주소

 

yum 파일 원상 복구

dvd.repo 파일을 ->backup 디렉토리로 이동

backup 디렉토리에 원본 repo파일을 /etc/yum.repos.d/로 이동

 

 

 

 

 

Server-A B

Client-Linux 에 전부 설정

 

#setenforce 0
#vi /etc/sysconfig/selinux    //selinux disable

7번째 라인 SELINUX=disabled

#service iptables stop    //iptables 데몬 중지

#chkconfig iptables off //iptables 데몬이 부팅 시 동장하지 않도록 설정

 

MAC주소 - 물리 네트워크 카드 할당된 고유 주소

    #ipconfig

>ipconfig/all

 

IP주소 - 네트워크 상에서 컴퓨터를 찾아가기 위한 주소

            00000000.00000000.00000000.00000000 32bit

~

 11111111. 11111111. 11111111. 11111111 약43억개

 

공인IP- ISP (SK, LG,  KT)업체가 가지고 있는 IP주소

     전세계 어디서든 해당 IP주소를 가지고 있으면 통신이 가능하다.

 

NAT-  공인 IP <-> 사설 IP

    IP가 부족하여 각각의 컴퓨터에게 모두 IP를 할당할 수 없으므로 외부와 통신이 가능한 공인IP를 여러개 사설IP로 나누어 사용할 수 있는 기술

 

사설IP -NAT로 통해 외부와 통신할 수 있는 IP주소로 내부 네트워크

     에 위치한 컴퓨터 끼리만 통신할 수 있는 IP

 

DHCP -동적으로 사용자에게 IP를 할당해주는 프로토콜

사용자에게 네트워킹에 필요한, ip주소,DNS주소,서브넷마스크,GATEWAY에 대한 정보를 자동으로 구성해준다.

 

 

VMware에는 3가지 Network 타입이 있다.

1. 브릿지 (Bridge)

 물리 PC와 가상머신이 같은 스위치에 연결된 형태

-> 같은 네트워크 위치에 있다

 

물리 PC 주소 IP - 172.16.0.X(IPv4)

가상 머신 주소 IP- 172.16.8.x

VM웨어 Server-A 오른쪽 클릭 -> 셋팅 -> 네트워크 어댑터 클릭-> 오른쪽 브릿지 클릭-> OK

 

VM웨어 터미널

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=dhcp

#IPADDR=100.100.100.120

#NETMASK=255.255.255.0

#GATEWAY=100.100.100.2

#DNS1=8.8.8.8

#DNS2=8.8.4.4

 

#service network restart

#ifconfig

  inet addr 172.16.0.x

xshell -> 새 세션 만들기->IP입력->브릿지로 서로 연결한 상대에게 접속할 수 있음

#wall [하고싶은말]

 

NAT

가상머신의 네트워크타입을 NAT 변경

아이피 주소 설정을 DHCP(동적IP)

   STATIC(고정IP)

(1)DHCP가 할당해주는 IP범위내에서 IP를 할당받는 설정

(2)DHCP에게 IP를 할당받는 것이 아닌 수동으로 IP를 입력하여 고정IP를 사용하는 방법

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=100.100.100.110

NETMASK=255.255.255.0

GATEWAY=100.100.100.2

DNS1=8.8.8.8

DNS2=8.8.4.4

 

#service network restart

 

ping test 테스트

 

 

 

Xshell 접속이 안될 경우

#ping 8.8.8.8   //구글 dns서버

 

핑 테스트 실패 -> ip 설정파일 오타 , vmware 네트워크 설정 확인

핑 테스트 성공 -> VMware Netowkr Editor 설정에서

 vmnet8 (NAT 100.100.100.0/GATEWAY 100.100.100.2)

설정을 Remove하여 삭제하고 ,Apply을 클릭하여 적용 후, Add Network 를 클릭하여 다시 vmnet8

의 정보를 입력하고 ok 적용해야한다. 

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0                //이더넷 인터페이스 종류(장치이름)

TYPE=Ethernet              // 통신 타입 이더넷

ONBOOT=yes                // 부팅 시 장치 활성화 여부

NM_CONTROLLED=no    //네트워크 매니저 데몬 제어 여부

BOOTPROTO=static        //IP 할당 방식(DHCP,STATIC,NONE)

IPADDR=100.100.100.110 //IP주소

NETMASK=255.255.255.0 //서브넷 마스크 값

GATEWAY=100.100.100.2  //외부로 나가기 위한 주소

DNS1=8.8.8.8      //1차 DNS 주소

DNS2=8.8.4.4      //2차 DNS 주소

 

 

본딩 구성

1. 네트워크 카드 추가 후 재부팅

 

슬레이브                마스터

2. ifcfg-eth0(Active) -> ifcfg-bond0

   ifcfg-eth1(Backup) ->  ifcfg-bond0

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

#vi /etc/sysconfig/network-scripts/ifcfg-eth1

 

DEVICE=ethX                         
TYPE=Ethernet
ONBOOT=yes

MASTER=bond0    //마스터가될 본딩파일의이름

SLAVE=yes    //종속 여부
BOOTPROTO=none    //ip 설정방식(사용안함)

USERCTL=no        //일반 사용자 제어 허용 여부

NM_CONTROLLED=no    // 네트워크 매니저 데몬 제어 허용 여부

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=100.100.100.110

NETMASK=255.255.255.0

GATEWAY=100.100.100.2

DNS1=8.8.8.8

DNS2=8.8.4.4

      BONDING_MASTER=yes                //본딩 주체 여부

BONDING_OPTS="mode=1 miimon=100"    //본딩옵션

 

3. /etc/modprobe.d/bonding.conf 파일 생성

#vi /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bond0 mode=1 miimon=100

 

4. 본딩 적용

#modprobe bond0     //커널에 본딩모듈 추가

 

5. #service network restart

6.#ifconfig

eth0   

eth1

bond0

7. 설정 확인

#cat /proc/net/bonding/bond0

 (1) 본딩을한 eth 장치가 정삭적으로 출력되는지 확인

 (2) Bonding Mode가 (Active-Backup)으로 잘 되어 있는지 확인

 (3) 현재 Active 상태의 인터페이스 확인

Currently Active Slave: eth0

(4) 모니터링 및 통신 상태 확인

MII Status: up

8. 본딩 테스트

외부 지속적으로 통신 하고 있어야 함

-> ex)ping 8.8.8.8

네트워크 카드(NIC) 비활성화 시키면서 테스트

 

세션 -1                    세션-2

#ping 8.8.8.8               #watch -d -n 1 "cat /proc/net/bonding/bond0"

 

Server-B             본딩 설정 진행    아이피번호는 바꿔

Client-Linux        본딩 설정 진행    아이피번호는 바꿔

 

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

RPM  (0) 2017.04.16
리눅스 부팅 프로세스  (0) 2017.04.16
압축해제 등등  (0) 2017.04.16
find,xargs  (0) 2017.04.16
find 옵션  (0) 2017.04.16

-RPM(Redhat Package Manager)의 약자로 래드햇에서 만든 패키지 관리 도구

1. CentOS 6.8 DVD Image 파일을 Server-A에 삽입

2. #mount -t iso9660 /dev/cdrom /mnt

3. #cd /mnt

4. #cd Packages

 

NetworkManager-0.8.1-107.     e16.    x86_64    .rpm

[이름                 ][패키지버전][릴리즈]  [아키텍쳐] [확장자

 

RedhatEnterpriseLinux 6의 커널에서 호환이되는 패키지

아키텍쳐 - x86_64 64비트 를 지원하는 인텔 CPU계열에서 사용할 수있는 패키지

is386 32비트

noarch -모든 cpu에 설치가 가능한 패키지

 

 

minimal 버전 X-windows 환경 만들기

# yum  groupinstall "X Window System" "Desktop" "Fonts" "Korean Support"

데스크탑 환경(X-window)  스냅샷

VMware 상단 메뉴 중 VM 메뉴 -> install VMware Tools 클릭

#vi /etc/inittab

 

id:3:initdefault -> id:5:initdefault 변경    /앞으로 게속 5로부팅

설정 다넘기기

 

rpm  패키지 설치 (-ivh)

-i install

-v verbose(설치과정 화면에 출력)

-h hash (해시 기호 #을 이용하여 설치과정 출력)

 

# rpm -ivh xterm-253-1.el6.x86_64.rpm
오류나면 정상

Failed dependencies <- 의존성 오류

     

(의존성 오류 해결하기위해 설치)

# rpm -ivh libXpm-3.5.10-2.el6.x86_64.rpm  

설치

#rpm -ivh libXaw-1.0.11-2.el6.x86_64.rpm
설치

 위에 있는 것을 다 설치하면

# rpm -ivh xterm-253-1.el6.x86_64.rpm

이게 설치가 된다.

 


# rpm -ivh yp-tools-2.9-12.el6.x86_64.rpm

오류: Failed dependencies(의존성 오류):
 ypbind is needed by yp-tools-2.9-12.el6.x86_64

 

의존성 무시하고 설치하는 방법

--nodeps 의존성 무시

--force 강제 설치

#rpm -ivh yp-tools-2.9-12.el6.x86_64.rpm --nodeps

이러면 설치가 된다. (대신 오류같은 것이 일어날 수 있다.)

 

패키지 정보검색

#rpm -q          //질의옵션

        -a         // 전체 패키지 목록 -> #rpm -qa | grep xterm

        -f         //파일명을 포함한 패키지명을 출력 (절대경로)

    #rpm -qf /bin/ls

   파일의 경로를 입력하면, 파일이 어떠한 패키지에 포함된 파일인지 확인이 가능함 

  -i        //패키지 상세한 정보 확인하기

                     #rpm -qi [패키지명]

                     #rpm -qi  xterm

                     #rpm -qi  coreutils

    

         -l              //패키지가 설치한 파일의 목록을 출력

   #rpm -ql   [패키지명]

   #rpm -ql  coreutils

 

         -R             //패키지 의존성 확인

   #rpm -qR [패키지명]

   #rpm -qR xterm

패키지 삭제

#rpm -e [패키지명]

#rpm -e xterm                패키지 삭제

# rpm -qa | grep xterm    삭제 확인

 

RPM 장점 : 설치가 쉽다.

  단점 : 의존성 문제를 해결하기가 어렵다. 

 


        

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

YUM+각 설정  (0) 2017.04.22
리눅스 부팅 프로세스  (0) 2017.04.16
압축해제 등등  (0) 2017.04.16
find,xargs  (0) 2017.04.16
find 옵션  (0) 2017.04.16

리눅스 부팅 프로세스

1. Power ON & ROM BIOS

-전원이 들어오면 CPU가 ROM에 저장된 BIOS 실행

- BIOS는 POST을 수행하여 하드웨어 장치들을 하나씩 인식하며 이상 유무 확인

- 부팅 장치에서 Bootsector에 MBR을 읽어드려 부트로더를 실행

 

리눅스 부트로더 - LILO -> 현재 사용 안함

 GRUB -> 현재 널리 사용하고 있는 부트로더

 

2. 부트로더 (GRUB) 실행

 

-부팅메뉴 (/boot/grub/grub.conf) 실행 , 부팅하고자하는 운영체제를 선택

- Kernel 이미지 (/boot/vmlinuz-*)가 메모리 로딩이 되고 , 동작에 필요한 프로세스를 생성한다.

 

3. init 프로세스 실행 (PID=1)

- /etc/inittab 파일을 참고하여 설정된 RunLevel 실행

- 부팅 레벨이 결정되면 /etc/rc.d/rc.sysinit 스크립트 실행

(PATH변수 설정 ,네트워크 설정 ,스왑메모리, 호스트 등등)

- 해당 Runlevel에 맞는 /etc/rc.d/rc#.d/* 디렉토리에 스크립트가 실행

 

S로 시작하는 파일은 해당 부팅 레벨로 부팅시  자동으로 실행되는 파일

K로 시작하는 파일은 자동으로 실행되지 않는 파일

숫자 파일들이 실행되는 우선순위

 

 

RunLevel - 시스템을 어떤 방식으로 부팅할 것인가를 분류해 놓은 것

0 - 시스템 종료

1 - 싱글유저모드(안전 모드)

2 - 네트워크 기능이 없는 다중 사용자 모드

3 - 모든 네트워크 기능을 지원하는 다중 사용자 모드

4 - 사용되지 않음

5 - X-Window

6 - 시스템 재부팅

 

root 패스워드 분실 시

런레벨 1 (싱글 모드)

- timeout 전에 엔터 키 입력 후 , e키 클릭 들어가서 수정

- single or 1 입력 후 부팅

GRUB에 password 설정

#grub

grub >md5crypt

Password :    

$1$/4tmG/$af6lPOuXQnASdyh5TkVol/

qrub > quit 종료

vi /boot/grub/grub.conf

password -md5 $1$/4tmG/$af6lPOuXQnASdyh5TkVol/

 

 


 

#reboot -> grub 부트로더 메뉴로 진입

#chkconfig

-데몬의 실행 레벨 정보를 관리 해주는 프로그램

#chkconfig --list //리스트 확인

#chkconfig --list [데몬이름]

#chkconfig --[add|del] [데몬이름]

#chkconfig --level # [데몬이름] [on|off|reset]

 

런레벨 3에서는 sshd 데몬이 부팅 시 자동으로 실행되지 않도록 설정

# chkconfig --level 3 sshd off

#reboot 후에 Xshell을 이용하여 해당 Server-A 접속 == 안됌

 

 

service sshd start //sshd 데몬 실행

Xshell 접속 시도 //가능


시스템 초기화및 관리 프로세스

-과거 system V init방식으로 시스템 초기화(init -> inittab -> rc.sysinit)

-현재 system V init + Upstart 방식을 함께 사용(init ->rcS.conf ->rc.conf -> rc.local)

-미래 Systemd

 

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

YUM+각 설정  (0) 2017.04.22
RPM  (0) 2017.04.16
압축해제 등등  (0) 2017.04.16
find,xargs  (0) 2017.04.16
find 옵션  (0) 2017.04.16

LVM 구성
스냅샷을 이용하여 초기화 이후에 진행
1GB Disk 2개 추가

VG명 : VG_1
LV명 : LV_1  (500M)
       LV_2  (1000M)
    LV_3  (나머지전부)
   
마운트 포인트
  /LV_TEST1
  /LV_TEST2
  /LV_TEST3
 
CentOS-6.8-x86_64-bin-DVD1.iso (3.6GB) 저장만 http://ftp.kaist.ac.kr/CentOS/6.8/isos/x86_64/


압축 & 아카이브
 압축 유틸리티 종류
  gzip, bzip2, xz, zip
 
 gzip & gunzip
 #gzip [파일명]    // 해당 파일 압축
        // 파일 확장자 FILE.gz
 
 #gunzip [파일명].gz   // 압축해제
 #gzip -d [파일명].gz  // 압축해제

 옵션 -[1~9] -1 압축속도가 가장 빠르며, 압축율은 가장 낮음
             -9 압축속도가 가장 느리며, 압축율은 가장 높음
    ( -6 기본값)


 #mkdir /practice/gzip_test
 #cd /practice/gzip_test
 #cp /usr/lib/locale/locale-archive /practice/gzip_test
 #cp locale-archive file1
 #cp file1 file2
 #cp file1 file3
 
 #gzip file1   //file1 gzip 압축
 
 #gunzip file1  // 압축
 #gzip -d file1   // 해제
 
 file2  -1 압축
 file3  -9 압축
 
 #time gzip -1 file2  // 명령어 실행 시간 확인 (real : 총 수행시간)
 #time gzip -9 file3  // 22~23MB
 
 압축해제

 bzip2 & bunzip2
 - #bzip2  [파일명]  // 압축 
      #bunzip2  [파일명].bz2 // 해제
   #bzip2 -d [파일명].bz2 // 해제
  
   file1 파일 bzip2 압축  // 19~20MB
   file2 파일 bzip2 압축
   file3 파일 bzip2 압축

   bzip2로 압축된 파일 압축해제
  
 xz & unxz
 
  압축   
  xz [파일명]
 
  해제
  unxz [파일명].xz
  xz -d [파일명].xz
 
  file1 ~ 3 xz 압축 후 용량 확인 후 압축 해제 (3.2M)
 
 
아카이브
 tar (Tape ARchive)
 - 여러개의 지정된 파일들을 아카이브로 만든다.
 - 아카이브 파일에는 .tar 을 붙인다.
 
 #tar [옵션] [만들파일의이름] [묶을 파일이름]
  - c 새로운 아카이브 생성
  - x 아카이브 해제
  
  -f tar 아카이브 파일 지정
  -v 진행 과정 출력
  
  -t 아카이브 파일 확인
  
  
  1. 아카이브 생성하기 (cvf)
  #tar cvf [만들파일.tar] [묶을파일]
  #tar cvf file.tar file*  // 아카이브 생성
  
  2. 아카이브 해제 하기
  #tar xvf file.tar
  
  3. 아카이브 파일 추가 (rvf)
              [추가 파일]
  #tar rvf file.tar file1

  
  bzip2를이용하여 아래 파일
  - file.tar
  #bzip2 file.tar
  -> file.tar.bz2
  -> file.tar.gz
  -> file.tar.xz


  #file.tar.bz2
  1. bz2 해제
  2. #tar xvf file.tar 아카이브 해제
 
  아카이브 압축
  -z gzip 유틸리티를 이용하여 아카이브 파일 압축/해제
  -j bzip2
  -J xz
 
  #ls
  file1 file2 file3
 
  기존 압축방법     tar 옵션을 이용
  #tar cvf file.tar file*  #tar cvfj file.tar.bz2 file*
  #bzip2 file.tar    -> file.tar.bz2
   file.tar.bz2
 

  #bunzip2 file.tar.bz2   #tar xvfj file.tar.bz2
  #tar xvf file.tar
 
  옵션   설명  압축율  속도  확장자명
  z   gzip  낮음  빠름  .tar.gz
  j   bzip2  높음  느림  .tar.bz2
  J   xz    높음   빠름   .tar.xz
 
  특정 디렉토리에 아카이브 해제
  #tar xvf [아카이브파일.tar] -C [경로]

 

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

RPM  (0) 2017.04.16
리눅스 부팅 프로세스  (0) 2017.04.16
find,xargs  (0) 2017.04.16
find 옵션  (0) 2017.04.16
LVM  (0) 2017.04.15

#find [경로] [옵션] [액션]

 

size 옵션

현재 시스템에서 50메가 이상인 파일 찾기

#find / -size +50M

 

# mkdir /practice/find_test
# cd /practice/find_test

# touch test{01..10}

 

-delete 검색 결과 삭제

find . -type f -name "test*" -delete

이름이 tset로 시작되는거 다 삭제 해줌

-exec [명령어] \;    검색 결과를 지정한 명령어 처리

-exec [명령어] {} \; 검색 결과를 차례대로 매칭하면서 지정된 명령어 실행

 

# find . -empty -exec ls -l  \;

#find . -empty -exec ls -l {} \;

 

vi find_test.sh

 

#!/bin/bash

for z in $(seq 0 7); do

for i in $(seq 0 7); do

for j in $(seq 0 7); do

for k in $(seq 0 7); do

touch ${z}${i}${j}${k};

chmod ${z}${i}${j}{k} ${z}${i}${j}${k};

done;

done;

done;

done;

# sh find_test.sh //명령어 실행

ex) 퍼미션이 777 파일을 찾아서 화면에 출력

#find . -perm 777    //정확히 허가권이 0777인 파일 검색

./0777

# find . -perm +777 | sort -n | more   

//기준이 되는 허가권에 비트가 하나라도 일치하는 파일

 

#find . -perm -777        //기준이 되는 허가권 이상인 파일

./7777
./0777
./3777
./2777
./5777
./4777
./6777
./1777

 

1.find 명령어로 현재 경로에 이름이 0으로 시작하여 1로 끝나는 파일만 gzip으로 압축 "0??1"

#find -name "0??1" -exec gzip {} \;

#ll *.gz

 

xargs

# mkdir /practice/xargs_test
 # cd /practice/xargs_test
 # vi xargs_test.sh


#!/bin/bash
for z in $(seq 0 10); do
    fallocate -l 10K "$RANDOM.txt"
done;

for z in $(seq 0 10); do
    fallocate -l 15K "$RANDOM.txt"
done;
for z in $(seq 0 10); do
    fallocate -l 20K "$RANDOM.txt"
done;

# sh xargs_test.sh

1.find를 쓰지 않고 크기가 10kb인 파일명만 출력하고 이름의 숫자가 적은순으로 정렬

# ll -h |grep 10K | cut -d " " -f 8 | sort

2. find를 사용하여 크기가 10kb인 파일을 출력하고, 파일의 이름만 출력하여 정렬

# find . -size 10k | cut -d "/" -f 2 | sort -n

3. 현재 경로에서 find를 사용하여 크기가 10kb 파일 삭제, 단 -delete 옵션 사용 금지

 

# find . -size 10k -exec rm {} \;

 

xargs (eXtended Arguments)

- 표준 출력 값(파일이름)을 이용하여 명령을 실행

- find와 사용 시 결과물을 다음 명령어에 인자로 전달하는 역할

- 여러 명령어와 함께 조합하여 사용할 수 있다.

-i 인자로 문자열을 전달

-t 상세한 정보 출력

 

4. find 를 사용하지 않고 크기가 20k 파일을  삭제
#ll -h | grep 20K | cut -d " " -f 8 | xargs rm 

 

ex) find로 원하는 파일찾아서 해당 파일에서 특정 문자열 검색

#find / -name "*" | xargs grep [계정명:암호]

 

ex)/bin 디렉토리에 가장 큰 일반 파일을 찾아 크기를 확인하여

가장큰 파일을 출력

1.#find /bin - type f | xargs du -s

2.#find /bin - type f | xargs du -s | sort -n | tail -1

 

ex) /practice/find_test 이동 후, 현재 디렉토리에 gz으로 압축된 파일 압축해제

#gunzip 0??1.gz

 

현재 디렉토리에 위치한 모든 파일의 이름뒤에 확장자 .perm 붙이기

이름 변경하기

mv [원본] [대상]

 

0000 ~ 7777 -> 0000.perm ~ 7777.perm

# ls | xargs -t -i mv {} {}.perm

 

#du -sh /*

 

#rm -rf ./*

rm -r ./0001 0002 이렇게 아규먼트가 늘어나는방향

 

#ls | xargs rm

rm 0000 

rm 0001 하나하나 다지움 

 

원상복구

#ls | cut -d "." -f 1 | xargs -t -i mv {}.perm {}

 

 

 

 

 

 

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

리눅스 부팅 프로세스  (0) 2017.04.16
압축해제 등등  (0) 2017.04.16
find 옵션  (0) 2017.04.16
LVM  (0) 2017.04.15
LVM명령어  (0) 2017.04.15

find option

-empty : 비어 있는 파일, 단 일반파일 또는 일반 디렉토리에 한함
-uid n : 지정된 n값의 UID를 갖는 파일
-gid n : 지정된 n값의 GID를 갖는 파일
-group 그룹명 : 지정한 그룹명에 소속된 파일
-name : 지정된 형식의 패턴을 가지는 파일
-newer 파일 : 지정한 파일보다 더 최근에 변경된 적이 있는 파일
-used n : 파일이 변경된 이후 최근 n일 이후에 액세스된 적이 있는 파일
-user uname : 지정한 uname의 소유로 된 모든 파일(UID로 지정가능)
-amin n : 최근 n분 이전에 액세스된 적이 있는 파일
-anewer 파일 : 지정한 파일보다 더 최근에 액세스된 적이 있는 파일
-atime n : 최근 n*24 시간 전에 액세스된 적이 있는 파일
-mmin n : 최근 n분 이전에 변경된 적이 있는 파일
-mtime n : 최근 n*24 시간 이전에 변경된 적이 있는 파일
-executable : 실행 가능한 파일
-readable : 읽기 가능한 파일
-writable : 쓰기 가능한 파일
-fstype type : 지정한 파일시스템타입(type)에 존재하는 파일
-nogroup : 소속그룹이 존재하지 않는 파일
-nouser : 소속 사용자(ID)가 존재하지 않는 파일
-path 패턴 : 파일명이 패턴에 매칭되는 파일
-perm 모드 : 모드에서 지정된 퍼미션과 일치하는 퍼미션을 가진 파일만 해당됨.
-perm -mode : 모드에서 지정된 퍼미션을 가진 모든 파일.
-regex 패턴 : 패턴에서 지정한 정규표현식에 매칭되는 파일
-size n[cwbkMG] : 지정된 n 단위의 디스크공간을 사용하는 파일. 디폴트는 b
-type 타입 : 지정한 파일타입에 해당하는 파일. b,c,d,p,f,l,s 등이 있음


[수행할작업(action)]

-delete : 검색된 파일들을 삭제
-exec command ; : 지정한 command 를 실행
-exec command {} + : 검색된 파일들을 차례대로 매칭하면서 지정된 command 를 수행
-ls : 'ls - dils' 를 수행
-ok command ; : -exec 와 같지만 실행하기 전에 먼저 사용자에게 표준입력으로 수행할 command 를 입력 받는다. 만약 입력이 없다면 지정된 command 를 수행한다.
-print : 검색된 파일들에 대하여 전체파일 경로로 파일리스트를 표준출력으로 출력한다.
-printf format : 검색된 파일들에 대하여 지정된 format 형식으로 표준출력으로 출력


[연산자]

( ) : 괄호( )안의 연산이 먼저 행해짐
! expr : expr 이 거짓일때 참, 참일때 거짓이 됨.
-not expr : 위의 ! expr 과 동일함 (POSIX 호환용)
expr1 expr2 : AND 의 의미. expr1 이 거짓일 때에는 expr2 는 평가되지 않음
expr1 -a expr2 : 'expr1 expr2' 와 같음
expr1 -and expr2 : 'expr1 expr2' 와 같음 (POSIX 호환용)
expr1 -o expr2 : OR 의 의미. expr1 이 참일 경우 expr2 는 평가되지 않음.
expr1 -or expr2 : 'expr1 -o expr2' 와 같은 의미

 

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

압축해제 등등  (0) 2017.04.16
find,xargs  (0) 2017.04.16
LVM  (0) 2017.04.15
LVM명령어  (0) 2017.04.15
쿼터명령어  (0) 2017.04.15

LVM

-Disk 파티션 효율적으로 관리하고 사용할 수 있는 방식

-LVM2 (Device Mapper)를 이용

 

1. 초기화 설정

-VMware 스냅샷을 이용하여 초기화

-1GB disk * 3EA 추가

-reboot

2. Fdisk 을 이용하여 추가 확인

#fdisk -l

3.파티션 생성

#fdisk /dev/sdb~sdd

'n'         add a new partition

'p'         primary partition

'1'         partition number

'enter'    Frist cylinder

'enter'    last cylinder

't'              Change a partition's system id

'8e'            Linux LVM(리눅스 문제 필수로나옴)

'w'

 

4. PV생성

#pvcreate [장치명]

 

#pvcreate /dev/sdb1 ~ sdd1

5. VG(Volume Group) 생성

#vgcreate [볼륨그룹명] [PV장치명]...[PV장치명]

 

#vgcreate PracticeVG /dev/sdb1 /dev/sdc1 /dev/sdd1

 

6. VG 구성 확인

#vgdisplay [볼륨그룹명]

#vgdisplay PracticeVG

  --- Volume group ---
  VG Name               PracticeVG
  Cur PV                3            //현재 PV 개수
  Act PV                3            //활성 pv 개수
  VG Size               2.98 GiB    //VG 용량
  PE Size               4.00 MiB    // PE 크기 (4MB)
  Total PE              762
  Alloc PE / Size       0 / 0        //할당된 PE 개수   /용량
  Free  PE / Size       762 / 2.98 GiB    //남은 PE 개수 /용량
 

7. VG의 파티션 LV 생성

#lvcreate --szie [크기] --name [LV이름] [VG이름]

 

#lvcreate --size 500M --name PracticeLV1 PracticeVG

#lvcreate --size 1.5GB --name PracticeLV2 PracticeVG

#lvcreate --extents 100%FREE --name PracticeLV3 PracticeVG

나머지 (FREE) 용량을 전부 PracticeLV3에 할당

 

8. LV 정보 확인

#lvdisplay

  LV Path                /dev/PracticeVG/PracticeLV1
  LV Name                PracticeLV1
  VG Name                PracticeVG
  LV Size                500.00 MiB
  Current LE             125        //LV에 할당된 LE 개수
9. 파일 시스템 생성 및 마운트

#mkfs -t ext4 /dev/PracticeVG/PracticeLV1 

#mkfs -t ext4 /dev/PracticeVG/PracticeLV2

#mkfs -t ext4 /dev/PracticeVG/PracticeLV3

 

#mkdir /LV-{1,2,3}

#mount /dev/PracticeVG/PracticeLV1 /LV-1

#mount /dev/PracticeVG/PracticeLV2 /LV-2

#mount /dev/PracticeVG/PracticeLV3 /LV-3

 

# df -h           //확인

 

LV -1 500M

LV -2 1.5GB

LV -3 나머지전부(1GB)

 

LV 삭제 및 용량 추가

#umount /LV-3        //언마운트

#lvchange -an /dev/PracticeVG/PracticeLV3    //LV 비활성화

//LV 상태를 변화 (-a actice -n no)

-> 해당 LV를 비활성화

 

#lvremove /dev/PracticeVG/PracticeLV3        //LV 제거

 

#lvdisplay     // LV3 삭제 확인

#vgdisplay    //VG 정보 확인

 Cur LV                2
 Open LV               2
 Cur PV                3
 Act PV                3
 VG Size               2.98 GiB
 PE Size               4.00 MiB
 Total PE              762
 Alloc PE / Size       509 / 1.99 GiB
 Free  PE / Size       253 / 1012.00 MiB    여유 PE 253 /1012MB

 

용량 추가

#lvextend --size +512M /dev/PracticeVG/PracticeLV1

//LV-1에 512M 추가

 Size of logical volume PracticeVG/PracticeLV1 changed from 500.00 MiB (125 extents) to 1012.00 MiB (253 extents).
  Logical volume PracticeLV1 successfully resized.
이렇게 뜨면 성공

이번엔 블록 개수로 추가 하는 것

#lvextend --extents +125 /dev/PracticeVG/PracticeLV2

 

 Size of logical volume PracticeVG/PracticeLV2 changed from 1.50 GiB (384 extents) to 1.99 GiB (509 extents).
  Logical volume PracticeLV2 successfully resized

이렇게 뜨면 성공

#vgdisplay 남은 용량 확인

  Free  PE / Size       0 / 0    없다!

 

#df -h

/dev/mapper/PraticeVG-PracticeLV1    477M 2.3M 449M 1%/LV-1

/dev/mapper/PracticeVG-PracticeLV2
                      1.5G  2.3M  1.4G   1% /LV-2

 

#resize2fs /dev/PracticeVG/PracticeLV1 //파일 시스템 크기 재설정

#resize2fs /dev/PracticeVG/PracticeLV2//파일 시스템 크기 재설정

 

#df -h

/dev/mapper/PracticeVG-PracticeLV1
                      973M  2.8M  920M   1% /LV-1
/dev/mapper/PracticeVG-PracticeLV2
                      2.0G  2.3M  1.9G   1% /LV-2

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

find,xargs  (0) 2017.04.16
find 옵션  (0) 2017.04.16
LVM명령어  (0) 2017.04.15
쿼터명령어  (0) 2017.04.15
쿼터  (0) 2017.04.15

+ Recent posts