#20230222

eeapbh·2023년 2월 22일
0

MZC

목록 보기
1/61

rfc1918

NAT(Network Address Translation)

  • NAT(네트워크 주소 변환)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다
  • NAT를 쓰는 이유는 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위한 경우가 대부분이다.
  • 사설 IP -> 공인 IP로 바꿈

echo server

  • 에코서버란 클라이언트가 전송해주는 데이터를 그대로 되돌려 전송해 주는 기능을 가진 서버

GNOME VS XFCE

  • GNOME : 무겁다
    • 컴퓨터 운영 체제의 최상위 계층에서 동작하는 그래픽 사용자 인터페이스
  • XFCE : 가볍다
    • 리눅스의 GUI 환경

Host-Only

  • 인터넷 안됨
  • 외부와 단절된 내부 네트워크 구축
  • 구성된 가상머신들끼리만 통신 가능

- CentOS7 경량 데스크톱(X-Windows) 설치

  1. 센토스 7 커널 업데이트
  • yum -y install yum-plugin-fastestmirror
    • 미러사이트를 세팅하는 과정, 내 위치에서 가장빠르게 설치할수 잇는 거 찾아서 해줌
    • mirror.kakao.com
  • yum install epel-release -y
    • Extra Packages for Enterprise Linux
    • 엔터프라이즈 리눅스 추가 패키지
    • 기본 저장소에 없는 많은 패키지들 존재
  • yum update -y
  • yum install kernel-devel kernel-headers -y
    • kernel-devel, kernel-headers 설치
    • kernel-devel 패키지는 필요한 커널 개발 헤더 파일을 커널 버전에 따라 구성된 /usr/src/kernels 디렉토리에 설치합니다.
    • Linux 커널 용 헤더 파일 필요
  • yum install -y gcc make linux-headers-$(uname -r) dkms
    • 의존성 파일들 설치
  • reboot
  1. 센토스 7 xfce 데스크톱 설치
  • yum groupinstall "X Window System" Xfce -y
  • systemctl set-default graphical.target
    • GUI모드로 하기 위해서
  • rm -rf /etc/systemd/system/default.target
    • 기존에 set 지움
  • ln -s '/usr/lib/systemd/system/graphical.target''/etc/systemd/system/default.target'
    • 재부팅이되더라도 default mode가 graphic이 되도록 설정
    • ln -s : 심볼릭 링크를 생성 시에 사용하는 옵션
  • yum install -y unzip wget
    • zip file 압축해제 하기 위해서 unzip깜 wget: 다운받기
  1. 센토스 7 구글 크롬 설치
  1. 한글 나눔글꼴 설치
  • 리눅스 기본 명령어
  1. 실습 준비
  • mkdir dir{A,B,C}
  • touch dir{A,B,C}/file{X,Y,Z}
  • touch file{A,B,C,D}
  • ls -F ./ dirA dirB dirC
  1. CLI 구문
  • Command [options][Arguments]

  • uname

  • date

  • cal

  • clear

  • uname -a

  • uname -s

  • uname -r

  • uname -s -r

  • uname -sr

  • cal 2 2016

  • ls -l /etc/hosts

  • date; uname

  • cal 5 2019; date; uname -a

  • Ctrl + C Terminates the command currently running.

  • sleep 500

  • ls

  • locale
    반응이 없다.
    <CTRL + C>

  • Ctrl + D Indicates end-of-file or exit.

  • mkdir –p /test / 최상위 디렉토리 아래 test 디렉토리 생성 /

  • cd /test / 생성한 test 디렉토리로 이동 /

  • pwd / 현재 작업 디텍토리 확인/
    /test

  • cat > file1 / 파일에 내용 입력 /
    Hello, Linux

  • <CTRL + D> /“파일의 끝”의미 /

  • cat file1 / 입력된 파일 내용 확인 /
    Hello, Linux

  • Ctrl + U Erases all characters on the current command line.

  • find / -name core -type f <CTRL + U>

  • Ctrl + W Erase the last word on the command line.

  • find / -name core -type f <CTRL + W>

  • find / -name core -type <CTRL + W> <CTRL + W>

  • find / -name <CTRL + W>

  • find / <CTRL + U>

  • Ctrl + S Stops output to the screen

  • Ctrl + Q Restarts output to the screen after you have pressed Control-S

  • du –a /

