Search
moon
sun

Expression

Date
2024/11/29
Category
Infra
Tag
Linux
목차

파일 생성

touch

•
새로운 파일을 생성할 때 사용
•
사용 시 파일의 마지막 수정 시간을 변경

cat

•
일반 파일 내용을 출력하는 명령어
•
Shell의 리다이렉션(>, >>) 기능을 통해 파일을 생성하거나 내용 추가 가능
cat > 파일명 파일 내용 작성 # (Ctrl + D: 내용 입력 종료) # (Ctrl + Z: 파일 저장 후 작성 종료)
Shell
복사
•
Ctrl + Z 는 정상 종료에 대한 커맨드가 아니니 Ctrl + D 로 수행하는 것이 나아보임

echo

•
환경 변수나 문자열을 출력
•
Shell의 리다이렉션 기능을 사용해 파일에 내용을 저장 가능
echo 문자열 # 기본 사용 - 문자열이 그대로 출력됨 echo 문자열 > 파일명 # 새로운 파일에 문자열 작성 echo 추가_문자열 >> 파일명 # 기존 파일에 문자열 추가
Shell
복사

파일 링크

•
파일 시스템에서 파일에 대한 참조를 생성하는 방법
•
링크는 실제 데이터 파일을 가리키는 포인터 역할을 함

Hard Link

ln [original file] [link filename]
•
동일한 파일 시스템 내에서 원본 파일과 동일한 inode를 공유하는 파일
•
원본 파일과 동일한 데이터를 가리킴
•
원본 파일을 삭제하더라도 상관없이 사용 가능
•
디렉토리 링크 불가능

Soft Link / Symbolic Link

ln -s [original file] [link filename]
•
원본 파일의 경로를 가리키는 파일로, 하드 링크와 달리 원본 파일의 경로를 저장
•
원본 파일이 삭제되거나 이동하면 ‘broken link’가 되어 데이터 접근 불가능
•
다른 파일 시스템에서도 생성 가능
•
파일, 디렉토리 모두 링크 가능

i-node

•
Unix 계통 파일 시스템에서 사용되는 자료구조로, 파일에 대한 메타데이터 저장
•
파일 시스템의 모든 파일은 i-node를 가짐
•
메타데이터는 다음과 같은 정보를 포함:
◦
소유권: 파일의 소유자 및 그룹에 대한 정보
◦
허가권: 파일에 대한 읽기, 쓰기, 실행 권한 정보
◦
실제 위치: 파일의 데이터 블록이 저장된 위치에 대한 정보
◦
파일 크기: 바이트 단위의 파일 크기
◦
타임스탬프: 파일의 생성 시간, 수정 시간, 접근 시간 등의 정보
•
각 i-node는 고유 식별번호를 가지며, 이를 통해 파일 시스템에서 파일 참조
◦
식별번호를 통해 파일의 물리적 위치와 메타데이터 연결
•
hard_link 파일과 origin 파일의 inode가 같음을 확인할 수 있음
•
origin 파일을 삭제하니 soft_link의 데이터 접근이 불가능해졌지만 hard_link는 정상 작동함

grep

Global Regular Expression Print
•
시스템 내부에서 패턴과 키워드를 활용한 검색 명렁어
grep [option] "패턴+키워드" [file]

option

옵션
의미
-n
라인 표현
-i
대소문자 구분없이 검색
-v
검색 단어가 제외된 내용 검색
-b
문자와 일치하는 줄의 시작점 출력
-c
문자와 일치하는 라인 수 출력
-w
해당 문자열(단어)와 일치한 경우 출력
-W
해당 문자 한 글자와 일치한 경우 출력
-A
특정 문자 아래 추가로 여러 행 출력
-B
특정 문자 위 추가로 여러 행 출력
-m
라인번호와 내용 검

정규 표현식 pattern

패턴
의미
.
임의 문자 하나
?
문자 존재하거나 존재하지 않음(0, 1)
*
문자 미존재 또는 무한대로 존재(0~*)
+
문자 한번 이상 존재(1~*)
^
기호 바로 뒤 문자로 문자열 시작
$
기호 바로 앞의 문자로 문자열이 끝남
{숫자}
숫자만큼 반복
{숫자,}
숫자 이상만큼 반복
{숫자1, 숫자2}
숫자 1 이상, 숫자 2 이하 만큼 반복
(문자열)
문자나 문자열 묶음
[문자1, 문자2,…]
대괄호 안에 있는 문자들이 존재하는지 검색
[^ ]
[ ] 안에 포함되지 않는 문자
[:알파벳:]
알파벳만 검색
[:알파벳숫자]
알파벳과 숫자 검색
[:숫자:]
숫자 검색
[:upper:]
대문자 검색
\\
\ 글자 자체를 검색
\d
모든 숫자 검색 [0-9]와 동일
\D
[^0-9]와 동일, 숫자를 제외한 모든 문자 검색
\s
공백 검색
\S
공백이 아닌 문자 검색
\w
숫자 또는 문자 검색 [a-zA-Z0-9]word 를 표현
\W
숫자 또는 문자가 아닌 것 검색 [^a-zA-Z0-9] non word를 표현
[ ]
[ ] 안에 포함된 임의의 문자 하나
[xy]
문자 선택, x 와 y 중 하나( x와 y 중에 먼저 나온 단어 검색)
[^xy]
x 및 y 를 제외한 문자
[a-z]
범위 , a ~ z 사이 문자
\^
escape, ^ 를 문자로 사용함
\b
문자와 공백 사이의 문자
\B
문자와 공백 사이가 아닌 문자
\d
숫자
\D
숫자가 아닌 것
패턴 예시
# number ^[0-9]*$ # alphabet ^[a-zA-Z]*$ # KR ^[가-힣]*$ # email ## 계정@도메인.최상위도메인 ^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$ # phone number ## 3자리-3or4자리-4자리 ^\d{3}-\d{3,4}-\d{4}$ ## +82-01x-xxxx-xxxx 검증 ^\+82-01[0|1]-\d{4}-\d{4}$ # password ## 최소 8자, 최소 1개 문자, 숫자, 특수문자 포함 ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@!%*#?&])[A-Za-z\d@!%*#?&]{8,}$ # KR-Resident Registration Number, RRN ## 예시 123456-(1, 2, 3, 4)234567 ^\d{6}-[1-4]\d{6}$ ## yyMMdd 형식을 맞춘 정규식 ^\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])-[1-4]\d{6}$ # Post Code ### 예시 123-456 ^\d{3}-\d{3}$ # ID ## 영문조합만 사용, 5~10자 사이 ^[a-zA-Z]{5, 10}$
Bash
복사