시스템 프로그래밍[4-3]

Turtle·2024년 3월 24일
0
post-thumbnail

❓파일 속성

  • 파일의 이름, 타입, 크기, 소유자, 접근권한, 수정 시간 등을 나타낸다.
파일 속성의미
블록 수파일을 구성하는 블록의 개수(KB단위)
파일 종류일반 파일(-), 디렉터리(d), 링크(l), 파이프(p), 소켓(s), 디바이스(b 혹은 c) 등의 파일 종류를 나타낸다.
접근권한파일에 대한 소유자, 그룹, 기타 사용자의 읽기(r)/쓰기(w)/실행(x) 권한
하드 링크 수파일에 대한 하드 링크 개수
소유자 및 그룹파일의 소유자 ID 및 소유자가 속한 그룹
파일 크기파일의 크기(바이트 단위)
최종 수정 시간파일을 생성 혹은 최후로 수정한 시간

❓접근 권한

  • 리눅스는 사용자별로 파일 권한을 부여한다.
  • 파일 사용자는 파일 소유자(owner), 그룹 소속자(group), 기타 사용자(other)로 구분한다.
  • 파일 권한은 읽기(read), 쓰기(write), 실행(execute)이 있다.
  • 읽기, 쓰기 또는 실행의 접근 제한 표시는 하이픈(-)으로 나타낸다.
  • 사용자별 권한은 기호 모드(symbolic mode) 또는 8진수 숫자 모드(numeric mode)로 표시한다. ▶ 읽기(r, 4) + 쓰기(w, 2) + 실행(x, 1)

❓접근 권한 변경: chmod

  • chmod 명령어를 이용해 파일이나 디렉터리의 접근 권한을 변경할 수 있다.
  • 지원 옵션으로 -R이 있고 이는 하위 디렉터리에 포함되어 있는 모든 디렉터리 및 파일의 권한을 변경할 수 있게 한다.

Ex. 숫자 모드를 이용한 변경

chmod 666 test.txt
기호숫자(2진수)숫자(8진수)
rwx1117
rw-1106
r-x1015
r--1004
-wx0113
-w-0102
--x0011
---0000

Ex. 기호 모드를 이용한 변경

chmod -R o+w test

[사용자]

기호 모드의미
u소유자
g그룹
o기타 사용자
a모든 사용자

[연산자]

기호 모드의미
+허가권 부여
-허가권 제거
=특정 사용자에게 허가권 지정

[권한]

기호 모드의미
r읽기
w쓰기
x실행

❓소유권 : chown

  • 소유권은 임의의 파일 또는 디렉터리에 대해 사용자와 그룹들의 소유 권한을 나타낸 것이다.
  • 그룹은 사용자들의 시스템 운영 특성에 따라 묶어 놓은 것으로 같은 그룹에 속한 사용자들은 파일 또는 디렉터리에 대해 동일한 소유권과 작업 권한을 갖는다.

❓그룹 : chgrp

  • 명령어 chgrp는 change group의 줄임 명령어로 파일이나 디렉터리의 그룹 소유권을 변경한다.
  • 명령어 chown은 소유자와 소유 그룹을 모두 변경할 수 있지만, chgrp는 그룹 소유권만을 변경한다.

❓리다이렉션(redirection)과 정규표현식

  • 표준 입력과 표준 출력의 방향을 재지정하는 것이다.
  • 표준 입력/출력/에러가 화면이 아닌 파일로 대체된다. 즉, 모니터로 출력이 파일로 재지정한다.
  • 표준 입력 장치는 키보드, 표준 출력 장치는 모니터, 표준 에러 장치는 모니터이다.
연산자설명
>명령을 화면에 출력하는 것이 아니라 프린터나 파일에 출력하도록 전송하되 만약 파일이 존재하지 않으면 새로운 파일을 만들고 같은 파일이 존재하면 덮어씀
>>파일이 있는 경우에 지정된 파일에 결과를 추가(append), 파일이 존재하지 않으면 지정된 이름으로 파일을 생성
<키보드가 아닌 지정된 파일에서 입력 내용을 읽어옴
>&명령의 출력을 다른 명령의 입력으로 보냄
<&명령의 입력을 읽고 다른 명령의 출력으로 보냄

❓파이프(Pipe)

  • 둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램의 입력으로 전환하는 기능이다.
  • 현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용하는 것이다.
  • 명령어와 명령어의 연결은 | 기호를 사용한다.

❓gcc컴파일러

  • GCC는 GNU 컴파일러 모음이다. GNU는 운영체제의 하나로 컴퓨터 소프트웨어의 모음이다.
  • 컴파일(Compile)이란 원시 코드에서 목적 코드로 옮기는 과정으로 우리가 아는 Java, C++ 등의 고급 언어로 작성된 코드를 이진 코드 or 기계 코드라고 하는 실행 가능한 코드로 변환하는 과정을 말한다.

❓gcc 옵션(자주 사용되는 옵션)

[1]. -o

# -o 옵션 기능 : 생성되는 출력 파일 이름을 지정한다.
$ gcc -o 출력파일이름 소스파일이름
  • $ gcc -o file file.c 또는 $ gcc file.c -o file을 입력한다. 그럼 file이라는 이름의 실행 파일이 생겨난다.
  • -o 옵션을 생략하면 a.out로 지정된다.(기본)
  • 그런데 이렇게 -o 옵션을 생략해주면 다른 소스를 차례대로 컴파일할 때 먼저 생성된 실행 파일 a.out를 나중에 생성된 a.out가 덮어쓰게되므로 주의해야 한다.

[2]. -c

# -c 옵션 기능 : 전처리, 컴파일, 어셈블까지 실행하여 오브젝트 파일을 생성한다. 
$ gcc -c 소스파일이름
  • -c를 사용해 컴파일 하면 오브젝트 파일이 생성된다.

❓make와 Makefile

  • make란 소프트웨어 개발을 위해 유닉스 계열 운영체제에서 사용되는 프로그램 빌드 도구이다. 이 make시스템을 사용해 다중 모듈 프로그램을 자동 빌드하여 효과적으로 작업할 수 있다.
  • Makefile은 프로그램을 빌드하기 위해 make문법에 맞춰 작성하는 문서로 실행 파일을 만들기 위해 필요한 파일들과 그들 사이의 의존 관계를 정의한다.

0개의 댓글