![strace는 일부 내장 명령과 함께 작동합니다.](https://linux55.com/image/55429/strace%EB%8A%94%20%EC%9D%BC%EB%B6%80%20%EB%82%B4%EC%9E%A5%20%EB%AA%85%EB%A0%B9%EA%B3%BC%20%ED%95%A8%EA%BB%98%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
저는 Linux의 일부 커널 수준 개념을 이해하려고 노력하고 있습니다. 차이점을 확인하고 있어요내장 케이스명령 및 기타 실행 가능한 명령.
이 멋진 답변차이점이 명확하게 명시되어 있으며 쉘 내장 명령의 필요성이 지정되어 있습니다.
이제 사용법을 알았으니 type <command-name>
외부 명령인지 쉘 내장인지 확인할 수 있습니다.
strace
그래서 내부에 대해 더 많이 이해하기 위해 다양한 명령을 사용하여 조작을 하기로 결정했습니다 .
나는 배웠다이 깔끔한 작은 트릭strace
쉘 내장 명령에 대해 'es 작업을 수행합니다. 위의 답변을 바탕으로 저도 strace
이 작업을 수행할 수 있었습니다.cd ..
이제 실행하여 type pwd
출력을 얻으면 pwd is a shell builtin
. strace
하지만 막상 작업을 해보니 , 작업을 수행하기 위해 아무것도 할 필요가 없다는 strace
사실에 놀랐습니다 .strace
stty
저도 확인해봤는데 strace
아주 echo
잘됩니다.
그래서 제가 이해하는 바는 이것이 쉘 strace
의 실행의 경우에 작동하고 쉘의 동작을 변경하지 않기 때문입니다.pwd
echo
pwd
echo
내 이해가 맞나요?
답변1
또는 같은 이름의 외부 명령 pwd
이 있거나 . 출력을 보면 다음을 볼 수 있습니다.echo
/bin/pwd
/bin/echo
strace
$ strace pwd
execve("/bin/pwd", ["pwd"], [/* 68 vars */]) = 0
brk(0) = 0x241e000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f80c31b9000
에서 검색할 때는 PATH
실행 strace
비트가 설정된 일반 파일만 허용됩니다.