[TIL.21.1.4 ~ 21.1.6] Linux(CentOS) 프로그램, 패키지 설치, 압축 및 묶기 외
[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 형식으로 압축하세요.