* nix에서 포인트 명령`.`에 대한 도움말을 찾으려면 어떻게합니까?


21

.에서와 같은 포인트 명령에 대한 도움말을 찾아야 . ./my_script.sh합니다 (첫 번째 포인트를 의미합니다.)

이미 사용 매뉴얼 페이지를 찾기 위해 시도 man .하고 man \.. 명령 사용법을 설명하는 매뉴얼 페이지를 표시하려면 어떻게해야 .합니까?


14
@ C0deDaedalus : "." 의 정식 이름 FULL STOP입니다. 사람들이 그것을 부르는 것은 그들이 자란 곳에 달려 있습니다.
RedGrittyBrick 11

5
그냥 실행help .
kenorb

2
그러나 문서에서는이라고 dot합니다. 공식 사양은 pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html을
Charles Duffy

11
@jamesqf .는 명령, 특히 쉘 내장입니다. Bash에서는와 동일합니다 source.
wjandrea

4
@ jamesqf : .bash뿐만 아니라 POSIX입니다. 예를 들어 zsh와 ksh에도 있습니다.
MSalters

답변:


79

우선 당신이 호출해야 type .할 것입니다 : 아마도 다음과 같은 것을 얻을 것입니다 :

. is a shell builtin

내장은 쉘의 일부이며 자체 매뉴얼 페이지가 없습니다. 예를 들어 echoBash에 내장되어 있지만 일부 /bin/echo시스템 에는 별도의 실행 파일이있을 수 있으며이 경우 후자를man echo 나타냅니다 . 이 두 가지 가 완전히 동일하지는 않습니다.echo

쉘은 내장을 통해 help내장 에 관한 정보를 제공 할 수 있습니다 . 시도 help help, help type마침내과 :

help .

내장은 쉘의 매뉴얼 페이지에 나열 될 수도 있습니다. 예를 들어 (데비안에서) Bash 내장은 직접 다루어 man bash지지만 Zsh 내장 man zsh에서는 실행하도록 지시합니다 man zshbuiltins. 일반적으로 껍질은 내장을 설명하거나 설명하지 않을 수 있습니다.


7
.쉘 내장 을 가리키는 +1이며 OP가 묻기 때문에 응답으로 표시해야합니다 how to find help for . in *nix ?.
C0deDaedalus

7
type .일부 명령이 쉘 내장임을 증명하기 위해 +1 .
Roger Lipscombe

1
대부분의 데비안에서 Bash 빌트인은 bash-builtins(1)매뉴얼 페이지로 추출되는데 ,이 크기는 더 편리한 크기입니다.
Toby Speight

또한 "type"을 호출하면 "type"이 내장 된 쉘을 사용하는 경우에만 작동합니다. tcsh를 사용하는 경우 "type." "유형 : 명령을 찾을 수 없습니다."
jamesqf

1
심지어 . --help작동
Digital Trauma

25

사용하여 시도 man sh하거나 man bash사용중인 쉘 어떤 또는 매뉴얼 페이지를. (아마도 man $SHELL)

이것은 공식적으로 "point"명령이 아니라 source명령입니다. 단어를 검색 source하면 도움이 될 수 있습니다.

예를 들어, bash 맨 페이지 ( "built builtin command"검색)를 사용하면 설명서를 빠르게 찾을 수 있습니다.

사용법을 설명하기 위해 바로 여기서 할 수 있습니다. 이 source명령을 명령이라고하며, 일부 쉘을 사용하는 기간과 명령이 필요할 수있는 일부 쉘 (약어는 인식 될 수 있지만 전체 단어 source가 인식되지 않을 수 있음)로 단축 될 수 있음을 인식합니다. 있다).

source명령 을 사용하면 쉘은 스크립트 파일에서 각 행을 읽고 실행하려고합니다. 파일에 대한 "읽기"권한이 필요합니다. "실행"권한이 있는지는 중요하지 않습니다. 변수를 수정하면 현재 쉘에 영향을주기 쉽습니다.

