반응형
반응형

 

버츄얼 박스를 먼저 설치해주세요

 

https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash Important May 17th, 2021We're hiring! Looking for a new challenge? We're hiring a VirtualBox senior developer in 3D area (Europe/Russia/India). New July 28th, 2021VirtualBox 6.1.26 released! Oracle today released a 6.1

www.virtualbox.org

 

 

실행 시키고 그냥 쭉 Next 누르시면 됩니다.

 

 

기본 머신 폴더를 지정하면 가상 머신들의 기본 이미지 폴더를 지정할 수 있어 관리에 효율적입니다.( 그냥 가상머신을 가져오거나 내보내거나 할 때 좋다는 소리인 거 같습니다.)

 

이제 CentOS를 설치하겠습니다.

 

https://www.centos.org/download/

 

Download

As you download and use CentOS Linux or CentOS Stream (What's the difference?), the CentOS Project invites you to be a part of the community as a contributor. There are many ways to contribute to the project, from documentation, QA, and testing to coding c

www.centos.org

 

아무거나 들어가도 상관 없습니다.

 

이 파일을 다운로드 해주세요(용량이 가장 크다는 특징이 있음)

 

버츄얼박스를 여시고 새로만들기를 합니다.

 

이름은 자기가 정하고 싶은대로 정하면 됩니다.

머신폴더는 위에서 설정했습니다.

종류는 리눅스입니다.

버전은 Red Hat

 

 

자기 마음대로 정하면 되는데 여유 없으면 1기가로 여유 있으면 2기가로 잡아주시면 됩니다.

 

가상하드 디스크를 추가하지 않음

  이후에 가상 하드 디스크를 추가해야 하기 때문에 사용할 필요가 없는 옵션

  

지금 새 가상 하드 디스크 만들기

  이후 하드디스크를 만드는 작업을 수행(머신 신규 생성 시에는 일반적으로 이 옵션을 선택)

 

기존 가상 하드 디스크 파일 사용

  머신만 생성하고 기존하드 디스크를 이용하여 운영하기 위한 옵션으로 많이 쓰이지는 않는다.

  그냥 머신만 만들고 그 가상화 안에는 거는 내 실제 하드를 이용해서 운영하는 거 같음

 

 

저는 두번째거로 만들겠습니다.

 

 

 

VID(Virtual Disk Image)

  VirtualBox에서만 사용가능한 포멧 방식

VHD(Virtual Hard Disk)

  Oracle VirtualBox, MS Hyper-V, Citrix Xen에서 구동이 가능한 포멧 방식

VMDK(Virtual Machine Disk)

  Oracle VirtualBox, VMWare의 VMWare Player에서 구동이 가능하 포멧 방식

  필자는 VirtualBox와 VMWare Player를 주로 사용하기 때문에 VMDK 방식을 선택

 

 

저는 VMDK로 하겠습니다.

 

저는 동적할당 하겠습니다.

 

자기가 필요한 만큼 하드디스크를 할당해주면 됩니다. 저는 25GB로 설정하겠습니다.

 

 

다운로드 받은 CentOS를 지정하고 확인을 눌러주세요

 

 

Enter 눌러주세요

 

 

 

사진을 못찍었는데 이 밑에 사진에 설치목적지에 할당하라고 나올 것입니다.

설치 목적지 들어가시면 이렇게 나옵니다.

 

오토매틱은 자동 할당인거고 Custom이라고 되어있으면 파티션을 내가 어떻게 할당할 것인지 설정이 가능합니다.

 

Root 암호를 설정하면 설치 시작이 활성화 됩니다. 설치해주세요

 

설치후 라이센스 정보에 동의해주세요

 

만들 사용자를 관리자로 설정해주세요 저는 이렇게 사용자를 생성하겠습니다.

(관리자로 설정했는데 root 그룹으로 들어가있진 않네요) 괜찮습니다. 나중에 변경 가능해요

 

로그인 하면 여러가지 나오는데 그냥 다음으로 다 넘어가면 됩니다.

 

저희는 GUI 버전으로 설정했기 때문에 이렇게 GUI버전으로 보이는 것입니다.

만약 그냥 아무것도 선택 안 하면 터미널만 덩그러니 있을 거고 

거기에 필요한 명령어도 없어서 그에 필요한 것도 깔아야 하는 상황이 옵니다.

지금껏 Window키 + L 이나 작업관리자로 빠져나왔는데 그걸 설정하겠습니다.

오른쪽 밑에 Right Control이라고 적힌 곳에 오른쪽 마우스 누르시고 키보드 설정 눌러주세요

 

 

여기서 자기가 편한걸로 하시면 됩니다.

저 같은 경우는 Shift + Ctrl 로 했습니다. (두 키의 조합도 가능합니다.)

 

 

반응형
반응형

📝사소한 팁

 

Tap

어느정도 치다가 Tap 누르면 자동 입력(로그가 있어야지 자동생성 됨)

   

방향키 위, 아래

최근에 입력한 명령어 불러오기 가능

 

ctrl + Insert

윈도우 내용 복사

 

Shift + Insert

윈도우 내용 붙여넣기

 

ctrl + alt + f2 ~ f6 

가상 콘솔(가상 데스크톱)

 

📝리눅스 명령어

 

useradd 아이디

리눅스 계정 생성

 

passwd 아이디

생성한 계정의 패스워드 부여

 

pwd (print working directory)

현재 위치한 디렉토리 경로 출력

 

cd (change directory) 

경로 이동 (cd 경로명)

../ = .. 상위 디렉토리
/home home 디렉토리

 

ls (list)

현재 위치한 디렉토리 내의 목록을 확인 (ls -l 현 디렉토리 상세 목록 확인)

 

cat (concatenate)

파일 내용물 보기 (cat 파일명)

 

mkdir (make directory)

디렉토리 생성 (mkdir 디렉토리명)

 

touch

최신 수정일로 변경 만약 특정옵션이 사용되지 않는다면 파일의 크기가 0인 빈 파일을 생성한다.

(touch 파일명)

 

 rm (remove)

 파일 삭제 (remove 파일명)

 파일과 디렉토리 전부 삭제 (rm -rf 디렉토리명)

 

 rmdir (remove)

 디렉토리 삭제

 

 head

 처음 10줄만 파일 내용보기 (head 파일명)

 (head -n 표시할줄수 파일명 파일에서 처음 몇 줄을 볼지 정할 수 있다.)

 예) haed -n 20 1.txt

 

 tail

 끝 10줄만 파일 내용 보기 (tail 파일명)

 tail -n 표시할줄수 파일명 파일에서 마지막으로 부터 몇 줄을 볼지 정할 수 있다.)

 예) tail -n 20 1.txt

 

 find

 문자로 파일, 폴더 찾기 (find 경로 -name 파일명 전체에서 파일명을 찾아준다.)

 현재 경로로 부터 어디에 위치했는지 보여줌

 예) find / -name '*error_log*'

 예) find / -name "*.txt"

 예) find / -name '*error_log*' 2> /dev/null (허가 거부시 무시하고 출력)

 

 yum 

 프로그램, 모듈(라이브러리) 설치 (CentOS)

 예 ) yum ~~~ 이런식

 

 apt

 프로그램, 모듈(라이브러리) 설치(Ubuntu)

 예) apt ~~~ 이런식

 

 ps

 현재 실행중인 프로세스 목록을 보여준다.
 ps만 단독으로 쓰는 경우는 없고 -ef라는 속성을 하나의 명령어처럼 잘 쓰인다.

 ps -ef : 모든 프로세스 출력 , UID, PID, PPID 등을 보여준다

 

     PID : 프로세스 식별번호
     PPID : 부모 프로세스 ID
     TIME : 총 CPU 사용 시간
     UID : 프로세스 소유자의 이름

 

