반응형

📝리다이렉션

리다이렉션을 이용해 다른 장치로 변경할 수 있다

예) 표준 출력장치가 모니터로 되어있는걸 프린터로 바꾼다던가 합니다.

 

  • 표준출력
    • [명령 프롬프트 결과] (모니터)
  • 표준입력
    • [명령 프롬프트] (키보드)

 

 

📝출력의 방향을 바꾸는 기호 (>)

명령 > 파일명

명령어 내용을 파일명에 저장하는 것입니다.

 

notepad test.txt는 test.txt라는 파일을 만드는 것입니다.

dir > test.txt는 dir 명령어의 내용을 test.txt에 입력하라는 말입니다.

열어보면 위와 같이 되어있습니다

 

📝기존파일에 추가 입력하는 기호 (>>)

명령 >> 파일명

기존 파일에 있는 내용에 이어서 명령어를 입력하라는 의미입니다

 

여기에서 test.txt 에 dir 명령어의 내용이 담겨있는데 >를 쓸 경우 덮어쓰기가 됩니다.

>>을 쓰면 그 안에 내용은 보존하고 이어쓰기가 됩니다.

 

📝입력의 방향을 바꾸는 기호 (<)

명령 < 파일명

원래 키보드로 입력을 하는데 그걸 파일로 대체하고 명령을 이행하라는 의미입니다.

즉 파일에 내용이 명령어의 매개변수가 되는 것이죠

 

📝파일디스크립터 (fd)

리눅스, 유닉스는 컴퓨터의 모든 것을 파일로 모델링합니다.

 

  • 0번
    • 기본적으로 생성될 때 입력할 수 있는 기능이 해당 파일을 참조
  • 1번
    • 읽을 수 있는 기능이 해당 파일을 참조
  • 2번
    • 해당 파일의 오류를 출력해주는 기능이 해당 파일을 참조

 

그 후에 소켓, 다른 파일 등.. 이 파일을 참조하는 애들이 순차적으로 3번 4번 5번... 이런식으로 가지게 됩니다.

그러면 해당 프로세스의 3번을 읽으면 어떤 파일이 참조하고 있는지 알 수 있게 됩니다.

(번호로 매핑테이블을 만들고 빠르게 접근할 수 있다)

# 파일 디스크립터 갯수 세주는 쉘스크립트
pids=`ps -ef | awk '{print $2}'`
count=0

for pid in $pids
do
    tmp=`ls /proc/$pid/fd/ | wc -l`
    count=`expr $count + $tmp`
done

echo $count

 

1번째 testing.sh 실행vi로 파일을 열기전 전체 프로세스의 파일 디스크립터 개수입니다.

2번째 testing.sh 실행vi로 파일을 열었을 때 전체 프로세스의 파일 디스크립터 개수입니다.

 

해당 프로세스를 참조하는 곳과 파일 디스크립터 확인 명령어ls -all /proc/${pid}/fd/

렇게 참조하는 곳이 많아질 수록 숫자가 점점 늘어나게 됩니다.

 

📝프로세스

현재 시스템에 실행중인 프로그램을 의미합니다.

 

📝PID

프로세스는 번호로 관리됩니다 이걸 PID라고 합니다.

 

📝데몬 프로세스

특정 서비스 제공하는 프로세스

 

📝고아 프로세스

자식 프로세스가 살아있는데 먼저 부모 프로세스가 종료된 경우

 

📝좀비 프로세스

실행을 종료했는데도 프로세스 테이블에 남아있는 경우

 

반응형