kh교육

(2025070709)리눅스 기초 명령어 & TCP/UDP, 패킷트레이서

boangod 2025. 7. 7. 11:20

find

- 파일시스템에서 조건에 만족하는 파일을 검색한다.

 

# find 검색경로 검색조건 1 검색조건 2 …

검색조건

-name : 파일명으로 검색 (와일드카드문자 사용)

-perm : 특정 퍼미션을 가진 파일을 검색

-empty : 크기가 0인 파일 검색

name과 empty를 많이 사용함.

-user 지정한 사용자가 소유한 파일
-group 지정한 그룹이 소유한 파일
-nouser 소유자가 없는 파일
-nogroup 그룹 소유자가 없는 파일, 검색하고자 하는 파일의 종류 지정
-type b(block), c(char), d(dir),l(slink), f(regular)
-mount 마운트된 파일 시스템만 검색
-empty 빈 파일 검색
-mtime, -atime, -ctime 변경된 파일 (-숫자), mtime:내용 변경, ctime:정보 변경, atime:마지막 접근날짜

 

예시

[root@Nlinux156 vmware-tools]# find /etc/vmware-tools/ -name '*default'
/etc/vmware-tools/poweroff-vm-default
/etc/vmware-tools/poweron-vm-default
/etc/vmware-tools/resume-vm-default
/etc/vmware-tools/suspend-vm-default

[root@Nlinux156 vmware-tools]# find /etc/ -name ???.d
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc0.d
/etc/rc2.d
/etc/rc4.d
/etc/rc6.d
/etc/dconf/db/gdm.d
/etc/rc1.d
/etc/rc3.d
/etc/rc5.d
/etc/pam.d
/etc/sane.d/dll.d
/etc/kdump/pre.d

? = 글자 하나를 나타냄

 

tar

여러 개의 파일을 하나의 파일로 압축한다. 단 용량은 줄어들지 않습니다. 용량을 줄이기 위해서 는 gzip을 이용하거나 특별한 옵션을 이용합니다.

 

압축

컴퓨터에서 컴프레스 의미 : 하드드라이브에 파일이 여기저기로 나눠져 있는걸 한 군데로 몰아주는 작업

리눅스가 나오면서부터 : 압축 = 파일 여러 개를 하나의 파일로 만들어주는 것.

 

gzip은 용량을 줄여줍니다. tar로 여러 개 파일을 하나로 만들고 gzip으로 용량을 줄입니다.

tar은 gzip으로 압축한다.

 

 

# tar [옵션] [압축파일명] [대상]

-c : 압축,

-x : 풀기,

-v : 작업내용을 출력

-z : gzip를 이용 압축(압축해제),

-j : bzip2 이용

-f : 파일명을 지정,

-p : 퍼미션 유지

 

-기호 안 넣어도 됩니다.

cvfz 압축

xvfz 압축 풀기

 

파일을 압축할 때 파일로 압축 x

디렉터리를 하나 만들고 거기에 파일을 넣고 디렉터리를 압축하기.

bzip2, compress, cpio는 이제 안 씁니다.

 

예시

