
답변1
기본적으로 ps
현재 터미널(tty)에 연결된 프로세스만 표시합니다. 귀하의 경우에는 셸과 ps
자체(둘 다 pts/2
)입니다. 을 보려면 이 제한을 해제해야 합니다 sleep
. 예를 들어
ps -e
man ps
프로세스를 필터링하는 데 사용할 수 있는 다양한 옵션을 보려면 을 참조하세요 .
답변2
문제는 두 번째 터미널을 만들고 "ps"를 입력하면
sleep
프로세스가 없다는 것입니다.
전부는 아니지만 일부 대화식 쉘의 경우 sleep
다음을 호출하는 내장 쉘이 될 수 있습니다.수면(3)(정확히 cd
쉘 내장 호출과 동일합니다.chdir(2)).
그럴 땐 아무 것도 안 보이잖아.sleep
프로세스왜냐하면 아무것도 없기 때문입니다. 그 이후의 과정은수면(3)-ing은 당신의 것입니다유닉스 쉘; 자신만의 쉘 인터프리터를 작성할 수도 있습니다(다음을 살펴보세요).허리띠쉽지만 약간의 버그가 있는 예입니다).
많은 Linux 쉘은오픈 소스소프트웨어(또는무료 소프트웨어), 따라서 소스 코드를 연구하여 그들이 호출하는지 알아보세요.수면(3)또는우리잠(3)-또는 적절하게도여론조사(2)등 ...- 또한 참조시간(7)그리고select_tut(2). 자세히 알아보기시스템콜(2)그리고 쉘에서 수행되는 작업을 생각해보세요(또는추적(1)또는ltrace(1)또는 디버거).
많은 Linux 배포판에는GNU 배쉬일반적인 대화형 쉘로. 하지만 설치할 수는 있습니다zsh또는물고기또는예로그인 셸로(chsh(1)).
내 개인적인 선호는 zsh
(누구의자동 완성데비안의 기능은 훌륭합니다).
좀 읽어보세요에 관한 교과서운영체제및/또는 직접 코딩하기유닉스 쉘연습으로 사용하거나 기존의 일부를 확장합니다(예: sleep
내장 기능이 없는 경우 내장 기능을 추가하여).