반면에 파일을 실행하려고하면 셸에서 운영 체제에이 요청을 처리하도록 요청합니다. "실행"권한이 필요합니다. (일부 시스템, 오픈 BSD처럼, 당신은이에 대한 "읽기"권한을 필요로하지 않습니다. 다른 시스템에서 많은 유닉스의 변화를 포함하여, 당신은 것입니다.) 파일이 적절한 헤더로 시작해야 할 수 있습니다 (예를 들어, #!/bin/sh) 운영 때문에 시스템은이 파일을 스크립트 파일로 인식합니다. 운영 체제는 요청 된 쉘의 사본을 실행하고 해당 쉘에 스크립트 내용을 실행하도록 지시합니다. 쉘 환경이 변경되면 (예 : 변수가 새 값을 가져오고 작업 디렉토리가 변경됨 (  cd), 파일 디스크립터가 리디렉션 됨 ( exec) 등) 스크립트에 대해 호출 된 하위 셸에만 영향을 미치며 스크립트 파일을 호출 한 상위 셸의 환경을 수정할 수 없습니다.


15
sourcebash 에만 있습니다. POSIX 사양에서는 "점 명령"이라고하며 source별칭은 지원되지 않습니다.
Charles Duffy

1
스크립트에는 읽기 권한이 필요합니다. 그렇지 않으면 인터프리터가 액세스 할 수 없습니다. 스크립트는 실행 가능하지만 읽을 수 없습니까?를
wjandrea

1
스크립트를 실행하면 컴파일 된 프로그램을 실행하는 것처럼 하위 셸이 아니라 일반 자식 프로세스 만 열립니다. "서브 쉘이 자식 쉘과 같은 것입니까?"에 대한이 답변을
wjandrea

1
그래서, 나는 타이핑 man bash하고 무엇을 /.합니까? 별로 유용하지 않습니다. /source당신이 알아야 할 것이 유용 할 수 있지만 것 .source같은 일이다.
Joker_vD

1
나는 그것이 것을 의미하기 때문에, 약간 오해의 소지가 "... 사용 설명에 관해서는"당신의 단락을 발견 할 수 있을 .하고 source있지만, @CharlesDuffy 이미 언급 한 바와 같이, 그건 항상 . 모든 POSIX 호환 쉘에서 만 별칭이 source의를 하나의 껍질.
Tom Fenech

6

종종 잊혀지기 때문에 아무도 언급하지 않았습니다.

가장 큰 단서는 도움이되는 명령에서 나올 것입니다 whatis.

tim@musha ~ $ whatis .
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis source
builtins (1)         - bash built-in commands, see bash(1)
tim@musha ~ $ whatis bash
bash (1)             - GNU Bourne-Again SHell
tim@musha ~ $ whatis lynx
lynx (1)             - a general purpose distributed information browser for the World Wide Web
tim@musha ~ $ whatis linux
linux: nothing appropriate.
tim@musha ~ $ whatis whatis
whatis (1)           - display one-line manual page descriptions

편집하다:

어떤 사람들은 이것이 일부 배포판이 아니라는 의견에서 지적했습니다. 어쩌면 설치 가능한 패키지 일 수도 있고 어떤 방법을 사용 했는지도 알 수 있습니다. 기본적으로 젠투에서 사용했습니다.)

멋진 실행 파일이 무엇인지 알려주고, 실행 파일의 모든 경로를 제공하는 곳과 맨 페이지 (여러 경로에 존재하는 경우) 페이지가 있습니다.


1
좋은 힌트이지만 모든 곳에서 작동하지 않는 것 같습니다. 예를 들어, ksh가있는 AIX에서 다음을 whatis .리턴합니다.man: 0703-307 . is not found.
aturegano

4
whatis .Ubuntu 16.04에서 아무것도 반환하지 않음
Vadim Kotov

그리고 ". : 아무것도 적절하지 않습니다." tcsh를 사용하여 OpenSuSE에서.
jamesqf

2
아, 그것 자체의 매뉴얼 페이지에서 : "whatis-한 줄 매뉴얼 페이지 설명을 표시합니다." 그래서 그것은 매우 짧은 버전의 사람으로 보입니다.
Xen2050

보다 호환 가능한 옵션은 apropos입니다 ( "man -k"실행과 동일해야 함). "." 또는 "source"( "resource"라는 단어의 일부)는 잘못된 오탐으로 인해 너무 잘 작동하지 않지만 다른 예제 (bash, lynx 및 whatis)에서는 작동 할 수 있습니다. 데비안 리눅스 : OpenBSD에서 " whatis ."gave " .: nothing appropriate."는 47 줄의 결과를 낳았습니다. 이 특정 예제 ( whatis .Gentoo에서 " " 사용 )의 경우 결과가 일반적으로 좋지 않을 수 있습니다 (이 기법은 일반적으로 다른 많은 예제 시나리오에 유용하지 않음을 의미 함).
TOOGAM

4

man source 필요한 설명이 표시됩니다.

점은 소스 명령과 동일합니다.

source 서브 쉘 대신 현재 쉘에서 스크립트를 실행합니다 (일반적인 방법 임).

source스크립트 내부에 설정된 변수를 사용 하면 스크립트가 완료된 후에도 유지됩니다.


2
어떤 배포판에서 man source작동합니까? 내 데비안이 아니므로 질문입니다.
Kamil Maciorowski 님이

1
CentOS 6.5에서 작동합니다. bash 버전과 더 관련이 있다고 생각합니다. 내 경우에는 4.1.2 (1)입니다.
jcbermu

@jcbermu, bash 버전은 source업스트림에 대한 별도의 매뉴얼 페이지를 제공 하지 않습니다. 이는 CentOS가 수행했을 가능성이 높습니다.
Charles Duffy

내 시스템에서, man source당신에게 man bash_builtins아무것도 설명하지 않지만 당신을 말합니다bash(1)
Scott

1
내 시스템 (Ubuntu LTS)에서 man source나에게 source(3tcl)... type command그리고 명령이 내장되어 있다면 help command아마도 적절한 방법 일 것입니다 ...
Hastur

0

이것은 .source명령 의 동의어 이므로 bash 에서 구문은 다음과 같이 표시됩니다.

help source

대상 파일을 읽고 현재 스크립트의 일부인 것처럼 해석한다는 점에서 다른 언어 의 includeimport명령 과 정확하게 기능합니다 . 따라서 해당 파일은 현재 스크립트의 나머지 부분에있는 명령보다 먼저 실행됩니다.

일반적으로 현재 스크립트의 시작 부분에 있어야하며 변수 및 / 또는 함수 정의를로드하는 데 가장 자주 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.