리뷰 (Review)
Linux 파일 읽기
- cat - 텍스트 파일의 전체 내용 출력
- cat [옵션] <텍스트 파일>
- more - 텍스트 파일의 페이지 단위 출력
- more <텍스트 파일>
- less - 페이지 단위로 출력하고 이전 / 이후로 이동이 가능
- less <텍스트 파일>
- head - 파일 시작 부분부터 일정 line 내용 출력
- head [옵션] <텍스트 파일>
- tail - 파일 마지막 부분부터 일정 line 내용 출력
- tail [옵션] <텍스트 파일>
- -f : 파일 내용 출력을 종료하지 않고, 주기적으로 내용 출력 (log 파일 내용 확인시 유용하게 사용됨)
Linux 텍스트 파일 생성
- touch
- touch <텍스트 파일>
- 새로 생성 시 0 byte 크기의 텍스트 파일 생성
- 기존 파일의 경우 최종 수정 시간 변경
- ln
- 하드 링크 파일 - 백업 목적으로 많이 사용
- ln <원본 파일명> <하드 링크 파일명>
- 하드 링크 파일은 원본 파일 inode 번호와 동일
- 원본 파일에 변화가 생기면 하드 링크 파일에도 내용 적용
- 심볼릭 링크 파일 - Window O/S의 바로가기 같은 기능
- ln -s <원본 파일명> <심볼릭 링크 파일명>
- 원본 파일에 대한 링크 정보만 저장한 파일
- 심볼릭 링크 파일은 원본 파일 inode 번호와 상이
- 파일 종류 문자로 l 표시
- 하드 링크 파일 - 백업 목적으로 많이 사용

문서 편집기
- 행 단위 편집기
- ed, ex, sed
- ed, ex, sed
- 화면 단위 편집기
- vi / vim, nano, emacs, TeX
- GUI 편집기
- gedit (Windows O/S의 메모장 같은 기능)
- vi 편집기
- Linux 기본 편집기
- 명령 모드와 편집 모드로 구분
- 명령 모드 및 편집 모드 단축키 8일차 보고 복습 ★★★★★

