SULinux 실습

- 조건 -

HDD 추가

파티션을 3개로 나누기

P : 1개 / L : 2개

< 마운트 디렉토리 >

/home1

/hoem2

/home3

 

Edit Virtual Machine settings 에서 하드 디스크를 추가해둔다. 

 

primary partition 생성한다.

사이즈는 10G로 생성하고 잘 생성된 것을 확인할 수 있다.

 

extended partition을 생성한다. extended partition에 로컬 파티션 2개를 생성하고 swap을 생성할 것이다.

 

로컬 파티션을 생성한다. 각각 10GB, 8GB로 설정한다.

 

swap파티션을 설정해준다.

 

파티션 및 swap이 잘 설정된 것을 확인한다.

w를 입력해 저장하고 나와 파일 시스템을 설정한다.

 

파티션에 파일시스템을 만들어준다.

 

swap 포멧하고 swap를 활성화 후 현재 상태를 확인한다.

 

디렉토리를 생성하고 각 디렉토리에 파티션을 마운트한다.

 

리부팅 해도 마운트 되게 설정하기

[ vi /etc/fstab ] 에 들어가 아래와 같이 마운트 swap 설정한다.

 

잘 설정된 것을 확인하고 reboot를 한다.

 

마운트와 swap이 잘 된 것을 확인할 수 있다.

 

----------------IP, DNS는 아직 안함--------------

 

CentOS7에서 실습

2021.10.27 - [리눅스 공부 기록] - 리눅스 파일 시스템과 파티션 실습 및 swap 공간추가

 

리눅스 파일 시스템과 파티션 실습 및 swap 공간추가

하드디스크 사용해 파일 시스템 생성 및 파티션 실습 - 조건 - HDD 추가 파티션을 3개로 나누기 P : 1개 / L : 2개 < 마운트 디렉토리 > /home1 /hoem2 /home3 먼저 하드드라이브를 추가하기 위해 ADD를 눌러

lemonandgrapefruit.tistory.com

 

'리눅스 공부 기록' 카테고리의 다른 글

리눅스 11 - 프로세스(Process)  (0) 2021.11.01
리눅스 10 - route  (0) 2021.11.01
리눅스 9 - 네트워크 명령어  (0) 2021.10.29
ping 이름 설정  (0) 2021.10.29
리눅스 8 - 네트워크  (0) 2021.10.28

ping 

: 특정 호스트까지의 연결과 대상 시스템의 작동여부를 확인

** ICMP : 어떤 스테이션까지 네트워크 연결이 잘 되었는지 보는 프로토콜  

# ping  [ip]

인터넷이 안되면 로컬 네트워크 게이트웨이에 핑을 쏴본다.  >  로컬 네트워크에 문제가 없다는 것을 확인하기 위해

 

netstat 

: 시스템의 연결상태, 포트, 인터페이스등의 상태와 통계정보를 확인해서 네트워크 상태 진단하는 프로그램
# netstat [옵션]
옵션 

-i : 인터페이스 상태 확인 

-s : IP, ICMP, TCP, UDP 에 대한 패킷 통계정보 

-nr :  라우팅테이블 확인

[라우팅 테이블]

게이트웨이가 0.0.0.0인것은 직접 통신한다는 뜻

Destination이 0.0.0.0 은 default . Netmask 가 모든 것을 포함.

 

IP가 패킷을 보내는 원칙

목적지 주소를 보고 패킷을 보낼때 

네트워크 주소가 같을때 패킷을 보낼때 컴퓨터 IP주소로 직접보내고

네트워크 주소가 다르면 패킷을 보낼때 게이트웨이로 보낸다.

 

ARP ( Address Resolution Protocol )

: 상대방의 IP는 아는데 상대방의 MAC address를 모를 때 MAC address를 알아내는 프로토콜

상대방의 IP를 이용해 ARP 브로드캐스트를 날린다. -> 상대방은 Unicast(상대 특정)로 자신의 MAC address를 알려준다.
Datagram에 MAC address를 붙여 Frame를 만드는데 여기서 상대방의 MAC address를 모르기 때문에 사용

옵션 

- a : arp 목록 전체 출력 

- s : arp 정적 등록 

- d : arp 및 삭제 

arp 초기화

# ip –s neigh flush all 

 

네트워크 명령어
host,  nslookup, dig

: 도메인 명에서 ip를 확인하거나 ip를 이용 도메인 명을 확인

: ip로 도메인을 확인하는 것은 rev zone을 확인하는 것이므로 도메인 설정을 확인하는 것으로는 큰 의미가 없다. 

 

Traceroute(tracert) 

Unix(Windows)

: 출발지 시스템에서 목적지 시스템까지의 데이터 전송 경로를 추적하는 명령어

 

 

 

 

 

 

ping 이름 설정해 IP 주소 없이 ping 보내기

ping 이름 설정

windows에서 사용하는 방법

리눅스는 /etc/hosts 파일에서 수정

[ C:\Windows\System32\drivers\etc ]

메모장 관리자 권한으로 열기 후 다음 폴더에 들어간다.

 

호스트 파일에서 사용할 IP 주소를 등록한다.

 

위와 같이 변경된 것을 확인할 수 있다.

BETWEEN..AND 연산자

