Skip to content
정명주(myeongju.jung) edited this page Aug 19, 2022 · 9 revisions

FileSystem

FHF (Filesystem Hierarchy Standard) 표준 파일 시스템

/ : 루트 디렉토리
/bin : 기본적인 명령어
/boot : 부트로더 디렉토리
/dev : 시스템 디바이스 (장치파일)
/etc : 각종 설정파일
/home : 사용자의 홈 디렉토리
/lib : 라이브러리 (및 커널모듈)
/media : 외부 저장소 (cdrom, usb 등)
/mnt : 외부 저장소 또는 파일시스템 마운트포인트 /proc : 시스템 설정들의 가상파일시스템 (pseudo-file 시스템)
/root : 루트 사용자의 홈 디렉토리
/sbin : 시스템 (관리자용) 명령어
/tmp : 임시 저장소
/usr : 일반 사용자들 공통파일
/var : 시스템 운용중에 생성되는 임시 데이터 저장소

쉘 로그인 시 기동 순서

bash인 경우

  • /etc/profile
    • /etc/profile.d/*.sh
    • /etc/bash.bashrc
  • ~/.profile
    • ~/.bashrc
      • ~/.bash_aliases(if exists)

스크립트

# 스크립트 작성 및 /bin/sh 또는 /bin/bash 를 통해 실행
$ /bin/sh test1.sh
# 실행퍼미션을통한직접실행
$ chmod +x test1.sh 
$ ./test1.sh
# 이때, 해당 쉘 스크립트의 속성을 첫 줄에 정의 (she(#)bang(!) 또는 shabang, hashbang) 
- #!/bin/bash
- #!/usr/bin/perl
- #!/usr/bin/python
#shebang 무시하고 직접 실행
$ bash -m test1.sh

스크립트 입출력 인자

  • $0: 스크립트/명령어 이름
  • $#: 전달된파라미터수
  • $$: 프로세스번호
  • $?: 실행결과
  • $1,$2,...: 입력인자
  • $*: 입력인자 모두

Shell Keymap

  • Ctrl + L: 현재 입력 글자들은 남겨둔 채 'clear' 실행
  • Ctrl + U: 현재 커서 위치부터 그 줄 처음부분 까지 지우기
  • Ctrl + D: 현재 커서에 있는 글자 지우기
  • Alt + B: 이전 단어로 커서 이동
    • Esc 누르고 땐 후 바로 B도 똑같이 작동하는데 맥에서 유용함
  • Alt + F: 다음 단어로 커서 이동
    • Esc 누르고 땐 후 바로 B도 똑같이 작동하는데 맥에서 유용함
  • Ctrl + A: 줄 맨 앞으로 커서 이동
  • Ctrl + E: 줄 맨 뒤로 커서 이동
  • Ctrl + F: 한 칸 앞으로 이동( <- 키 와 동일)
  • Ctrl + B: 한 칸 뒤로 이동(-> 키 와 동일)
  • Ctrl + K: 현재 커서 위치로부터 그 줄 끝 부분까지 텍스트 지우기

Redirection(> >> 1> 2> &> < <<)

# 출력 결과물을 표준 출력(1)에 보내고 에러 출력도 표준 출력과 같은 곳으로 보낸다.
$ ls tmp/* > result.txt 2>&1
# 출력 결과물을 표준 출력(1)과 에러 출력(2) 둘 다 보낸다.
$ ls tmp/* &> result.txt

# 표준 입력으로 부터 end(delim)값이 들어올 때까지 의 입력 결과를 파일로 출력
$ cat << end > hello.txt

Pipeline(|)

find

#내 현재 디렉토리에서 확장자가 .txt 인 파일을 찾는 법
$ find *.txt
#내 현재 디렉토리에서부터 확장자가 .txt 인 파일을 찾는 법
$ find . -name “*.txt”
#내 현재 디렉토리에서 파일명이 hello로 시작하는 “파일” 만 찾는 법
$ find . -name “hello*” -type f
#내 현재 디렉토리에서 디렉토리명이 dir 로 시작하는 “디렉토리” 만 찾는 법 • find . -name “dir*” -type d
내 현재 디렉토리에서 용량이 100,000,000바이트 (100M) 보다 큰 파일 찾는 법
• find . -size +100000000c <-- 여기 100000000c 대신 100000k 또는 100M 사용 가능
최근 생성된 파일만 찾아보기 (2020년 5월 15일 이후 변경된 파일
• find -newerct “15 May 2020” -ls <-- 여기 newerct 대신 newermt 로 할 경우 최근 변경된 최근 2일에서 5일 사이에 변경된 파일 찾기
• find . -mtime +2 -a -mtime -5 -ls

stat

  • Access: 파일에 최근 접근 시간
    • 논란이 있음. 고전적으로는 read 시에도 올라갔으나 지금은 옵션을 통해서 다소 변경됨
  • Modify: 파일의 내용 변경 시간
  • Change: 파일의 수정 시간
    • inode 관점에서의 변화 시간 - 생성, 변경, 속성수정 등
  • Birth: 생성
$ stat hello2.txt
  File: hello2.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 274693      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  jordan)   Gid: ( 1000/  jordan)
Access: 2022-08-12 00:25:52.460811416 +0000
Modify: 2022-08-12 00:25:52.460811416 +0000
Change: 2022-08-12 00:26:07.680853040 +0000
 Birth: 2022-08-12 00:25:52.460811416 +0000

nmap

서버 사이에서 ACL을 포트 범위로 검사

  • 열려있으면 open
  • 막혀있으면 filtered
  • 닫혀있으면 closed
$ nmap -p 1024-65535 10.10.10.10

Starting Nmap ...
Namp scan report for 10.10.10.10
PORT     STATE    SERVICE
1433/tcp filtered ms-sql-s
1521/tcp filtered oracle
...
Clone this wiki locally