Як за замовчуванням інший каталог замість домашнього каталогу


180

Я розвиваюсь на машині Windows. Єдине місце, яке мені потрібно для командного рядка Linux - це Git Bash. Проблема полягає в тому, що: коли я його відкриваю, я перебуваю в домашньому каталозі. Я повинен змінити каталог в робочу область, наприклад:

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

Чи можу я загорнути це у .sh-файл, щоб мені більше не потрібно було його вводити? Це повинно бути простим, але я знаю нульові знання про командний рядок Linux. Мені дуже вдячний, якщо ви можете провести мене, як створити цей .sh-файл.


5
Наведені нижче відповіді правильні для того, щоб виправити це назавжди, однак навіть без цього вам не слід це робити щоразу. Git Bash включає історію команд, яка зберігається між сеансами (на відміну від консолей Windows), тому щоразу, коли ви хочете повторити цю команду, замість того, щоб вводити її знову, просто введіть Ctrl-r, а потім частину команди, наприклад. ctrl-r../dі з'явиться команда, а потім введіть enter. Взагалі, вкладіть кілька хвилин у те, як навчитися використовувати історію команд, і тоді ви будете багато використовувати, як ви повторюєте різні команди git.
Стівен Хоскінг

FYI - ось альтернатива WSL bash C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(або якщо ви використовуєте cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data), де -iзмушує працювати клавіші зі стрілками
KCD

Відповіді:


101

Просто запишіть цей рядок у файл "cd.sh", після чого зробіть це з підказки:

. ./cd.sh

Або ви можете створити псевдонім або функцію у своєму $HOME/.bashrcфайлі:

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

Якщо ім'я каталогу включає пробіли чи інші метахарактеристики оболонки, вам знадобляться лапки; додавати їх, навіть якщо вони не потрібні, не завадить:

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

(Зверніть увагу, що я пропустив ../../..; вам це не потрібно.)

EDIT: Якщо ви додасте рядок

foo

до вашого .bashrcпісля визначення функції, ваша оболонка запуститься в цьому каталозі. Або ви можете просто скористатися cdкомандою безпосередньо у своєму, .bashrcякщо пізніше вам не потрібно буде використовувати цю функцію.