Linux 개요
파일 속성
파일 접근 권한 변경
- 파일은 읽기, 쓰기, 실행에 대한 파일 접근 권한이 부여된다.
- 파일 접근 권한은 파일 소유자, 파일 소유자 그룹, 기타 사용자에 대하여 각각의 권한 부여
- 파일 접근 권한 표기 방법
- 문자 표기 방법
- 권한 부여 시에는 권한 문자 표시, r w x
- 권한 미부여 시에는 - 로 표시
- 숫자 표기 방법
- 파일 접근 권한은 r w x 순서로 부여
- 권한 부여 문자는 3자리로 구성
- 2진수 3자리는 8진수 1자리로 표현 가능
- rwxr-xr-x → 755
- 통상 Linux shell에서 파일 생성 시 기본 접근 권한
- 텍스트 파일
- rw-rw-r-- : 소유자, 소유자 그룹 읽기/쓰기, 기타 사용자 읽기 권한 부여
→ 숫자로 표기 시 664
- rw-rw-r-- : 소유자, 소유자 그룹 읽기/쓰기, 기타 사용자 읽기 권한 부여
- 디렉토리 파일
- rwxrwxr-x : 소유자, 소유자 그룹 읽기/쓰기/실행, 기타 사용자 읽기/실행 권한 부여
→ 숫자로 표기 시 775
- rwxrwxr-x : 소유자, 소유자 그룹 읽기/쓰기/실행, 기타 사용자 읽기/실행 권한 부여
- 텍스트 파일
- 문자 표기 방법
- 파일 접근 권한은 파일 생성 시 Linux shell에서 정해놓은 접근 권한에 의해 설정하지만
필요할 때 원하는 접근 권한으로 변경할 수 있다. - chmod - change mode, 파일 접근 권한 변경 명령어
- chmod [옵션] <파일 접근 권한> <파일명>
- -R : 하위 디렉토리까지 모두 접근 권한 변경
- 파일 접근 권한 표기 방법
- 기호 모드 (문자 형태)
- <카테고리 문자><연산자 기호><접근 권한 문자>
- 카테고리 문자 : u(사용자), g(그룹), o(기타 사용자), a(all, 모두)
- 연산자 문자 : +(권한 부여), -(권한 미 부여)
- 권한 문자 - r(읽기), w(쓰기), x(실행)
- 실습 - sample.txt에 적용, r--rwxr--로 시작
- 기타 사용자에게 실행 권한 부여
- 그룹과 기타 사용자의 실행 권한 제거
- 모두에게 실행 권한 부여
- 소유자에게 쓰기 권한 부여, 그룹에게 쓰기 권한 제거
- 소유자 권한만 남기고 나머지 권한 모두 제거
- 숫자 모드 (8진수로 표현, 위의 표 참고)
- 소유자 / 그룹 / 기타 사용자에 대한 권한을 8진수 3자리로 표현
- 777 - 소유자 / 그룹 / 기타 사용자 모든 권한 부여
- 666 - 소유자 / 그룹 / 기타 사용자 모두 읽기/쓰기 권한 부여
- 755 - 소유자는 모든 권한, 그룹 / 기타 사용자는 읽기/실행 권한 부여
- 644 - 소유자는 읽기/쓰기 권한 부여, 그룹 / 기타 사용자는 읽기 권한 부여
- 기호 모드 (문자 형태)
- 파일 기본 권한 제한
- Linux shell 상에서 생성되는 파일에 대하여 기본 권한이 설정되어 생성된다.
- 필요시 파일에 부여되는 기본 권한을 제한해서 생성할 수 있도록 설정할 때가 있다.
- Linux shell 파일 기본 접근 권한
- 일반 파일 : 소유자 rw- / 그룹 r-- / 사용자 r--
- 디렉토리 파일 : 소유자 rwx / 그룹 r-x / 사용자 r-x
- touch로 생성한 파일은 일반 파일에 텍스트 파일을 생성하고 기본적으로 실행 권한을 부여하지 않는다.
- umask - 파일 생성 시 기본 권한 제한 설정
- umask [옵션] [<mask값>]
- -S : mask값 문자 출력
- umask 또는 umask -S 입력 시 현재 설정된 mask 값 출력
- mask 값 - 파일 생성 시 제한하고 싶은 권한을 표시한 값 (처음 숫자 0을 제외하고 볼 것)
- 특수 접근 권한
- 접근 권한은 원래 8진수로 4자리 사용
- 맨 앞자리에 있는 숫자가 특수 접근 권한을 의미
- 특수 접근 권한에는 1, 2, 4를 부여할 수 있다.
- sticky bit - 맨 앞자리가 1
- SetGID - 맨 앞자리가 2
- SetUID - 맨 앞자리가 4
- SetUID - 해당 파일이 실행되는 동안에는 실행한 사용자의 권한이 아니라 파일 소유자 권한으로 실행
- chmod 4<숫자 모드 3자리> <파일명>
- 소유자 권한이 s 로 변경
- SetGID - 해당 파일이 실행되는 동안에 소유 그룹의 권한으로 실행
- chmod 2<숫자 모드 3자리> <파일명>
- 그룹 실행 권한이 s 로 변경
- sticky bit
- chmod 1<숫자 모드 3자리> <디렉토리명>
- 기타 실행 권한이 t 로 변경
- sticky bit는 디렉토리에 부여
- 디렉토리에 sticky bit가 설정되면 이 디렉토리에는 누구나 파일 생성이 가능
- 파일은 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 불가
- 디렉토리 권한
- r : 디렉토리 내용 읽기 가능
- w : 디렉토리에 파일 생성 가능
- x : 디렉토리에 이동 가능
shell 특수 문자
- shell 환경에서 사용자가 명령 입력 시 편리한 입력을 할 수 있게 도와주는 특수 문자 제공
- wildcard 문자
- * - 임의의 문자열 의미, 모든 문자 집합을 의미, 삭제 명령에 적용 시 주의할 것!!!
- ? - 임의의 문자 의미, 한 글자, 삭제 명령에 적용 시 주의할 것!!!
- ; - 여러 개의 명령어를 연속해서 실행할 때 사용 (명령 연결)
- && - && 기준 왼쪽 명령어가 정상적으로 실행되었을 때 오른쪽 명령어 실행 (조건에 대한 동작)
- redirection - 출력 또는 입력 방향을 변경하는 목적으로 사용, 방향 전환
- 표준 입출력 장치
- 특별한 장치 지정 없이 바로 사용할 수 있는 입출력 장치
- 표준 입력 장치 - stdin, 정수 0 으로 식별
- 표준 출력 장치 - stdout, 정수 1 로 식별
- 표준 에러 표시 장치 - stderr, 정수 2 로 식별
- Linux shell은 표준 입력 장치(stdin, 0)로부터 입력받고, 표준 출력 장치(stdout, 1)로부터 출력하고
error 발생 시 표준 에러 표시 장치(stderr, 2)에 error message를 출력한다.
- 표준 입출력 장치
- >
- > 기준 왼쪽 명령의 결과를 오른쪽 방향의 장치나 파일로 출력 방향 변경
- > 오른쪽에 파일명을 지정하면 항상 해당 파일로 새로 생성한다. (create)
- >>
- >> 기준 왼쪽 명령의 결과를 오른쪽 방향의 장치나 파일로 출력 방향 변경
- 만약 같은 이름의 파일이 있다면 기존 파일에 내용을 추가한다. (append)
- 장치번호>
- 해당 장치로 출력될 내용에 대한 방향 전환
- <명령> 1> <파일> - 표준 출력 장치를 사용하는 출력 결과에 대한 방향 전환
- ex) cat /etc/hosts 1> result
- /etc/hosts 출력 결과를 result로 방향 전환
- cat /etc/hosts > result와 같은 표현
- ex) cat /etc/hosts 1> result
- <명령> 2> <파일> - 표준 에러 표시 장치를 사용하는 출력 결과에 대한 방향 전환
- ex) cat sample 2> result
- cat 명령에 대한 정상 출력은 표준 출력 장치에 출력하고 error 발생 시 result 파일로 방향 전환
- ex) cat sample 2> result
- ex) ls > ls.out 2> ls.err == ls 1> ls.out 2> ls.err
- ls 명령에 대하여 정상 작동 결과는 ls.out, error 발생 시 ls.err에 저장
- ex) ls > ls.out 2> /dev/null
- /dev/null - null 장치를 의미하고 이 장치로 전달하면 그 내용은 바로 소멸
- /dev/null - null 장치를 의미하고 이 장치로 전달하면 그 내용은 바로 소멸
- ex) cat /etc/hosts > result 2>&1
- 명령 전체 출력 결과(정상 결과, 에러 결과)를 result에 저장
- cat > <파일>
- 표준 입력 장치로부터 입력받은 결과를 파일에 저장
- 간단하게 파일 생성하는(새로운 파일 생성) 방법
- 이 방법은 기존 파일에 대한 수정은 불가능 (덮어쓰기만 됨)
- 입력 종료는 ctrl + d 키
- <
- < 기준 오른쪽 내용을 왼쪽으로 방향 전환
- pipe - | (수직 바)
- <명령1> | <명령2>
- 명령1의 실행 결과를 | (pipe)를 통해 명령2에 입력한다.
- 프로그램 실행 결과를 전달받는 목적으로 사용
- 프로세스 통신이라고 한다.
- 특정 명령에 대한 수행 결과를 기반으로 2차 가공 동작을 수행할 때 많이 사용
- <명령1> | <명령2>
프로세스 관리
- 프로그램 실행
- 실행할 프로그램 파일 (Binary 파일)을 메모리에 로드 (load)
- I/O Device → Memory - 로드된 프로그램 코드 중 프로그램 시작점을 찾아서 동작
- Memory → CPU - 프로그램 동작
- CPU ↔ Memory
- 프로그램 코드 - 동작 절차
- 데이터 - 동작 절차상 필요한 값, 처리 결과
- 프로그램 종료점을 만나면 프로그램 종료
- Memory에 있던 프로그램 코드는 삭제 (지운다는 의미가 아니라 사용하지 않는다는 의미)
- Linux shell 명령을 입력한다는 것은 위의 프로그램 실행과 같은 의미
- 실행할 프로그램 파일 (Binary 파일)을 메모리에 로드 (load)
- Linux는 여러 프로그램을 동시에 실행할 수 있다. (Multi Tasking, Multi Processing)
- Linux에서는 실행 중인 프로그램을 프로세스(Process)라 하고 Kernel의 작업 관리자에 의해 관리되고 있다.
- 프로그램 (Program) - 보조 기억 장치에 저장된 실행 가능한 파일
- 프로세스 (Process) - 메모리 상에서 동작 중인 프로그램
TIF
오늘 배운 양이 많기는 했으나 벅찬 수업은 아니었다.
내가 이해력이 빨라서 이해를 잘하는 건 아닐 테고 강사님 역량이 좋은 것이 분명하다.
아직 간단한 실습이었지만 앞으로 실습 위주로 하는 일들이 늘어날 테니
명령어와 같이 캡처를 해두고 나중에 또 복습을 해야 할 것 같다.
오늘 오전은 통 집중이 되지 않았다.
30대 초반이지만 시간은 빠르고 흐르고 있고, 비전공자다 보니 뭔가 쫓기는 기분이 들었달까?
그리고 지방에는 지금 배우는 것에 대한 인프라가 많지가 않다 보니
강의에 집중하지 못하고 추가로 더 배워야 할 것들 찾고, 채용 공고 같은 걸 찾아보면서 쓸데없는 시간을 보냈다.
당장 이런 생각할 때가 아니다라며 당장하고 있는 이 강의에 집중해야겠다고 생각하고 얼마 뒤,
강의 중에 강사님이 이런 말씀을 하셨다.
"'나'를 위한 공부이다. 남이 이해를 빨리하든 늦게하든 신경 쓰지 말고 본인을 위한 공부를 하시라."
맞다.
'나'를 위한 공부이다. 나를 자꾸 다른 사람들과 출발선을 맞추려고 애쓰고 있었던 것 같다.
다른 사람들 한번 보면 나는 두 번, 세 번 보면 된다.
쓸데없는 생각들은 휴지통에 집어던지고, 당장은 이 과정이 끝날 때 까지만큼은 현재에 집중하자.
2022. 08. 11 에 작성된 글입니다.
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 11일차 (0) | 2023.07.14 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 10일차 (0) | 2023.07.13 |
구름 쿠버네티스 전문가 과정 6기 - 8일차 (0) | 2023.07.11 |
구름 쿠버네티스 전문가 과정 6기 - 7일차 (0) | 2023.07.10 |
구름 쿠버네티스 전문가 과정 6기 - 6일차 (0) | 2023.07.05 |