sh를 추가하면 무엇을합니까?


10

터미널 사용에 익숙하지 않은 이유와 그 이유는 무엇인지 모르고 맹목적으로 가이드를 따르고 있습니다.이 가이드는 vmware 플레이어 설치에 도움이됩니다.

이 파일은 파일을 실행 가능하게 만들고 파일을 클릭 한 후 실행되었습니다. 루트 액세스 만 필요합니다.

sudo sh vmwareplayer.txt (짧게 개명)

어떻게 든 내가 알고 sudo하지 않습니다하지만를 않습니다 sh합니까? 그것이 없으면 "vmwareplayer.txt 찾을 수 없음"으로갑니다. 번들 파일의 경우 왜 .txt로 끝나나요?


언어 통역사
Tachyons

@Tachyons 질문에 대한 답변을 알고 있다면 더 자세히 설명하고 답변으로 게시하십시오! :)
Alvar

통역사 (sh, bash 등) 및 shebang 등에 대해 자세히 설명하는 답변이 있는 관련 질문 도 참조하십시오 .

1
@Mik 이것은 그 질문과 중복 되지 않습니다 . sh스크립트를 호출하는 명령에서 수행 할 작업을 묻습니다 . 이 질문은 스크립트 파일 내에서#! 작동 하는 방식 에 관한 것 입니다. 완전히 다릅니다.
Eliah Kagan

@EliahKagan 예, 아마도 그것을 중복으로 인용하기에는 너무 성급한 것 같습니다 : 나는 다른 대답을 언급 할 때 '관련,하지만 중복되지는 않아야합니다'. 당신은 평소와 같이 옳습니다. 중재자에게 다시 열도록 요청하려면 괜찮습니다. 이미 재개하기로 투표했습니다.

답변:


16

sh는 "shell"을 나타내며 shell은 명령 줄 인터프리터와 같은 오래된 Unix입니다. 인터프리터는 프로그래밍 또는 스크립팅 언어로 작성된 특정 명령을 실행하는 프로그램입니다. 기본적으로 "파일을 실행하십시오"라고 말합니다.

Linux는 파일 (또는 프로그램)이 무엇인지 확인하기 위해 실제로 파일 확장자를 보지 않는다는 것을 이해해야합니다. 해당 파일의 내용이 sh 인터프리터가 이해하는 방식으로 작성되는 한 작동합니다. 그러나 가독성을 위해 이러한 파일에는 일반적으로 .sh 확장자가 부여되며 개발자가 해당 파일에 .txt 확장자를 부여했을 때 무엇을 생각하고 있는지 전혀 모릅니다.


5

우분투에서, sh또는 /bin/sh단지를 가리 킵니다 dash. 우분투를위한 sh기본 명령 인터프리터를 실행해야합니다 dash. 1 dash 은 데비안 Almquist 쉘을 나타냅니다.

쉘은 시스템의 명령 행 인터프리터입니다. 같은 여러 가지 다른 껍질이 있습니다 bash, csh, zsh등 여기의 사람이 페이지에서 간단한 발췌입니다 dash:

 The shell is a command that reads lines from either a file or the termi‐
 nal, interprets them, and generally executes other commands.  It is the
 program that is running when a user logs into the system (although a user
 can select a different shell with the chsh(1) command).  The shell imple‐
 ments a language that has flow control constructs, a macro facility that
 provides a variety of features in addition to data storage, along with
 built in history and line editing capabilities.  It incorporates many
 features to aid interactive use and has the advantage that the interpre‐
 tative language is common to both interactive and non-interactive use
 (shell scripts).  That is, commands can be typed directly to the running
 shell or can be put into a file and the file can be executed directly by
 the shell.

Linux 셸에 대한 많은 자습서가 있으며이 Wikipedia Article에서 시작할 수 있습니다 .

당신이 작성하는 경우, 귀하의 질문에오고 sh file, dash실행하는 file당신을 위해.


sh가 무엇인지에 대한 좋은 설명이지만 위의 특정 질문에서 수행하는 것은 아닙니다.
NilsB

좀 더 많은 정보를 추가, 지금은 충분해야한다
점화

1

한마디로 한마디 :

sudoroot권한이 있는 명령을 실행합니다 . sudo vmwareplayer.txt"루트 액세스 권한으로 vmwareplayer.txt 명령을 실행하십시오"라는 메시지 가 명확하게 표시되고 실패하면 해당 프로그램이 없기 때문입니다.

sudo sh command" sh command루트 권한으로 실행"을 의미

sh commandBourne 쉘에서 명령을 실행합니다.

새로운 의문이 생깁니다. 껍질은 무엇입니까? 이것은 더 긴 질문이며 내가 생각하는 Wiki에 대한 정보를 찾을 수 있습니다.

한편, man가장 친한 친구 라는 것을 기억 하십시오.


1

나는 초기 응답자가 아무도 당신이 실제로 G.에게 질문 한 질문에 대답하지 않았다고 생각합니다. 그래서 나는 그것을 쏠 것입니다. 를 끼워 sh당신이 언급 한 같은 프로그램을 실행할 때, A의 프로그램 실행 대화 형이 아닌 서브 쉘을. 비 대화식 쉘은 프로그램을 실행할 때 사용했던 표준 대화식 쉘 과 다르게 작동합니다 (예 : 초기화 ).

솔직히 나는 이것이 실제적인 효과가 무엇인지 모른다. 알다시피 sh vmwareplayer.txt(보통) 단순히 입력 vmwareplayer.txt하지 않는 동일한 폴더에서 무언가를 실행할 수 있습니다. 그것은 쉘 환경을 수행해야합니다. 쉘이나 서브 쉘 자체의 품질은 아닙니다. 물론 현재 디렉토리에서 루트로 프로그램을 직접 실행할 수 있습니다 sudo ./vmwareplayer.txt. 내 경험상 이것은 항상 잘 작동합니다 sudo sh vmwareplayer.txt. 나는 누군가가 와서 왜 서브 쉘이 바람직한 지 설명하기를 바랐다.


0

sh유틸리티는 명령 줄 인터프리터 / 명령 줄 문자열, 표준 입력 또는 지정된 파일에서 읽은 명령을 실행하는 명령입니다. 응용 프로그램은 실행될 명령이 쉘 명령 언어에 설명 된 언어로 표현되도록합니다.

예를 들면 다음과 같습니다.

다음은 문자열에서 쉘 명령을 sh -c "cat myfile.txt" 실행합니다. 즉, 명령을 실행합니다.cat myfile.txt

자세한 설명은 다음 링크를 참조하십시오. http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html

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