mv

파일명변경 또는 파일 옮기기 

예) mv 1.txt 2.txt (mv 기존파일명 변경파일명) 

예) mv /etc/1.txtx /etc/temp/2.txt(mv 파일경로/기존파일명 옮기길원하는경로/변경파일명)

 

rename

rename은 하나 혹은 하나 이상의 파일명을 일괄 변경할때 사용하는 명령어
예) rename test TEST *.txt (rename 변경전문자열 변경후문자열 변경대상파일명)

예) rename directory DIRECTORY directoy_text_? (?는 한 문자를 의미 디렉토리명도 바꿀 수 있다.)

 

cp (copy)

파일 혹은 디렉토리를 복사 (cp 복사할파일 복사된파일명)

디렉토리의경우 (cp -r 복사할디렉토리 복사될위치디렉토리)

      

예) cp a.txt b.txt c.txt test_dir/ (세개 파일을 한번에 복사)    

cp *.txt test_dir/ (모든.txt 파일을 test_dir에 복사)

cp a.txt test_dir/b.txt (a.txt를 test_dir에 b.txt라는 이름으로 복사)

 

top

시스템의 상태를 전반적으로 가장 빠르게 파악 가능

 

chmod

파일 및 폴더 권한 바꾸기

chomod 777 : 모든 대상 모든 권한 허용

맨 앞 7은 user(사용자) 그 다음은 group 그 다음은 other(두 군데 속하지 못한 나머지)을 의미한다.

 

chmod -R 777 folder : folder와 folder 디렉토리 안에 모든 파일들의 권한을 777로 준다. 

     

 r = 4 , w = 2 , x = 1
