ls
다음은 bash를 입력하고 실행한 후 어떤 일이 발생하는지 보여주는 다이어그램입니다.
ls
첫 번째 부분은 실행 전의 상황을 보여줍니다.불다터미널 에뮬레이터의 하위 프로세스입니다.xterm그리고 그들을 둘러싼 아우라와 환경도 똑같다. 이것더블 엑스마크는 둘 다Xterm그리고불다, 상위 프로세스와 하위 프로세스의 환경 변수 세트가 동일하기 때문입니다.
두 번째 부분은 새 프로세스(예: ls)를 시작한 후 어떤 일이 발생하는지 보여줍니다.
- Bash는 자신의 정확한 복사본인 하위 프로세스를 생성하므로 이름을 지정했습니다.bash_c(Bash_copy의 약어)
- 그 다음에,bash_cls 프로세스로 대체됩니다.
나는 이 다이어그램이 간단하고 설명이 필요 없으며 직관적이고 모호하지 않다고 생각합니다.
그러나 다이어그램이 어떻게 생겼는지 모르기 때문에 아직 다이어그램을 그리지 않았고 (ls)
그것이 어떻게 보이는지 이해하기 위한 몇 가지 다른 시나리오가 있지만 시작해야 할 질문 부분은 다음과 같습니다. 다이어그램은 어떻게 생겼습니까 (ls)
? 그림을 그리고 댓글을 달아주세요.
답변1
for 의 프로세스 계층 구조는 for , 즉 (ls)
과 동일 하지만 명령 목록을 대괄호 안에 넣으면 bash는 하위 쉘을 시작하고 해당 하위 쉘에서 명령을 실행합니다. 결과 프로세스 계층 구조는 다음과 같습니다( 두 개의 ls 프로세스가 순차적으로 실행됨).ls
→ bash → ls
(ls; ls)
→ bash → bash → ls
(cat; cat)
ls : 대신 인수 없이 cat 을 사용하면 이를 시각화할 수 있습니다 . 첫 번째 cat 프로세스는 입력을 기다리며 다른 터미널에서 pstree
또는 top
다른 터미널을 사용하여 무슨 일이 일어나고 있는지 확인할 수 있는 기회를 제공합니다.