클라우드 아키텍트 양성과정

[TIL.21.1.4 ~ 21.1.6] Linux(CentOS) 프로그램, 패키지 설치, 압축 및 묶기 외

종바깅 2021. 2. 13. 22:51

[21.1.6]

RPM

- 프로그램을 설치 및 삭제하기 위해 사용되는 명령어

- 확장명은 .rpm이며 이를 패키지(pakage)라고 부름

- 파일의 의미 : 패키지이름-버전-릴리즈번호.CentOS버전.아키텍처.rpm

- 자주사용하는 RPM명령어 옵션

[root@localhost ~]# rpm -Uvh package이름.rpm	// 설치
- U >> 패키지 설치/업데이트
- v >> 설치과정 확인
- h >> 설치과정을 화면에 출력
[root@localhost ~]# rpm -e package이름		// 삭제

- 단점 : 의존성문제, 예를들어 A패키지가 설치되기 위해서 B패키지가 필요할 경우, RPM으로는 해결이 까다로움.

 

DNF

- 편리한 패키지 설치가 가능

- 의존성 문제 해결

>> 인터넷을 통하여 필요한 파일을 저장소(Repository)에서 자동으로 모두 다운로드 해서 설치하는 방법으로 의존성 문제 해결

[root@localhost ~]# dnf install package_name		// 기본설치
[root@localhost ~]# dnf install rpm_filename.rpm	// rpm파일 설치
[root@localhost ~]# dnf check-update			// 업데이트 가능 목록 보기
[root@localhost ~]# dnf remove package_name		// 패키지 삭제
[root@localhost ~]# dnf info package_name		// 패키지 정보 확인

파일압축, 묶기

- 압축 : xz, bz2 ,gz, zip 등 사용방법 동일

[root@localhost ~]# xz filename		//압축
[root@localhost ~]# xz -d filename	//해제

- 묶기 (tar)

- tar : 확장명 tar로 묶음 파일을 만들어 주거나 묶음을 풀어 준다.

- 동작 : c(묶기), x(풀기), t(경로확인)
- 옵션 : f(파일), v(과정보이기), J(tar+xz), z(tar+gzip), j(tar+bzip2)

[root@localhost ~]# tar cvf my.tar /etc/sysconfig/			// 묶기
[root@localhost ~]# tar cvfj my.tar.xz  /etc/sysconfig /etc/sysconfig/	// 묶기 + xz압축
[root@localhost ~]# tar xvf my.tar					// tar 풀기
[root@localhost ~]# tar svfj my.tar.xz /etc/sysconfig/			// xz압축해제 + tar 풀기

 

파일위치검색

-find [경로] [옵션] [조건] [action] : 기본 파일 검색

[root@localhost ~]# find /etc –name “*.conf“
>> /etc 폴더에서 이름이 *.conf(*는 0개 이상의 모든 문자의미)인 모든 파일 찾기

[root@localhost ~]# find /bin –size -100k
>> /bin폴더에서 파일크기가 10k 이상 100k 이하인 모든 파일 찾기

[root@localhost ~]# find /home -name "*.swp" -exec rm { } \;
>> /home 폴더에서 이름이 "*.swp 모든 파일을 찾아서 삭제

 

네트워크 관련 개념

리눅스에서의 네트워크 장치 이름 : CentOS에서는 랜카드를 ens160로 인식, 이전버전에서는 eth0, eth1, ens32, ens33등으로 인식했음 

- nmtui : 네트워크와 관련된 대부분의 작업을 수행하는 명령어이다. 자동/고정ip, 서브넷마스크, 게이트웨이 정보, DNS, 네트워크카드 드라이버. 네트워크장치 (ens160)설정

- systemctl <start/stop/restart/statur> NetworkManager : 네트워크 설정을 변경하고 그 내용을 시스템에 적용시키는 명령어

 

*네트워크 설정 관련파일을 직접 편집하면 nmtui를 사용하지 않아도 된다.

 /etc/sysconfig/network - 네트워크의 시본적인 정보가 설정되어 있는 파일

 /etc/sysconfig/network-scripts/ifcfg-ens160 - ens160장치에 설정된 네트워크 정보가 모두 들어 있는 파일

 /etc/resolv.conf - DNS서버의 정보 및 호스트 이름이 들어 있는 파일

 /etc/hosts - 현 컴퓨터의 호스트 이름 및 FQDN(Fully Qualified Domain Name)이 들어있는 파일

 

파이프,필터.리다이렉션

1. 파이프 : 두 프로그램을 연결해주는 통로의 의미