(Ім'я foo- лише приклад; вам слід вибрати більш значуще ім’я.)


5
Як вказує @orip, ви також можете просто зробити це cdу своєму .bashrc. Але якщо ви зробите це функцією, ви можете використовувати команду знову пізніше, після того, як ви перейдете на інший каталог.
Кіт Томпсон

2
Щоб пояснити "../../ ..", команда, яку ви подали, вказує шлях відносно вашого поточного каталогу; "../../../d/work_space_for_my_company/project/code_source"піднімається на три рівні від поточного каталогу (що трапляється $HOME), потім вниз до "d", потім вниз до "робота ...". Середовище оболонки git bash має "/d"посилання на те, що викликає Windows "D:\". Використовувати абсолютну назву шляху "/d/work_space_for_my_company/project/code_source",, простіше і не залежить від того, де ви $HOMEбуваєте.
Кіт Томпсон

2
Де я можу знайти цей .bashrcфайл?
ptamzz

2
@ptamzz: Зазвичай .bashrcфайл буде створений у вашому домашньому каталозі, коли ваш обліковий запис налаштовано. Якщо ні, ви можете створити його самостійно.
Кіт Томпсон,

1
Де ви знаходите "cd.sh"? І коли ви говорите домашній каталог. Ви говорите про домашній dir для поточного додатка чи ??
WowBow

374

Ось ще рішення Windows-ish: Клацніть правою кнопкою миші на ярлик Windows, який ви використовуєте для запуску git bash, і натисніть Властивості. Змініть значення "Почати в" на потрібний шлях робочої області.

Редагувати: також переконайтесь, що значення Target не включає параметр --cd-to-home, як зазначено в коментарях нижче.


13
Єдина проблема з цим рішенням полягає в тому, що ви не встановлюєте шлях до домашнього каталогу за замовчуванням, той, до якого звертаєтесь~
worc

67
Це працювало для мене. Крім того, мені також довелося видалити параметр --cd-to-home в команді запуску.
ChinLoong

2
У разі , якщо у вас є ярлик покладав на панелі завдань Windows 7, вам потрібно права кнопка миші два рази за програмою в відповідно до пропозицією lifehacker.com/5475752 / ...
манат

11
Погодився, що це найбільш пряме рішення, але його слід вносити поправки, щоб включити видалення "--cd-to-home" в ціль. Без останньої зміни ви завжди будете за замовчуванням папкою C: \ Users [ім'я] (якщо ви не змінили налаштування, яке є).
Зевс56

2
Для уточнення, у ярлику має бути "Ціль", %WINDIR%\System32\bash.exeа "Почати в" має бути C:\Tempбудь-який шлях, який ви хочете.
demoncodemonkey

45

Додайте рядок до .bashrcфайлу в домашній директорії (створіть файл, якщо його немає):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc

5
Я знаю, що я дуже спізнився на вечірку, але дякую, що зупинив функцію дурниць! :)
Феліпе Джерард

1
Це було ідеально. Пішов до моїх .bashrc.localі додав cd ~/Desktop/repos/;до дна. Працював як шарм! зміна нижньої частини .bashrcтакож буде працювати.
Майкл Діммітт

Я щойно створив файл .bashrc в ~ і наступного разу, коли я відкрив git Bash, він скаржився, що у мене немає .bash_profile та іншого файлу, тому він створив їх для мене. А після повторного відкриття git Bash, він працював без квітів!
Піні Чейні

видаліть опцію --cd-to home до команди запуску (ярлики властивостей)
telebog

38

Я використовую ConEmu (настійно рекомендується в Windows), де у мене є завдання запустити Git Bash, як

введіть тут опис зображення

Зверніть увагу на кнопку "Startup dir ..." внизу. Він додає a -new_console:d:<path>до команди запуску Git Bash. Позначте, де вам подобається


Дякуємо, що поділилися спеціальним завданням, я не зміг його працювати. Як я можу після цього запускати прості команди Windows, як-от pinging Google.com?
Іман Мохамаді

1
@ImanMohamadi Для таких речей я б краще створив сценарії з вами, додавши до змінної PATH env st u, можна виконати cmds, як p-gдля pinging google і т. Д. ...
Juri

23

Це може вам допомогти.

опис зображення

  1. Клацніть правою кнопкою миші на git bash -> властивості
  2. На вкладці Скорочення -> Почати в полі -> введіть визначений користувачем шлях
  3. Переконайтесь, що поле Ціль не містить --go-to-homeабо воно продовжуватиметься запускатися в каталозі, вказаному у вашій змінній HOME

Це воно.


Я спробував це, але це не спрацьовує, коли шлях знаходиться в іншому приводі, як d: \ projects \ test
Ray

У Windows 10 не відображається ця вкладка для git bash, але ви можете зламати її за допомогою цього невеликого 3 рядка коду, збережіть його в якомусь ** файлі bat, 1. d: 2. cd data 3.git bashякщо двічі клацніть файл bat, то він відкриється в потрібному місці
Krish

1
Подивіться це Targetполе, воно не має параметрів. За замовчуванням містить, -go-to-homeщо має бути стерто звідти, що працює.
Курапіка

1
Це працює для мене Мета: "C: \ Program Files \ Git \ git-bash.exe" (ВАЖЛИВО) Початок: d: / xampp / htdocs /
raftaar1191

1
Він також працює для мене з тією ж ціллю, що і @ raftaar1191 (я видалив опцію "--cd-to-home"), і я налаштував рядок "start in" на "C: \ wamp \ www", дуже корисно!
nayfun

10

Я також просто змінив налаштування "Почати в" піктограми ярлика на: %HOMEDRIVE%/xampp/htdocs/


9

Це буде зроблено, якщо ви хочете, щоб це сталося щоразу, коли ви відкриваєте командний рядок:

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

Тепер, коли ви відкриєте оболонку, вона перемістить три довідники з дому та зміниться на code_source.

Цей код просто додає рядок "cd ../../../d/work_space_for_my_company/project/code_source" до файлу з назвою ".bashrc". ">>" створює файл, якщо його не існує, а потім додає. Файл .bashrc корисний для запуску команд під час запуску / входу (тобто завантаження модулів тощо)


9

(Прочитайте попередження нижче)

Дійсно простий спосіб зробити це в Windows (працює з git bash, можливо, в інших) - це створити екологічну змінну під назвою HOME, яка вказує на потрібний домашній каталог.

  1. Клацніть правою кнопкою миші на моєму комп’ютері та виберіть властивості
  2. Виберіть розширені налаштування системи (розташування залежить від версії Windows)
  3. У межах системних властивостей виберіть вкладку «Розширений»
  4. На вкладці "Додаткові" виберіть "Змінні середовища" (нижня кнопка)
  5. У розділі "системна змінна" перевірте, чи немає у вас змінної під назвою HOME. Якщо це так, відредагуйте цю змінну, виділивши ім'я змінної та натиснувши редагувати. Зробіть нову назву змінної потрібним шляхом.
  6. Якщо HOME вже не існує, натисніть "нове" під системними змінними та створіть нову змінну під назвою HOME, значення якої - бажаний шлях.

Екологічна змінна

ПРИМІТКА. Це може змінити спосіб роботи інших речей. Наприклад, для мене це змінюється там, де живуть мої .ssh-конфігураційні файли. У моєму випадку я хотів, щоб мій дім був U: \, тому що це моє головне місце, що я розміщував проектні роботи та налаштування додатків (тобто це справді мій «домашній» каталог).

EDIT 23 червня 2017 року. Ця відповідь продовжує отримувати періодичні результати, і я хочу попередити людей, що, хоча це може "працювати", я погоджуюся з @AnthonyRaymond, що це не рекомендується. Це скоріше тимчасове виправлення або виправлення, якщо вам не байдуже, якщо інші речі порушуються. Змінення будинку не спричинить активних збитків (наприклад, видалення жорсткого диска), але це, швидше за все, пізніше може викликати підступні роздратування. Коли у вас почнуть виникати набридливі проблеми в дорозі, ви, мабуть, не згадаєте про цю зміну ... так що ви, швидше за все, будете чухати голову пізніше!


Я не розумію, чому зміни, запропоновані @asalle (в основному передбачають, що ви також можете редагувати змінні системи користувача), були відхилені Bamsworld fish_ball та greg-449, зміни видалися розумними.
генеорама

Це занадто руйнівний спосіб, щоб бути хорошою ідеєю. Це може вплинути на безліч інших додатків і навіть вікон. Не рекомендується
Ентоні Реймонд

@AnthonyRaymond Як я зазначив, зміна "ДОМАШНЯ" може мати інші наслідки, проте я б не сказав, що це обов'язково деструктивно. Насправді, це може бути корисно, якщо ви хочете, щоб ваш ДОМАШНИЙ був певним місцеположенням або якщо інша програма встановила HOME на небажане місце. У будь-якому випадку, я думаю, що ця відповідь проливає трохи світла на те, як встановлено каталог за замовчуванням.
генеорама

@AnthonyRaymond, хоча я згоден, що в контексті цього питання встановлення певного проекту (наприклад ../../../d/work_space_for_my_company/project/code_source) є поганою ідеєю. Взагалі кажучи, бувають випадки, коли /c/Users/[current user name]/
ДОМОВО

Якщо ви хочете, щоб спеціальна папка вказувала на інше місце, створіть симпосилання. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx У нас немає ніякого способу знати, яка програма використовує змінну HOME, тому я відчуваю, що вона деструктивна.
Ентоні Реймонд

7

Клацніть правою кнопкою миші посилання програми Git Bash, перейдіть до "Властивості" та змініть "Почати в розташуванні", щоб бути місцем, з якого ви хочете починати.


5

З закріпленого пункту меню Пуск у Windows 10

  1. Відкрийте розташування файлу закріпленого ярлика
  2. Відкрийте властивості ярлика
    1. Видалити --cd-to-homeарг
    2. Оновити Start inшлях
  3. Повторно закріпіть для запуску меню за допомогою нещодавно доданого

відкрити скріншот розташування файлу

відкрити скріншот власних ярликів

оновити скріншот власного екрана

контактний за допомогою нещодавно доданого гвинта


Дякую всім іншим відповідям, як це зробити! Хотів надати інструкції Win 10 ...


4

Для вікон: виконайте ці кроки-

  1. Перейдіть до домашньої програми Windows> Клацніть правою кнопкою миші на додаток "Git Bash".
  2. Властивості> Ярлик
  3. Змініть ці два параметри: (a) Видалити - cd-to-homeз target (b) Введіть шлях до папки, який ви хочете розпочати з git, у "Почати в".

Це працювало для мене :)