SELECT [DISTINCT | ALL] 컬럼, 컬럼 ... 
FROM 테이블 WHERE 컬럼 BETWEEN 값1 AND 값2 (컬럼 >= 값1 AND 컬럼 <= 값2) 
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......


예제 1. 다음 조건에 맞는 사원을 검색한다.
- 급여가 1000에서 2000 이내인 사원

SELECT * FROM emp 
WHERE sal BETWEEN 1000 AND 2000; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30
0702    김민지     남  회계    0301     2017/01/09       1100         60 02

- 10, 20번 부서 사원

SELECT * FROM emp 
WHERE dno BETWEEN '10' AND '20'; #between을 문자에 쓰지 않기 > 좋지 않음 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
1001    문시현     남  모델링  0201     1991/02/01       4500        520 10
1002    김주란     여  모델링  0201     1992/03/03       4100        330 20
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20
3002    권아현     여  분석    1002     2001/01/29       2900            20
3001    김선유     남  분석    1001     1998/10/17       3200        300 10
0269    권나현     여  분석    0301     2015/05/21       2600       1900 10

BETWEEN을 문자열에 사용하면 답은 나오지만 좋지 않다. (IN 사용)

예제 2. 1992년에서 1996년 사이에 입사한 사원을 검색한다.

SELECT * FROM emp 
WHERE hdate BETWEEN '1992/01/01' AND '1996/12/31' 
ORDER BY hdate;

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
0301    이승철     남  회계    0001     1992/02/01       3400          0 02
1002    김주란     여  모델링  0201     1992/03/03       4100        330 20
2008    윤고은     여  개발    0001     1992/03/03       2100            40
2003    정의찬     남  개발    0202     1992/03/03       4350            30
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
1003    양선호     남  모델링  0201     1995/02/21       4300            30


예제 3. 급여가 2000에서 1000 사이인 사원을 검색한다.

SELECT * FROM emp 
WHERE sal BETWEEN 2000 AND 1000; 

선택된 레코드가 없습니다.

BETWEEN은 앞에 오는 값이 뒤에 값보다 작아야 한다.

 

 

IN 연산자

SELECT [DISTINCT | ALL] 컬럼, 컬럼 ... 
FROM 테이블 
WHERE 컬럼 IN (값1, 값2 ...) (컬럼=값1 OR 컬럼=값2 OR ....) 
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......

= 값이 여러개 있을 경우에 사용

값 여러개 중에 하나만 맞아도 사용 가능


예제 4. 다음 조건에 맞는 사원을 검색한다.
- 개발이나 관리 업무를 담당하는 사원

SELECT * FROM emp 
WHERE job IN ('개발', '관리') 
ORDER BY job; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20
2008    윤고은     여  개발    0001     1992/03/03       2100            40
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30
2003    정의찬     남  개발    0202     1992/03/03       4350            30

- 10, 20번 부서 사원

SELECT * FROM emp 
WHERE dno IN ('10', '20') 
ORDER BY dno; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
0401    김진성     남  회계    1001     2008/03/13       3200       1000 10
0269    권나현     여  분석    0301     2015/05/21       2600       1900 10
3001    김선유     남  분석    1001     1998/10/17       3200        300 10
1001    문시현     남  모델링  0201     1991/02/01       4500        520 10
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
0120    김경현     남  지원    1002     1999/09/05       4000       2500 20
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20


예제 5. 결과가 동일한 두 개의 SQL문을 비교해 보자

SELECT * FROM emp 
WHERE dno BETWEEN '10' AND '20' AND job = '개발'; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20

 

실습

1. 평점이 3.0에서 4.0 사이의 학생을 검색한다.

SELECT * FROM student 
WHERE avr BETWEEN 3.0 AND 4.0;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
905301  유태지     남           4 화학          3.28
923903  정남윤     남           3 생물          3.23
948204  서창동     남           1 식영          3.21
945302  김람석     남           1 화학          3.56
913902  황진혜     여           4 생물          3.15
933904  임영현     여           2 생물          3.98
915604  정성현     남           4 유공          3.34


2. 1999년에서 2001년까지 부임한 교수의 명단을 검색한다.

SELECT * FROM professor 
WHERE hiredate BETWEEN '1999/01/01' AND '2001/12/31' 
ORDER BY hiredate; 

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1018    김응전     물리    조교수  1999/02/18
1013    하영진     물리    부교수  1999/04/19
1012    이영준     물리    부교수  2000/05/18
1027    임충원     생물    조교수  2001/06/03


3. 화학과와 물리학과, 생물학과 학생을 검색한다.

SELECT * FROM student 
WHERE major IN ('화학', '물리', '생물');

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915301  정동상     남           4 화학           .95
905301  유태지     남           4 화학          3.28
905302  정욱상     남           4 화학          1.44
915303  정욱주     남           4 화학           .95
923903  정남윤     남           3 생물          3.23
923904  한현석     남           3 생물          2.45
933901  김용서     남           2 생물          1.48


4. 정교수와 조교수를 검색한다.

SELECT * FROM professor 
WHERE orders IN ('정교수', '조교수'); 

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12
1007    이초아     화학    조교수  2010/07/06
1008    문규식     화학    조교수  2005/02/11
1010    이규진     물리    정교수  1998/10/07
1009    이준영     물리    정교수  1991/10/04
1016    호연작     물리    조교수  2009/10/21
1018    김응전     물리    조교수  1999/02/18


