반응형
리뷰 (Review)
더보기
- Linux 최소 파티션
- / (root) 파티션
- swap 파티션
Linux 개요
Linux 접속 방법
- 직접 접속
- ID/PW 입력을 통한 접속 - 기본 방식
- Linux를 Desktop 방식으로 사용시 많이 활용
- 원격 접속
- 네트워크를 이용한 접속으로 일반적인 Linux 접근시 사용
- SSH Client 프로그램 이용
- SSH (Secure SHell)
- 네트워크를 이용하여 원격 접속을 가능하게 하며,
공개키 암호 방식으로 접속하여 보안이 강화된 접속 방법 - 22번 포트 번호 활용
- 네트워크를 이용하여 원격 접속을 가능하게 하며,
- SSH 프로그램 사용은 CLI (Command Line Interface) 방식으로 작동
- SSH Client 프로그램
- Windows - PuTTy (무료), xshell (유료) 등
- PuTTy - 공개키 파일 형식 (.ppk)
- Linux, MacOS - terminal 프로그램 사용
- Windows - PuTTy (무료), xshell (유료) 등
- SSH (Secure SHell)
- 원격 접속을 위해서는 Linux에 SSH Server 프로그램이 동작하고 있어야 한다.
- Ubuntu - 별도 설치 필요
- CentOS - 기본 설치 및 자동 실행
PuTTy 사용법
https://m.blog.naver.com/jeonsr/221792705148
Linux 구조
- Linux 구조
- Kernel (Kernel Space 동작)
- H/W (CPU, Memory, I/O Device) 제어
- System Call Interface (Kernel Space 동작)
- Kernel과 Shell 또는 Library와 Application 간 통신을 수행하는 함수 (Function) 집합
- Shell (User Space 동작)
- 사용자가 Kernel에 명령 전달 및 실행 결과 확인용 프로그램
- terminal은 shell을 동작시켜주는 GUI 프로그램
- Linux System을 운영한다는 것은 shell을 이용하여 운영한다는 것
- GNU C Library (glibc, libc, User Space 동작)
- Linux Library, Application이 기본으로 사용하는 함수 집합
- 사용자 Library / Application (User Space 동작)
- 사용자 응용 S/W
- Kernel Space
- Kernel이 동작하는 영역을 의미하고 실행모드가 보호모드로 동작하므로 일반 Application이 직접 Kernel 영역의 내용을 사용할 수 없다.
- User Space
- Kernel을 제외한 프로그램이 동작하는 영역으로 사용자 모드로 프로그램 동작
- 32 bit CPU 환경에서 Kernel Space 2GB, User Space 2GB 메모리 할당이 일반적이다.
- Kernel (Kernel Space 동작)
- Linux Kernel 구조
- 작업 관리자
- CPU 동작과 관련된 처리 담당
- 컨텍스트 (Context) - 프로그램 실행(Process, 프로세스) 및 관리
- 스케줄러 (Scheduler) - Multi Process 제어를 위한 기능, CPU 동작에 연관
- 메모리 관리자
- 가상 메모리 관리
- Linux의 모든 프로세스는 가상 메모리에서 동작한다.
- 가상 메모리와 물리 메모리 연결 관리를 수행
- 파일 시스템
- Linux는 모든 I/O Device를 파일 형태로 관리
- 장치에 상관없이 동일한 명령을 적용할 수 있는 장점
- 파일 시스템을 통해 I/O Device 내용 관리
- 네트워크 관리자
- 네트워크 프로토콜 스택
- 디바이스 관리자
- H/W 연결 관리 프로그램 (Device Driver)
- Linux에서 관리하는 디바이스 유형은 블럭 디바이스와 캐릭터 디바이스로 구분하여 관리
- shell 명령은 Kernel 내용 중 작업 관리자, 메모리 관리자, 파일 시스템에 대한 내용이 주를 이루고,
필요에 따라 네트워크 관리자, 디바이스 관리자를 사용할 수 있다. - Linux Kernel 소스
https://makelinux.github.io/kernel/map/
- 작업 관리자
Linux 사용자 이해
- 관리자 (Supervisor)
- Linux 시스템에 대한 모든 권한을 갖는 사용자
- 관리자 ID는 root로 고정되어 있으며 변경하거나 추가 관리자 등록은 불가능
- 배포판에 따라 관리자 login을 허용하지 않는 배포판도 있음 ex) Ubuntu
- shell 명령 프롬프트는 # 으로 표기
- 관리자 기본 홈 디렉토리는 /root 사용
- login 또는 관리자 계정 전환시 홈 디렉토리는 /root
- 일반 유저로 login 한 후에 필요에 따라 관리자 권한 획득(sudo 명령)을 하거나
필요시 관리자 전환(su 명령)을 통해 관리자로 사용- sudo <명령>
- 일반 유저로 login 후 관리자 권한 필요시 사용
- 입력하는 비밀번호는 login 사용자 비밀번호 입력
- su -[<사용자 ID>]
- root 사용자로 전환
- 입력하는 비밀번호는 root
- sudo <명령>
- 일반 사용자
- 관리자 외 별도 등록된 사용자를 의미
- 일반 유저 권한의 작업만 가능
- shell 명령 프롬프트는 $로 표시
- 일반 유저 홈 디렉토리와 login 시 홈 위치는 /home/<사용자 ID>
- pwd 명령어 - 현재 디렉토리 경로 (path) 출력 명령
- shell
- Linux Kernel과 사용자 사이의 상호 작용을 위해 사용하는 Linux 응용 프로그램
- shell은 독립된 Linux 응용 프로그램이므로 필요시 shell을 변경하여 사용할 수 있다.
- terminal 프로그램은 shell을 실행하기 위한 윈도우 프로그램
- 현재 Linux 기본 shell은 bash (bourne-again shell, 배시) 사용
- Linux 표준 shell은 sh
- Linux shell의 종류는 다양함
- csh, zsh (MacOS), ksh, sh, bash, ...
- 현재 shell 확인 명령
- echo $SHELL
- shell prompt
- shell 명령을 입력할 수 있도록 대기 상태를 의미
- shell prompt가 표시 되어야 다음 명령을 입력할 수 있고,
표시되지 않으면 현재 명령을 수행하고 있다는 의미 - shell prompt 형태
- 사용자@host이름: 현재 디렉토리<$|#>
- 사용자 - 현재 사용자
- host 이름 - 사용중인 Linux System 이름, IP Address 또는 도메인 형식으로도 표시 되기도 함
- 현재 디렉토리 - 현재 위치한 디렉토리 이름 (~ - 현재 사용자 홈 디렉토리 의미)
- $ | # - 일반 유저 또는 관리자
- 현재 사용자 확인 명령어 <whoami>
- 사용자@host이름: 현재 디렉토리<$|#>
- shell은 명령 history 기능 제공
- history
- shell에서 입력한 명령 history를 관리하고 입력한 명령들이 차례대로 쌓여진다.
- history 관리 대상 명령 개수는 환경 설정에 의해서 변경 가능, 기본 1,000개의 history 관리
- 상/하 방향키를 이용하여 이전 명령 history 사용 가능
- history
- shell에서 사용하는 단축키
- ctrl + l - 터미널 화면 지울 때 사용 <clear>
- ctrl + w - 입력 명령을 단어 단위 삭제
- ctrl + u - 입력 명령 전체 삭제
- ctrl + c - 현재 동작 중인 프로그램 강제 종료
- ctrl + d - 프로그램 정상 종료
- 명령 자동 완성
- tap - 입력된 문자를 갖는 명령에 대한 자동 완성
- tap * 2 - 입력한 문자를 모두 포함하는 명령 목록 출력
파일 종류와 특징
- Linux 파일 시스템
- 파일 시스템 (File System) - 보조 기억 장치에 파일 및 디렉토리 관리 방법
- Linux 관리 (사용하는) 대상 파일 종류
- 일반 파일 - 데이터 저장 목적
- 텍스트 파일 (text file)
- 텍스트 형식 (ASCII 코드) 으로 데이터를 저장한 파일
- 내용을 직접 확인할 수 있는 파일
- 문자 코드 종류
- ASCII 코드 - 7 ~ 8 bit 코드
- UNI코드 - 2byte 코드
- 문자 Encoding
- UTF-8
- 대표적인 문자 Encoding
- 1 ~ 3 byte 크기로 문자 저장
- 영어 / 한글 혼용시 주로 사용
- CP949
- Windows가 사용하는 문자 Encoding 방식
- 다른 O/S와 호환성이 떨어진다.
- UTF-8
- 바이너리 파일 (binary file)
- 바이너리 형식 (이진수, 메모리 내용) 으로 저장한 파일
- 일반적으로 실행 가능한 파일인 경우가 많다.
- 텍스트 파일 (text file)
- 디렉토리 파일
- 디렉토리 정보를 저장하는 파일
- 특수 파일
- 링크 파일 - 파일에 대한 링크 정보 파일
- 디바이스 파일 - I/O 디바이스에 접근하기 위한 목적의 파일로 연결 목적의 파일
- 문자(character) 디바이스 파일 - 문자 단위 입출력 장치에 대한 파일
ex) 키보드, 프린터, 마우스, ... - 블록(block) 디바이스 파일 - 블록 단위 입출력 장치에 대한 파일
ex) HDD, SDD, CD/DVD, ...
- 문자(character) 디바이스 파일 - 문자 단위 입출력 장치에 대한 파일
- 파이프 (pipe) 파일 - 프로세스 (process) 간 통신을 수행할 때 사용하는 파일
- Linux는 파일 형식에 따라 확장자로 구분하는 별도의 규칙이 없다.
또한 파일명 작성시 확장자를 반드시 포함하는 규칙도 별도로 없다.
→ 파일명을 통해서 파일 형식 파악이 어렵다. - 파일 형식 확인 명령
- file <파일 경로(path)를 포함한 파일명>
- 일반 파일 - 데이터 저장 목적
- Linux 기본 디렉토리 구조
- Linux 디렉토리 구조는 / 를 기준으로 계층 구조를 갖는다.
- 디렉토리 계층 구조 표현 명령
- tree <명령>
- 기본 명령이 아니므로 별도의 설치 과정 필요
- tree -d - directory만 표시
- tree <명령>
- 각 디렉토리 목적
- / (root) - 루트 디렉토리, 최상위 디렉토리, 별도의 파일 저장을 하지 않고 디렉토리만 생성
- /bin - Linux 기본 명령어 (Built-IN) 저장
- /boot - Linux 부팅 관련 파일 저장
- /dev- 디바이스 관련 파일 저장
- /etc - 환경 설정 파일 저장
- /root - root 사용자 홈 디렉토리
- /home - 일반 유저 홈 디렉토리
- /lib - Library 파일 및 Kernel 모듈 저장
- /usr - 일반 사용자 공통 파일 저장, Windows O/S의 Program Files 폴더와 같은 역할
- /mnt - 외부 장치 연결 (mount) 파일 저장
- /proc - Linux Kernel 작업 관리자에서 사용하는 임시 파일 저장, 가상 파일 시스템
- /var - 시스템 운용중 생성되는 임시 데이터 저장소
- /tmp - 임시 파일 저장소, 가상 파일 시스템
- /sbin - 시스템 관리자 명령 저장
- /opt - 추가 패키지 저장
TIF
수업 중간중간에 텀이 생길 때 자격증 관련해서 찾아보고 일일 미팅 때 스터디 조원분들과 공유했다.
솔직히 자격증이라는 것이 실무에 유용하게 쓰인다고 생각하진 않는다.
이력서 검토할 때 자격증의 유무는 가르치기 수월하겠냐 아니냐의 차이만 있었으니까...
하지만 지금은 상황이 달라졌고, 따놓아도 쓸데없어 보이지만 없는 것보다는 나은 관련 자격증들을 몇 개 찾았다.
취득이 어렵지 않고, 응시료 싸고, 무엇보다 올해 안에 딸 수 있는 것들은 곧 준비할 예정이다.
조원분들이 알려주신 자격증에 대해서는 난이도나 응시료나 한번 알아봐야 할 것 같다.
길게 보고 준비해야 할 자격증을 따기엔 나에겐 시간이 많지 않다. (눈치 보인다.)
알고리즘 관련 공부를 위해 조원분들이 추천해주신 '이것이 취업을 위한 코딩 테스트다 with 파이썬'을 구매했다.
물론 하나도 이해 못 하겠지만 차근차근하다 보면 되지 않을까 생각한다.
2022. 08. 08 에 작성된 글입니다.
반응형
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 8일차 (0) | 2023.07.11 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 7일차 (0) | 2023.07.10 |
구름 쿠버네티스 전문가 과정 6기 - 5일차 (0) | 2023.07.04 |
구름 쿠버네티스 전문가 과정 6기 - 4일차 (0) | 2023.07.03 |
구름 쿠버네티스 전문가 과정 6기 - 3일차 (0) | 2023.06.30 |