![ps 출력에서 bash, -bash 및 /bin/bash의 차이점](https://linux55.com/image/33787/ps%20%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C%20%E2%80%8B%E2%80%8Bbash%2C%20-bash%20%EB%B0%8F%20%2Fbin%2Fbash%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90.png)
누군가 서버의 bash에서 while true 루프를 생성했습니다(루트로 로그인). 프로세스를 계속 생성하고 다행히 종료되지만 상위 프로세스를 종료해야 합니다. 스크립트가 아닌 명령줄에서 직접 생성되었다는 사실을 알게 되었기 때문에 "-bash"를 찾아 루트가 소유한 프로세스를 종료했습니다. 좋은 결과.
이렇게 하면 ps aux
bash의 다양한 변형이 명령줄에 나타납니다.
/bin/bash
-bash
-bash
-bash
/bin/bash
bash
/bin/bash
/bin/bash
bash
등..
차이점이 뭐야?
답변1
선행 대시는 다음의 로그인 셸을 나타냅니다 man bash
.
로그인 쉘에 대한 인수의 첫 번째 문자는 0이거나
-
옵션으로 시작됩니다--login
.bash가 이 옵션을 사용하여 대화형 로그인 셸이나 비대화형 셸로 호출되면
--login
먼저 파일/etc/profile
(파일이 존재하는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후~/.bash_profile
,~/.bash_login
, 를 순서대로 찾아 존재~/.profile
하고 읽을 수 있는 첫 번째 파일부터 명령을 읽고 실행합니다.--noprofile
이 옵션을 사용하면 쉘이 시작될 때 이 동작을 비활성화할 수 있습니다.로그인 쉘이 종료되면 bash는 파일이
~/.bash_logout
존재하는 경우 해당 명령을 읽고 실행합니다.
bash
/bin/bash
동일하지만 다르게 호출될 뿐입니다(전자는 전체 경로를 사용하여 호출되지 않습니다) .