본문 바로가기
Major Review (학부)/Linux OS

03. 리눅스 활용

by 삼준 2023. 10. 25.
반응형

* 파일 관리

- 파일 속성

ls -l 로 확인 가능함.

 

- 접근 권한

파일의 권한에는 읽기(Read), 쓰기(Write), 실행(eXecute) 총 세 종류가 있음.

사용자를 소유자(User), 그룹(Group), 기타 사용자(Others)로 나누어 각 사용자별로 읽기, 쓰기, 실행 권한을 따로 부여함.

표기는 소유자, 그룹, 기타 사용자 순서로 부여된 권한을 소문자로 표시하며, 해당 권한이 없으면 -로 표시함.

ex) rw-r--r-- : 소유자는 읽기와 쓰기 가능, 그룹과 기타 사용자는 읽기만 가능.

 

ㄴ 권한 숫자 표기법

rwx를 2진수 비트로 치환하면 총 3비트 크기의 2진수가 되고, 이것을 다시 1비트짜리 8진수로 바꾸면 한 글자만으로 권한들을 표현할 수 있음.

ex)

rwxrwxrwx = 111/111/111 = 777

rwxrw-r-- = 111/110/100 = 764

 

ㄴ 권한 변경

파일의 접근 권한을 변경함. 

chmod [옵션] 권한  파일(디렉토리)

+ 옵션 : -R (하위 디렉토리까지 모두 변경)

 

ㄴ chmod 기호 모드 vs 숫자 모드

1. 기호 모드

chmod (사용자 카테고리 문자) + (연산자 기호) + (접근 권한 문자) 파일

사용자 카테고리 문자는 u, g, o, a(전체, all)이 있음.

연산자 기호는 +(권한 부여), -(권한 제거), =(권한 설정)이 있음. 

접근 권한 문자는 r, w, x가 있음.

ex)

chmod u-w test.txt : test.txt 소유자의 쓰기 권한 제거

 

2. 숫자 모드

chmod (권한 숫자) 파일

권한을 숫자로 표현하는 방법을 적용해서, 변경하고자 하는 값으로 대입해서 권한을 변경하면 됨.

ex)

chmod 444 test.txt : 권한을 444로 변경함.

※ 파일의 기본 접근 권한은 664, 디렉토리의 기본 접근 권한은 775임.

 

ㄴ 기본 접근 권한 확인 및 변경

umask [옵션] [마스크 값]

+ 옵션 : -S (마스크 값을 문자로 출력)

마스크 값은 파일 생성시 부여하지 않을 권한을 지정해놓은 값임.

ex)

umask 077 : 그룹과 기타 사용자에게 아무 권한도 안줌

 

ㄴ 숫자 모드 앞에 추가된 숫자

4??? : 4가 붙으면 SetUID라고 하며, 해당 파일이 실행되는 동안에는 파일을 실행시킨 사용자의 권한이 아닌 파일 소유자의 권한이 적용됨.

2??? : 2가 붙으면 SetGID라고 하며, 파일 소유 그룹의 권한으로 실행됨.

1??? : 1이 붙으면 스티키비트라고 하며, 디렉토리에 설정함. 스티키 비트가 설정되어 있으면 이 디렉토리에는 누구나 파일을 생성 가능함.

 

* 프로세스 관리

프로세스 : 실행 중인 프로그램

프로세스 번호(PID) : 각 프로세스는 고유한 번호를 가짐. 1번은 system이고, 2번은 kthreadd임.

 

- 프로세스 종류

ㄴ 데몬

특정 서비스를 제공하기 위해 존재.

 

ㄴ 고아

자식 프로세스가 실행 중인데 부모 프로세스가 먼저 종료되었을 때 자식 프로세스를 이르는 말.

 

ㄴ 좀비

자식 프로세스가 실행을 종료했는데 프로세스 테이블 목록에 남아있는 경우 자식 프로세스를 이르는 말.

많아지면 프로세스 테이블 용량이 부족해져서 정상적인 프로세스가 실행되지 않을 수 있음.

 

- 프로세스 확인

ps [옵션]

ㄴ 옵션

<유닉스 옵션>

-e (실행중인 모든 프로세스 정보 출력), -f (자세한 정보 출력), -u (특정 사용자에 대한 모든 프로세스 정보 출력), -p (특정 프로세스 정보 출력)

<BSD 옵션>

-a (터미널에서 실행시킨 프로세스 정보 출력), -u (프로세스 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보 출력), -x (시스템에서 실행 중인 모든 프로세스 정보 출력)

<GNU 옵션>

--pid PID 목록 : 목록으로 지정한 특정 PID 정보 출력

 

- 프로세스 정보 검색

pgrep [옵션] [패턴]

ㄴ 옵션 : -x (정확히 일치하는 프로세스 출력), -n (패턴을 포함한 가장 최근 프로세스 출력), -u (특정 사용자에 대한 모든 프로세스 출력)

 

- 시그널

프로세스에 무언가 발생했음을 알리는 메시지

미리 정의된 상수를 사용함.

시그널을 받은 프로세스는 기본적으로 종료됨.

 

