보안 국비 용/보안 7월

정보 보안 과정 형 평가 5일차 (2024.07.29)

눅스 2024. 7. 29. 15:25

명령어의 법칙 

 

pwd

/home/sevas

 

1. ls -l  /home  /sevas  /korea

 

2. ls -l  /home  sevas  korea

 

=> ls -l

1 = /home

2 = /test/sevas/sevas

3 = /test/sevas/korea

 

=========================================================

ls  ,  cd   ,mkdir  ,  pwd   , passwd , ifconfig , man , clear ,date, uname

 

ls   :   list 목록보기 파일/디렉토리 목록

 

 

=========================================================

- 사전실습 : 모든명령은 경로를 생성한뒤에 실행해야한다.

# touch   

- 0byte의 파일 생성

 

# touch  /touch/1   (절대경로)

 

# touch  ./2   (상대경로)

 

# touch  3   (상대경로)

 

- 디렉토리 생성은 되지만 파일생성은 되지 않는다.

# mkdir  aa/

# touch  a/

 

# touch  /home/cc  bb  ./aaa

- bb와  aaa는  /touch  에  있는  것을  알  수  있다.

- cc  는  /home  에  있는  것을  알  수  있다.

 

==>

# touch    /home/cc    bb    ./aaa

현재위치(pwd)  =  /touch

- cc  =  /home/cc       [절대경로]

- bb  =  /touch/bb      [상대경로]

- aaa  =  /touch/aaa  [상대경로]

 

경로 연습

# mkdir  /home/A  B  ./C

 

경로연습

# ls  -l  ../home  ./

 

=========================================================

# 수업준비 및 문제

 

/korea와 /cptest 를 생성하고

/korea에는 1 2 3 4 개의 파일과 a b c d 라는 4개의 디렉토리 생성

/cptest로 이동하여 pwd 입력시 /cptest가 출력되도록 하세요

 

#mkdir   /korea   /cptest

#touch   /korea/1  /korea/2   /korea/3   /korea/4

#mkdir   /korea/a  /korea/b   /korea/c   /korea/d

#cd        /cptest

#pwd

#ls  -l   /cptest   /korea

 

[상대경로 & 절대경로]

 

#mkdir   -p   /korea   /cptest

#cd /korea

#touch 1 2 3 4 

#mkdir a b c d

#ls  -l

#cd  /cptest

#pwd

#ls  -l   /cptest   /korea

 

[확인]

#ls  -l  /korea  /cptest

#pwd

/cptest

 

=========================================================

#  cp 

- copy 파일 복사

 

# 옵션

-r  :  디렉토리  복사

-p  :  보존복사(속성)

-i  :  확인(y/n)

-a  :  모든  옵션  포함

 

pwd => /cptest

 

#예제

 

1.

# cp  /korea/1  /cptest/1

# ls  -l  /korea/1  /cptest

 

2.

# cp  -p  /korea/2  /cptest/2

# ls  -l  /korea  /cptest

 

3.

# cp  -i  /korea/1  /cptest  ->  n

# cp  -i  /korea/1  /cptest  ->  y

 

4.

# cp  -p  /korea/2  /cptest/e

 

# cp  -p  /korea/3  samsam

# ls  -l  /korea  /cptest

 

5.

#  cp  /korea/a  /cptest  :  (X)

- 에러가 발생 한다.  (a는 디렉토리)

 

# cp  -r  /korea/a  /cptest

 

# cp  -rp  /korea/a  /cptest

# ls  -l  /korea  /cptest

==> 안에 내용이 있으면 복사 안됨

 

# cp  -a  /korea/b  /cptest

 

6.

# cp  -rp  /korea/1  sevas1

 

# cp  -p  /korea/c  /cptest/cream

# ls  -l  /korea  /cptest

 

7.

# cp  -rp  /korea/c  /korea/d  /korea/3  /cptest

# ls  -l  /korea  /cptest

 

 

===TIP===

# cp  /  mv 사용법

 

$1 

