C 프로그램 컴파일하기
유닉스 시스템은 대부분 C언어로 개발되어있고, C언어 개발환경이 기본적으로 탑재되어 있다.
cc 명령어는 C프로그램을 컴파일하기 위한 유닉스 표준 C컴파일러다.
IBM에서는 cc컴파일러 대신 gcc컴파일러를 사용한다.
$ cc [옵션] 파일명
$ /usr/bin/gcc ./파일명 <-IBM의 경우
daramg.c 라는 프로그램 컴파일 )
$ ls
daramg.c
$ gcc daramg.c
$ ls
a.out daramg.c
Path를 지정하는 경우 )
$ /usr/bin/gcc ./daramg.c
(./ 는 현재 디렉토리를 의미)
cc명령어 옵션
-o : 컴파일 후 만들어지는 실행 프로그램을 사용자가 지정하는 이름의 파일로 저장할 때 사용한다.
$ /usr/bin/gcc ./daramg.c -o ./daramg.obj
파이프 라인과 필터 사용
파이프 라인
: 한 명령어의 표준 출력을 다른 한 명령어의 표준 입력으로 사용할 수 있는 기능이다.
임시의 중간 파일을 만들어 수행되기 때문에 에러가 적고 생산성이 높다.
$ 명령어1 | 명령어2 | 명령어3 | ...
| 의 왼쪽에 있는 표준 출력은 | 의 오른쪽에 있는 명령어의 표준 입력으로 제공된다.
이와 같은 동작을 파이프 동작이라 하며 이 기능은 작업을 쉽고 빠르게 할 수 있도록 해준다.
who 명령과 wc 명령 파이프라인
who 명령은 시스템을 사용 중인 사용자들의 리스트를 화면에 보여준다.
wc 명령은 파일 내용의 문자, 단어, 라인의 수를 세는 명령어다.
파이프라인 이용해 현재 login 되어 있는 사람 수 확인하기 )
$ who | wc -l
7
파이프라인 이용해 현재 작업중인 디렉토리 내 파일 개수 확인 )
$ ls | wc -w
19
dotori 밑에 있는 리스트 중 'daram'이라는 문자열을 포함하는 모든 라인을 선별하고
선별된 모든 라인들의 3번째 필드를 역순으로 sort 한 후 프린터로 출력하기 )
참고, lpr : 인쇄용 파일 제출 명령어
$ ls -l /dotori | grep daram | sort +2nr | lpr
파이프라인을 사용하지 않는다면 다음과 같은 과정을 거쳐야한다.
$ ls -l /dotori > dotori1
$ grep daram dotori1 > dotori2
$ sort +2nr dotori2 > dotori3
$ lpr dotori3
$ rm dotori[123]
지금 사용하고 있는 디렉토리 파일을 할당된 블럭 개수 순으로 출력 )
$ ls -s | sort -n
현재 디렉토리 파일 목록을 소문자 대문자 구분 없이 정렬하여 화면으로 출력 )
$ ls | sort -f
tee 명령어
: 파이프를 통과하는 입출력 내용을 다른 파일에 저장하기 위한 명령어다.
$ tee [옵션] 파일명
현재 시스템 사용중인 사람 누구인지 알아보고 daramg라는 파일에 저장하기 )
$ who | tee daramg
$ who > buff 명령은 내용을 보지 않고 저장한다.
background 작업
background 작업
: 유닉스 시스템은 멀티태스킹 시스템이므로 동시에 여러개의 프로그램을 수행시킬 수 있다.
사용자가 하나의 명령을 실행시킨 후 그 실행이 끝날 때 까지 기다리지 않고,
다른 명령어를 실행시켜 결과적으로 시스템 내에 복수개의 작업이 동시에 실행할 수 있도록
다중처리 시스템을 만들어주는 것이 백그라운드 프로세스이다.
이와 같은 방법으로 사용자는 한 작업이 실행되는 도중에 또 다른 작업을 계속할 수 있게 된다.
백그라운드 방식으로 daramg.c daramg2.c 파일을 컴파일하고 daramg3.c 파일 내용을 cat 명령 이용해 확인 )
$ cc -o daramg daramg.c &
$ cc -o daramg2 daramg2.c &
$ cat daramg3.c &
이와 같이 백그라운드 형태로 작업 수행하려면 명령어 끝에 & 기호를 붙이면 된다.
nohup 명령어
: 백그라운드 프로세서와 관련되어 사용할 수 있는 명령어다.
nohup 명령어를 이용하면 사용자가 시스템에서 logoff 한 후에도 명령어가 계속 실행된다.
logoff 명령 전에 실행시킨 명령의 결과는 화면에 출력하지 않고 시스템 내의 nohup.out 파일 만들어 이곳에 저장한다.
$ nohup 명령어
nohup 명령어 이용해 daramg.c 라는 파일 컴파일 )
$ nohup cc daramg.c &
출력결과를 다른 이름으로도 저장 가능하다.
nohup cc daramg.c > other.out &
'전공 지식 정리 > 유닉스' 카테고리의 다른 글
#2 파일과 디렉토리 - at, sleep, batch (0) | 2022.06.16 |
---|---|
#2 파일과 디렉토리 - tar, od, 파일 압축 (0) | 2022.06.16 |
#2 파일과 디렉토리 - paste, dd, cpio (0) | 2022.06.16 |
#2 파일과 디렉토리 - split, grep, egrep, tr, cut (0) | 2022.06.15 |
#2 파일과 디렉토리 - sort, wc (0) | 2022.06.15 |