5. 학점수가 1학점, 2학점인 과목을 검색한다.

SELECT * FROM course 
WHERE st_num IN (1, 2); 

CNO     CNAME            ST_NUM PNO
------- ------------ ---------- -------
1211    일반화학실험          2 1001
1214    무기화학              2 1004
1216    환경화학              2 1006
1218    생화학                2 1008
1227    이학수학              2 1017
1228    위상수학              2 1018
2365    전자기학              2 1029


6. 1, 2 학년 학생 중에 평점이 2.0에서 3.0 사이인 학생을 검색한다.

SELECT * FROM student 
WHERE syear IN (1, 2) AND (avr BETWEEN 2.0 AND 3.0) 
ORDER BY syear; 

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
948203  황보우리   여           1 식영          2.83
945605  오경운     남           1 유공          2.99
945604  권현       남           1 유공          2.89
945602  차정혜     여           1 유공          2.73
943901  최혜원     여           1 생물          2.54
948201  이창지     남           1 식영           2.9
945303  남궁경아   여           1 화학          2.36


7. 화학, 물리학과 학생 중 1, 2 학년 학생을 성적순으로 검색한다.

SELECT * FROM student 
WHERE major IN ('화학', '물리') AND syear IN (1, 2) 
ORDER BY avr DESC;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
945302  김람석     남           1 화학          3.56
934504  갑서진     여           2 물리          3.22
944503  곽득용     남           1 물리           3.2
935304  최홍승     남           2 화학             3
925309  오우재     여           1 화학          2.99
925306  김재백     남           2 화학          2.78
944511  김형진     여           1 물리          2.76


8. 물리, 화학과 학생 중 4.5 환산 평점이 3.5에서 4.0 사이인 학생을 검색한다.

SELECT * FROM student 
WHERE major IN ('물리', '화학') AND ((avr*4.5/4) BETWEEN 3.5 AND 4.0);

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
905301  유태지     남           4 화학          3.28
914502  문수보     남           4 물리          3.33
944503  곽득용     남           1 물리           3.2
934504  갑서진     여           2 물리          3.22
914504  심빈경     남           4 물리          3.33


9. 물리, 화학과 학생의 정보를 학년별 성적순으로 검색한다.

SELECT * FROM student 
WHERE major IN ('물리', '화학') 
ORDER BY syear, avr DESC;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
945302  김람석     남           1 화학          3.56
944503  곽득용     남           1 물리           3.2
925309  오우재     여           1 화학          2.99
944511  김형진     여           1 물리          2.76
945303  남궁경아   여           1 화학          2.36
945314  이철윤     남           1 화학          2.22
944512  서동조     남           1 물리          1.99


10. 물리, 화학과 교수 중에 1999년에서 2000년 사이에 부임한 교수의 정보를 직위별로 검색한다.

SELECT * FROM professor 
WHERE section IN ('물리', '화학') AND (hiredate BETWEEN '1999/01/01' AND '2000/12/31') 
ORDER BY orders;

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1013    하영진     물리    부교수  1999/04/19
1012    이영준     물리    부교수  2000/05/18
1018    김응전     물리    조교수  1999/02/18

 

/lib/modules/3.10.0-1160.el7.x86_64/kernel/drivers/net 경로에

리눅스에서 지원하는 모든 네트워크 디바이스 파일이 존재 

 

ifconfig 

: 네트워크 인터페이스 상태를 확인, 설정을 변경

 (변경 내용은 비영구적)    
# ifconfig 

# ifconfig  [NIC명] 

# ifconfig  [NIC명]  [IP]  netmask [mask명]

              [up|down]

네트워크 설정 파일
/etc/sysconfig/network-scripts/ifcfg-NIC명  :  네트워크 설정 : IP, subnetmask, gateway … 

/etc/resolv.conf  :  DNS Server 

/etc/hostname  :  호스트명
추가 설정 파일

/etc/sysconfig/network  :  호스트명,  gateway, NOZEROCONF=yes

 

[ ntsysv ] : 서비스 관리

 

[ vi /etc/sysconfig/network-scripts/ifcfg-ens32 ] 에 들어가 수정한다.
TYPE=Ethernet 

DEVICE=nic명 

ONBOOT=[yes/no] 

BOOTPROTO=[static/dhcp/bootp/none] 

UUID=UUID명 

IPADDR=IP 

PREFIX=Subnet Mask 

GATEWAY=gateway 주소 

DNS1=dns 서버 주소 

NETWORK=Network 주소

 

네트워크 재시작

# systemctl [stop | start | restart]  network
파일을 수정한 이후에는 반드시 네트워크를 재시작

 

컴퓨터에 IP 주소 변경하고 컴퓨터를 끄지 않고 리부팅하기 실습

[ vi /etc/sysconfig/network-scripts/ifcfg-ens32 ] 에 들어가 수정한다.

IP를 수정하고 [ systemctl restart network ] 명령어를 쳐서  네트워크를 재시작한다.

다시 PuTTY에 들어가 192.168.10.132 로 접속해 확인하면 되고,

