如何默认使用其他目录而不是主目录

Xi *_*ang 179 bash shell git-bash

我正在开发一台Windows机器.我需要的linux命令行唯一的地方是Git Bash.问题是:当我打开它时,我在主目录中.我必须将目录更改为我的工作区,例如:

cd ../../../d/work_space_for_my_company/project/code_source
Run Code Online (Sandbox Code Playgroud)

我可以将它包装在.sh文件中,这样我就不用再手动输入了吗?这应该很简单,但我对Linux命令行一无所知.我非常感激如果你能指导我如何创建.sh文件.

Dav*_*gal 372

这是一个更多Windows-ish解决方案:右键单击用于启动git bash的Windows快捷方式,然后单击"属性".将"Start In"的值更改为所需的工作空间路径.

编辑:同时检查目标值是否包含--cd-to-home选项,如下面的注释中所述.

  • 这对我有用.另外,我还必须在启动命令中删除--cd-to-home选项. (67认同)
  • 这个解决方案唯一的问题是你没有设置主目录的默认路径,用`~`访问 (13认同)
  • 同意这是最直接的解决方案,但绝对应该修改为包括删除目标中的"--cd-to-home".如果没有最后一次更改,您将始终默认为C:\ Users\[name]文件夹(除非您已修改了您的设置). (10认同)
  • 如果您在Windows 7任务栏上固定了快捷方式,则需要按照http://lifehacker.com/5475752/customize-pinned-shortcuts-on-the-windows-7-的建议右键单击该程序两次.任务栏 (2认同)
  • 为了澄清,在快捷方式中,"目标"应为"%WINDIR%\ System32\bash.exe","开始"应为"C:\ Temp"或您想要的任何路径. (2认同)

Kei*_*son 100

只需将该行写入文件"cd.sh",然后从shell提示符处执行此操作:

. ./cd.sh
Run Code Online (Sandbox Code Playgroud)

或者您可以在$HOME/.bashrc文件中创建别名或功能:

foo() { cd /d/work_space_for_my_company/project/code_source ; }
Run Code Online (Sandbox Code Playgroud)

如果目录名称包含空格或其他shell元字符,则需要引号; 即使它们没有必要,添加它们也不会有害:

foo() { cd "/d/Work Space/project/code_source" ; }
Run Code Online (Sandbox Code Playgroud)

(注意我省略了../../..;你不需要它.)

编辑:如果你添加一行

foo
Run Code Online (Sandbox Code Playgroud)

你的.bashrc函数定义后,你的shell会在该目录中开始.或者您可以cd直接在您的命令中使用该命令,.bashrc如果您以后不需要使用该功能.

(这个名字foo只是一个例子;你应该选择一个更有意义的名字.)

  • 正如@orip指出的那样,你也可以在.bashrc中执行`cd`.但是如果你把它变成一个函数,你可以在更改到另一个目录之后再次使用该命令. (5认同)
  • 要解释"../../ ..",您给出的命令指定了相对于当前目录的路径; `"../../../ d/work_space_for_my_company/project/code_source"`从当前目录(恰好是`$ HOME`)上升三级,然后下降到"d",然后下降到"工作...".git bash shell环境有``/ d"`指的是Windows调用的"D:\"`.使用绝对路径名称`//d/work_space_for_my_company/project/code_source"`更简单,并且不依赖于`$ HOME`恰好在哪里. (2认同)
  • 我在哪里可以找到这个`.bashrc`文件? (2认同)
  • @ptamzz:通常在设置帐户时会在主目录中创建`.bashrc`文件.如果没有,您可以自己创建它. (2认同)

ori*_*rip 45

将行添加到.bashrc主目录中的文件(如果文件不存在,则创建该文件):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
Run Code Online (Sandbox Code Playgroud)

  • 我知道我参加派对已经很晚了,但是谢谢你停止这个功能的废话!:) (5认同)

Jur*_*uri 38

我使用ConEmu (在Windows上强烈推荐),我有一个启动Git Bash的任务

在此输入图像描述

请注意底部的"Startup dir ..."按钮.它-new_console:d:<path>为Git Bash的启动命令添加了一个.指出你喜欢的地方


小智 23

这可能对你有所帮助.

图片描述

  1. 右键单击git bash - > properties
  2. 在Shorcut选项卡 - >开始字段 - >输入用户定义的路径
  3. 确保Target字段不包含--go-to-home,否则它将继续在HOME变量中指定的目录中启动

而已.


小智 10

我也刚刚将快捷图标的"开始"设置更改为: %HOMEDRIVE%/xampp/htdocs/


Usa*_*agi 9

这样做是假设您希望每次打开命令行时都发生这种情况:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

现在,当您打开shell时,它将从home向上移动三个目录并更改为code_source.

此代码只是将"cd ../../../d/work_space_for_my_company/project/code_source"行附加到名为".bashrc"的文件中.如果文件不存在,则">>"会创建一个文件然后追加..bashrc文件对于在启动/登录时运行命令很有用(即加载模块等)


gen*_*ama 9

(请阅读下面的警告)

在Windows中执行此操作的非常简单的方法(使用git bash,可能还有其他方法)是创建一个名为HOME的环境变量,指向所需的主目录.

  1. 右键单击我的计算机,然后选择属性
  2. 选择高级系统设置(位置因Windows版本而异)
  3. 在系统属性中,选择高级选项卡
  4. 在高级选项卡上,选择环境变量(底部按钮)
  5. 在"系统变量"下,检查是否已有一个名为HOME的变量.如果是,请通过突出显示变量名称并单击编辑来编辑该变量.使新变量名称成为所需的路径.
  6. 如果HOME尚不存在,请单击系统变量下的"新建",并创建一个名为HOME的新变量,其值为所需路径.

环境变量

注意:这可能会改变其他工作方式.例如,对我而言,它改变了我的.ssh配置文件所在的位置.在我的情况下,我希望我的家是U:\,因为这是我放置项目工作和应用程序设置的主要位置(即它确实是我的"主页"目录).

编辑2017年6月23日:这个答案继续得到偶尔的赞成,我想警告人们虽然这可能"有效",但我同意@AnthonyRaymond不建议这样做.如果您不关心其他事情是否破裂,这更像是一个临时修复或修复.更换房屋不会造成主动损坏(如删除硬盘),但以后可能会造成阴险的烦恼.当你开始遇到烦人的问题时,你可能不会记得这个变化......所以你可能会在以后摸不着头脑!


Mic*_*mel 7

右键单击Git Bash应用程序链接转到"属性",然后将"开始位置"修改为您希望它从中开始的位置.


spo*_*ahn 5

Windows 10中的固定开始菜单项

  1. 打开固定快捷方式的文件位置
  2. 打开快捷方式属性
    1. 删除--cd-to-homearg
    2. 更新Start in路径
  3. 通过最近添加的重新启动菜单重新启动

打开文件位置截图

打开快捷方式画面截图

更新快捷方式的屏幕截图

pin via最近添加了screnshot


感谢所有其他答案,如何做到这一点!想提供Win 10指令......