Jak ustawić domyślnie na inny katalog zamiast katalogu domowego

180

Rozwijam się na maszynie z systemem Windows. Jedyne miejsce, którego potrzebuję do wiersza poleceń Linuksa, to Git Bash. Problem polega na tym: kiedy go otwieram, jestem w katalogu domowym. Muszę zmienić katalog na mój obszar roboczy, na przykład:

cd ../../../d/work_space_for_my_company/project/code_source

Czy mogę owinąć to w plik .sh, aby nie musiałem już pisać go ręcznie? To powinno być proste, ale nie mam wiedzy na temat wiersza poleceń systemu Linux. Jestem bardzo wdzięczny, jeśli możesz poprowadzić mnie przez proces tworzenia tego pliku .sh.

Xi Zhang
źródło
5
Poniższe odpowiedzi są odpowiednie, aby naprawić to na stałe, jednak nawet bez nich nie powinieneś za każdym razem robić tego. Git Bash zawiera historię poleceń, która utrzymuje się między sesjami (w przeciwieństwie do konsol Windows), więc za każdym razem, gdy chcesz powtórzyć to polecenie, zamiast wpisywać je ponownie, po prostu wpisz Ctrl-r, a następnie część polecenia, np. ctrl-r../da polecenie pojawi się, a następnie wpisz enter. Zasadniczo poświęć kilka minut na naukę korzystania z historii poleceń, a następnie będziesz z niej często korzystać, powtarzając różne polecenia git.
Stephen Hosking
Do waszej informacji jest alternatywa bash WSL C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(lub jeśli używasz cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data), w której -idziałają klawisze strzałek
KCD

Odpowiedzi:

101

Po prostu napisz ten wiersz do pliku „cd.sh”, a następnie zrób to z wiersza poleceń powłoki:

. ./cd.sh

Lub możesz utworzyć alias lub funkcję w swoim $HOME/.bashrcpliku:

foo() { cd /d/work_space_for_my_company/project/code_source ; }

Jeśli nazwa katalogu zawiera spacje lub inne metaznaki powłoki, potrzebne będą znaki cudzysłowu; dodanie ich nie zaszkodzi, nawet jeśli nie będą konieczne:

foo() { cd "/d/Work Space/project/code_source" ; }

(Zauważ, że pominąłem ../../..; nie potrzebujesz.)

EDYCJA: Jeśli dodasz linię

foo

do twojej .bashrcpo definicji funkcji, twoja powłoka uruchomi się w tym katalogu. Lub możesz po prostu użyć cdpolecenia bezpośrednio w swoim, .bashrcjeśli nie będziesz musiał później korzystać z tej funkcji.

(Nazwa foojest tylko przykładem; powinieneś wybrać bardziej znaczącą nazwę).

Keith Thompson
źródło
5
Jak wskazuje @orip, równie dobrze możesz zrobić to cdw .bashrc. Jeśli jednak uaktywnisz tę funkcję, możesz użyć polecenia ponownie później, po przejściu do innego katalogu.
Keith Thompson,
2
Aby wyjaśnić „../../ ..”, podane polecenie określa ścieżkę względem bieżącego katalogu; "../../../d/work_space_for_my_company/project/code_source"idzie o trzy poziomy wyżej niż bieżący katalog (który tak się składa $HOME), następnie do „d”, a następnie do „pracy ...”. Środowisko powłoki git bash "/d"odnosi się do tego, co wywołuje system Windows "D:\". Użycie bezwzględnej nazwy ścieżki "/d/work_space_for_my_company/project/code_source"jest prostsze i nie zależy od tego, gdzie $HOMEsię znajdujesz.
Keith Thompson,
2
Gdzie mogę znaleźć ten .bashrcplik?
ptamzz
2
@ptamzz: normalnie .bashrcplik zostanie utworzony w twoim katalogu domowym, gdy twoje konto zostanie skonfigurowane. Jeśli nie, możesz go stworzyć samodzielnie.
Keith Thompson
1
Gdzie znajdujesz „cd.sh”? A kiedy mówisz katalog domowy. Czy mówisz o katalogu domowym dla bieżącej aplikacji, czy?
WowBow
374