[root@Nlinux156 ~]# mkdir -p hi/hello/howareyou
[root@Nlinux156 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  다운로드  바탕화면  사진  음악
hi               공개                  문서      비디오    서식
[root@Nlinux156 ~]# echo hi? > hi/hello/howareyou/a.txt
[root@Nlinux156 ~]# echo hello? > hi/hello/b.txt
[root@Nlinux156 ~]# echo howareyou? > hi/hello/howareyou/c.txt
[root@Nlinux156 ~]# tar cvfz hi.tar.gz hi/
hi/
hi/hello/
hi/hello/howareyou/
hi/hello/howareyou/a.txt
hi/hello/howareyou/c.txt
hi/hello/b.txt
[root@Nlinux156 ~]# ls
anaconda-ks.cfg  hi.tar.gz             공개      문서      비디오  서식
hi               initial-setup-ks.cfg  다운로드  바탕화면  사진    음악
[root@Nlinux156 ~]# rm -rf hi
[root@Nlinux156 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  다운로드  바탕화면  사진  음악
hi.tar.gz        공개                  문서      비디오    서식
[root@Nlinux156 ~]# tar xvfz hi.tar.gz
hi/
hi/hello/
hi/hello/howareyou/
hi/hello/howareyou/a.txt
hi/hello/howareyou/c.txt
hi/hello/b.txt
[root@Nlinux156 ~]# ls
anaconda-ks.cfg  hi.tar.gz             공개      문서      비디오  서식
hi               initial-setup-ks.cfg  다운로드  바탕화면  사진    음악
[root@Nlinux156 ~]# ls -R hi
hi:
hello

hi/hello:
b.txt  howareyou

hi/hello/howareyou:
a.txt  c.txt

 

이렇게 압축, 압축 풀기까지 확인할 수 있습니다.

 

 

stat

파일의 시간 정보를 출력한다.

 

# stat 파일

 

리눅스 파일의 타임스탬프

• atime

- 파일에 마지막으로 접근한 시간

- 시스템이나 응용프로그램이 마지막으로 파일에 접근한 시간

 

• ctime

- 파일의 퍼미션 등 속성이 변경된 시간.

 

• mtime

- 파일의 내용이 마지막으로 수정된 시간

 

예시

[root@Nlinux156 hello]# stat b.txt
  File: b.txt
  Size: 7               Blocks: 8          IO Block: 4096   일반 파일
Device: 10303h/66307d   Inode: 3380945     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2025-07-07 11:17:00.378621260 +0900
Modify: 2025-07-07 11:15:28.000000000 +0900
Change: 2025-07-07 11:17:00.378621260 +0900
 Birth: 2025-07-07 11:17:00.378621260 +0900
 
[root@Nlinux156 hello]# mv b.txt bbb.txt
[root@Nlinux156 hello]# ls
bbb.txt  howareyou
[root@Nlinux156 hello]# stat bbb.txt
  File: bbb.txt
  Size: 7               Blocks: 8          IO Block: 4096   일반 파일
Device: 10303h/66307d   Inode: 3380945     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2025-07-07 12:19:19.329481625 +0900
Modify: 2025-07-07 11:15:28.000000000 +0900
Change: 2025-07-07 12:20:10.794479703 +0900
 Birth: 2025-07-07 11:17:00.378621260 +0900

 

 

touch

파일의 시간 정보를 갱신, 빈 파일 만들 때 사용.

([YYYYMMDDhhmi.ss] 시간 서식문자.)

Y : 년도, M : 월, D : 일, h : 시간, mi : 분, s : 초

 

옵션

-t [YYYYMMDDhhmi.ss] : 임의의 시간으로 변경, a, mtime 변경

-a : 최근 사용 시간 변경, a, ctime 변경

-m : 파일의 최근 수정 시간 변경, m, ctime 변경

-r [file] : 지정한 파일과 동일한 시간으로 변경

-c : 파일을 생성하지 않는다.(존재하지 않을 때)

 

예시

[root@Nlinux156 ~]# touch example.txt
[root@Nlinux156 ~]# ls
anaconda-ks.cfg  hi         initial-setup-ks.cfg  다운로드  바탕화면  사진  음악
example.txt      hi.tar.gz  공개                  문서      비디오    서식
[root@Nlinux156 ~]# ls -al example.txt
-rw-r--r--. 1 root root 0  7월  7 12:12 example.txt
[root@Nlinux156 ~]# touch -t 200102240001.42 example.txt
[root@Nlinux156 ~]# ls -al example.txt
-rw-r--r--. 1 root root 0  2월 24  2001 example.txt
[root@Nlinux156 ~]# stat example.txt
  File: example.txt
  Size: 0               Blocks: 0          IO Block: 4096   일반 빈 파일
Device: 10303h/66307d   Inode: 68363268    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2001-02-24 00:01:42.000000000 +0900
Modify: 2001-02-24 00:01:42.000000000 +0900       <-  바뀜
Change: 2025-07-07 12:13:14.137495263 +0900       <-  바뀜
 Birth: 2025-07-07 12:12:32.721496810 +0900

임의로 시간 수정은 되도록이면 하지 않는다. 

 


tcp/udp

4 계층 Transport Layer - tcp/udp

 

flow control - 수신 측에서 작동

congestion control - 송신 측에서 작동

 

 

tcp

- host에서 작동하는 app process 간에 논리적인 데이터 전송의 기능을 제공합니다.

- end시스템에서 작동함.(메시지를 주고받는 프로세스에서 작동합니다.)

 

송신 : app message를 segment로 변환해서 Network layer로 전달함

          ㄴ app layer → transport layer(TCP) → network layer

수신 : Network layer로 받은 segment로부터 message를 추출해서 app layer로 전달.

          ㄴ network layer → TCP → app layer

network layer : host 간에 logical communication을 제공

 

transport layer : process 간에 logical communication을 제공

ㄴ Network layer가 제공하지 못하는 신뢰적인 전송을 제공할 수 있습니다.

 

신뢰적인 연결지향 서비스(TCP)

• 혼잡제어

• 흐름제어

• 연결지향

 

비신뢰적인 비연결지향 서비스 (UDP)

• best-effort delivery(최선을 다한다.- [나 책임 안져])

  service : IP

               : data 전달에 최선을 다하지 만 어떠한 보장도 하지 않는다.

 

보장하지 않는 것

• 최대 지연시간

• 전달 대역폭

왜 보장하지 못하는가?

- 패킷망을 사용하기 때문. 보장하려면 서킷망을 써야 합니다.

 

multiplexing - (여러 개를 묶어서 하나로 해서 처리)

  • 소캣을 통과해서 전송계층으로 전송되는 것. 내려가는 것( app layer에서 Transport Layer로 내려가는 것.)

demultiplexing - (하나가 여러 개로 분산돼서 보내는 것.)

  • 전송계층이 segment에서 메시지를 뽑아내서 각강의 소켓으로 전달하는 것. 올라가는 것( Transport Layer에서 app layer로 올라가는 것.)

 

 

 

port = 프로그램(서비스)을 식별하기 위한 번호

fork = 프로세스를 복제하는 시스템 호출

 

소켓 : 통신을 위한 파이프 같은 것, 메모리에 존재하는 객체(구조체)

 

 

 


패킷 트레이서

- 네트워크 시물레이션 도구

 

접속 모드

사용자 모드 : User EXEC Mode

    -장치 설정 불가
    -Router>, Switch>

 

관리자 모드 : Privileged EXEC Mode

    -설정이나 동작 확인

    -제한적인 설정 명령

    -show 등의 명령어

    -네트워크 확인 : ping, telnet, traceroute

    -설정 저장이나 재시작 : write memory, reload

    -Router#, Switch#

 

전역 설정 모드 : Global Configuration Mode

    - 장치 설정 모드

    - EXEC 모드의 모든 명령어 사용 가능

    - Switch나 Router의 설정 모드

    - Router(config)#, Switch(config)#

 

 

>                      → 아무것도 할 수 있는 게 없음

# 에서               → 저장하기

Router(config)  → 설정하기

 

show 명령

• 장비의 다양한 정보를 확인하는 데 사용한다.

• show [옵션]

running-config : RAM의 현재 설정 정보 확인

startup-config : NVRAM에 저장된 설정 내용 확인

version : IOS 버전 정보

flash : Flash 정보

ip interface brief : 인터페이스별 설정 정보

interface [if명] : 인터페이스의 통계 정보

cdp neighbor : 주변 장비 확인

cdp neighbor detail : 인접 장비 정보 확인

 

running-config

startup-config

ip interface brief - 중요함

interface [if명]

많이 사용함.

 

NVRAM에 설정 저장 명령(저장하는 명령어)

• copy running-config startup-config           ← 되도록이면 이거 쓰기

• write memory                                            ← 예전 명령어

 

NVRAM의 설정 삭제 명령

• erase startup-config 

 

장비 재부팅

• reload(#에서 사용)

 

no ip domain-lookup - 오타 쳐도 금방 넘어옵니다.

명령어 앞에 no를 붙이면 뒤에 있는 명령어를 취소해 달라는 것입니다.

 

 

ip세팅

IP 할당

• 라우터는 인터페이스별로 IP를 갖는다.

• 스위치는 장치에 IP가 할당된다

• VLAN 별로 IP가 할당된다.