- '|'를 사용한다.

>> ls -l /etc | more : 파일이 너무많아 페이지 단위로 나누어 볼때 사용

 

2. 필터 

- 필요한것만 걸러주는 명령어

- grep, tail. wc, sort 등이 있고 주로 파이프와 같이 사용된다.

>>ps -ef | grep bash : bash가 들어간 프로세스만 출력한다.

 

3. 리다이렉션

- 표준입출력의 방향을 바꿔준다.

>> ls -l > list.txt : ls -l 명령어의 결과를 list.txt 파일에 쓴다. 

>> sort < list.txt > out.txt : list.txt 파일을 정렬해서 out.txt파일에 쓴다.

 

프로세스

- 하드디스크에 저장된 프로그램이 메모리에 로딩되어 활성화된 상태

- 포그라운드 프로세스(Foreground Process) : 실행하면 화면에 나타나서 사용자와 상호작용을 하는 프로세스, 대부분의 응용프로그램
- 백그라운드 프로세스(Background Process) : 실행은 되었지만, 화면에는 나타나지 않고 실행되는 프로세스, 백신 프로그램, 서버 데몬 등
- 프로세스 번호: 각각의 프로세스에 할당된 고유번호
- 작업 번호 : 현재 실행되고 있는 백그라운드 프로세스의 순차번호

 

부모 프로세스와 자식 프로세스
- 모든 프로세스는 부모 프로세스를 가지고 있음
- 부모 프로세스를 kill 하면, 자식 프로세스도 자동으로 kill 됨
- 프로세스 관련 명령어
ps : 현재 프로세스의 상태를 확인하는 명령어, ps -ef | grep <프로세스 이름>”을 주로 사용함
kill : 프로세스를 강제로 종료하는 명령어, kill -9 <프로세스 번호>”는 강제 종료

 

서비스와 소켓

서비스 :

- 시스템과 독자적으로 구동되어 제공하는 프로세스,  예로 웹 서버(httpd), DB 서버(mysqld), FTP 서버(vsftpd) 등의 서버프로세스

- 데몬이라고도 부르며 백그라운드 프로세스의 일종이다.
- 실행 및 종료는 대개 ‘systemctl start/stop/restart 서비스이름’으로 사용 된다.
- 서비스의 실행 스크립트 파일은 /usr/lib/systemd/system/ 디렉터리에 ‘서비스이름.service’라는 이름으로 확인할 수 있다. 

 

소켓 :

 - 서비스는 항상 가동되지만, 소켓은 외부에서 특정 서비스를 요청할 경우에 systemd가 구동시킨다. 요청이 끝나면 소켓도 종료된다.
- 소켓과 관련된 스크립트 파일은 /usr/lib/systemd/system/ 디렉터리에 소켓이름.socket라는 이름으로 존재한다

 

*실습문제*

 

다음 순서대로  명령어를  작성고  실습하세요. 

 

1.  arch  그룹을 생성하세요

 

2. testusr1을 생성하면서 arch  그룹에 할당하세요. 

 

3. testusr1의 패스워드를 1234로 지정하세요. 

 

4. hello_arch.txt 파일을 생성하세요.  (vi  또는 gedit  사용) 

 

5. hello_arch.txt  파일의 owner를  testusr1으로 지정하세요 , 

 

6.  hello_arch.txt  파일을   testusr1의 home 디렉토리로 이동시키세요. 

 

7. testusr1으로 로그인하세요. 

 

8. hello_arch.txt  파일의 파일허가를     모든 유저가  읽기와쓰기,실행하기가 가능하게 하세요. 

 

9.  hello_arch.txt  파일을  xz 포맷으로 압축하세요. 

 

10.  hello_arch.txt.xz 압축  파일을  압축을 푸세요. 

 

11. hello_arch.txt  파일의 하드링크를 생성하세요.  링크명  hard_arch 

 

12. hello_arch.txt  파일의 소프트링크를 생성하세요.    링크명  soft_arch  

 

13.  hi 라는 directory를 만드세요. 

 

14    hi directory로 이동하세요. 

 

15.   현재 실행 중인 프로제스 정보를 출력하세요. 

 

16.   현재 실행 중인 프로제스 정보를 hi 디렉토리의  process_all.txt 파일에 저장하세요 

 

17.   process_all.txt 파일 내용을 정렬하여   process_sort.txt 파일에 저장하세요. 

 

18.   hi 디렉토리의 모든 파일을 묶고  xz 형식으로 압축하세요.