/bin/sh는 항상 심볼릭 링크입니까?

/bin/sh는 항상 심볼릭 링크입니까?

우분투 /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
    %

관련 정보