Oto inne rozwiązanie dla systemu Windows: Kliknij prawym przyciskiem myszy skrót Windows, którego używasz do uruchomienia git bash, i kliknij Właściwości. Zmień wartość „Rozpocznij w” na żądaną ścieżkę obszaru roboczego.

Edycja: Sprawdź również, czy wartość docelowa nie obejmuje opcji --cd-to-home, jak zauważono w komentarzach poniżej.

David Siegal
źródło
13
jedynym problemem związanym z tym rozwiązaniem jest to, że nie ustawiasz domyślnej ścieżki do katalogu domowego, do której dostęp jest uzyskiwany za pomocą~
worc
67
To zadziałało dla mnie. Ponadto musiałem również usunąć opcję --cd-to-home w poleceniu uruchamiania.
ChinLoong,
2
Jeśli masz przypięty skrót na pasku zadań systemu Windows 7, musisz dwukrotnie kliknąć prawym przyciskiem myszy program, zgodnie z sugestią lifehacker.com/5475752/…
man
11
Zgodzono się, że jest to najprostsze rozwiązanie, ale absolutnie należy je zmienić, tak aby obejmowało usunięcie „--cd-to-home” w celu. Bez tej ostatniej zmiany zawsze będziesz domyślnie w folderze C: \ Users [nazwa] (chyba że zmodyfikowałeś konfigurację).
Zeus56
2
Aby to wyjaśnić, w skrócie powinien być „Cel”, %WINDIR%\System32\bash.exea „Rozpocznij w” C:\Templub dowolna ścieżka.
demoncodemonkey
45

Dodaj wiersz do .bashrcpliku w katalogu domowym (utwórz plik, jeśli nie istnieje):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
źródło
5
Wiem, że jestem bardzo spóźniony na imprezę, ale dziękuję za zatrzymanie tej bzdury! :)
Felipe Gerard
1
To było idealne. Poszedł do mojego .bashrc.locali dodał cd ~/Desktop/repos/;na dole. Działa jak urok! zmiana dna .bashrcrównież by działała.
Michael Dimmitt
Właśnie utworzyłem plik .bashrc w ~ i następnym razem, gdy otworzyłem git Bash, narzekałem, że nie mam .bash_profile i innego pliku, więc stworzyłem je dla mnie. A po ponownym otwarciu git Bash zadziałało bez kwiatów!
Pini Cheyni
usuń opcję --cd-to-home w poleceniu uruchamiania (Właściwości skrótu)
telebog
38

Używam ConEmu (zdecydowanie zalecane w systemie Windows), gdzie mam zadanie uruchomienia Git Bash jak

wprowadź opis zdjęcia tutaj

Zwróć uwagę na przycisk „Startup dir ...” na dole. Dodaje a -new_console:d:<path>do polecenia uruchamiania Git Bash. Wskaż, gdziekolwiek chcesz

Juri
źródło
Dzięki za udostępnienie niestandardowego zadania nie mogłem go uruchomić. Jak mogę potem uruchomić proste polecenia systemu Windows, takie jak pingowanie Google.com?
Iman Mohamadi
1
@ImanMohamadi W przypadku takich rzeczy wolę tworzyć skrypty z tobą dodawać do zmiennej PATH env, aby można było wykonywać polecenia cmd, takie jak p-gpingowanie google itp.
Juri
23

To może ci pomóc.

opis obrazu

  1. Kliknij prawym przyciskiem myszy git bash -> właściwości
  2. W zakładce Skrót -> Rozpocznij w polu -> wprowadź ścieżkę zdefiniowaną przez użytkownika
  3. Upewnij się, że pole Cel nie zawiera --go-to-homelub będzie kontynuowane w katalogu określonym w zmiennej HOME

Otóż ​​to.

Krish
źródło
Próbowałem tego, ale nie działa, gdy ścieżka znajduje się na innym dysku, takim jak d: \ projects \ test
Ray
Windows 10 nie pokazuje tej zakładki dla git bash, ale możesz zhakować go za pomocą tego małego 3 wiersza kodu, zapisz go w jakimś ** pliku nietoperza, 1. d: 2. cd data 3.git bashjeśli klikniesz dwukrotnie plik nietoperza, a następnie otworzy się w wybranej lokalizacji
Krish
1
Spójrz na to Targetpole, nie ma parametrów. Domyślnie zawiera, -go-to-homektóre należy usunąć z tego miejsca, aby działało.
Kurapika
1
Działa dla mnie Cel: „C: \ Program Files \ Git \ git-bash.exe” (WAŻNE) Rozpocznij za: d: /
xampp
1
Działa również dla mnie z tym samym celem, co @ raftaar1191 (usunąłem opcję „--cd-to-home”) i skonfigurowałem wiersz „start w” do „C: \ wamp \ www”, bardzo przydatne!
nayfun
10