ㄴ 알아두면 좋은 시그널

1) SIGHUP : 터미널과 연결이 끊김을 알리는 시그널. 설정을 reload 시킬 수 있음.

2) SIGINT : 사용자가 ctrl+c 입력시 발생하는 시그널.

9) SIGKILL : 강제로 종료시키는 시그널.

12) SIGUSR2 : 사용자가 자신의 프로그램에서 정의하고 보내는 사용자 정의 시그널.

15) SIGTERM : 프로세스에게 종료 요청을 보내는 시그널.

18) SIGCONT : 일시 중지한 후 다시 실행하도록 지시하는 시그널.

19) SIGSTOP : 강제로 중지시키는 시그널.

 

ㄴ 시그널 전송

kill 명령어를 사용하면 시그널을 특정 프로세스에게 전송 가능함.

kill [-시그널] PID

 

- 프로세스 종료하기

pkill CMD(명령 이름) : 해당 이름으로 실행 중인 프로세스를 종료.

killall CMD : 해당 이름으로 실행 중인 모든 프로세스를 한 번에 종료함. 소유하고 있어야 함.

 

- 프로세스 관리

top : 현재 실행중인 프로세스 정보를 주기적으로 출력

 

- 프로세스 제어

한 터미널에서 여러 프로세스를 실행하고 관리함. 대부분의 유닉스 쉘과 리눅스 쉘에 포함하여 제공함.

작업 제어 도구가 관리하는 프로세스를 작업(job)이라고 함.

 

- 포그라운드 작업(Foreground Job) 

사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다리는 방식으로 처리되는 프로세스를 포그라운드 프로세스라 하며, 작업 제어에서는 포그라운드 작업이라고 함.

ex) sleep 100

 

- 백그라운드 작업(Background Job) 

백그라운드 방식으로 명령 실행시 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있음.

한 터미널에서 여러 프로세스를 동시에 실행 가능함.

백그라운드 방식으로 처리되는 프로세스를 백그라운드 프로세스, 작업 제어에서는 백그라운드 작업이라고 함.

명령 마지막에 &(앰퍼샌드) 추가하면 됨.

ex) sleep 100 &

 

- 작업 제어

작업 전환, 작업 일시 중지, 작업 종료를 의미함.

작업 전환 : 포그라운드, 백그라운드 작업 간 전환

 

- 작업 목록 보기

백그라운드 작업을 모두 보여줌. 특정 작업 번호를 지정하면 해당 작업의 정보만 보여줌.

jobs [%작업 번호]

ㄴ%작업 번호 : %번호 (해당 번호의 작업 정보 출력), %+ 또는 %% (작업 순서가 +인 작업 정보 출력), %- (작업 순서가 -인 작업 정보 출력)

 

ㄴ 작업 순서

+ : 가장 최근에 접근한 작업

- : + 작업 바로 전에 접근한 작업

공백 : 그외 작업

 

- 작업 전환 명령

ctrl+z 또는 stop %작업번호 : 포그라운드 작업을 중지 (종료X)

bg %작업번호 : 백그라운드 작업으로 전환

fg %작업번호 : 포그라운드 작업으로 전환

 

- 작업 종료

ctrl+c : 포그라운드 작업은 대부분 종료됨.

PID 검색해서 kill 명령을 사용할 수도 있음.

 

- 로그아웃 후에도 백그라운드 작업 유지

원래는 터미널이 종료되거나 사용자가 로그아웃하면 백그라운드 작업이 종료됨. 로그아웃 이후에도 작업이 완료될 때까지 실행해야 한다면 해당 명령어를 사용함.

nohup 명령&

 

* 파일 아카이브와 압축

파일과 디렉토리를 묶어 하나의 아카이브 파일을 생성 가능함. tar 명령어를 사용함.

 

tar 기능 [옵션] [아카이브 파일] [파일명]

ㄴ 기능

c : 새로운 tar 파일 생성

t : tar 파일 내용 출력

x : tar 파일에서 원본 파일 추출

 

ㄴ 옵션

f : 아카이브 파일이나 테이프 장치를 지정함. 파일명을 '-'로 지정하면 tar 파일 대신 표준 입력에서 읽어들임.

v : 처리하고 있는 파일의 정보를 출력함.

j : bzip2로 압축하거나 해제함. (.bz2 확장자 사용)

z : gzip으로 압축하거나 해제함. (.gz 확장자 사용)

 

- 아카이브 생성하기

tar cvf [아카이브 파일] [파일명]

 

- 아카이브 내용 확인하기

tar tvf [아카이브 파일] [파일명]

 

- 아카이브 풀기

tar xvf [아카이브 파일] [파일명]

 

- 아카이브 생성하면서 압축하기

tar czvf [아카이브 파일] [파일명]

tar cjvf [아카이브 파일] [파일명]

반응형

'Major Review (학부) > Linux OS' 카테고리의 다른 글

02. 리눅스 이해(2)  (0) 2023.10.25
02. 리눅스 이해(1)  (0) 2023.10.25
01. 리눅스 기초  (1) 2023.10.25

댓글