Git Bash에 명령을 추가하는 방법은 무엇입니까?


63

Windows 컴퓨터에서 작업 중이며 Git과 함께 제공되는 bash 쉘을 사용합니다. 그러나이 버전의 bash 쉘에는 많은 유틸리티가 없습니다.

이 쉘에 더 많은 명령을 어떻게 설치할 수 있습니까?


3
무엇을 시도 했습니까?
030

3
many utilities are missing in this version of bash shell. 사용하고 싶지 않은 명령을 추가하십시오.
030

3
기본적으로 포함되어 있지 않은 유틸리티를 사용하는 가장 최근의 쉬운 방법은 serverfault.com/a/872557/212162 를 참조하십시오 .
nextgentech

답변:


16

사용할 Git에는 msysgit 배포판 또는 Cygwin의 두 가지 버전이 있습니다 .

Cygwin 용 추가 유틸리티 설치

Cygwin 설치 (Cygwin을 사용한 경우)의 일부로 Git 만 설치했을 수도 있지만 Cygwin에는 setup.exe 라는 프로그램이있어 패키지를 추가 할 수 있습니다. 기본적으로 패키지 선택 창에 setup.exe도달 할 때 어떤 프로그램을 설치하고 실행 하기 만하면 됩니다. 여기 소개 는 프로세스를 자세히 설명하는 이미지와 함께 좋은 개요를 제공합니다.

Cygwin의 설치 관리자는 기존 설치가 있는지 알아낼 수있을 정도로 똑똑하며 설치를 취소하고 다시 시작하는 대신 패키지를 설치에 추가합니다.

MSYS

아마도 Cygwin이 아닌 다른 버전의 Git은 msysgit입니다. msysgit은 MinGW와 실제로 호환되지 않는 최소 Unix 환경을 설치하기 때문에 msysgit 옆에 MinGW 제품군을 설치해야합니다. MinGW 시작하기 페이지는 MinGW 설치 방법에 대한 자세한 개요를 제공합니다. 개인적으로 MinGW에 대한 경험이 없기 때문에 실제로 할 수있는 것은 지침을 참조하는 것입니다.

그런 다음 msysgit 설치를 MinGW로 마이그레이션해야합니다. 이것은 ( 여기 에서 가져온 ) 다음을 수행하여 수행 할 수 있습니다 . 다음 순서가 완료되면 MinGW가 Git 설치를 찾아야합니다.

cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share

2
궁금한 사람은 msysgit 패키지에서 cygwin 설치 프로그램을 사용하지 마십시오. 부분적으로 작동하지만 종속성을 해결하는 동안 환경을 크게 변경하는 sh.exe대체 합니다.
Chris Betti

5
git-bash가 cygwin 또는 msys를 사용하는지 어떻게 알 수 있습니까?
lmo

7
git-scm.com/download/win 에서 설치 한 것이 msysgit입니까, cygwin입니까? 편집 알아 냈습니다. 이 주석을 삭제하지 않고 msysgit이라고 말할 것입니다.
제한 속죄

3
@LimitedAtonement-같은 질문을 한 다른 독자 (나 같은 독자들)에게도 어떻게 이해했는지 말해주십시오.
Ioanna

4
uname -obash 터미널에서 실행 하여 설치 한 내용을 알 수 있습니다 .
Cliff Armstrong

5

최근 Windows 용 Git 설치에서는 추가 셸 스크립트 및 프로그램을 설치하는 것이 매우 쉽습니다.

내가 사용하는 자식을 설치하는 것이 좋습니다 chocolatey을 choco install git 당신이 자식 (및 chocolatey에 설치된 모든 다른 도구) 실행하여 업데이트 할 수 있기 때문에 choco upgrade all.

실행 파일을 C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin)에 넣으십시오 .

git-fresh의

파일 복사 자식 신선한 에를 C:\Program Files\Git\usr\bin.

adr-tools의

  1. 릴리스 페이지 에서 zip 패키지 다운로드
  2. 패키지 압축 풀기
  3. 모든 것을 복사 src/C:\Program Files\Git\usr\bin

4

msysgit을 사용하는 경우 간단한 옵션은 MinGW를 설치 한 다음 Git 설치에 사용중인 .bashrc 파일에 MINGW 경로를 추가하는 것입니다.

    PATH=$PATH:/MINGW/msys/1.0/bin

... MINGW는 MinGW를 설치 한 곳입니다.

그렇게하면 Git bash 설치에서 직접 MinGW 도구를 사용할 수 있으며 다른 bash 도구가 필요한 경우 MinGW에 설치하면됩니다.


