[TIL 8. 리눅스 입문(3) 검색, 퍼미션, 프로세스]

Juhee Fred Lee·2023년 10월 18일
0

TIL

목록 보기
8/24
  1. 검색(grep): 파일 내용에서 특정 문자 또는 패턴을 찾는 행위
    1. 파이프라인 명령어(|): 여러 명령어를 연결해주는 명령어
    2. grep 명령어
      1. 특정 문자를 검색할 때 single quotation 사용해줄 필요가 있다. (’’)
    3. fgrep 명령어
      1. 정규 표현식이나 확장 정규표현식이 무시된다는 특징이 있다.
      2. 검색하고자 하는 패턴에 정규표현식에서 사용하는 문자가 포함된 패턴을 검색 하고자 할 때 사용할 수 있다. (메타문자를 메타문자로 인식하지 않고 일반 문자로 인식한다.)
  2. find 명령어
    1. 특정 디렉토리를 기준으로 하뉘 디렉토리를 검색해준다.
      1. 파일이 도무지 어디있는지 모를 때
    2. 사용법: find pathname expression action
      0001.jpg
  3. vi 편집기
    1. vi 편집기는 명령어 기반의 텍스트 편집기이다.
    2. vi 편집기가 정상적으로 종료되지 않을 경우 백업 파일이 생성된다. (.swp, .swo, .swn, ……)
    3. vi 편집기로 들어갈 경우 옵션을 선택할 수 있다. (수정, )
  4. 퍼미션
    1. 퍼미션의 필요성
      1. 유닉스/리눅스의 모든 파일과 디렉토리는 퍼미션들의 집합으로 구성되어 있으며, 이 퍼미션들을 시스템 상의 모든 파일들에 대한 권한여부를 결정해누다.
    2. 퍼미션의 카테고리
    3. 퍼미션의 변경
      1. 심볼릭 모드 (Symbolic Mode) ⇒ 문자와 기호 조합을 통해 권한을 표현하는 방법: u/g/o/a ↔ +/-/= ↔ r/w/x
      2. 8진수 모드 (Octal Mode) ⇒ 0 ~ 7 사이의 숫자로 권한을 표현하는 방법 (000 ~ 777)
  5. 파일과 디렉토리 접근 권한의 결정
    1. 리눅스에서는 UID와 GID를 비교하여 퍼미션이 결정이 됩니다.

      1. UID 확인 후 GID 확인하게 된다.
    2. cf: 유저를 변경할 때 (su - ) 하이픈을 사용할 경우 해당 유저의 대시 프로파일을 읽어서 홈 디렉토리로 이동해준다.

    3. 기본 권한: 파일을 생성할때 따로 설정을 하지 않아도 부여되는 초기의 권한.

    4. 파일 생성시의 Octal 값과 umask를 xor 연산하여 파일 권한이 생성된다.
      0007.jpg

      1. 예시1: 파일(666)에 대하여 root(022)는 644(rw-r—r—)를 user(002)는 664(rw-rw-r—)

        0008.jpg

      2. 예시2: 경로(777)에 대하여 root(022)는 755(rw-r-xr-x)를 user(002)는 775(rwxrwx-x)

    5. Umask 값을 바꿀 시에 lifecycle이 terminal이 작동하는 동안이다. ⇒ 임시적으로 변경

      1. 영구적으로 변경하고 싶은 경우 설정 파일 값을 바꿔줘야한다.
  6. 프로세스의 정의
    1. 프로그램 (a series of instructions that can be put into a computer in order to make it perform as a operation) ⇒ 특정한 연산들을 컴퓨터에 입력하기 위한 일련의 지침들의 집합
      1. 보조기억장치에 저장되어 있다. (비휘발성인 특징을 가진다.)
      2. 다른 말로 정적인 객체라고 한다. (변화가 없다.)
    2. 프로세스 (a series of actions that you take in order to achieve a result) ⇒ 특정한 결과물을 만들기까지의 일련의 행위들의 집합.
      1. 운영체제가 프로그램을 CPU에 할당되어 실행되는 상태를 말한다. ⇒ 프로세스는 운영체제에 의하여 만들어진다.
      2. 메모리에 존재하며(휘발성을 가지며) OS에 의하여 실행되는 프로그램을 프로세스라고 할 수 있다. (앝게 말하자면)
      3. 동적인 객체라고 한다. (가변적이다.)
      4. 운영체제는 프로세스를 PID (Process ID)으로 관리한다.
  7. 프로세스의 종류
    1. 부모프로세스: 컴퓨터가 켜지면서 실행되는 프로세스. (PID: 1)
    2. 자식프로세스: 부모프로세스가 실행되고 부모 프로세스로부터 실행되는 프로세스
    3. 데몬프로세스: 사용자가 직접 실행하는 것이 아니라 백그라운드에서 OS가 자동으로 실행시키는 프로세스
    4. 고아프로세스
      1. 자식프로세스는 작업이 끝나면 부모프로세스로 돌아가게 되어있음.
      2. 만약 돌아가기 전 부모프로세스가 종료가 될 경우 고아프로세스가 됨.
      3. 고아프로세스의경우 init 프로레스가 해당 프로세스를 종료해준다.
    5. 좀비프로세스
      1. Defunct프로세스라고도 부른다.
      2. 프로세스가 본디 끝나면 리소스를 반납해야하는데 반납되지 않은 프로세스를 가리킨다.
      3. 이미 종료된 프로세스지만, 리소스를 환을 하지 못한 상태로 남아있는 프로세스.
      4. 해당 프로세스를 종료하는 스크립트도 있지만, 잘 종료되지 않는 케이스도 종종 있기에 장치를 재부팅하는 경우도 있다.
    6. 프로세스 확인 (ps -ef), 종료 (kill)
  8. Shell (A command-line interpreter program: user ↔ utilities ↔ shell ↔ os/kernel ↔ h/w)
profile
공릉동에 살며 백엔드를 공부하는 감자입니다.

0개의 댓글