2017-01-09 6 views
0

암호를 사용하여 PuTTy로 git-shell에 로그인합니다. git-shell (데비안 리눅스 서버의 제한된 로그인 쉘)에 입력 한 내용은 "인식 할 수없는 명령"과 같은 응답이됩니다.git-shell에서 어떤 기본 명령이 작동합니까?

git> git help -a 
unrecognized command 'git' 
+1

'git-shell '은 범용 쉘이 아닙니다. 기본적으로 비 대화식으로 만 특정 명령을 실행할 수 있습니다. 대화식으로 사용하려면 실제 명령을 정의하는 등 더 많은 작업을 수행해야합니다. [man page] (https://git-scm.com/docs/git-shell)를 읽어야합니다. –

+0

정말입니까? 설명서에는 "... git-shell-commands라는 하위 디렉토리에 커스텀 명령이 있습니다."라고 쓰여 있습니다. 음, 그 하위 디렉토리는 존재하지만 표준 명령 만 사용하기 때문에 비어 있습니다. 나는 처음부터 작동하는 _any_ 표준 명령에 만족할 것이다. – Rusty

답변

0

git-shell은 매우 제한적입니다. 자세한 내용은 man page을 참조하십시오.

기본적으로 푸시/끌어 오기 작업을 허용하기 위해 몇 가지 명령 만 실행할 수 있습니다. git 서버가 git 저장소와의 상호 작용에만 제한된 "안전한"SSH 액세스를 제공하는 방법입니다. 또한 기본적으로 대화 형 로그인 액세스가 없습니다.

git-shell을 사용하여 작업을 푸시/풀/페치하기 만하면 특별한 작업을 수행 할 필요가 없습니다. 그것은 이미 그 일을 할 수 있습니다. 특이한 일을하고 싶다면 커스텀 커맨드 만 정의하면됩니다.

당신은 ~/git-shell-commands/ 디렉토리가 있지만 비어 있다고 덧붙입니다. 디렉토리가 있으면 대화식 모드가 활성화되므로 git> 프롬프트가 표시됩니다. 그러나 명령 디렉토리가 비어 있으면 실행할 수있는 유효한 명령이 없음을 의미합니다. 이 시나리오에서 실행할 수있는 유일한 것은 exit입니다.

git-shell을 사용하려면 ~/git-shell-commands에 몇 가지 명령을 만들어야합니다. 정확히 무엇을 창조 할 것인가는 당신에게 달렸습니다. 예를 들어 list을 만들고이 스크립트가 서버에서 사용 가능한 리포지토리의 목록을 반환하도록 할 수 있습니다.

"표준 명령"을 사용하려면 주석에 표시 할 때 git-shell은 찾고있는 도구가 아니라고 생각합니다. 당신이 정기적 인 로그인 쉘을 찾는 것처럼 들린다.

예제 사용자 정의 명령은 다음과 같을 수 있습니다. 위에 제안한 list 명령의 구현 예입니다.

this blog post에는 몇 가지 예가 있습니다.

+0

> 기본적으로 push/pull 동작을 허용하기 위해 몇 가지 명령 만 실행할 수 있습니다. – Rusty

+0

그리고 그것이 내가 원하는 전부입니다. 그러한 명령에 대한 예를 들어 주시겠습니까? 불행히도 웹에서 찾지 못했습니다. – Rusty

+0

@Rusty 그들은 단지 쉘 스크립트 일뿐입니다. 내 대답에 대한 목록 명령의 아주 기본적인 예제를 추가했습니다. –