어쩌다 IT
article thumbnail
반응형

리뷰 (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 프로그램 사용
    • 원격 접속을 위해서는 Linux에 SSH Server 프로그램이 동작하고 있어야 한다.
      • Ubuntu - 별도 설치 필요
      • CentOS - 기본 설치 및 자동 실행

 

PuTTy 사용법

https://m.blog.naver.com/jeonsr/221792705148

 

SSH 접속프로그램 PuTTY 사용법

SSH 프로토콜은 웹호스팅을 이용하거나, 리눅스서버에 접속하기 위하여 사용하는 원격접속 툴이다. Pu...

blog.naver.com


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 메모리 할당이 일반적이다.
  • 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/
 

Interactive map of Linux kernel

 

makelinux.github.io


Linux 사용자 이해

  • 관리자 (Supervisor)
    • Linux 시스템에 대한 모든 권한을 갖는 사용자
    • 관리자 ID는 root로 고정되어 있으며 변경하거나 추가 관리자 등록은 불가능
    • 배포판에 따라 관리자 login을 허용하지 않는 배포판도 있음 ex) Ubuntu
    • shell 명령 프롬프트는 # 으로 표기
    • 관리자 기본 홈 디렉토리는 /root 사용
    • login 또는 관리자 계정 전환시 홈 디렉토리는 /root
    • 일반 유저로 login 한 후에 필요에 따라 관리자 권한 획득(sudo 명령)을 하거나
      필요시 관리자 전환(su 명령)을 통해 관리자로 사용
      • sudo <명령>
        • 일반 유저로 login 후 관리자 권한 필요시 사용
        • 입력하는 비밀번호는 login 사용자 비밀번호 입력
      • su -[<사용자 ID>]
        • root 사용자로 전환
        • 입력하는 비밀번호는 root
  • 일반 사용자
    • 관리자 외 별도 등록된 사용자를 의미
    • 일반 유저 권한의 작업만 가능
    • 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>
      • shell은 명령 history 기능 제공
        • history
          • shell에서 입력한 명령 history를 관리하고 입력한 명령들이 차례대로 쌓여진다.
          • history 관리 대상 명령 개수는 환경 설정에 의해서 변경 가능, 기본 1,000개의 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와 호환성이 떨어진다.
        • 바이너리 파일 (binary file)
          • 바이너리 형식 (이진수, 메모리 내용) 으로 저장한 파일
          • 일반적으로 실행 가능한 파일인 경우가 많다.
      • 디렉토리 파일
        • 디렉토리 정보를 저장하는 파일
      • 특수 파일
        • 링크 파일 - 파일에 대한 링크 정보 파일
        • 디바이스 파일 - I/O 디바이스에 접근하기 위한 목적의 파일로 연결 목적의 파일
          • 문자(character) 디바이스 파일 - 문자 단위 입출력 장치에 대한 파일
            ex) 키보드, 프린터, 마우스, ...
          • 블록(block) 디바이스 파일 - 블록 단위 입출력 장치에 대한 파일
            ex) HDD, SDD, CD/DVD, ...
        • 파이프 (pipe) 파일 - 프로세스 (process) 간 통신을 수행할 때 사용하는 파일
      • Linux는 파일 형식에 따라 확장자로 구분하는 별도의 규칙이 없다.
        또한 파일명 작성시 확장자를 반드시 포함하는 규칙도 별도로 없다.
        → 파일명을 통해서 파일 형식 파악이 어렵다.
      • 파일 형식 확인 명령
        • file <파일 경로(path)를 포함한 파일명> 

ELF format 파일은 실행 가능한 파일

 

  • Linux 기본 디렉토리 구조
    •  Linux 디렉토리 구조는 / 를 기준으로 계층 구조를 갖는다.
    • 디렉토리 계층 구조 표현 명령
      • tree <명령>
        • 기본 명령이 아니므로 별도의 설치 과정 필요
        • tree -d - directory만 표시
    • 각 디렉토리 목적
      • / (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 에 작성된 글입니다.

반응형
profile

어쩌다 IT

@jwlish

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!