자율주행/김선영님의 리눅스 강의

리눅스 day8

Tony Lim 2020. 12. 17. 20:25
728x90

Built in command

built in command를 사용하면 fork의 부담이 거의 없다.
e.g) expr보다 let이나 ((...)) 를 사용하는게 좋다.

time == cpu 시간 측정 (time은 built-in 과 external cmd 둘다 있다.)

xargs == stdin으로부터 argv를 받아서 명령어 생성

sort == ls -l | sort -M -k 6 -k 7n -k 5nr == 6번쨰 기준으로 만약 같으면 7번째 column 같으면 5번쨰 column reverse기준

split == 처리할 데이터(Line 단위) 가 큰 경우 이를 자르는 용도로 주로 사용된다.
큰 파일을 작은 파일로 쪼갤 수 있다.

paste == merge lines of files
-s == paste one file at a time instead of in a parallel

exec #<FILE == 읽기용 파일로 오픈. 오픈된 파일은 파일기술자 #번을 할당받음 (#이 0이면 생략가능)
exex #>FILE == 쓰기용 파일로 오픈. 오픈된 파일은 파일기술자 #번을 할당받음 (#이 1이면 생략가능)

exec #<&- == #번 파일기술자를 닫음 (읽기채널)
exec #>&- == #번 파일기술자를 닫음 (쓰기채널)

exec #<>FILE == 파일을 RW가 가능하도록 오픈

file descriptor는 child process에 상속된다.

첫번째 argument에 읽어오는 채널을 만들고 두번째 argument에 쓰는 채널을 만든다. 사실상 복사하는 코드다
아주 헷갈릴만한 코드였다. 자식프로세스가 생성되면 상속이 일어나고 안에서 일어난일은 안에서만 적용되고 자식 프로세스가 종료되면 사라짐으로 첫번 쨰 코드블럭은 에러가 난다.

exec 3<>/dev/tcp/www.vim.org/80 == 통신을 하면 소캣으로 연결되면 원격통신이 가능하다.
네트워크도 기본적으로 파일과 동일하다 하였다.

초보인 나에게는 난해한 코드다 디버킹 툴인 set -x , set +x 를 유용하게 썼다.

built in command인 xargs를 쓰는 방식이다. 잘못 압축해제한것을 한번에 지우는 코드이다.

Transient Process 

nohub command 같은 경우에는 오래된 것이다.

이런식으로 서비스 형식으로 만들 수 있다.

Load Average

LA == 프로세스 대키큐 의 길이의 정의 를 가짐

vmstat == 시스템의 virtual memory와 cpu usage를 확인

728x90

'자율주행 > 김선영님의 리눅스 강의' 카테고리의 다른 글

리눅스 day9  (0) 2020.12.18
리눅스 day7  (0) 2020.12.16
리눅스 day7(REGEX)  (0) 2020.12.16
리눅스 day6(bash)  (0) 2020.12.14
리눅스 day5 (file sytem)  (0) 2020.12.11