Właśnie zmieniłem ustawienie „Rozpocznij za” ikony skrótu na: %HOMEDRIVE%/xampp/htdocs/

Francis
źródło
9

Zrobi to, zakładając, że tak się dzieje za każdym razem, gdy otwierasz wiersz poleceń:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

Teraz, kiedy otworzysz powłokę, przeniesie ona trzy katalogi z domu i zmieni się na code_source.

Ten kod po prostu dołącza wiersz „cd ../../../d/work_space_for_my_company/project/code_source” do pliku o nazwie „.bashrc”. „>>” tworzy plik, jeśli nie istnieje, a następnie dołącza. Plik .bashrc jest użyteczny do uruchamiania poleceń podczas uruchamiania / logowania (np. Ładowanie modułów itp.)

Usagi
źródło
9

(Przeczytaj ostrzeżenie poniżej)

Naprawdę prostym sposobem na zrobienie tego w systemie Windows (działa z git bash, ewentualnie innymi) jest utworzenie zmiennej środowiskowej o nazwie HOME, która wskazuje żądany katalog domowy.

  1. Kliknij prawym przyciskiem myszy na moim komputerze i wybierz właściwości
  2. Wybierz zaawansowane ustawienia systemu (lokalizacja zależy od wersji systemu Windows)
  3. We właściwościach systemu wybierz kartę zaawansowaną
  4. Na karcie zaawansowane wybierz Zmienne środowiskowe (dolny przycisk)
  5. Pod „zmienną systemową” sprawdź, czy masz już zmienną o nazwie HOME. Jeśli tak, edytuj tę zmienną, podświetlając nazwę zmiennej i klikając edytuj. Ustaw nazwę nowej zmiennej na żądaną ścieżkę.
  6. Jeśli program HOME jeszcze nie istnieje, kliknij „nowy” pod zmiennymi systemowymi i utwórz nową zmienną o nazwie HOME, której wartość jest pożądaną ścieżką.

Zmienna środowiskowa

UWAGA: Może to zmienić sposób działania innych rzeczy. Na przykład dla mnie zmienia się, gdzie mieszkają moje pliki konfiguracyjne .ssh. W moim przypadku chciałem, aby moim domem był U: \, ponieważ to jest moje główne miejsce, w którym umieszczam ustawienia projektu i ustawienia aplikacji (tj. Tak naprawdę to mój katalog „domowy”).

EDYCJA 23 czerwca 2017 r .: Ta odpowiedź wciąż otrzymuje sporadyczne głosy poparcia i chcę ostrzec ludzi, że chociaż może to „zadziałać”, zgadzam się z @AnthonyRaymond, że nie jest to zalecane. Jest to bardziej poprawka tymczasowa lub poprawka, jeśli nie obchodzi Cię, czy inne rzeczy się zepsują. Zmiana domu nie spowoduje aktywnych uszkodzeń (takich jak usunięcie dysku twardego), ale może później spowodować podstępne irytacje. Kiedy zaczniesz mieć irytujące problemy na drodze, prawdopodobnie nie pamiętasz tej zmiany ... więc prawdopodobnie później będziesz drapał się w głowę!