7 모든 권한(rwx)
6 읽고 쓰기(rw)
5 읽고 실행(rx)
4 읽기 (r)
3 쓰고 실행(wx)
2 쓰기(w)
1 실행(x)

 

chown

ls -l 하면 상세 설명이 나옵니다. 

rw-r--r--. 1 root root 1419 Oct  6 23:42 countries.rc

root라는 사용자고 root라는 그룹에 들어가있다는 의미입니다. 

chown으로 변경할 수 있습니다.

 

chown user1:user1 countries.rc 이 명령어를 치면

rw-r--r--. 1 user1 user1 1419 Oct  6 23:42 countries.rc 으로 변경됩니다.

 

chown -R user1:user1 folder : folder라는 이름의 폴더와 안의 모든 것들의 소유자와 소유그룹을 일괄 변환 

 

echo

내용을 출력합니다. (echo 문자열)

 

ifconfig

리눅스 환경 아이피 확인 명령어

예 ) 설치파일을 리눅스로 작업해야하기 때문에 윈도우에 있는 설치파일을 리눅스환경에 옮기기

쉽게 파일질라를 이용해 옮기기 위해 연결할 리눅스 아이피가 필요하기 때문에 사용 된다

 

bg

bg 작업내용(ls, find ...) &

 

jobs

백그라운드 작업의 상태를 표시하는 명령어

 

kill

kill %작업번호(1, 2...) 백그라운드 작업을 종료

 

fg

fg %작업번호(1, 2....) 백그라운드 작업을 포그라운드로 전환

 

top

    pid : 프로세스 id
    user : 실행한 user
    virt : 가상 메모리
    res : 실제 사용 메모리
    Ctrl + h → 스레드 파악
    Ctrl + m → 메모리 내림차순 정렬
    e → 표시 단위 변경 

    1 → CPU (하이퍼스레드, 물리, 논리 CPU 모니터링)

   

free -h

    total : 전체 메모리
    used : 사용중인 메모리
    free : 남은 메모리 공간
    buff/cache : 리눅스 명령어 history 등에 사용 (이미 했던 작업을 빠르게 접근하기 위해)
    used에 일부가 포함되어 있습니다. 
    available : 사용 가능한 메모리

    (buff/cache에서 빼내와서 이용할 수 있는 메모리 크기입니다. 이 값은 free에 일부 포함되어있습니다.)

 

du

du -sh (경로) 현 경로의 총 용량

du -h (경로) 현 경로의 각각의 용량 + 총 용량

 

df -h

서버 디스크 용량을 확인 (파티션 등등...)

 

scp [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

서버에서 다른 서버로 파일 옮기기 예) scp file.txt root@192.168.0.20:/home/search

 

ifdown

해당 네트워크 끄기 (ifdown 인터페이스명)

예) ifup enp0s3) 

 

ifup 

해당 네트워크 키기  (ifdown 인터페이스명)
예) ifdown enp0s3

 

su

    유저 바꾸기 (su 유저명) [현재 계정 로그아웃 하지 않고 다른 계정으로 전환]
    예) su root

    su - 유저명 (환경변수까지 적용)

    예) su - root

 

sudo

현재 계정에서 root 권한을 이용하여 명령어를 실행할 떄 사용 (sudo su - user)

 

whoami

현재 사용자 확인

 

exit

이전 계정으로 돌아온다.

 

groups

해당 계정 그룹 확인

 

ping 8.8.8.8

8.8.8.8 : 구글 DNS 서버 IP주소

구글 DNS 서버에 신호를 보내 되돌아오는지 확인해 네트워크가 연결 됐는지 간접적으로 확인

 

cut -f1 -d: /etc/passwd 

등록된 유저 확인

 

nmcli dev status

인터넷들의 연결상태를 볼 수 있습니다.

 

scppass (패스워드 없이 scp 사용)

sshpass -p ${password} scp /backup/backup.`date +%Y%m%d`.tar.gz ${호스트네임}@192.168.0.49:/home/backup/

 

chcpu -e ${CPU번호}

해당 CPU번호를 기동합니다. [하이퍼스레드]

 

chcpu -d ${CPU번호}

해당 CPU번호를 중지합니다. [하이퍼스레드]

ex) chcpu -d 0,3,5

 

📝vi명령어

 

vi

파일 편집 수행 (vi 파일명)

vim

파일 편집 수행 (vim 파일명) 편집기를 이쁘게 볼 수 있음

 

 

:set number 

line 보기

 

:set nonu

라인 지우기

 

:$

문서 끝으로 이동

 

줄번호 + Shift + G

해당 줄로 이동

 

:/ , :?

특정 문자 찾아 이동 (:/ 찾을문자열)

특정 문자 찾아 이동 (:? 찾을문자열)

- 다음 문자찾기 

    n : 방향대로

    N : 역방향대로

 

dd