1

https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058Wget, Hugo, Xpdf, make, Nano 에서 추가 Unix 단위 를 다운로드 할 수 있습니다 .

Wget

  • 영원한 지루한 창문에서 가장 최근의 wget 바이너리를 다운로드하십시오 (문서가 포함 된 zip 또는 exe로 제공)
  • zip을 다운로드 한 경우 모두 추출하십시오 (zip 유틸리티에 내장 된 창에 오류가 발생하면 7-zip 사용 ).
  • 파일 이름 바꾸기 wget64.exewget.exe필요한 경우.
  • 로 이동 wget.exe하십시오 Git\mingw64\bin\.

참고 : Git Bash에서 Wget을 사용하여 WARC 파일을 만들 때 몇 가지 버그가 발견되었습니다. Wget을 더 복잡하게 사용하려면 Cygwin을 대신 고려하십시오 .

휴고

Hugo 정적 사이트 생성기는 바이너리로 다운로드 할 수 있으며 설치 프로그램이 없습니다. 그것을 bin당신의 Git Bash 경로에 쉽게 추가합니다. 릴리스 페이지 에서 Windows 64 비트 버전을 가져옵니다 . 다운로드 압축을 푼 다음 디렉토리에 복사 hugo.exe하십시오 Git\mingw64\bin.

Xpdf

Xpdf 는 PDF 파일 조작을위한 편리한 유틸리티입니다.

하다

  • ezwinports로 이동 하십시오 .
  • 다운로드 make-4.1-2-without-guile-w32-bin.zip(길이없는 버전을 구하십시오).
  • 압축을 풉니 다.
  • Git\mingw64\폴더를 병합 할 때 내용을 복사 하되 기존 파일을 덮어 쓰거나 바꾸지 마십시오.

나노

2018 년 현재 Git Bash의 최신 버전에는 Nano가 포함되어 있으므로 불필요합니다!

  • Nano win32-support 페이지 에서 Nano 바이너리를 다운로드 하십시오. (이 글을 쓰는 시점에서) .exe파일 이름 만 있으면 됩니다 nano-git-0d9a7347243.exe.
  • 파일 이름을로 바꾸고 디렉토리로 nano.exe복사하십시오 mingw64\bin.
  • 이 버전의 Nano는 Git Bash에서만 작동하지 않지만 winpty예를 들어을 사용하여 호출 할 수 있습니다 winpty nano test.txt.

1

오늘 일한 꽤 간단한 답변을 찾았습니다 rsync.

  1. Windows 용 git bash 설치
  2. futureware.atrsync 에서 다운로드 *
  3. 어디서나 추출, 내가 선택 C:\rsync-3.1.2-2-x86_64.pkg
  4. bin 경로를 시스템 경로 상단에 추가하십시오.

나는 futureware.at 뒤에 누가 있는지 모르겠다. 나는 더 많은 주요 소스에 링크하는 것을 선호한다.


@ mike 귀하의 답변은 cygwin64를 설치하지 않았다는 점을 제외하고는 비슷합니다.
geneorama

1

다음을 시도하고 emacs를 git-bash에 설치했습니다. 1. msys2를 어딘가에 설치하십시오 (같은 컴퓨터 일 필요는 없음). 2. msys2에서 다음을 실행하십시오.

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. emacs.tar.gzgit-bash에서 액세스 할 수있는 위치로 복사 한 다음 git-bash 아래로 복사하십시오 .

    tar zxf emacs.tar.gz -C / emacs

그게 다야, 행운을 빌어

