처음부터 차근차근
UNIX의 명령어와 함수 정리 본문
1. 명령어
파일 속성 출력 명령어
① ls : 지정한 경로에 대한 파일들의 속성을 출력하는 명령어(경로를 쓰지 않으면 현재 위치)
형식 : ls <옵션>
<주요 옵션>
-a(--all) : 숨겨진 파일, 디렉토리까지 출력 ex) ls -a
-l(long) : 파일, 디렉토리의 상세정보까지 출력 ex) ls -l
-i : 파일의 i-node의 값 출력 ex) ls -i
-R : 하위 디렉토리 안의 모든 파일 출력 ex) ls -R
<ls 명령어 결과 - 파일 속성에 대한 설명>
예시) drwxr-xr-x 2 kali kali 4050 May 25 06:30 testDir
d : 파일의 종류
(- : 일반 파일, d : 디렉토리, b : 블록 장치 특수 파일, c : 문자 장치 특수 파일, l : 기호적 링크, p : 파이프, s : 소켓)
rwxr-xr-x : 권한
3개씩 끊어서 3등분 할 수 있다.
rwx r-x r-x
rwx는 사용자(파일 소유자)의 권한
r-x는 그룹의 권한
r-x는 다른 사용자의 권한이다.
rwx는 각각 읽기, 쓰기, 실행의 권한을 뜻한다.
2 : 물리적인 연결 개수
Kali : 파일 소유자 명
Kali : 파일 소유자의 그룹명
4050 : 파일 크기(byte)
May 25 06:30 : 파일 마지막 변경 날짜와 시간
testDir : 파일 or 디렉토리 명
디렉토리 관련 명령어
① mount : 물리적인 장치를 파일 시스템으로 인식시키기 위하여 특정 위치에 연결시켜주는 명령어
형식 : mount -t <파일 시스템 타입> <장치 파일> <마운트 포인트>
(파일 시스템 타입은 생략 가능)
ex) mount -t ntfs /dev/hda1 /media/xp
마운트 란, 디스크와 같은 물리적인 장치를 특정 위치(디렉터리 등)에 연결시켜주는 것이다.
② umount : mount된 파일 시스템을 제거(해제)하는 명령어
형식 : umount <마운트 포인트>
ex) umount /media/xp
③ mknod : 장치(특수, 디바이스) 파일을 생성하는 함수
리눅스에서는 장치를 사용하기 위해서는 장치를 제어(컨트롤)할 수 있는 파일이 필요하다.
이러한 장치 파일을 생성하는 함수이다.
형식 : mknod <디바이스 파일명> <옵션> <주 번호major> <부 번호minor>
<옵션>
p : FIFO파일
b : Block특수파일, inctl() 시스템콜을 이용한 핸들링
c, u : Character특수파일
프로세스 관리 명령어
① ps : 현재 실행중인 프로세스의 목록과 상태 출력하는 명령어
형식 : ps <옵션>
<옵션(주요옵션)>
-e : 모든 프로세스를 출력
-f : 프로세스의 자세한 정보까지 출력 (UID, PID 확인 가능)
-l : 프로세스 정보를 길게 출력(PRI, NI 확인 가능)
p, -p : 특정 PID의 프로세스 출력
-u <사용자 이름> : 특정 사용자의 프로세스 출력
② & : 백그라운드로 작업을 실행하도록 하는 명령어
형식 : <명령어1> & <명령어2>
명령어1을 백그라운드로 실행하고 명령어2를 실행한다는 뜻이다.
2. 함수
파일 처리 관련 함수(API)
① creat() : 새 파일을 생성하는 함수
int creat(const char *pathname, mode_t mode);
성공 : 파일 기술자 반환
실패 : -1 반환
② access() : 파일의 접근 가능성(파일이 존재하는 지, 읽거나 쓰거나 실행이 가능한지 등)을 확인하는 함수
int access(const char *pathname, int mode);
성공 : 0(접근 가능함)
실패 : -1
③ open() : 파일을 열 때 사용하는 함수. FCB(File Control Block)을 생성.
int open(const char *pathname , int flags , mode_t mode);
성공 : 양수
실패 : -1
④ close() : 열린 파일을 닫을 때 사용하는 함수. FCB(File Control Block)를 닫음.
int close (int fd);
성공 : 0
실패 : -1
⑤ dup() : 파일 디스크립터를 복사하는 함수. FCB를 복사함.
int dup(int fd);
성공 : 새 파일 기술자
실패 : -1
⑥ chmod() : 파일의 접근 권한을 변경하는 함수
int chmod(const char *pathname, mode_t mode);
성공 : 0
실패 : -1
⑦ chown() : 파일의 소유자를 변경하는 함수
int chown(const char *filepath, uid_t owner, gid_t group);
성공 : 0
실패 : -1
⑧ chgrp() : 파일의 사용자 그룹을 변경하는 함수
chgrp <옵션> <소유권 그룹> <대상>
<옵션(대표적)>
--R, --recursive : 디렉토리일 경우 하위 파일이나 서브 디렉토리들까지 일괄 변경
디렉토리 관련 함수(API)
① chdir() : 디렉토리의 경로를 변경하는 함수
int chdir(const char *pathname);
성공 : 0
실패 : -1
② mkdir() : 디렉터리를 생성하는 함수
int mkdir(const char *path, mode_t mode);
성공 : 0
실패 : -1
③ rmdir() : 디렉터리를 삭제하는 함수
int rmdir(const char *path);
성공 : 0
실패 : -1
프로세스 관리 함수(API)
① fork() : 현재 프로세스와 동일한 프로세스를 복제해서 새로 생성
fork 함수를 호출하는 프로세스는 부모 프로세스가 되고 새롭게 생성되는 프로세스는 자식 프로세스가 된다.
pid_t fork(void);
성공 : 부모 프로세스는 자식 프로세스의 PID값을 반환 받는다.
자식 프로세스는 0을 반환 받는다.
실패 : -1
② getpid() : 현재 프로세스의 프로세스 ID를 얻는 함수
pid_t getpid(void);
성공 : 양수(현재 프로세스 ID)
실패 : -1
③ getppid() : 부모 프로세스 ID를 얻는 함수
pid_t getppid(void);
성공 : 양수(부모의 프로퍼티 ID)
실패 : -1
④ wait() : 자식 프로세스가 종료 될 때까지 대기하는 함수
pid_t wait(int *statloc);
성공 : 종료한 자식 프로세스 ID 반환
실패 : -1
⑤ sleep() : 지정한 시간 동안 대기하는 함수
unsigned int sleep(unsigned int seconds);
성공 : 0
실패 : 0 아닌 값
⑥ kill() : 프로세스에 시그널을 전송하는 함수
int kill(pid_t pid, int signal);
성공 : 0
실패 : -1
⑦ exit() : 프로세스 종료를 종료하는 함수
void exit(int status);
출처 : 시스템분석설계(21-2학기)김병국교수 강의 내용 변형 및 요약
'정보처리산업기사' 카테고리의 다른 글
코드의 종류 (0) | 2021.11.13 |
---|---|
IPv4, TCP, UDP의 헤더 구성 (0) | 2021.10.30 |
정보처리산업기사 용어 정리2 (0) | 2021.10.24 |
정보처리산업기사 용어 정리 (0) | 2021.10.23 |
가상기억장치의 교체 전략 (0) | 2021.10.02 |