네트워크 매니저가 켜져있으면 X윈도우에서 변경 가능하다.

 

X윈도우에서 IP가 바뀐 것을 확인할 수 있다. (네트워크 매니저가 켜있어야 X윈도우에서 설정 가능)

 

DNS 서버 주소 변경

[ vi /etc/resolv.conf ]

 

IP주소 변경 다른 방법 (파일을 변경하지 않아 임시로 바꾸는 것) 

 

 

먼저 ftp에 접속해 아래와 같은 .rpm 파일을 다운받는다.

[ lcd 다운받을 경로 ] 명령어를 적어 다운받을 파일 경로를 지정한다.

get 명령어를 이용해 파일을 다운받는다.

 

지정된 경로에 잘 다운된 것을 확인할 수 있다.

 

 

서비스 관리 목록 및 네트워크 서비스 설정을 보려면 [ ntsysv ] 명령을 입력하면 다음과 같이 나온다.

 

X 윈도우에서 네트워크 설정 변경

보통은 잘 사용하지 않는다.

프로그램 > 시스템 도구 > 설정에 들어간다.

 

네트워크 설정이 켜져있는 것을 확인하고 IP 주소를 바꾸려면 설정에 들어간다.

 

설정에 들어가 여기서 IP 주소를 바꾸면 된다.

 

TUI 상태에서 네트워크 설정하기

[ nmtui ] 네트워크 매니저 들어가기

 

리눅스 설치하면 반드시 해야할 네트워크 설정 전 사전 작업

ntsysv에 들어가 다음과 같이 설정한다.

네개를 설정 해제한다.

firewalld 도 설정 해제한다.

 

SELinux 끄기

[ vi /etc/selinux/config ] 여기에 들어가 아래와 같이 disabled로 설정한다.

이 설정 뒤에는 reboot 한다.

 

 

ntsysv

관계 연산자

SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...
FROM  테이블  
WHERE 조건 [관계 연산자 조건 ...]
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......

 

예제 1. 다음 각 조건에 맞는 데이터를 검색한다. 

- 20번 부서 사원 중에 급여가 2000 이상인 사원을 검색한다.

SELECT * FROM emp
WHERE dno = '20'
AND sal >= 2000; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
1002    김주란     여  모델링  0201     1992/03/03       4100        330 20
3002    권아현     여  분석    1002     2001/01/29       2900            20
0120    김경현     남  지원    1002     1999/09/05       4000       2500 20

- 20번 부서 사원 중에 급여가 2000 이상이고 모델링 업무를 담당하는 사원을 검색한다.

SELECT * FROM emp
WHERE dno = '20'
AND sal >= 2000
AND job = '모델링';  

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
1002    김주란     여  모델링  0201     1992/03/03       4100        330 20

 

예제 2. 다음 두 문장을 실행하고 결과를 해석해 보자.

SELECT * FROM emp
WHERE dno = 10 OR sal > 1600 AND comm > 600;

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
0201    안영숙     여  지원    0001     1991/02/01       3900       2000 01
0202    손하늘     여  지원    0001     1991/12/01       3510        980 01
1001    문시현     남  모델링  0201     1991/02/01       4500        520 10
2001    남궁연호   남  개발    0202     1993/12/13       3950        200 10
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30
3001    김선유     남  분석    1001     1998/10/17       3200        300 10
0269    권나현     여  분석    0301     2015/05/21       2600       1900 10

우선순위가 AND가 OR보다 높기 때문에 답이 맞는지 확인이 어렵다.

괄호를 포함시켜 우선순위를 표시해준다.

SELECT * FROM emp
WHERE (dno = 10 OR sal > 1600) AND comm > 600;

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
0201    안영숙     여  지원    0001     1991/02/01       3900       2000 01
0202    손하늘     여  지원    0001     1991/12/01       3510        980 01
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30
0269    권나현     여  분석    0301     2015/05/21       2600       1900 10
0401    김진성     남  회계    1001     2008/03/13       3200       1000 10
0120    김경현     남  지원    1002     1999/09/05       4000       2500 20

 

 

LIKE 연산자

SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...
FROM  테이블
WHERE 컬럼 LIKE '비교 문자열' 
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......;

 

 

예제 3. 다음 조건에 맞는 사원을 검색한다.

- 김씨 성을 가진 사원

SELECT * FROM emp
WHERE ename LIKE '김%'; 

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
1002    김주란     여  모델링  0201     1992/03/03       4100        330 20
0309    김선유     남  회계    0302     2011/01/03        900         90 02
3001    김선유     남  분석    1001     1998/10/17       3200        300 10
0702    김민지     남  회계    0301     2017/01/09       1100         60 02
0401    김진성     남  회계    1001     2008/03/13       3200       1000 10
0120    김경현     남  지원    1002     1999/09/05       4000       2500 20

- 이름이 '하늘'인 사원

SELECT * FROM emp
WHERE ename LIKE '%하늘';

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
0202    손하늘     여  지원    0001     1991/12/01       3510        980 01

- 성과 이름이 각각 한 글자인 사원을 검색한다.

SELECT * FROM emp
WHERE ename LIKE '__';

선택된 레코드가 없습니다.

 

예제 4. 이름에 '%' 문자가 포함된 사원을 검색한다.

