Raspberry Pi_Kor_20.2.2 Shell의 명령 실행 방식

20.2.2 Shell의 명령 실행 방식

20.2.2.1 kernel의 system call 종류

● “fork” 시스템 call

이 call은 한 프로세스가 다른 프로세스를 실행시키기 위해 사용하는 시스템 호출 방식의 하나로 명령 실행이 필요할 때 child process가 생성되어 별도로 실행되는 형식이다.

Raspberry Pi_Kor_10.9.4 “uniq” 명령

10.9.4 “uniq” 명령

이 명령은 입력에서 자료를 읽거나 출력으로 자료를 내보낼 때 인접하는 중복되는 자료를 제거하는 기능을 수행한다.

[명령 형식]

uniq [option] [input] [output]

[명령 개요]

■ 입력이나 출력에서 인접하는 중복되는 행 자료를 제거한다.

■ user 권한 — 일반 user.

Raspberry Pi_Kor_10.9.3 “sort” 명령

10.9.3 “sort” 명령

이 명령은 지정된 파일의 자료를 일정한 규칙에 따라 정렬한 다음 표준출력으로 내보낸다.

[명령 형식]

sort [option] [directory/파일]

[명령 개요]

■ 지정된 파일의 자료를 정렬해 준다.

■ user 권한 — 일반 user.

Raspberry Pi_Kor_10.9.2 “wc” 명령

10.9.2 “wc” 명령

이 명령은 지정된 파일에서 행 수, 단어 수, byte 수를 계산해서 되돌려 준다.

[명령 형식]

wc [option] [directory/파일]

[명령 개요]

■ 지정된 파일에서 행 수, 단어 수, byte 수를 계산해서 알려준다.

■ user 권한 — 일반 user.

Raspberry Pi_Kor_10.9.1 “awk” 명령

10.9 자료 조작 관련 명령

10.9.1 “awk” 명령

“awk” 명령어는 지정된 파일을 읽어 지정된 패턴과 일치하는 값을 가지고 있는 행을 찾고, 패턴이 일치하면 지정된 연산작업을 수행한다. 여기서의 연산은 라인 내의 필드 조작이나 필드 값을 이용한 산술 연산을 의미한다. “awk”라는 이름은 이를 개발한 세 사람의 이름 Aho, Weinberger, Kernighan에서 유래된 것이다.

“awk”는 Shell 프로그래밍과 BC, C 프로그래밍 언어와 같은 기능을 갖춘 프로그래밍 언어로 BC와 같이 완벽하게 작동하며 Shell의 인수인 $1, $2, $3과 같은 이름을 가진 필드 변수가 각 입력 라인에 사용될 수 있다. 또 C 언어와 유사한 프린팅, 제어 연산자도 가지고 있다.

Raspberry Pi_Kor_10.8.3 “|” (pipe) 명령

10.8.3 “|” (pipe) 명령

Linux에서는 한 명령의 실행 결과로 나오는 출력을 다른 명령의 입력으로 사용할 수 있는 방법이 있는데, 이것이 |(pipe) 명령이다. 여기서 “pipe”라는 단어는 “pipe”에 들어오는 모든 입력을 없애거나 다른 곳으로 보내지 않고 내용의 손실 없이 입력된 그대로 출구로 보내준다는 의미이다.

통상적으로 어떤 명령을 실행할 때는 사전에 명시적으로 지정된 파일이나 입력장치에서 입력자료를 받아서 명령에서 지정된 방식으로 처리를 한 다음 그 결과를 출력으로 보내게 된다.

Raspberry Pi_Kor_10.8.2 redirection 명령 – 입력, 출력 장치 변경

10.8.2 redirection 명령 – 입력, 출력 장치 변경

Linux에서는 특정 명령을 실행할 때 그 실행 결과를 사전에 지정된 출력장치로 보낸다. 그런데 필요에 따라 실행결과를 사전에 지정된 출력장치가 아닌 다른 출력장치로 보낼 수 있다.

이럴 때 사용하는 것이 “<" 와 ">” (redirection)이다. 이 명령을 사용하면 이 명령 뒤에 지정된 출력장치로 실행결과를 보내준다. “redirect”의 의미는 키보드와 모니터가 설정되어 있는 기본 입력과 기본출력을 다른 곳으로 변경하는 것이다.

Raspberry Pi_Kor_10.8.1 “xargs” 명령

10.8 입력 및 출력 조정 명령

10.8.1 “xargs” 명령

이 명령은 앞에서 실행된 명령의 출력을 다음 명령의 argument input으로 사용할 수 있도록 해준다.

[명령 형식]

xargs [option] exec-command

Raspberry Pi_Kor_10.7.4 “exit” 명령 – 처리 종료

10.7.4 “exit” 명령 – 처리 종료

어떤 프로세스의 처리를 진행하던 중에 프로세스를 종료하고자 할 때 사용하는 것이 exit 명령이다.

[명령 형식]

exit [exit-status]

Raspberry Pi_Kor_10.7.3 프로그램 background/foreground 실행

10.7.3 프로그램 background/foreground 실행

통상 우리가 명령을 실행할 때는 하나의 명령이 완료되면 다음 명령을 실행하는 방식으로 작업을 진행해 간다. 이렇게 진행하는 방식을 우리는 foreground방식이라고 한다. 이 방식에서는 하나의 작업을 진행하는 도중에는 다른 명령을 입력할 수가 없다. Pi 시스템에서는 특별한 지시를 하지 않으면, 항상 foreground 방식으로 명령을 실행하게 된다.

시스템에서 실행하는 작업 중에는 짧은 시간에 종료되는 것도 있지만, 작업시간이 꽤 오래 걸리는 작업이 있을 수도 있다. 이렇게 오래 걸리는 작업이 있는 경우, 그 작업이 완료된 이후에 다른 작업을 시작할 수도 있지만, 다음에 하고자 하는 작업이 현재 진행중인 작업과 연관관계가 없는 경우, 현재 작업이 완료되는 것을 기다리지 않고, 곧바로 작업을 시작할 수도 있다.