리눅스 시스템 관리
1. 커맨드 프롬프트
- pwd(Print Working Directory): 현재 디렉토리 경로를 출력
- cd(Change Directory): 디렉토리를 이동(현재 디렉토리 변경)
1-1 다중사용자 시스템
- 여러 사용자가 동시에 접속해서 사용할 수 있는 시스템
- 여러 계정을 추가해서 사용하는 것은 좋지 않음
1-2 root 계정
- 시스템 관리를 책임지는 계정
- 보안상 이유로 root로 로그인 하는 것을 피하는 것이 좋음
- 모든 사용자는 하나 이상의 그룹에 소속
1-3 사용자 추가
- 사용법: useradd [options] 계정이름
*옵션
- d: 홈 디렉터리를 지정할 때 사용
- g : 그룹을 지정할 때 사용한다.
- G : 기본 그룹 이외에 추가로 지정할 그룹이 있는 경우 사용한다.
- c : 계정 추가 시 계정에 대한 설명을 설정한다
- s : 계정 추가 시, 이 계정으로 로그인 한 사용자가 사용할 쉘을 지정한다.
- D : /etc/default/useradd 파일에 설정되어 있는 useradd 명령의 기본 설정 내용을 보여준다.
1-4 사용자 비밀번호 변경
- 사용법: passwd 계정
1-5 사용자 삭제
- 사용법: userdel [options] 계정
- 옵션: -r (사용자의 홈 디렉터리를 제거)
1-6 그룹 추가 삭제
- 사용법: groupadd [options] 그룹명
- groupdel 그룹명: 그룹삭제
1-7 사용자 전환
- 사용법: su [옵션] 계정
1-8 디렉토리 생성
- 사용법: mkdir [옵션] 디렉토리명
*options
- m: 디렉토리의 권한을 지정할 수 있음. 기본값: 755
- p: 상위 디렉토리가 존재하지 않으면 상위 디렉토리도 만듬
1-9 디렉토리 삭제
- rmdir: 비어있는 디렉토리를 삭제
*options
- p: 상위 디렉토리도 지움, 상위 디렉토리도 비어있어야함
- rm -r: 디렉토리를 확실히 지움(지울지 말지 물어봄)
1-10 디렉토리 이동
- 사용법: cd [디렉토리]
디렉터리 명이 생략되면 접속 계정의 홈 디렉토리도 이동한다. ( $ cd ~ )
디렉토리 경로는 상대경로와 절대경로로 나타낼 수 있다.
- 절대경로 : /(루트 디렉터리) 부터 모든 경로를 표시 하는 방법
- 상대경로 : 현재 디렉터리 기반으로 특정 디렉터리의 경로를 표시하는 방법이다.
유닉스에서는 상대경로를 표시 할 수 있도록 . (현재 디렉터리) 와 .. (부모 디렉터리)의 심볼을 제공한다.
1-11 파일 정보
*파일의 종류
- 유닉스에서 프로그램들은 주변의 장치(device)를 파일로 인식하기 때문에 여러 종류의 파일이 존재 한다.
- ls 명령을 사용한 결과를 보면, 각 각의 파일들을 타입 별로 구분해 놓은 정보가 있다.
- root 는 모든 권한을 가지고 있다.
- 권한은 숫자로 표시할 수 있다. ( r -> 4, w -> 2, x -> 1 )
- 따라서 dowork 디렉터리는 4+2+1, 4+1, 4+1 즉 755로 표현된다(숫자 표기 방식을 많이 쓴다.)
*파일의 구분
- : 일반(보통) 파일
b : 블록 디바이스 파일
c : 문자열 디바이스 파일
d : 디렉토리
l : 심볼릭 링크
p 또는 = : 명명된 파이프(named pipe) / FIFO
s : 소켓(socket)
1-12 touch
- 파일의 시간정보를 변경하는 명령어
- 크기가 0인 파일을 생성하는 용도로 자주 사용
- 사용법: touch [option] 파일이름
*옵션
- c : 현재 시간으로 파일 시간을 변경한다. (파일이 존재하지 않으면 생성하지 않는다.)
- d 시간 : 현재 시간 대신 지정한 시간으로 파일 시간을 변경한다. ($ touch ‘2016-02-05 12:00:30’ test)
- r 파일 : 현재 시간 대신 지정한 파일 시간으로 파일 시간을 변경한다.
- t MMDDHHMM[[CC]YY][.SS]: 현재 시간대신 지정한 시간으로 변경한다.
1-13 파일복사
- 사용법: cp [options] 원본 사본
* 옵션
-a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.
-i : 만약 복사 대상에 같은 이름의 파일이 존재하면 사용자에게 물어 본다.
-f : 만약 복사 대상에 같은 이름의 파일이 존재하면 강제로 지우고 복사한다.
-R : 디렉토리를 복사할 경우 그 안에 포함된 모든 하위 디렉터리와 파일들을 모두 복사한다.
1-14 파일 이동
- p 명령어는 파일을 복사 하지만 mv 명령어는 파일을 이동하는 명령어이다.
- unix에는 rename 명령어가 따로 없다. 즉, 파일 이름을 바꿀 때도 사용할 수 있는 명령어이다
- 사용법: mv [옵션] 원본 목적지
* 옵션
-b : 덮어 쓰게 되는 경우 백업 파일을 만들고 파일을 만든다.
-i : 덮어 쓸 때 사용자에게 물어 본다.
-f : 덮어 쓸 때 물어 보지 않는다.
1-15 파일삭제
- 사용법: rm [option] 파일이름
* 옵션
-r, -R : 일반 파일이 아닌 디렉터리인 경우에는 그 하위 디렉터리와 파일 까지 모두 삭제 한다.
-i : 파일을 삭제 할 것인지 사용자에게 물어본다.
-f : -i 옵션을 무시 하고 강제로 삭제한다
1-16 파일보기
-사용법: cat [option] 파일이름
* 옵션
-n : 줄 번호를 표시한다.
-b : 빈 행은 제외하고 줄 번호를 표시한다.
-E : 각 행마다 끝에 $ 문자를 출력한다.
1-17 chown
- 파일 소유자나 소유그룹을 변경하기 위한 명령어
- 사용법: chown [options] 소유자:소유그룹 파일명
* 옵션
-R : 경로와 그 하위 파일들을 모두 변경한다.
--help : 도움말을 출력한다.
--version : 버전 정보를 보여준다.
1-18 파일 압축 관리
- 압축 유틸리티 중 가장 많이 사용하는 것: tar, gzip, bzip2
- tar: 기본적으로 압축을 하지 않고 뮦어 주는 역할을 함
* 옵션
-c : 새 저장 파일을 만든다. 즉 묶을 때 사용하는 옵션이다.
-x : 묶인 파일을 해제 한다.
-v : 처리 중인 파일을 자세하게 보여준다.
-f : 파일을 지정한다.
2. 리눅스 자바 설치
2-1 tomcat, jdk 설치
2-2 linux 서버에 업로드하기
- 드라이버에서 jdk 가 있는곳으로 이동
- 이동한 후 명령어 입력: sftp usr@로컬ip주소
- put [jdf 파일] 입력
1. Java JDK 다운로드 : 다운로드 사이트에 가서 : jdk-8u291-linux-x64.tar.gz 다운로드 한다.(Java8)
2. linux 서버(root 홈디렉토리)에 업로드 하기 : 수단과 방법을 가리지 말고... : 작업 디렉토리는 /root (root 홈)
3. 압축을 푼다. # tar xvfz jdk-8u291-linux-x64.tar.gz
4. 소프트웨어 설치 디렉토리 만들기 # mkdir /usr/local/douzone2021
5. 설치 # mv jdk1.8.0_291 /usr/local/douzone2021/java1.8
6. 링크 파일 생성 # ln -s /usr/local/douzone2021/java1.8 /usr/local/douzone2021/java
7. 설정(/etc/profile) # java export JAVA_HOME=/usr/local/douzone2021/java export CLASSPATH=$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
8. 현재 shell 환경에 적용하기 # source /etc/profile 9. 확인 작업 # java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode) #