SELECT eno, ename
FROM emp
WHERE ename LIKE '%#%%' ESCAPE '#'; 

선택된 레코드가 없습니다.

 

실습

1. 화학과와 물리학과 학생을 검색한다. 

SELECT *
FROM student
WHERE major = '화학' OR major = '물리';

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915301  정동상     남           4 화학           .95
905301  유태지     남           4 화학          3.28
905302  정욱상     남           4 화학          1.44
915303  정욱주     남           4 화학           .95
915304  권보수     남           4 화학          2.32
915305  최정희     여           3 화학           .58
925306  김재백     남           2 화학          2.78

 

2. 화학과가 아닌 학생 중에 1학년 학생을 검색한다. 

SELECT *
FROM student
WHERE major != '화학' AND syear = 1;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
948203  황보우리   여           1 식영          2.83
948204  서창동     남           1 식영          3.21
943901  최혜원     여           1 생물          2.54
943902  하정자     남           1 생물          3.25
943903  유지아     여           1 생물          1.99
943905  유태지     남           1 생물          2.98
944511  김형진     여           1 물리          2.76

 

3. 화학과 3학년 학생을 검색한다. 

SELECT *
FROM student
WHERE major = '화학' AND syear = 3;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915305  최정희     여           3 화학           .58
925302  이지영     여           3 화학          1.68
925301  김환       여           3 화학          3.58
925305  황현정     여           3 화학          2.98

 

4. 평점이 2.0에서 3.0 사이인 학생 검색한다. 

SELECT *
FROM student
WHERE avr > 2.0 AND avr < 3.0;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
923904  한현석     남           3 생물          2.45
915304  권보수     남           4 화학          2.32
948203  황보우리   여           1 식영          2.83
925306  김재백     남           2 화학          2.78
933902  김현수     남           2 생물          2.48
933903  정승동     남           2 생물          2.99
945303  남궁경아   여           1 화학          2.36

 

5. 교수가 지정되지 않은 과목 중에 학점이 3학점인 과목을 검색한다. 

SELECT *
FROM course
WHERE pno IS NULL AND st_num = 3;

선택된 레코드가 없습니다.

 

6. 화학 관련된 과목 중 학점수가 2학점 이하인 과목을 검색한다.

   (화학 관련 과목은 과목명에 화학이 들어간 과목을 의미한다.) 

SELECT *
FROM course
WHERE cname LIKE '%화학%' AND st_num <= 2;

CNO     CNAME            ST_NUM PNO
------- ------------ ---------- -------
1211    일반화학실험          2 1001
1214    무기화학              2 1004
1216    환경화학              2 1006
1218    생화학                2 1008
2369    무기화학실험          2

 

7. 화학과 정교수를 검색한다. 

SELECT *
FROM professor
WHERE section LIKE '화학' AND orders LIKE '정교수';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12

 

8. 화학과 학생 중에 성이 권씨인 학생을 검색한다.  

SELECT *
FROM student
WHERE sname LIKE '권%';

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915304  권보수     남           4 화학          2.32
925601  권운각     남           3 유공           2.9
924501  권석복     여           3 물리             4
935604  권석현     여           2 유공          2.99
945604  권현       남           1 유공          2.89

 

9. 부임일이 1995년 이전인 정교수를 검색한다. 

SELECT *
FROM professor
WHERE hiredate < '1995/01/01' AND orders LIKE '정교수';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1009    이준영     물리    정교수  1991/10/04
1035    장관용     식영    정교수  1985/07/28

 

10. 성과 이름이 각각 한글자인 교수를 검색한다. 

SELECT *
FROM professor
WHERE pname LIKE '__';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12
1022    이준       생물    부교수  1989/05/05

파일 시스템

: 파일을 저장하기 위한 운영체제의 논리적인 구조 

 

파티션

: 물리적인 디스크를 논리적인 저장영역으로 구별한 것 

 

MBR

: 디스크의 앞쪽이 물리적으로 정의되어있는 sector OS가 직접 사용하지 않으며 부트로더가 저장된다.

 

- Primary partition (1, 2, 3, 4)

 : 물리적인 디스크에 독립적으로 존재하며 파일시스템을 생성, 운 영체제가 직접 사용 가능하다. 각 물리적인 디스크마다 4개까지 생성할 수 있다. 

- Extended partition 

 : 디스크마다 1개까지 생성 가능하며 직접 사용할 수 없고 logical partition으로 분할 사용한다. 

- Logical partition (5, 6, 7, 8)

 : Extended partition내에 만들어지며 사용은 parimary partition과 동일하다.

** P+E는 최대 4개까지 생성 가능하다.

 

IDE 

- 디스크 자체 : /dev/hda, /dev/hdb, /dev/hdc 

- 파티션 : /dev/hda1,  /dev/hda2,  /dev/hda3…
SCSI, SATA 

- 디스크 자체 : /dev/sda, /dev/sdb, /dev/sdc 

- 파티션 : /dev/sda1,  /dev/sda2,  /dev/sda3…

 

df 

디스크의 마운트 상태와 용량 확인
옵션 

-T : 파일 시스템 타입까지 출력한다. 

-h : 읽기 쉬운 단위로 출력한다.

 

하드디스크 사용하는 과정 

fdisk : 하드드라이브 파티션 나누는 작업

 ↓

