Tags
- 도쿄
- 대만
- 해리포터
- 건담
- 축복이
- 우리에프아이에스
- 우리fis아카데미
- 시청
- 맛집
- 전주
- 글로벌소프트웨어캠퍼스
- k-디지털트레이닝
- Python
- 사진
- 우리fisa
- 여행
- 카페
- SQL
- CS231n
- 군산
- ai_엔지니어링
- 수요미식회
- 축복렌즈
- 650d
- 대만여행
- 오사카
- 전시
- 17-55
- fdr-x3000
- 제주도
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
Recent Posts
300x250
브렌쏭의 Veritas_Garage
[Linux_Shell] 존재 여부만 알아두면 나중에 쓸모있을 정보 본문
Hard Link & Soft Link
total 32
drwxr-x--- 1 user01 user01 4096 8월 8 09:42 ./
drwxr-xr-x 1 root root 4096 8월 7 12:13 ../
-rw-r--r-- 1 user01 user01 220 8월 7 12:13 .bash_logout
-rw-r--r-- 1 user01 user01 3771 8월 7 12:13 .bashrc
-rw-r--r-- 1 user01 user01 807 8월 7 12:13 .profile
-rw-rw-r-- 2 user01 user01 6 8월 8 09:40 file1 # <- Original File
Hard Link
- 하드 링크는 파일의 inode 번호를 공유하는 링크이다.
inode: 파일의 메타데이터 정보를 저장하는 공간
- 하드 링크는 원본 파일과 링크 파일이 같은 inode 번호를 가지고 있기 때문에, 원본 파일과 링크 파일은 같은 파일로 인식된다.
- 원본 파일과 링크 파일은 같은 데이터를 가지고 있기 때문에, 하나의 파일을 수정하면 다른 파일도 수정된다.
$ ln file1 hardlink.txt
total 32
drwxr-x--- 1 user01 user01 4096 8월 8 09:42 ./
drwxr-xr-x 1 root root 4096 8월 7 12:13 ../
-rw-r--r-- 1 user01 user01 220 8월 7 12:13 .bash_logout
-rw-r--r-- 1 user01 user01 3771 8월 7 12:13 .bashrc
-rw-r--r-- 1 user01 user01 807 8월 7 12:13 .profile
-rw-rw-r-- 2 user01 user01 6 8월 8 09:40 file1
-rw-rw-r-- 2 user01 user01 6 8월 8 09:40 hardlink.txt # <- Hard Link
Symbolic Link (Soft Link)
- 심볼릭 링크는 파일의 경로를 가리키는 링크이다.
- 바로가기와 비슷한 개념
- 심볼릭 링크는 원본 파일과 링크 파일이 다른 inode 번호를 가지고 있기 때문에, 원본 파일과 링크 파일은 다른 파일로 인식된다.
- 심볼릭 링크는 원본 파일의 경로를 가리키기 때문에, 원본 파일이 삭제되면 심볼릭 링크는 끊어진다.
$ ln -s file1 softlink.txt
# or
$ ln --symbolic file1 softlink.txt
total 32
drwxr-x--- 1 user01 user01 4096 8월 8 09:42 ./
drwxr-xr-x 1 root root 4096 8월 7 12:13 ../
-rw-r--r-- 1 user01 user01 220 8월 7 12:13 .bash_logout
-rw-r--r-- 1 user01 user01 3771 8월 7 12:13 .bashrc
-rw-r--r-- 1 user01 user01 807 8월 7 12:13 .profile
-rw-rw-r-- 2 user01 user01 6 8월 8 09:40 file1
-rw-rw-r-- 1 user01 user01 6 8월 8 09:40 hardlink.txt
lrwxrwxrwx 1 user01 user01 6 8월 8 09:40 softlink.txt -> file1 # <- Soft Link
하드 링크와 심볼릭 링크의 차이점
- 하드 링크
- 원본 파일과 링크 파일은 같은 파일로 인식
- 원본 파일을 수정하면 링크 파일도 수정
- 심볼릭 링크
- 원본 파일과 링크 파일은 다른 파일로 인식
- 원본 파일을 삭제하면 링크 파일은 끊어짐
inode
- inode: 파일의 메타데이터 정보를 저장하는 공간
- 파일의 권한, 소유자, 그룹, 파일 크기, 생성 시간, 수정 시간, inode 번호 등의 정보를 저장
- 파일의 데이터는 inode에 저장되지 않음
- 파일의 데이터는 데이터 블록에 저장됨
- inode 테이블: inode의 정보를 저장하는 테이블
- inode 테이블은 inode 번호와 데이터 블록의 매핑 정보를 저장
- inode 테이블은 파일 시스템의 일부분
inode 확인
$ ls -i
131072 file1
131072 hardlink.txt
131073 softlink.txt
- inode 번호는 파일의 메타데이터 정보를 저장하는 공간을 가리키는 번호
- inode 번호가 같은 파일은 같은 inode를 가지고 있음
AWK Command
awk
: 텍스트 데이터를 처리하는 명령어
- 텍스트 데이터를 행 단위로 처리
- 행 단위로 데이터를 분리하고, 필드 단위로 데이터를 처리
- 행: 레코드
- 필드: 컬럼
출력 형식: awk [옵션] '패턴 {명령}' [파일]
-F
: 필드 구분자 지정-v
: 변수 지정NR
: 레코드 번호NF
: 필드 번호$0
: 전체 레코드$1
: 첫 번째 필드$2
: 두 번째 필드BEGIN
블록은 파일의 첫 번째 줄을 처리하기 전에 실행되는 코드를 포함할 수 있다.END
블록은 모든 줄을 처리한 후에 실행되는 코드를 포함할 수 있다.
visudo
Command
visudo
: sudoers 파일을 수정하는 명령어
sudoers
파일은sudo
명령어를 사용할 수 있는 사용자와 명령어를 설정하는 파일/etc/sudoers
파일을 수정하게 된다.
$ sudo visudo
visudo
명령어를 사용하면sudoers
파일을 수정할 수 있는 에디터가 실행된다.- 문법 상의 오류를 잡아주는 기능이 있음
sudoers
파일을 직접 수정하는 것은 위험할 수 있음
set, env, export Command
set
: 셸 변수와 함수 목록을 출력env
: 환경 변수 목록을 출력export
: 환경 변수를 설정
셸 변수: 셸 스크립트 안에서 사용하는 변수
환경 변수: Linux 전체에서 사용하는 전역 변수
셸 변수와 환경 변수는 다른 변수
export
명령어를 사용하면 셸 변수를 환경 변수로 설정할 수 있다.
$ MY_VAR="hello"
$ export MY_VAR
source
Command
source
: 셸 스크립트를 실행하는 명령어
source
명령어를 사용하면 셸 스크립트를 현재 셸에서 실행할 수 있다.- 새로운 셸을 실행하지 않고 셸 스크립트를 실행할 때 사용
특수 문자
$
: 변수를 참조할 때 사용#
: 주석!
: 특수 명령어&
: 백그라운드 실행*
: 와일드카드 (여러 글자)?
: 와일드카드 (한 글자)|
: 파이프[ ]
: [괄 호 안 의 문자 중 하나];
: 명령어 구분;
를 사용하면 여러 명령어를 한 줄에 작성할 수 있다.&&
또는||
를 사용하면 여러 명령어를 순차적으로 실행할 수 있다.&&
: 앞의 명령어가 성공하면 뒤의 명령어를 실행||
: 앞의 명령어가 실패하면 뒤의 명령어를 실행
' '
: 문자열 (변수 참조 불가능)" "
: 문자열 (변수 참조 가능)
STDIN, STDOUT, STDERR
>, >>, 2>, 2>>
>
: 출력 리다이렉션 Overwrite- 명령어의 출력을 파일로 저장
- 파일이 이미 존재하면 덮어쓰기
>>
: 출력 리다이렉션 Append- 명령어의 출력을 파일로 저장
- 파일이 이미 존재하면 이어쓰기
2>
: 에러 리다이렉션 Overwrite2>>
: 에러 리다이렉션 Append
에러 메시지는 STDERR로 출력되기 때문에, 에러 메시지를 파일로 저장할 때는
2>
또는2>>
를 사용해야 한다.
<, << Command
<
: 입력 리다이렉션- 파일의 내용을 명령어의 입력으로 사용
<<
: Here Document- 명령어의 입력으로 사용할 여러 줄의 텍스트를 지정
File Descriptor
0
: STDIN1
: STDOUT2
: STDERR>
: STDOUT 리다이렉션2>
: STDERR 리다이렉션&>
: STDOUT과 STDERR 리다이렉션&>>
: STDOUT과 STDERR 리다이렉션 Append2>&1
: STDERR를 STDOUT으로 리다이렉션1>&2
: STDOUT을 STDERR로 리다이렉션
tee
Command
tee
: 파일로 출력하는 명령어
tee
를 사용하면 명령어의 출력을 파일로 저장하면서 화면에 출력할 수 있다.
$ ls | tee file.txt
xargs
Command
xargs
: 명령어의 출력을 다른 명령어의 입력으로 사용하는 명령어
보통은 xargs
명령어를 사용하여 다른 명령어의 입력으로 사용한다.
$ ls | xargs rm
위 명령어는 ls
명령어의 출력을 rm
명령어의 입력으로 사용한다.
(파일을 삭제)
외워서 쓰는 건 아니고, 있다는 것만 알면 찾아서 쓰면 된다
'[Project_하다] > [Project_공부]' 카테고리의 다른 글
[Istio] Make 'Kubernetes's Network' Great Again! (0) | 2024.08.10 |
---|---|
[K8s] 컨테이너 오케스트레이션 (0) | 2024.08.10 |
[Linux] 리눅스 권한 (4) | 2024.08.09 |
[Linux] 대충 잊어먹기 쉬운 것들 (0) | 2024.08.07 |
[Docker-Compose] Advanced Options (0) | 2024.08.07 |
[Docker] Multi Stage Build (0) | 2024.08.06 |
[Docker] Container (0) | 2024.08.01 |
Comments