첫 번째 게시물 후에 다른 컴퓨터를 사용해 보았지만 작동하지 않았습니다. git-bash에 일부 dll이 누락되어 있습니다. 그런 다음 깨끗한 가상 머신에서 다음 단계를 테스트했습니다.

  1. 설치 msys2-x86_64-20180531힘내-2.19.1-64 비트 .

  2. msys2를 업데이트하고 msys64 콘솔을 열고 다음을 실행하십시오.

    pacman -Syyu
    

    프롬프트가 표시되면 msys64 콘솔을 닫은 후 위 명령을 다시 실행하십시오.

  3. 이전 단계로 emacs 파일을 가져옵니다 (msys64에서 다음을 실행).

    cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
    mv emacs.tar.gz /c/tmp
    

    추신 : 한 번 / tmp 대신 / d / tmp에서 위의 단계를 시도했지만 emacs를 설치할 수 없었습니다.

  4. git-bash를 열고 emacs 파일을 추출하십시오 :

    cd /c/tmp
    tar zxf emacs.tar.gz -C /
    

    공유 라이브러리 "?"가 누락되었다고 불평합니다. 지금 이맥스를 실행하려고합니다. "?" 읽을 수있는 공개되지 않습니다

  5. msys64로 돌아가서 msys2 dll을 얻습니다.

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. git-bash에서 dll과 msys를 비교하십시오.

    cd /c/tmp
    git init
    git add 1.txt && git commit
    ls --color=never /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
    git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
    

    제 경우에는 diff_dlls.txt에 26 개의 dll이 있습니다.

  7. dll을 msys64에서 git-bash로 복사하십시오.

    msys64에서 :

    mkdir /c/tmp/dlls
    cat /c/tmp/diff_dlls.txt | xargs -I {} cp /bin/{} /c/tmp/dlls
    

    git-bash에서 :

    cp /c/tmp/dlls/* /bin
    
  8. 모든 작업이 완료되었습니다. 이제 emacs는 git-bash에서 실행됩니다. 26 개의 dll 중 일부는 필요하지 않을 수도 있지만 디스크 공간 대신 ​​시간을 절약하고 싶습니다.


0

Windows 용 Git bash (MinGW64)를 사용하는 경우 rsync를 추가하기가 매우 어려웠습니다. 오류가 계속 발생했습니다 : dup () 입력 / 출력 / 오류 실패

대신 Cygwin을 사용하면 결국 효과가있었습니다.

Windows 용 Gitbash에서 rysnc를 사용하는 단계

  1. Windows 용 gitbash 설치
  2. cygwin64 설치
  3. cygwin 경로를 Windows 경로 변수에 추가하십시오.

    Windows-> 시스템-> 고급 설정-> 환경 변수

    C : \ cygwin64 \ bin \에 대한 경로 추가

  4. gitbash 닫기 및 다시 열기 이제 gitbash는 cygwin \ bin에서 rsync.exe를 찾습니다.
  5. cygwin1.dll에 대해 호환되지 않는 버전 오류가 발생했습니다

    *** 치명적인 오류-cygheap 기본 불일치 감지

  6. 일부는 재부팅으로이 문제가 해결 될 것이라고 말했지만 그렇지 않았습니다.
  7. 버전 오류를 해결하기 위해 이전 버전의 cygwin에서 cygwin \ bin 디렉토리를 복사했습니다-버전 1.7.30 작동


0

스크립트를 작성하여 git-bash의 기능 수를 확장하고 ~/.bash_profile파일 에서 정의하여 호출 할 수 있습니다.

watch명령 을 사용하려면 이 스크립트를 다음에 추가 할 수 있습니다 ~/.bash_profile.

https://gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda

ARGS="${@}"
clear;
while(true); do
  OUTPUT=`$ARGS`
  clear
  echo -e "${OUTPUT[@]}"
done

함수 안에 넣습니다.

watch() {
  ARGS="${@}"
  clear;
  while(true); do
    OUTPUT=`$ARGS`
    clear
    echo -e "${OUTPUT[@]}"
  done
}

파일을 저장하고 실행하자마자 source ~/.bash_profile명령의 출력을 볼 수 있어야합니다.



-1

추가 rsync

mysys 에서 직접 rsync 파일을 다운로드 할 수 있습니다 . rsync에 대한 페이지를 검색하고 최신 날짜 / 최신 버전 번호가있는 페이지를 선택하십시오.
다음을 통해이 파일의 압축을 풉니 다 ( rsync-3.1.3-1-x86_64.pkg.tar.xz).

tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz

그런 다음 rsync at를 복사 ./usr/bin/rsync.exe 하여 Git 설치의 / usr / bin 폴더에 붙여 넣습니다.
내 컴퓨터에서C:/Program Files/Git/usr/bin/

다음을 통해 Git 설치 위치를 확인할 수 있습니다

where git

다음은 rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 의 3.1.3-1 버전에 대한 링크와 함께 지침이있는 hisplan의 요지 리포지토리입니다 .

참고 : rsync-3.1.3-1-x86_64.pkg.tar.xz권한이 허용하지 않기 때문에 파일을 Git 폴더에 직접 압축을 풀 수 없습니다 . 그리고 Git Bash에는 sudo가 없습니다.
그러나 문제없이 다운로드 폴더에 직접 압축을 풀 수 있습니다. 어쨌든 파일
만 필요하기 때문에 마찬가지 rsync.exe입니다.

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