일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- priority_queue
- CSS
- Properties
- GC로그수집
- spring boot
- NIO
- dfs
- date
- html
- map
- 리소스모니터링
- List
- union_find
- javascript
- Calendar
- JPA
- Union-find
- scanner
- deque
- BFS
- set
- alter
- math
- 힙덤프
- 큐
- string
- 스택
- 스프링부트
- Java
- sql
- Today
- Total
매일 조금씩
02/04 ! - Linux(3) : 파일 압축 관련 명령어, 패키지 관리 명령어, 저장공간 확인 명령어, 원격 서버관리 본문
02/04 ! - Linux(3) : 파일 압축 관련 명령어, 패키지 관리 명령어, 저장공간 확인 명령어, 원격 서버관리
mezo 2021. 2. 25. 20:04Linux 배포판 - CentOS
강점 : 전체를 커스터마이징 할 수 있음
1. 소스 편집기
vi
nano
X-Window - gegit
X-Window System
* 서버 - X-Window
- gnome(그놈)
- KDE
- enlightment
* Visual Studio
* eclipse
ubuntu - 개인용 Linux
Mac (Unix - X-Window)
* 사용자 (root 밑에 존재)
root /root
사용자 /home/사용자아이디 => 디폴트라서 변경가능
adduser : 사용자 생성
passwd : 암호 수정
userdel -r : 사용자 삭제
su : 권한만 빌리기
su - : 재로그인
ex) root로 로그인 하려면 => su - root / su -
허가권 chmod 허가권 파일/디렉토리
- 기호모드
- 숫자모드 (이게 덜 복잡)
소유권 chown 소유자.그룹 파일/디렉토리
* 프로세스
ps 옵션
ps aux | grep 검색어
ps -ef | grep 검색어
background - 후면
foreground - 전면
* 시스템 - 데몬 (demon : d) : 리부팅이 되도 자동으로 시작되야 하는 것들 (ex. mariadb)
systemctl
* atd
systemctl status atd
* crond
-> 데몬이 관리하는 서비스의 목록 확인
[master@localhost ~]$ systemctl list-unit-files --type=service
* 프로세스 스케줄링
at
crontab
* java로 그냥 만들어도된다. 근데 만들어진거 쓰는게 낫겠지?
외부에서 프로그램을 받고 그 프로그램을 설치하는 것
리눅스에서 프로그램을 제공하는 방식
1. 압축파일
1) 실행파일 - 요즘엔 소스보다 이걸 많이줌
2) 소스 (c/c++)
컴파일 - 설치 - 실행
2. 패키지 관리 도구 - 패키지 (인스톨 파일)
- 배포판 다름
- RedHat
RPM (RedHat Package Management)
* .rpm
- Debian
DPKG(Debian Package)
* .dep
불편해서 RedHat, Debian 호환되는 걸 만들어버림
즉, RedHat 에서 Debian걸 깔수 있고 그 반대도 되는걸 만듬
압축파일
zip
1. 묶음파일 : tar * .tar
2. 압축 : gzip * .tar.gz / *.tgz
압축 관련 명령어
tar
리눅스는 파일 만들때 확장자명을 안붙이기도 한다.
tar
- c : 압축하기 compress
- v : 압축하는 과정 view
- f : 압축될 파일명 지정 file
- t : 압축된 파일 리스트 보기 test
- x : 파일 압축 해제 extract
tar cvf 묶을파일명 묶일파일명 ...
묶음파일을 만든후 압축
gzip
gunzip
tar xvzf -> tar xvf (하도 써서 이렇게도 할수 있게 바뀜)
이클립스 사이트에서 리눅스 버전으로 압축파일을 다운로드 받으면 아래와 같이 '다운로드' 폴더에 다운받아진다.
그걸 아래 명령어로 압축을 풀면된다.
[master@localhost ~]$ tar xvf /다운로드/eclipse-jee-2020-12-R-linux-gtk-x86_64.tar.gz .
그리고 나서 리스트를 확인하면 eclipse라는 이름의 폴더로 풀려있는 것을 확인할 수 있다.
eclipse를 실행시키려면 eclipse실행파일은 eclipse폴더 안에 있으므로 eclipse폴더 안에 들어가서 실행시켜야 한다.
이때, 현재디렉토리의 실행파일을 돌리려면 반드시 절대경로로 불러줘야한다.
ex) ./eclipse 로 이클립스가 있는 디렉토리에서 이클립스 실행시킴
이클립스 실행시키면 전부 자동으로 utf-8로 되어 있어서 spelling만 설정해주면 된다.
gcc (gun c compiler) 이걸로 c 언어 하면 된다.
패키지 관리 명령어
RPM
바이너리 파일 (실행파일 위주)
설치 / 삭제 가능
검증 가능
단점 - 의존성
설치할땐 풀네임 다쓰고 지울땐 패키지이름만 가지고 지운다.
noarch : 아키텍처가 없다. 다 지원한다. 32bit든 64bit든 다 지원한다.
rpmfind.net
rpm 프로그램 검색 사이트
CentOS 걸로 찾아보면 이렇게 나온다.
의존성을 생각하면서 다운로드 받아야한다.
rpm
i : install
v : view
h : #
u : update
e
q
-ivh로 xterm-331-1.el8.x86_64.rpm를설치하려 하려고 하면 의존성 오류가 뜰것이다.
resize버전을 못찾겠다는 오류이다.
resize버전도 다운받아야한다.
위처럼 xterm 과 xterm-resize를 두개 다 다운받는다.
위 사진은 CentOS 사이트인데 RPM 검색 사이트에서 찾아서 해도 된다.
근데 거긴 너무 많아서 CentOS 사이트가 더 편함..
resize 먼저 설치하고 설치한다.
삭제는 아무데서나 해도된다. 폴더 찾아서 안들어가고 root 인 상태에서 아무데서나 찾아서 지워도 된다.
-evh
YUM (Yellowdog Updater Modified)
1. Maven 원격에서 rpm 파일을 검색후 설치 가능
2. 의존성도 해결
* 인터넷이 연결되어 있다는 전제
yum repolist
rpm이 저장되어 있는 저장소들이 나옴
ls /etc/yum.repos.d/
저장소의 위치가 나옴
yum list
yum 저장소 전체 리스트 나옴 여기서 검색을 해야함
xterm 검색함
xterm 검색하는 다른 방법
xterm 설치
[root@localhost ~]# yum install xterm
알아서 의존성파일까지 찾아줌
점점 rpm 보다 yum을 많이 사용한다.
기존에 있는 것을 업데이트 시키기 (시스템 업데이트)
[root@localhost ~]# yum update
이렇게 업데이트가 필요한 것들이 나옴
업데이트 후에는 reboot을 해주는게 좋음
설치된 목록 보기
rpm -qa | grep xterm
yum 으로 지워도 되고 rpm으로 지워도됨
yum remove (패키지명)
yum remove xterm
jdk 설치되어있는거 확인 가능
[root@localhost ~]# rpm -qa | grep java-
[root@localhost ~]# yum list java-*
filezilla 설치하기
저장소(리포지터리) 검색 하면 없음
[root@localhost ~]# yum list filezilla
설치를 위한 리파지토리를 따로 설치
[root@localhost ~]# yum install epel-release
[root@localhost ~]# yum list filezilla
이제 나옴
설치한 리포지터리도 목록에 추가되어 있음을 확인가능
[root@localhost ~]# yum install filezilla
이걸로 설치
user로 돌아가서 실행시키면 실행됨
[root@localhost ~]# rpm -ql filezilla
filezilla 설치 파일들 경로 리스트 나옴
visual studio code 설치하기
사이트에서 찾아보면 설치시 필요한 코드를 준다.
이걸 따라 치고나서..
설치명령어 쓰면 설치된다.
저장공간 확인 명령어
C는 파티션으로 'C드라이브'와 'D드라이브'로 나뉘는데
리눅스는 파티션을 '디렉토리'로 나눈다.
df : 리눅스에서 저장 공간의 사용현황과 여유상황을 확인 (파티션별 저장공간 사용량)
df -BM : M단위로 보여주기
df -BG : G단위로 보여주기
du : 특정 파일이나 디렉토리의 용량 (파일 디렉토리 용량확인)
du -s : 지정된 디렉토리 내에 존재하는 모든 파일 및 서브 디렉토리들의 용량을 합쳐서 표시
du -sh : 사용자가 읽기 쉬운 단위(K, G .. )로 보여줌
usb 를 꼈을 때 동작하는 방법
외부의 장치 (블록디바이스 : hdd, cd, usb) - 특정 디렉토리에 연결
mount
FileSystem
Window
- fat16 / fat32
/ exFat / NTFS
Linux
ext3, ext4
mount : 하드웨어장치를 리눅스에서 사용하기 위해 인식시켜주는 명령어
umount / eject : 사용이 완료된 하드웨어장치를 분리시켜주는 명령어
진짜 cd 대신 iso 파일을 넣는다.
IDE -SATA (개인)
hd
SCSI (서버)
sd... sda. sdb ...
sda1, sda2 ...
umount / eject
usb -> /run/media/사용자아이디 ...
하드디스크 -> /mnt/sdb /dev/sdb(실질적인 디바이스)
usb로 해보기
usb 를 연결하면 호스트와 가상환경 중 어디에 연결할거냐는 창이 뜬다. 거기서 가상 환경을 누르면 된다.
그리고 vmware에서 파일에 들어가보면
이렇게 연결되어 있다.
이 usb내의 파일을 리눅스에서 가져와 사용하려면
ls를 했을 때 usb가 안나온다.
mount를 해야 나온다.
mount 후 ls 하면 다음처럼 usb 이름 나온다.
usb내의 텍스트 파일을 보기 위해서 usb 파일안에서 cat을 하면 다음과 같이 읽어진다.
하드디스크로 해보기
하드디스크 만들어서 파티션을 나눠주고 파티션에 해당하는 포맷을 해준다.
그걸 윈도우는 그래픽에서 해주고 리눅스는 손으로 친다.
하드디스크를 먼저 추가 한다.
fdisk
fdisk : 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업들을 수행
fdisk -l : 현재 모든 디스크의 파티션 설정 현황을 볼 수있음
그럼 파티션 나누기
[root@localhost ~]# fdisk /dev/sdb
이제 포맷을 시켜줘야한다.
mkfs : 포맷시킨다.
그렇다고 바로 쓸수 있는건 아니다.
반드시 mount 시켜줘야 쓸수 있다.
그리고 mount실행시키면
이렇게 나온다. 연결되어 있다는 얘기이다.
df 실행시켜도 나온다.
그럼 연결된 sdb에 파일을 만들어 보자
원격으로 서버 관리
리눅스시스템에는 방화벽 시스템이 두가지가있다. 이 두개를 풀어놔야 외부접속이 된다.
1. 네트워크에 대한 보안
2. 파일시스템에 대한 보안
SELinux
sestatus -v : 설정상태 확인
mode
- enforcing (가동)
- permissive (경고)
- disabled (중단)
/etc/selinux/config : 이걸 수정하면 설정변경가능
+ rebooting (centos 깔고 가장 먼저해줘야하는것이다.)
root에서 sestatus로 확인해본결과 enforcing이다.
/etc/selinux/config 에서 mode를 permissive로 수정
그리고 다시시작시킨다.
다시 sestatus확인하면 permissive로 바껴있음
방화벽이 돌아가고 있는걸 확인할 수 있다.
ssh란?
외부에서 리눅스를 관리하는 여러방법중 하나다.
1) GUI vnc => 느림
2) CUI telnet - 명령프롬프트로 리눅스에 접근하는데 보안이 안좋다.
ssh(secure shell) - telnet의 보안성을 보완. 보안성있게 명령어를 통해서 리눅스 관리
server - openssh 22
client - openssh-clients(ssh)
- putty (윈도우에서 리눅스 접속)
리눅스에서 ssh 를 접속하려면
ssh localhost 하면된다
이렇게 되면 접속 완료
윈도우에서 리눅스는 putty 로 할수 있다.
먼저 putty를깔아보자.
이걸 다운받은 후 실행시키면 창이 뜨는데
거기에 다음과 같이 원격 젒고 하고자 하는 서버의 ip주소와 port번호를 입력하면된다.
이렇게 내가 굳이 그 서버를 켜지 않아도
그 서버가 있는 네트워크가 열려있기만 하면 putty같은 걸로 원격 접속해서 관리할 수 있다!