mkfs : 파일시스템 생성

 ↓

mount : 특정 디렉토리에 연결

 

하드디스크 사용 실습

2021.10.27 - [리눅스 공부 기록] - 리눅스 파일 시스템과 파티션 실습 및 swap 공간추가

 

리눅스 파일 시스템과 파티션 실습

- 조건 - HDD 추가 파티션을 3개로 나누기 P : 1개 / L : 2개 < 마운트 디렉토리 > /home1 /hoem2 /home3 먼저 하드드라이브를 추가하기 위해 ADD를 눌러 추가한다. 하드디스크를 누르고 Next SATA를 선택하고..

lemonandgrapefruit.tistory.com

 

 

fdisk

물리적인 디스크에 논리적인 파티션을 생성하는데 사용하는 명령어.

만들어진 파티션에는 mkfs 명령으로 파일시스템이 생성

mount 명령을 통해 특정 디렉토리에 마운트된 다음 사용
# fdisk   디스크명
# fdisk  /dev/sda 

fdisk 프롬프트에서 사용하는 명령
p : 현재 파티션 상태 출력 

d : 파티션삭제 

n : 파티션 생성 

t : 파티션 변경 

w : 저장 후 종료 

q : 취소 후 종료

 

mkfs 

파티션에 파일시스템 생성
# mkfs  –t  [파일시스템 타입]  파티션명
파일시스템 타입과 명령어 

mkfs -t xfs  -> mkfs.xfs 

mkfs  -t  ext2   ->  mke2fs 

mkfs  -t ext3   ->  mke2fs  -j
• 예) mkfs –t xfs /dev/sda1  -> mkfs.xfs  -f /dev/sda1

 

mount

파일시스템은 지정한 디렉토리에 연결해서 사용 가능하도록 한다.
# mount  [-a]  [-t  [FStype]]  [장치명]  [디렉토리]
옵션 

-a  :  /etc/fstab의 내용을 읽어 모두 mount 한다. 

-t   : 파일 시스템 양식을 정한다. 

-o  :  마운트 옵션을 추가로 지정한다. .

   noatime : atime을 갱신하지 않는다. . 

   remount : 옵션을 변경을 위해 재마운트한다. 

   ro : R Only로 정의한다.

예) 

#  mount  -t  ext3  /dev/sdb1    /data1 

#  mount  -t  iso9660  /dev/cdrom  /cdrom 

#  mount  -o  ro  /dev/sdb1   /home2 

#  mount  -a

 

umount

mount된 파일시스템을 시스템으로 부터 제거

# umount  [디렉토리명] 또는 [장치명]

 

# blkid

: 파티션의 정보 확인 

 

UUID를 이용한 mount, umount 실습

UUID 이용 mount
UUID 이용 umount

 

xfs_admin 

: 파티션에 다양한 파라미터(라벨명)를 변경 or 확인

# xfs_admin  -L  [라벨명]  [장치명] 

# xfs_admin  -L  “--” [장치명]

# xfs_admin  -l(소문자) [장치명] 

 

라벨명을 이용한 mount, umount 실습

 

findfs 

: UUID나 라벨명으로 장치명을 확인
# findfs LABEL=[라벨명] 

# findfs UUID=[uuid]

 

 

자동 마운트

/etc/fstab 파일은 시스템 시작 시 자동으로 mount할 파일 시스템의 목록이나 옵션을 저장

vi /etc/fstab 에서 변경한다.

아래 내용을 추가한다.

/dev/sdb1    /home1     xfs    defaults   0  0

/dev/sdb5    /home2     xfs    defaults   0  0

/dev/sdb6    /home3     xfs    defaults   0  0

 

swap 공간 추가 

1. 스왑파티션 포맷 (mkfs) 

# mkswap –c  [장치명]
2. 스왑파티션 활성화(mount) 

# swapon [장치명] 

  swapon -s  : 현재 swap 상태를 확인한다.

# swapoff [장치명]
3. /etc/fstab에 등록

하드디스크 사용해 파일 시스템  생성 및 파티션 실습

- 조건 -

HDD 추가

파티션을 3개로 나누기

P : 1개 / L : 2개

< 마운트 디렉토리 >

/home1

/hoem2

/home3

 

먼저 하드드라이브를 추가하기 위해 ADD를 눌러 추가한다.

하드디스크를 누르고 Next.

 

SATA를 선택하고 Next

Create a new virtual disk를 누르고 Next

 

30GB로 설정하고 다음으로 간다.

이름은 기본값으로 설정한다.

 

하드디스크가 생성된 것을 확인할 수 있다.

 

리눅스에 들어가 하드디스크를 사용한다.

Primary partition 을 생성한다.

 

Extended partition을 생성한다.

 

Extended 파티션 안에 로컬 파티션 2개를 만든다.

각 로컬 파티션은 파티션 넘버는 자동으로 5, 6으로 지정된다.

 

파티션이 잘 생성된 것을 확인한다.

 

파티션에 파일시스템을 만들어준다.

 

마운트를 지정한다. 각 디렉토리에 마운트 지정해 연결해 사용한다.

 

df 로 디스크 마운트 상태와 용량을 확인한다.

 

재부팅하면 마운트 지정한 것이 사라진다.

 

