저는 FreeBSD에서 Bourne 쉘을 사용해 보고 싶어서 그것을 사용하기 위한 설정을 시작했습니다.
에서는 .shrc
프롬프트를 설정하고 vi 모드를 활성화하고 일부 별칭을 설정하고 일부 변수를 내보냈습니다.
그러나 .profile
일부 변수도 기본적으로 내보내지는 것을 발견했습니다.
내가 이해한 바로는 Bourne 쉘은 .profile
시작할 때마다 소스 코드를 가져옵니다. 그렇다면 .shrc
와 가 둘 다 있는 (역사적) 이유는 무엇입니까 .profile
?
답변1
Bourne 쉘에 가장 가까운 것은 OpenSolaris의 Heirloom Bourne 쉘입니다. 이는 실제로 오픈 소스 프로그램이 아니며 요즘 거의 모든 운영 체제에서 찾을 수 없습니다. 이는 shells/heirloom-sh
FreeBSD 포트 컬렉션(보통 에 설치됨 /usr/ports
)에 있습니다.
이는아니요 sh
.
저것FreeBSD의 Debian Almquist 쉘(약간 수정된 버전)입니다.
Heirloom Bourne 쉘은 jsh
. ~/.shrc
sourced 이며 ~/.profile
, 로그인 셸로 호출될 때만 제공됩니다. 그것이 나오는 유일한 다른 파일은 /etc/profile
.
Bourne 쉘은 나중에 나온 복잡성을 모두 갖지 않았으며 다양한 파일을 가지고 있었습니다. 아이러니하게도 이러한 모든 경향을 시작한 것은 C 쉘(원래 BSD가 선호하는 쉘)이었습니다.다른.rc 파일.
가보 Bourne 쉘은 그렇지 않습니다.상당히본 쉘. 예를 들어, 작업 제어 명령이 있습니다. Bourne 쉘에는 이러한 기능이 없는 운영 체제용으로 작성되었기 때문에 이 기능이 없습니다. OpenSolaris 역사의 일부 변경 사항은 이것이 원래 Bourne 쉘이 아니라는 것을 의미합니다. 내가 말했듯이 이것은 현재 어떤 운영 체제에서도 불가능합니다. 상업용 Unices에서도 사람들은 1980년대 후반부터 Bourne 셸의 업데이트된 버전을 받게 되었고 이와 같은 새로운 System 5 Release 4 콘텐츠가 추가되었습니다.
~/.shrc
그렇다면 Bourne 쉘에서 작동한다고 주장하고 의견에 sh(1) 매뉴얼 페이지를 언급하는 이유는 무엇입니까 ?
기본적으로 이 댓글은 거짓말입니다.
sh
Almquist 쉘은 FreeBSD와 NetBSD에서 사용되며 FreeBSD에서는 약간 수정된 버전을 사용합니다.더반Almquist 쉘은 2000년대 초반 데비안 직원이 만든 NetBSD Almquist 쉘을 약간 수정한 것입니다.
sh(1) 매뉴얼을 보면 이것이 Stephen R. Bourne이 작성한 쉘이 아니라 Kenneth Almquist가 작성한 쉘이라고 나와 있습니다. Bourne 쉘을 사용해 보고 싶다면 sh
FreeBSD에서 실행해도 아무 소용이 없습니다.
~/.profile
매뉴얼에서는 파일을 얻기 위해 대화형 Almquist 쉘을 수동으로 설정하는 방법도 설명합니다 ~/.shrc
. 기본적으로 이는 Almquist 셸에서는 발생하지 않으며 ~/.shrc
표준적인 일이 아닙니다.
~/.shrc
/usr/share/skel/
생성될 때부터 홈 디렉토리에 덤프된 일반 파일입니다 pw useradd
. 표준적으로 실제로는 어떤 쉘에도 아무 작업도 수행하지 않습니다.
뭔가를 시도하고 싶다면진짜난해하고, Heirloom Bourne 쉘보다 훨씬 더 난해한 FreeBSD는 shells/osh
포트와 마찬가지로 Thompson 쉘도 제공합니다.
그리퍼에 관해서는 Heirloom Bourne 쉘을 시도하고 배우기 전에(또는 적어도 그 전에) Almquist 쉘을 시도하고 배우는 것이 좋습니다. #!/bin/sh
물론 FreeBSD의 모든 스크립트가 이를 사용하기 때문에 알아두면 더 유용합니다 .
항구에 있는 와타나베 조개껍데기는 shells/yash
체험해 볼 만한 또 다른 장소입니다. Watanabe 및 Debian Almquist 셸은 둘 다 비표준 emacs
명령줄 편집 모드를 가지고 있지만 POSIX 호환 셸 동작의 하위 집합만 갖는 것과 가장 가까운 환경을 제공합니다. ☺
답변2
.shrc
와 의 차이점에 대해 .profile
. 오늘 저는 NetBSD-10 구성에 대한 eixstence를 우연히 발견했으며 .shrc
이 시스템을 참조하겠습니다. NetBSD에 .shrc
직접 나타나지 않습니다.쉿 (1) 어느 쪽에도 없지만 apropos
변수의 내용으로 표시됩니다 ENV
.
ENV
참조 구성 파일은 다음에서 사용됩니다.쉿 (1)페이지 중 일부를 복사했습니다. HTH. 안녕히 가세요
따라서 사용자는 로그인 시에만 실행되는 명령을 .profile 파일에 배치하고, 각 쉘에 대해 실행되는 명령을 ENV 파일에 배치해야 합니다. ENV 변수를 파일로 설정하려면 홈 디렉터리의 .profile에 다음 줄을 입력하세요.