우분투 /bin/sh
에서는 /bin/dash
.
/bin/sh
쉘에 대한 심볼릭 링크가 아닌 실제 쉘이 있는 Unix 또는 Unix와 유사한 운영 체제가 있습니까 ?
답변1
우분투에서는 그렇지 않습니다언제나심볼릭 링크는 을 가리켰습니다 dash
. Ubuntu 6.10이 출시되었을 때 이런 일이 발생했습니다. 이 변경 이유를 설명하는 자세한 문서를 찾을 수 있습니다.여기.
이 문서에서:
기본 쉘을 전환하는 주된 이유는 효율성입니다. bash는 대화형 사용에 적합한 뛰어난 모든 기능을 갖춘 쉘이며 실제로 여전히 기본 로그인 쉘입니다. 그러나 대시보다 시작하고 실행하는 속도가 더 크고 느립니다. Ubuntu 부팅 프로세스의 일부로 여러 셸 인스턴스가 시작됩니다. /bin/dash에서 명시적으로 실행되도록 각 항목을 개별적으로 변경하는 것보다 Ubuntu 핵심 개발 팀은 단순히 변경을 수행하는 것이 더 낫다고 생각했습니다. 이 경우 지속적인 유지 관리가 많이 필요하고 세심한 주의를 기울이지 않으면 문제가 발생할 수 있습니다. 하락. 기본 쉘. Ubuntu 6.10의 부팅 속도 향상은 Init 시스템의 향후 개발을 위한 좋은 플랫폼인 Upstart에 기인하는 경우가 많지만 Ubuntu 6.10에서는 사소한 동작 변경만으로 주로 System V 호환 모드에서 실행됩니다. 실제로 이러한 개선 사항은 주로 /bin/sh 변경으로 인한 것입니다.
답변2
sh
심볼릭 링크는 4.2 BSD(1977) 및 이전 버전에서만 도입되었으므로 심볼릭 링크를 갖는 것이 항상 가능한 것은 아닙니다.유닉스 버전 6가지다
$ tar tvzf v6root.tar.gz | grep 5888
-rwxrwxr-x 0 3 3 5888 May 13 1975 ./bin/sh
$
오늘날에는 심볼릭 링크 없이 BSD를 볼 수 있습니다 /bin/sh
. 몇 가지 예:
- OpenBSD에서 이것은 Korn 쉘(OpenBSD 변형)에 대한 하드 링크입니다
pdksh
.$ ls -il /bin/{,k,rk}sh 26004 -r-xr-xr-x 3 루트 bin 469976 2016년 2월 26일/bin/ksh 26004 -r-xr-xr-x 3 루트 bin 469976 2016년 2월 26일/bin/rksh 26004 -r-xr-xr-x 3 루트 bin 469976 2016년 2월 26일/bin/sh $
- FreeBSD에서는 Almquist 쉘의 자손입니다:
% ls -il /bin/sh 561595 -r-xr-xr-x 1 루트 차크라 143432 2017년 1월 7일/bin/sh %