문서 편집
리눅스의 편집기 종류
- GUI 환경인 그놈에서 제공하는 gedit
- 유닉스에서부터 사용했던 행 편집기(라인 편집기)와 화면 편집기
sudo gedit test, txt
- 현재 디렉터리 아래에 gui 에디터 (메모장) 열기
- GUI를 제공하지 않는 터미널 환경에서는 사용 불가능 하다 - 이럴 때 사용되는 편집기가 vi이다.
모드형과 비모드형 편집기
모드형 • 입력 모드와 명령 모드가 구분 • 입력 모드 : 텍스트를 입력할 수 있는 모드 • 명령 모드 : 텍스트를 수정하고, 삭제하고, 복사와 붙이기 등 편집을 하는 모드 • 같은 글자라도 입력 모드에서는 텍스트로 처리하여 입력되고, 명령 모드에서는 텍스트로 입력되는 것이 아니라 편집 명령으로 사용 • vi는 모드형 편집기
비모드형 • 입력 모드와 명령 모드가 구분되어 있지 않음 • 편집 기능을 Ctrl이나 Alt 같은 특수 키와 함께 사용 • 한글과 워드는 비모드형 편집기
vi 동작 모드
커서와 화면 이동
커서 이동
화면 이동
vi 편집기는 정말 많은 기능이 있기 때문에 CheetSheet를 보며 익히는 것을 추천합니다.
파일 접근 관리
파일 접근 권한 보호
- 리눅스는 파일에 무단으로 접근하는 것을 방지하고 보호하는 기능을 제공
- 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근해도 되는 것과 그렇지 않은 것을 구분하여 접근 권한을 제한
파일 속성
파일 접근 권한
- 접근 권한 : 해당 파일을 읽고 쓰고 실행할 수 있는 권한, 사용자의 파일을 보호하는 가장 기본적인 보안 기능
- 리눅스는 사용자를 파일 소유자, 파일이 속한 그룹, 그 외 기타 사용자 세 카테고리로 구분하여 접근 권한을 적용
- 사용자 카테고리별로 접근 권한을 다르게 부여하여 파일을 보호할 수 있음
접근 권한 종류
- 읽기 권한, 쓰기 권한, 실행 권한 등 세 가지로 구성
- 대상이 파일인지 디렉터리인지에 따라 그 의미가 약간 다르게 해석
chmod 777
- 각각 소유자, 그룹, 기타 사용자를 나타내는 문자로 표기함
- r : 4 w : 2 x : 1
프로세스 관리
프로세스의 부모-자식 관계
- 프로세스 : 현재 시스템에서 실행 중인 프로그램
- 모든 프로세스는 부모-자식 관계를 가지고 있음
- 부모 프로세스는 자식 프로세스를 생성하고, 자식 프로세스는 또 다른 자식 프로세스를 만들 수 있음
- systemd와 kthreadd 프로세스를 제외하면 모든 프로세스는 부모 프로세스를 가지고 있음
- 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료
- 사용자가 vi를 실행하여 셸이 vi 프로세스를 생성할 경우, 셸은 부모 프로세스가 되고 vi는 자식 프로세스가 됨
- 사용자가 vi를 종료하면 다시 부모 프로세스인 셸로 돌아감
프로세스의 번호
- PID
- 각 프로세스는 고유한 번호를 가지고 있음 그 번호를 PID라고 함
- PID는 1번부터 시작하고 프로세스가 실행되면서 하나씩 증가하여 부여
프로세스의 종류
- 데몬 프로세스
- 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행
- 고아 프로세스
- 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 자식 프로세스는 고아 프로세스
- 1번 프로세스가 고아 프로세스의 새로운 부모 프로세스가 되어 고아 프로세스의 작업 종료 지원
- 좀비 프로세스
- 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아 있는 경우
- 좀비 프로세스는 프로세스 목록에 defunct 프로세스라고 나오기도 함
- 좀비 프로세스가 증가하면 프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행되지 않을 수도 있음
프로세스 목록 확인
- ps 명령어 : 현재 단말기의 프로세스 목록 출력하기
- 여러 옵션이 존재하며 필요할 때마다 찾아서 확인해 볼 것
특정 프로세스 정보 검색
- 방법 1 : ps -ef | grep base 형태로 연결해서 사용
- 방법 2 : pgrep -l base 명령어로 base 프로세스를 찾을 수 있다.
프로세스 종료 명령어
- kill [시그널] PID로 프로세스 종료가 가능하다.
- kill 명령은 인자로 지정한 프로세스에 시그널을 전달
- 프로세스는 각 시그널을 받았을 때 어떻게 처리할 것인지 동작이 지정되어 있음
- kill 명령에서 시그널을 지정하지 않을 경우 15번 시그널로 간주
- 15번 시그널은 일반적으로 프로세스 종료이지만, 시그널을 무시하거나 다른 동작을 하도록 지정되어 있다면 프로세스가 종료되지 않을 수 있음
- 9번 시그널은 강제 종료이기 때문에 무조건 종료되지만 좀비 프로세스의 경우 9번 시그널을 받아도 종료되지 않을 수 있음
포그라운드 - 백그라운드 프로세스와 작업 제어
- 포그라운드 작업
- 포그라운드 프로세스 : 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 방식으로 처리되는 프로세스
- 이를 작업 제어에서는 포그라운드 작업이라고 함
- 일반적으로 사용자가 명령을 실행하는 방식
- 프롬프트가 출력되지 않아 다른 명령을 입력할 수 없으므로 기다려야 함
- 백그라운드 작업
- 백그라운드 프로세스 : 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있음
- 작업 제어에서는 백그라운드 작업이라고 함
- 명령의 실행 시간이 많이 걸릴 것으로 예상되거나 명령을 실행한 후 다른 작업을 할 필요가 있을 때 많이 사용
- 기존의 작업 화면과 백그라운드 작업 결과가 뒤섞인 채 터미널 화면에 출력될 수 있음
- 백그라운드로 처리할 때는 다음과 같이 출력과 오류 방향을 전환하고, 실행 결과와 오류 메시지는 파일로 저장하는 방법을 사용하여 문제를 해결
작업 제어
- 작업 제어는 작업 전환과 작업 일시 중지, 작업 종료를 의미
- 작업 전환 : 포그라운드 작업->백그라운드 작업, 백그라운드 작업->포그라운드 작업으로 전환
- 작업 일시 중지: 작업을 잠시 중단
- 작업 종료 : 프로세스를 종료하는 것처럼 작업을 종료
- jobs : 작업 목록 보기
작업 전환하기
- 우선 사용하던 프로세스를 Ctrl Z로 중지
- bg %작업번호 명령으로 실행 중인 작업을 백그라운드로 전환
- fg %작업번호 명령으로 실행 중인 작업을 다시 포그라운드로 전환
오래 걸리는 작업의 경우 nohob 명령을 사용하면 중간에 끊었다가 실행이 가능해진다.
'빅데이터 관리 > 리눅스' 카테고리의 다른 글
Linux Crontab을 사용한 Job Scheduling (0) | 2023.07.03 |
---|---|
리눅스 기초 (1) | 2023.04.21 |
윈도우 리눅스 설치 (0) | 2023.04.21 |