한줄 지우기

현재 커서(여기부터 1행)로부터 N행 삭제 (N) dd)

 

:w

저장하기

새 파일명으로 저장 (:w 파일명) [작업 파일이 꺼지진 않는다.]

 

:f 파일명

파일 이름을 파일명으로 변경

예) :f abc.txt

 

:e!

마지막 저장 이후 모든 편집 취소

 

:wq

저장하고 종료

 

:q!

저장 없이 종료

 

+

다음 행으로 이동

 

-

이전 행으로 이동

 

w

단어 단위로 커서 이동 (오른쪽)

 

b

단어 단위로 커서 이동 (왼쪽)

 

a

현재 커서 바로 다음 위치 삽입

 

i

현재 커서 위치에 삽입

 

dw

커서 위치한 곳의 글자 1개 삭제

 

u

명령 취소

 

ctrl+ r 

명령 취소 되돌리기

 

yy

한줄 복사

 

숫자 -

현재 위치로부터 숫자 만큼 윗줄 이동

 

숫자 +

현재 위치로부터 숫자 만큼 아랫줄 이동

 

:숫자

숫자에 적힌 행으로 이동

 

:%s/매칭문자열/치환문자열

매칭문자열을 치환문자열로 바꾼다.

 

:s/매칭문자열/치환문자열/g

현재 행 매칭문자열을 치환문자열로 전부 변경

 

:s/매칭문자열/치환문자열

현재 행 매칭문자열을 치환문자열로 한번만 변경(가장 앞의 것) 

 

📝스케쥴러 

 

at

1회성 예약 작업을 등록

at now+1 minutes    → 현재 시각으로부터 1분 뒤에 실행시켜주세요
at 23:50 2022-11-23  → 2022년 11월 23일 23시 50분에 실행시켜주세요

at > ${작업문구}
at > ....
ctrl + d로 작업 종료

 

at -d ${작업번호}

작업 삭제

 

at -l

작업확인

 

crontab

반복적인 작업 등록

 

crontab -e 

작업적기 (vi 형태로 열리게 된다.) 

 

crontab -l 

작업확인

crontab 정의

분 / 시 / 일 / 월 / 요일
 *     *      *     *      *
(분) 0 - 59
(시) 0 - 23
(일) 1 - 31
(월) 1 - 12
(요일) 0 - 7 (0, 7 : 일요일, 1 : 월요일, 2 : 화요일 ...)

 

 

 

📝JDK (Java)

 

WAR 파일 생성

jar cvf ${war파일명} ${war로 만들 폴더}
예) jar cvf shppoing.war /home/shopping/*

 

WAR 파일 Deploy

jar xvf ${Deploy할 war파일명}

예) jar xvf shopping.war

 

📝그 외 리눅스 명령어

 

리눅스 포트개방 

iptables -I INPUT 1 -p tcp --dport 11045(개방할 포트번호) -j ACCEPT (CentOS7 부터)

 

CPU 모델명 확인

grep -m 1 'model name' /proc/cpuinfo
model name : Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz

 

모든 CPU 정보 확인

cat /proc/cpuinfo 

 

모든 CPU 개수 확인

grep -c processor /proc/cpuinfo

 

물리 CPU 수 확인

grep "cpu cores" /proc/cpuinfo | tail -1

 

하이퍼스레드 적용 확인

cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2
siblings : 8
cpu cores : 4
→ siblings가 cpu cores의 2배로 하이퍼스레딩이 적용된 걸 알 수 있다.

 

리다이렉션 (리눅스 기본 명령어들 사용 불가능)

cat tmp > tmp2 # tmp 내용을 tmp2에 overwrite 해서 넣어라
cat tmp >> tmp2  # tmp 내용을 tmp2에 append 해서 넣어라
wc -l < tmp2 # tmp2를 wc -l 방식으로 출력한다

 

| (파이프라인) 

ps -ef | grep tomcat # ps -ef의 명령어로 나온 결과를 grep(글자찾기) tomcat으로 출력해라
연결자로 입력의 결과를 | 다음으로 넘겨서 처리하겠다는 의미입니다. (리눅스 명령어 사용가능)

 

일정기간 지난 파일 삭제 (ll로 나온 기준으로 제거하기 때문에 파일 경로에 파일 패턴 입력 해줘야한다. 안 그러면 다 사라짐)

find [디렉토리 or 파일 경로] -ctime +0 -exec rm -f {} \;

 

ps -ef 와 jobs의 차이

ps -ef : 모든 프로세스를 확인

jobs : 백그라운드 프로세스를 확인
A라는 사람이 root 계정으로 접근한 것과 B라는 사람이 root 계정으로 접근한 것은 다르다 

그래서 A라는 사람이 접속한 root 계정의 jobs가 B 사람과 다르다.

 

 

반응형