K 개발자
유닉스 시스템 도구 본문
유닉스 기본 명령
로그인/로그아웃 관련 명령
명령 | 기능 | 주요 옵션 | 사용 예 |
---|---|---|---|
telnet | 유닉스 시스템에 접속 | - | telnet a.co.kr |
logout | 유닉스 시스템에서 접속 해제 | - | logout |
exit | - | exit |
파일/디렉토리 조작 명령
명령 | 기능 | 주요 옵션 | 사용 예 |
---|---|---|---|
pwd | 현재 디렉토리 경로 출력 | - | pwd |
ls | 디렉토리 내용 출력 | -a : 숨김 파일 출력 -l : 파일 상세 정보 출력 |
ls -a /tmp ls -l |
cd | 현재 디렉토리 변경 | - | cd /tmp cd ~a01 |
cp | 파일/디렉토리 복사 | -r : 디렉토리 복사 | cp a.txt b.txt cp -r dir1 dir2 |
mv | 파일/디렉토리 이름 변경과 이동 | - | mv a.txt b.txt mv a.txt dir1 mv dir1 dir2 |
rm | 파일/디렉토리 삭제 | -r : 디렉토리 삭제 | rm a.txt rm -r dir1 |
mkdir | 디렉토리 생성 | - | mkdir dir1 |
rmdir | 빈 디렉토리 삭제 | - | rmdir dir2 |
cat | 파일 내용 출력 | -n : 행 번호 출력 | cat a.txt cat -n a.txt |
more | 파일 내용을 페이지 단위로 출력 | - | more a.txt |
chmod | 파일 접근 권환 변경 | - | chmod 755 a.exe chmod go+x a.exe |
grep | 패턴 검색 | - | grep abcd a.txt |
프로세스 관련 명령
명령 | 기능 | 주요 옵션 | 사용 예 |
---|---|---|---|
ps | 현재 실행 중인 프로세스의 정보 출력 | -ef : 모든 프로세스에 대한 상세 정보 출력 | ps ps -ef ps -ef | grep ftp |
kill | 프로세스 강제 종료 | -9 : 강제 종료 | kill 5000 kill -9 5001 |
기타 명령
명령 | 기능 | 주요 옵션 | 사용 예 |
---|---|---|---|
su | 사용자 계정 변경 | - : 변경할 사용자의 환경 초기화 파일 실행 | su su - su - a02 |
tar | 파일/디렉토리 묶기 | cvf : tar 파일 생성 tvf : tar 파일 내용 보기 xvf : tar 파일 풀기 |
tar cvf a.tar * tar tvf a.tar tar xvf a.tar |
whereis | 파일 위치 검색 | - | whereis ls |
which | 파일 위치 검색 | - | which telnet |
vi 편집기 내부 명령
기능 | 명령 |
---|---|
입력 모드로 전환 | i, a, o, O |
커서 이동 | j, k, h, l 또는 방향키 |
한 글자 수정 | r |
단어 수정 | cw |
검색해서 수정 | :%s/aaa/bbb/g |
붙이기 | p |
글자 삭제 | x, #x (3x, 5x 등) |
저장하고 종료 | :wq! 또는 ZZ |
행 붙이기 | J(shift + J) |
행 번호 보이기 | :set nu |
명령 모드로 전환 | Esc |
행 이동 | #G (50G, 143G 등) 또는 :행 번호 |
여러 글자 수정 | #s (5s, 7s 등) |
명령 취소 | u, U |
복사 | #yy (5yy, 10yy 등) |
커서 이후 삭제 | D(Shift + D) |
행 삭제(잘라내기) | dd, #dd (3dd, 4dd 등) |
저장 않고 종료 | :q! |
화면 갱신 | Ctrl + L |
행 번호 숨기기 | :set nonu |
컴파일 환경
GNU C 컴파일러 : gcc
- 기능
- C 프로그램을 컴파일해 실행 파일을 생성한다.
- 형식
- gcc [옵션] [파일명]
- 옵션
- -c : 오브젝트 파일(.o)만 생성한다.
- -o 실행 파일명 : 지정한 이름으로 실행 파일을 생성한다. 기본 실행 파일명은 a.out이다.
- 사용 예
- gcc test.c
- gcc -c test.c
- gcc -o test test.c
Makefile과 make
대부분의 경우 프로그램을 작성할 때 소스 파일이 하나가 아닌 여러 개로 구성되고, 컴파일 시 이를 묶어서 실행 파일을 생성한다.
유닉스 시스템에서는 이렇게 여러 소스 파일을 컴파일하고 링크해서 실행 파일을 생성하는 데 사용할 수 있는 도구로 Makefile 설정 파일과 make 명령을 제공한다.
오류 처리 함수
오류 메시지 출력 : perror(3)
#include <stdio.h>
void perror(const char *s);
// s : 출력할 문자열
오류 메시지 출력 : strerror(3)
#include <string.h>
char *strerror(int errnum);
// errnum : errno에 저장된 값
동적 메모리 할당
메모리 할당 : malloc(3)
#include <stdlib.h>
void *malloc(size_t size);
// size : 할당받을 메모리 크기
메모리 할당과 초기화 : calloc(3)
#include <stdlib.h>
void *calloc(size_t nelem, size_t elsize);
// nelem : 배열 요소의 개수, elsize : 각 배열 요소의 크기
메모리 추가 할당 : realloc(3)
#include <stdlib.h>
void *realloc(void *ptr, size_t size);
// ptr : 할당받은 메모리를 가리키는 포인터, size : 할당할 메모리의 크기
메모리 해제 : free(3)
#include <stdlib.h>
void free(void *ptr);
// ptr : 해제할 메모리 주소
명령행 인자
main 함수에서 명령행 인자를 전달받으려면 다음과 같이 정의해야 한다.
int main(int argc, char *argv[]) {…}
첫 번째 인자인 argc는 명령과 인자를 포함한 개수로, 두 번째 인자인 argv 배열의 크기다.
두 번째 인자인 argv는 명령과 각 인자를 담고 있는 배열이다.
명령행 인자는 argv에 문자열 형태로 저장된다.
옵션 처리 : getopt(3)
명령행 인자로 전달된 옵션을 편리하게 처리할 수 있도록 getopt 함수가 제공된다.
'유닉스(Unix) > 시스템 프로그래밍' 카테고리의 다른 글
임시 파일 사용 (0) | 2021.08.15 |
---|---|
파일 기술자와 파일 포인터 간 변환 (0) | 2021.08.15 |
고수준 파일 입출력 (0) | 2021.08.15 |
저수준 파일 입출력 (0) | 2021.08.15 |
유닉스 시스템 프로그래밍이란 (0) | 2021.08.14 |
Comments