3

Якщо ви хочете мати список вибору проектів, коли ви відкриєте GIT bash:

  • відредагуйте ppathв заголовку коду на свій шлях git projects , введіть цей код у файл .bashrc та скопіюйте його у ваш $ HOME dir (у програмі Win Vista / 7 зазвичай c: \ користувачів \ $ 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
  • ви можете встановити цей файл як виконуваний всередині GIT bash chmod + x .bashrc (але він, ймовірно, зайвий, оскільки цей файл зберігається у файловій системі ntfs )

2

Мій ярлик Git Bash для Windows скаржився, коли я помістив компакт-диск у свою робочу директорію в ~ / .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.

Так git створив цей .bash_profile:

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

Яка робота.

Крім того, ви можете просто видалити .bashrc ще раз і помістити команду cd у .bash_profile:

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

$ cat ~/.bash_profile
cd Source/Repos

Після цього ви можете закрити Вікно та знову відкрити його за допомогою ярлика робочого столу, і підказка скаже вам, що ваше місцезнаходження зараз там, де ви цього хотіли - виглядає так, що це мій випадок:

Administrator@raptor1 MINGW64 ~/Source/Repos
$

2

Якщо ви введете цю команду: echo cd d:/some/path >> ~/.bashrc

Додає рядок cd d:/some/pathдо .bashrc. >>Створює файл , якщо він не існує , а потім приєднує.


1

це повинно бути cd d:/work_space_for_....

без цього :це не працює для мене


1

Іншим рішенням для користувачів Windows буде скопіювати файл Git Bash.lnk до каталогу, з якого потрібно починати, та запустити його звідти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.