Swap 공간 추가

- 조건 -

기존 파티션에서 sdb6을 제거하고 sdb6, sdb7을 생성해 sdb7은 swap로 설정한다.

 

먼저 sdb에 있는 로컬 파티션 6을 삭제하고 로컬을 6, 7로 나눠 생성한다.

sdb6은 8GB, sdb7은 2GB로 설정한다.

 

sdb7의 파티션을 swap로 변경한다.

 

sdb7이 swap로 만들어진 것을 확인할 수 있다.

 

sdb6의 파일시스템을 생성한다.

 

swap 을 포맷하고 swap를 활성화한다.

 

리부팅 해도 마운트 되게 설정하기

vi /etc/fstab 에서 위와 같이 추가해준다.

 

 

마운트와 swap이 잘 된 것을 확인할 수 있다.

 

 

마운트 설정하는 다른 방법

vi rc.local 에서 아래와 같이 moun, swap, IP주소를 변경한다.

권한을 수정하고 리부트 하면 적용된 것을 확인할 수 있다.

컴퓨터를 다시 켜도 모두 살아있다.

조건 검색

SQL> SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...
     FROM  테이블
     WHERE 조건
     ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......

 

예제 1. 다음 각 조건에 맞는 정보를 검색

- 사원 중에 급여가 4000 이상인 사원의 명단

SELECT eno 사번, ename 이름, sal 급여
FROM emp
WHERE sal >= 4000;

사번    이름             급여
------- ---------- ----------
0001    안영희           4800
1001    문시현           4500
1002    김주란           4100
1003    양선호           4300
2003    정의찬           4350
0120    김경현           4000

- 이름이 '문시현'인 사원의 정보

SELECT *
FROM emp
WHERE ename = '문시현';

ENO     ENAME      SEX JOB     MGR      HDATE           SAL       COMM DNO
------- ---------- --- ------- -------- -------- ---------- ---------- ----
1001    문시현     남  모델링  0201     91/02/01       4500        520 10

- 10번 부서 이외 부서 사원의 명단

SELECT * FROM emp
WHERE dno != 10;

ENO     ENAME      SEX JOB     MGR      HDATE           SAL       COMM DNO
------- ---------- --- ------- -------- -------- ---------- ---------- ----
0001    안영희     여  경영             91/01/01       4800          0 01
0201    안영숙     여  지원    0001     91/02/01       3900       2000 01
0202    손하늘     여  지원    0001     91/12/01       3510        980 01
0301    이승철     남  회계    0001     92/02/01       3400          0 02
0302    박선경     여  회계    0301     91/03/02       3300          0 02
1002    김주란     여  모델링  0201     92/03/03       4100        330 20
1003    양선호     남  모델링  0201     95/02/21       4300            30

 

예제 2. 잘못된 조건 검색 (문자타입인데 숫자타입으로 검색)

SELECT * FROM emp
WHERE dno=10; #dno 칼럼음 문자타입

ENO     ENAME      SEX JOB     MGR      HDATE           SAL       COMM DNO
------- ---------- --- ------- -------- -------- ---------- ---------- ----
1001    문시현     남  모델링  0201     91/02/01       4500        520 10
2001    남궁연호   남  개발    0202     93/12/13       3950        200 10
3001    김선유     남  분석    1001     98/10/17       3200        300 10
0269    권나현     여  분석    0301     15/05/21       2600       1900 10
0401    김진성     남  회계    1001     08/03/13       3200       1000 10

 

예제 3. 연봉이 30,000 이상인 사원의 이름을 검색한다 검색

SELECT eno 사번, ename 이름, sal*12+NVL(comm,0) 연봉
FROM emp
WHERE sal*12+NVL(comm,0) >= 30000;

사번    이름             연봉
------- ---------- ----------
0001    안영희          57600
0201    안영숙          48800
0202    손하늘          43100
0301    이승철          40800
0302    박선경          39600
1001    문시현          54520
1002    김주란          49530

 

예제 4. 보너스가 200 이하인 사원을 검색

SELECT eno 사번, ename 이름, comm 보너스
FROM emp
WHERE comm <= 200;

사번    이름           보너스
------- ---------- ----------
0001    안영희              0
0301    이승철              0
0302    박선경              0
2001    남궁연호          200
0309    김선유             90
0702    김민지             60

보너스가 없는 사람은 NVL을 사용해 0으로 변경해 보너스가 NULL인 사람도 검색하도록 다음과 같이 검색한다.

SELECT eno 사번, ename 이름, comm 보너스
FROM emp
WHERE NVL(comm,0) <= 200;

사번    이름           보너스
------- ---------- ----------
0001    안영희              0
0301    이승철              0
0302    박선경              0
1003    양선호
2001    남궁연호          200
2003    정의찬
2008    윤고은

 

예제 5. 입사일이 1996년 이후인 사원의 정보를 검색

SELECT * FROM emp
WHERE hdate >= '1996/01/01';

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20
3002    권아현     여  분석    1002     2001/01/29       2900            20
0309    김선유     남  회계    0302     2011/01/03        900         90 02
3001    김선유     남  분석    1001     1998/10/17       3200        300 10
0702    김민지     남  회계    0301     2017/01/09       1100         60 02
0269    권나현     여  분석    0301     2015/05/21       2600       1900 10
0401    김진성     남  회계    1001     2008/03/13       3200       1000 10

 