<CTRL + S> / stop /
<CTRL + Q> / quit, 원래 상태로 빠져 나오기 /
<CTRL + S>
<CTRL + Q>
<CTRL + C> / 정지와 복귀를 반복해보다가 빠져나온다 /

  1. 메뉴얼 페이지
  • 메뉴얼 페이지 보기
  • man uname
  • man -k calendar
  1. 디렉토리 작업
  • 현재 작업 디렉토리 확인

  • pwd

  • 디렉토리 내용 확인

  • ls

  • ls dirA

  • ls /var/log

  • 숨겨진 파일 보기

    • ls -a
  • 디렉토리 내용 자세히 보기

    • ls -l
    • ls -l dirA
  • 개별 디렉토리 확인

    • ls -l dirA
    • ls -ld dirA
  • 디렉토리 하위 목록 보기

    • ls -R
    • ls -R dirA
  • 파일 종류 확인

  • ls -F

  • ls -F /bin/uname

  • file dirA

  • file /var/log/maillog

  • file /bin/uname

  • 디렉토리 변경

  • pwd

  • cd dirA

  • pwd

  • ls -a

  • pwd

  • cd ..

    • 상위경로
  • pwd

  • cd dirA

  • pwd

  • cd ../dirB

  • pwd

  • cd /root/dirA

  • pwd

  • cd ~

    • home으로 가기
  • pwd

  • cd ~/dirA

  • pwd

  • pwd

  • cd /root/dirA

  • pwd

  • cd -

  • pwd

  1. 파일 작업
  • cat /etc/hosts

  • cat /etc/ssh/sshd_config

  • more /etc/ssh/sshd_config

  • echo -e "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15" > numbers

  • cat numbers

  • head numbers

  • head -5 numbers

  • tail -3 numbers

  • wc /etc/ssh/sshd_config

    • count하는거
  • wc -l /etc/ssh/sshd_config

  • wc -w /etc/ssh/sshd_config

  1. 복사
  • 파일 복사

  • ls -F

    • 디렉토리랑, 파일 구분돼서 나옴
  • cp fileA fileAA

    • fileA를 fileAA라고 복사
  • cp fileA fileA.bak

    • 복사할때 백업해줌
  • ls -F

  • ls -F dirC

  • cp fileA fileAA dirC

  • ls -F dirC

  • cp -i fileA fileAA

    • fileA를 fileAA로 복사할건데 이미 잇으면 overwrite되고 fileAA가 없어짐
    • ls -al을 해보면 숨긴파일들도 나오는데, 숨겨진 파일중에 .bashrc가 있다. cat .bashrc를 해보면 cp = 'cp -i'가 들어가도록 이미 설정이 되어있음 을 알수있다.

  • 디렉토리 복사
  • cp dirC dirCC
    • 에러남 dir복사할때는 cp에 옵션을 줘야함
  • cp -r dirC dirCC
    • recursive(재귀적) 폴더
  • ls -F dirC
  • ls -F dirCC
  1. 이동
  • 파일 이동

  • ls -F dirC

  • mv fileD dirC

    • 잘라내기
  • ls -F dirC

  • 디렉토리 이동

  • ls -F

  • ls -F dirC

  • mv dirCC dirC

    • 잘라내기
  • ls -F

  • ls -F dirC

  1. 생성
  • 빈 파일 생성

  • touch dirC/touch_file

    • dirC 폴더에 touch_file라는 빈파일 생성됨
  • ls -F dirC

  • cat dirC/touch_file

    • 암것도 없음, 빈파일
  • echo "Hello World" > dirC/touch_file

    • touch_file에 내용입력
  • cat dirC/touch_file

    • 내용뜸
  • touch makeA makeB makeC

  • ls -F

  • 디렉토리 생성

  • mkdir dirX

  • ls -ld dirX

    • dirx 상세정보 보여줌
  • mkdir dirY/dirZ

    • dirY없어서 에러남
  • mkdir -p dirY/dirZ

    • -p 붙이면 됨
  • ls -F

  • ls -F dirY

  • mkdir dirU dirV

    • 동시에 만들수 잇음
  1. 이름 변경
  • 파일 이름 변경

  • mv fileAA fileF

  • ls -F

  • 디렉토리 이름 변경

  • mv dirU dirD

  • ls -F

  1. 삭제
  • 파일 삭제

  • rm makeA

  • rm makeB makeC

  • 빈 디렉토리 삭제

  • rmdir dirD

  • ls -F

  • ls -F dirC

  • rmdir dirC

  • rm -r dirC

  • rm -rf dirC

    • -f : force(강제적)
    • 지울때 다시 질문을 안함
  1. 링크
  • 하드 링크(inode가 같으면 같은 디스크의 같은 위치를 가리키고 있다는 의미)
  • ls -il /bin/cd
  • ls -il /usr/bin/cd
  • ls -il fileA
  • ln fileA hardA
  • ls -il fileA hardA
  • echo hello > fileA
  • cat hardA
    • 하드링크가 걸려서 fileA에 hello 썼는데 hardA보임 이름은 다르지만 같은존재
  • echo world >> hardA
    • ">>" : 기존에 있는 데이터를 지우지않고 그 뒤에 추가 함
  • cat fileA
  • 심볼릭 링크(바로가기)
  • ln -s fileA symbolA
    • 바로가기 만듬
  • ls -il fileA symbolA
  • echo aloha > fileA
  • cat symbolA
  • rm -rf fileA
  • ls -il
  • cat symbolA
    • 원본파일없어져서 안뜸
  • echo aloha > fileA
  • cat symbolA
  • rm -rf symbolA
  1. 파일 내용 검색
  • grep 명령어

  • grep 'root' /etc/passwd

    • 최상위 폴더 root에서 etc/passwd 파일안에 root가 잇는지 검색
  • grep -n 'root' /etc/passwd

    • 해당 단어가 몇번째 라인에 있는지까지 나옴
  • grep -v 'root' /etc/passwd

    • 해당 단어가 들어가지 않는 라인 다 나옴
  • grep -l 'root' /etc/*

    • 해당단어가 들어간 etc안의 파일들을 보라색으로 보여줌
  • grep -c 'root' /etc/passwd

    • 해당단어가 들어가있는 라인이 몇개인지 카운트
  • grep 'root' /etc/passwd

  • useradd johnlee

    • 사용자 추가
  • useradd john

  • grep 'john' /etc/passwd

    • john들어가잇으면 다나옴 johnlee도 검색됨
  • grep -w 'john' /etc/passwd

    • 정확히 john만 나옴
  • grep '^john' /etc/passwd

  • grep 'j..n' /etc/passwd

  • grep 'login$' /etc/passwd

    • login 단어가 맨끝에 위치해 잇는 라인들 나옴
  • egrep 명령어

  • egrep 'N(o|e)+' /etc/passwd

    • N뒤에 o또는e가 붙은거 나옴
  • egrep '(root|john):x' /etc/passwd

    • root와 john이 들어가는데 뒤에 :x 붙어잇는거 나옴
  • egrep -c '(svm|vmx)' /proc/cpuinfo

    • svm : amd라고 하는 cpu에 가상화부분을 확인

    • vmx : intel cpu 가상화부분 확인

    • window 10이 가상화 됐는지 확인하는 방법 - ctrl + shift + esc -> 성능탭 - cpu - 가상화 : 사용

    • 가상화가 enable 되면 1이라고뜸

  1. 파일 및 디렉토리 검색
  • find / -name hosts
    • 최상위 폴더부터 밑에 하위폴더 다뒤져서 hosts파일 찾음
  • find / -name "hosts*"
    • "" 안에 와일드카드*를 사용해서 hosts뒤에 뭐 붙어 있는 것들까지 찾음
  • find / -name hosts -type f
  • find / -name hosts -type d
  • find / -name fileA -type f -exec rm {} \;
    • fileA라는 파일을 찾아서 삭제한다. rm명령을 exec하겟다.
  • find / -name fileC -type f -ok rm {} \;
    • 위에랑 똑같은데 정말 지울껀지 한번 물어봄
  • find ~ -mtime -2
    • home 폴더에서 최근 이틀동안 수정시간이 바뀐적이 있는 파일 찾기
  • find /usr/bin -size +3000000c -ls
    • /usr/bin에서 파일 크기가 3000000 byte 이상 파일 찾기
  1. vi 편집기 기초
  • view numbers

    • 수정은 안되고 안에 내용 살펴보는 명령어
  • vi numbers
    'i'키 누른다 -> 글을 입력한다. -> 'esc'키를 누른다. -> ':wq!' 입력한다.

  • vi 명령어

    • a 텍스트 뒤에 커서를 위치시키고 입력을 받는다.

    • i 텍스트가 앞에 커서를 위치시키고 입력을 받는다.

    • o 커서가 위치한 줄의 아래에 새로운 줄을 추가하여 커서를 위치시키고 입력을 받는다.

    • G 파일의 제일 마지막 줄로 이동

    • 1G 파일의 제일 첫 번째 줄로 이동

    • nG n번째 줄로 이동

    • x 커서가 위치한 부분의 글자를 삭제한다.

    • dd 커서가 위치한 줄을 삭제한다.

    • u 명령어 실행 전으로 되돌린다.

    • yy 한 줄을 복사하여 임시 버퍼 공간에 저장한다.

    • p 임시 버퍼 공간에 저장된 텍스트를 커서의 아랫줄에 붙여 넣는다.

    • :%s/old/new/g

      • old를 찾고 new로 바꿈
    • :set nu 화면에 줄 번호를 출력한다.

    • :n,nd n번째 줄부터 n번째 줄까지 삭제한다.

    • :n n번째 줄로 이동

    • :wq 수정한 파일을 디스크에 저장한 후 종료한다.

    • :x 수정한 파일을 디스크에 저장한 후 종료한다.

      • x 는 저장되지 않은 변경사항이 있는 경우에만 버퍼를 파일에 씀, wq는 무적권
    • :q! 수정한 파일을 디스크에 저장하지 않고 종료한다.

  1. 파일과 디렉토리 접근 권한
  • 사용자 구분

    • 소유자(u:user): 파일과 디렉토리의 소유자
    • 그룹(g:group): 사용자가 속한 논리 그룹
    • 기타(o:others): 소유자나 그룹에 속하지 않은 사용자
  • 퍼미션

    • 읽기(r)(4): 파일의 내용을 확인하거나 복사 할 수 있음, 디렉토리 내용 확인 가능.
    • 쓰기(w)(2): 파일의 내용을 수정할 수 있음, 디렉토리 내에 파일을 추가하거나 삭제 가능.
    • 실행(x)(1): 실행파일의 경우 실행할 수 있음, 디렉토리 접근 및 내용 확인 가능.
  • 퍼미션 변경

    • echo "Hello World" > test.txt
    • chmod 666 test.txt
    • ls -n
    • useradd user01
    • useradd user02
    • su - user01
      -switch user user바꿈
    • echo "user01" > user01.txt
    • 터미널 하나 더켜서
    • su - user02

    • others r 권한있는데 터미널2에서 cat /home/user01/user01.txt 하면 거절됨 왤까
    • 터미널1 에서 ls -al /home/
    • 터미널1에서 chmod 701 /home/user01을 해서 others에게 실행권환을 준다
    • vi test.txt
    • chmod g-rw test.txt
      • group 사용자한테 r,w 권환을뺀다 더할때는 +
    • chmod o-rw test.txt
      • others 사용자한테 r,w 권환을뺀다 더할때는 +
    • chmod a=rwx test.txt
      • 기존 퍼미션 다 날리고 전부다한테 rwx 권환준다.
    • ls -n
  1. 쉘 명령어
  • 경로 이름
  • cd dirA
  • cd ~
    • ~:틸드라고 부름
  • pwd
  • cd /var/log/
    • 아 log 폴더에 뭐있었더라? 할때 tab두번누르면 뭐있는지 파일이랑 폴더들 뜸
  • cd ~johnlee

    • /home/johnlee로감
  • cd ~root

    • == cd ~
  • pwd

  • cd dirB

  • ls ~+

    • 현재 폴더의 내용을 보여줌
  • ls ~-

    • 이전 폴더의 내용을 보여줌
  • cd /usr/bin

  • cd -

    • 이전 폴더로 이동
  • cd -

  • 파일 이름 대체 메타문자

  • cd

  • ls fi*

    • 앞에 fi들어간 애들뜸
  • ls *A

    • 뒤에 A들어간 애들뜸
    • 뒤에 A가 들어간 폴더는 폴더안의 파일들까지 보여줌

ls f???A

  • f랑A 사이에 3글자 들어간 뭐더라할때 .. 보여줌

ls dir?

  • dir 뒤에 한글자 뭐더라 할때 보여줌

ls file[AB]

  • fileA, fileB 중에 있는거 보여줌

ls dir[AC]

  • dirA와 dirC의 안에 있는 것들까지 보여줌

ls dir[A-C]

  • dirA부터 dirC까지 안에있는 것들까지 보여줌

0개의 댓글