genorama
źródło
Nie rozumiem, dlaczego zmiany sugerowane przez @asalle (głównie sugerujące, że możesz również edytować zmienne systemowe użytkownika) zostały odrzucone przez Bamsworld fish_ball i greg-449, zmiany wydawały się uzasadnione.
genorama
To zdecydowanie zbyt destrukcyjny sposób, by być dobrym pomysłem. Może wpływać na wiele innych aplikacji, a nawet na okna. Nie jest to zalecane
Anthony Raymond
@AnthonyRaymond Jak zauważyłem, zmiana „HOME” może mieć inne konsekwencje, jednak nie powiedziałbym, że jest to destrukcyjne. W rzeczywistości może być korzystne, jeśli chcesz, aby Twój DOM był konkretną lokalizacją lub jeśli inna aplikacja ustawiła HOME na niepożądaną lokalizację. W każdym razie myślę, że ta odpowiedź rzuca nieco światła na to, jak ustawiony jest katalog domyślny.
genorama,
@AnthonyRaymond, chociaż zgadzam się, że w kontekście tego pytania ustalenie domu dla konkretnego projektu (np. ../../../d/work_space_for_my_company/project/code_source) Jest złym pomysłem. Ogólnie rzecz biorąc, są chwile, w których HOME nie musi być/c/Users/[current user name]/
genorama
Jeśli chcesz, aby specjalny folder wskazywał inną lokalizację, utwórz dowiązanie symboliczne. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx Nie mamy sposobu, aby dowiedzieć się, który program używa zmiennej HOME, więc wydaje mi się, że jest to trochę destrukcyjne.
Anthony Raymond
7

Kliknij prawym przyciskiem myszy link aplikacji Git Bash, przejdź do Właściwości i zmodyfikuj lokalizację Rozpocznij w, tak aby była miejscem, od którego chcesz zacząć.

Michael Stramel
źródło
5

Z przypiętego elementu menu Start w systemie Windows 10

  1. Otwórz lokalizację pliku przypiętego skrótu
  2. Otwórz właściwości skrótu
    1. Usuń --cd-to-homearg
    2. Zaktualizuj Start inścieżkę
  3. Ponownie przypnij do menu startowego poprzez ostatnio dodane

otwórz zrzut ekranu lokalizacji pliku

otwarty zrzut ekranu skrótów aplikacji

zaktualizuj zrzut ekranu z skrótami

przypnij przez ostatnio dodane screnshot


Dzięki wszystkim pozostałym odpowiedziom, jak to zrobić! Chciał dostarczyć instrukcje Win 10 ...

spottedmahn
źródło
4

W przypadku systemu Windows: wykonaj następujące kroki:

  1. Przejdź do strony głównej systemu Windows> kliknij prawym przyciskiem myszy aplikację „Git Bash”.
  2. Właściwości> Skrót
  3. Zmień te dwa ustawienia: (a) Usuń - cd-to-homez target (b) Wpisz ścieżkę folderu, którą chcesz zacząć od git w „Rozpocznij w”.

To działało dla mnie :)

Pani Nehaluddin Haider
źródło
3

Jeśli chcesz mieć listę wyboru projektów po otwarciu GIT bash:

  • edytuj ppathw nagłówku kodu ścieżkę projektów git , umieść ten kod w pliku .bashrc i skopiuj go do katalogu $ HOME (w Win Vista / 7 jest to zwykle c: \ Users \ $ YOU )

.

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ ${#PROJECTS[@]} -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
  • możesz chcieć ustawić ten plik jako wykonywalny w GIT bash chmod + x .bashrc (ale prawdopodobnie jest redundantny, ponieważ plik ten jest przechowywany w systemie plików NTFS )
s1w_
źródło
2

Mój skrót do Git Bash w systemie Windows narzekał, gdy włożyłem płytę CD do mojego katalogu roboczego do ~ / .bashrc

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

Więc git utworzył ten plik .bash_profile:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

Która wykonuje pracę.

Alternatywnie możesz po prostu ponownie usunąć plik .bashrc i umieścić polecenie cd w pliku .bash_profile:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

Gdy to zrobisz, możesz zamknąć okno i otworzyć je ponownie za pomocą skrótu na pulpicie, a monit poinformuje cię, że twoja lokalizacja jest teraz tam, gdzie chcesz - wygląda na to, że tak jest w moim przypadku:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
dr. RAI
źródło
2

Jeśli wpiszesz to polecenie: echo cd d:/some/path >> ~/.bashrc

Dołącza linię cd d:/some/pathdo .bashrc. >>Tworzy plik, jeśli nie istnieje, a następnie dołącza.

mtpultz
źródło
1

to musi być cd d:/work_space_for_....

bez :tego nie działa dla mnie

larsbo
źródło
1

Innym rozwiązaniem dla użytkowników systemu Windows będzie skopiowanie pliku Git Bash.lnk do katalogu, w którym chcesz zacząć, i uruchomienie go z tego miejsca.

pominąć405
źródło