널과 비교 연산
 - 널은 결정된 값이 아님으로 '=', '<' 등의 비교 연산자를 사용할 수 없다. 

 - 널에 대한 직접적인 검색은 다음과 같이 특별한 연산자를 이용한다.

  IS NULL : 널을 검색한다.

  IS NOT NULL : 널이 아닌 값를 검색한다.

 

예제 6. 보너스 컬럼이 널인 사원를 검색

SELECT *  FROM emp
WHERE comm IS NULL;  # comm = NULL 절대 안됨!!!

ENO     ENAME      SEX JOB     MGR      HDATE           SAL       COMM DNO
------- ---------- --- ------- -------- -------- ---------- ---------- ----
1003    양선호     남  모델링  0201     95/02/21       4300            30
2003    정의찬     남  개발    0202     92/03/03       4350            30
2008    윤고은     여  개발    0001     92/03/03       2100            40
3002    권아현     여  분석    1002     01/01/29       2900            20

 

실습

1. 화학과 학생을 검색한다. 

SELECT * FROM student
WHERE major = '화학';

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915301  정동상     남           4 화학           .95
905301  유태지     남           4 화학          3.28
905302  정욱상     남           4 화학          1.44
915303  정욱주     남           4 화학           .95
915304  권보수     남           4 화학          2.32
915305  최정희     여           3 화학           .58
925306  김재백     남           2 화학          2.78

 

2. 평점이 2.0 미만인 학생을 검색한다. 

SELECT * FROM student
WHERE avr < 2.0;

SNO     SNAME      SEX      SYEAR MAJOR          AVR
------- ---------- --- ---------- ------- ----------
915301  정동상     남           4 화학           .95
905302  정욱상     남           4 화학          1.44
915303  정욱주     남           4 화학           .95
933901  김용서     남           2 생물          1.48
915305  최정희     여           3 화학           .58
935303  김완창     남           2 화학           .34
913903  정도정     남           4 생물           .15

 

3. 권현 학생의 평점을 검색한다. 

SELECT sno 학번, sname 이름, avr 평점
FROM student
WHERE sname = '권현';

학번    이름             평점
------- ---------- ----------
945604  권현             2.89

 

4. 정교수의 명단을 검색한다. 

SELECT * FROM professor
WHERE orders = '정교수';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12
1010    이규진     물리    정교수  1998/10/07
1009    이준영     물리    정교수  1991/10/04
1021    왕사진     생물    정교수  1997/02/17
1029    주동평     생물    정교수  2006/01/26
1030    김동평     유공    정교수  2002/02/15
1033    박삭광     유공    정교수  2005/07/14

 

5. 화학과 소속 교수의 명단을 검색한다. 

SELECT * FROM professor
WHERE section = '화학';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12
1004    시진영     화학    부교수  1991/02/01
1006    장청아     화학    부교수  2003/05/20
1007    이초아     화학    조교수  2010/07/06
1008    문규식     화학    조교수  2005/02/11

 

6. 송강 교수의 정보를 검색한다. 

SELECT * FROM professor
WHERE pname = '송강';

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1001    송강       화학    정교수  2002/08/12

 

7. 학년별로 화학과 학생의 성적을 검색한다. 

SELECT major 학과, syear 학년, sno 학번, sname 이름, avr 성적
FROM student
WHERE major = '화학' 
ORDER BY syear;

학과          학년 학번    이름             성적
------- ---------- ------- ---------- ----------
화학             1 945302  김람석           3.56
화학             1 925309  오우재           2.99
화학             1 945314  이철윤           2.22
화학             1 945303  남궁경아         2.36
화학             2 935304  최홍승              3
화학             2 935301  이준혜           1.99
화학             2 925306  김재백           2.78

 

8. 2000년 이전에 부임한 교수의 정보를 부임일순으로 검색한다. 

SELECT * FROM professor
WHERE hiredate < '2000/01/01'
ORDER BY hiredate ASC;

PNO     PNAME      SECTION ORDERS  HIREDATE
------- ---------- ------- ------- ----------
1035    장관용     식영    정교수  1985/07/28
1032    이유당     유공    부교수  1988/11/01
1022    이준       생물    부교수  1989/05/05
1004    시진영     화학    부교수  1991/02/01
1009    이준영     물리    정교수  1991/10/04
1031    김서령     식영    부교수  1991/10/09
1036    성현수     유공    부교수  1993/07/13

 

9. 담당 교수가 없는 과목의 정보를 검색한다. 

SELECT * FROM course
WHERE pno IS NULL;

CNO     CNAME            ST_NUM PNO
------- ------------ ---------- -------
2369    무기화학실험          2

 

10. 보너스가 급여의 10% 이상인 사원을 검색한다.

SELECT * FROM emp
WHERE comm >= sal*1.1;

ENO     ENAME      SEX JOB     MGR      HDATE             SAL       COMM DNO
------- ---------- --- ------- -------- ---------- ---------- ---------- ----
2002    제갈민     남  개발    0202     1996/04/30       1520       2000 20
2007    이초록     남  개발    0001     1992/09/05       1989       2300 30

 

+ Recent posts