- 원본과 target의 이름이 같을경우 
   file/dir명 생략가능 (#2,#3,#5)


$2

- 원본과 target의 이름이 다를경우

  복사/이동과 동시에 target이름으로 변경(#4,#6)

$3

- 여러경로 존재시 가장 마지막경로가 target (#7)

 

=========================================================

## 실습문제 ##

Rocky Linux_기초문제(cd,ls,pwd,touch,mkdir,cp)

- 경로가 없으면 만들어 줍니다.

- 환경이 없으면 만들어 냅니다.

- 압축을 새로 풀고 싱글부트를 진행하세요, 푸티 접속 후 스냅샷 찍기

 

1. 다음과 같은 파일이 존재하는지 확인하세요. (3개 나와요~♡)

/etc/login.defs

/home/passwd

/etc/inittab

/boot/grub2/grub.cfg

/bin/vsftp

 

# ls  -l  /etc/login.defs

# ls  -l  /home/passwd

# ls  -l  /etc/inittab

# ls  -l  /boot/grub2/grub.cfg

# ls  -l  /bin/vsftp

 

2. 1번에서 존재하는 파일 3개를 /backup 디렉토리에 복사하세요

# mkdir  /backup

# cp  /etc/login.defs  /backup

# cp  /etc/inittab  /backup

# cp  /boot/grub2/grub.cfg  /backup

# ls  -l  /backup

 

3. 복사되어 있는 파일을 앞자리 3글자만 따서 /backup/test 디렉토리에 이름변경복사하세요.

# mkdir  test

# cp  grub.cfg  /backup/test/gru

# cp  inittab  /backup/test/ini

# cp  login.defs  /backup/test/log

 

4. 한줄명령으로 다음과 같은 디렉토리에 test1~3 파일을 생성해보세요

dir(디렉토리) file(파일)
/home test3
/backup test1
/backup/test test2

 

 

# touch  /home/test3  /backup/test1  /backup/test/test2

 

5. ./backup/test 디렉토리를 /home/test/c/d/linux 이름이 되도록 이름변경 보존복사하세요.

# mkdir  -p  /home/test/c/d

# cp -rp ./backup/test /home/test/c/d/linux

 

6. /home으로 이동한뒤에 /sevas 디렉토리를 만들어주세요

# cd /home

# mkdir /sevas

 

7. pwd 입력시 /root가 출력되는 곳에서 이동을 하지 않고

/home /backup /backup/test에 있는 test1 test2 test3 파일을 /sevas에 한줄 명령으로 복사하세요.

# cp  /home/test3  /backup/test1  /backup/test/test2  /sevas

 

8. /backup에 있는 파일 4개를 /home/test/c/d/test 디렉토리에 한줄명령으로 복사하세요

c ( -a -r 옵션 쓰지 말것)

# cp  ./grub.cfg  ./inittab  ./login.defs  ./test1  /home/test/c/d/test

 

/test1 디렉토리에 파일 1 2 3 4

/test2 디렉토리에 dir a b c d

pwd -> /mvtest 이 나오게 출력

# mkdir  /test1  /test2  /mvtest

# cd  /test1 

#touch  1  2  3  4 

# cd  /test2

# mkdir  a  b  c  d

# cd  /mvtest

# ls  –l  /test1  /test2  /mvtest

 

=========================================================

#mv   (move)

- 파일/디렉토리 이동

 

**특징 옵션이 거의 필요 없다.**

 

#예제

1.

#mv  /test1/1   /mvtest

ls   -l   /test1   /mvtest

 

2.

#mv  /test2/a   /mvtest

ls   -l  /test2  /mvtest

 

3.

#mv  a  apple

ls   -l

 

4.

#mv   /test2/b   /test1/2   /test1/3   /mvtest/

ls   -l   /test1   /test2   /mvtest

 

=========================================================

#rmdir   

- 빈 디렉토리 삭제  (거의 안씀)

 

(옵션)

-p  :  필요한경우 경로상의 상위 빈 디렉토리도 삭제

 

- 환경  <== 옵션 -p 를 사용하기

dir  =>  /rmdir/a/b/c/d/e/f/g

file  =>  /rmdir/a/b/c/test

 

- 확인하기

#ls -lR /rmdir/a/b/c

 

# rmdir   /rmdir/a/b/c/d/e/f/g/h   (X)

- 오류  :  h  디렉토리가  없기  때문에

 

# rmdir   /rmdir/a/b/c/d/e/f         (X)

- 오류  :  디렉토리가  비어있지  않기  때문에

 

# rmdir  /rmdir/a/b/c/d/e/f/g

- g  디렉토리가  지워짐

 

# ls  -lR  /rmdir/a/b/c

 

# rmdir -p /rmdir/a/b/c/d/e/f/

- /rmdir/a/b/c  디렉토리가 비어있지 않기 때문에 d, e, f  디렉토리

  까지만 지워짐을  알  수  있다. 

 

=========================================================

#rm 

- remove약자

- 파일 삭제

 

/rmtest 디렉터리 생성 후

내부에 a b c d 디렉터리

            1 2 3 4 파일을 생성

pwd 입력시  /rmtest 출력

 

- 파일 삭제 (remove)

 

- 옵션

-r : 디렉토리삭제

-f : 강제

-i : 확인

 

1.

# rm  1

#ls  -l

 

2.

# rm  -i  2

#ls  -l

 

3.

# rm   a    (X)

# rm  -r  a

#ls  -l

 

4.

# rm  -fi  3  -> (n)

ls  -l

# rm  -if  3

ls  -l

 

5.

# rm  -ri  /rmtest   ( y n n n n )

- 하나하나  다  물어봄

# rm  -rf  /rmdir    ****

 

6.

# ls  -ld  /test1  /test2

# rm  -rf  /test1  /test2

# ls  -ld  /test1  /test2

 

=========================================================

- 사전 준비

# pwd

# /rmtest

# touch  111  112  122  222  211  221

 

==tip==

@정규표현식

 

- *     문자전체  ( 에스터르크 )

- ?     대체문자(한자리)  :  필터링

 

박세찬

*박*     박세찬

박*      박세찬

*세*     박세찬

 

박세찬

?  (에러)

??  (에러)

???  (박세찬)

?박  (에러)

박?찬  (박세찬)

 

 

#예제

1.

#ls  -l   *   (전체)

#ls  -l   1*  (1로 시작하는  모든 문자)

#ls  -l   *1  (1로 끝나는  모든 문자)

 

2.

#ls  -l   ?     (한글자로  된것만  출력)

#ls  -l   ??    (에러,  두글자인게  없음)

#ls  -l   ???   (세글자로  된것만  출력)

#ls  -l   ?1?   (중간에  1이  들어간  세자리  출력)

 

##실습##

1.

#rm  -rf  ./*

#rm  -rf  /*  [절대 하면 안되는 명령어]

 

#rm  -rf  *

#rm  -rf  ./*

=========================================================

논리연산자

 

&&    =     and

||       =     or

 

a && b

- a성공시 b실행

- a실패시 b미실행

# pwd  &&  b  (pwd 성공시 b 실행)

# b  &&  pwd  (b 실패시 pwd 미실행)

 

a || b

- a성공시 b미실행

- a실패시 b 실행

# pwd  ||  b  (pwd 성공시 b 미실행)

# b  ||  pwd  (b 실패시 pwd 실행)

 

a | b  (pipe,  연계)

- a의 내용을 받아 b로 출력

==>프로세스 우선순위에 따라서 실행 (낮은 순위 먼저 실행)

 

#grep  :  문자포한 열 추출

ex)

# ls -l /etc

# ls /etc  |grep  yum

- grep  :  문자포함  열  추출

 

=========================================================

#alias 

- 단축키 지정  (별명)

# alais  (확인)

 

# alias c='clear’ (단축키지정)

 

# unalias c (단축키삭제)

 

TIP. # alias는 로그아웃하면 내용 삭제됨, 영구적사용은 shell에 부여해야

 

#alias  :  확인

#unalias  :  삭제

 

ls -l , ls -ld , ll

 

 

***실습문제***

- a1  =  /alias 디렉터리 생성 

==>  #alias  a1='mkdir  /alias'

 

- a2  =  /alias 디렉토리 내부에 test1 파일

          test2 디렉토리 생성

==>  #alias  a2='mkdir  -p  /alias/test2 && touch  /alias/test1'

 

- a3  =  /alias 디렉터리 강제 삭제

==> #alias a3='rm -rf  /alias'

 

- a4  =  /alias 디렉터리 생성과 같이 /alias 내부에

          test1 파일 test2디렉터리 생성

==> # alias a4=’mkdir –p /alias/test2 && touch /alias/test1

==> #alias  a4='a1  &&  a2'

==> alias를 묶어서 사용할 수 있다.