Command line 在mac终端中设置默认目录

Command line 在mac终端中设置默认目录,command-line,terminal,Command Line,Terminal,我只对git使用终端(mac),对一个目录使用git。是否可以将默认目录(终端打开时的目录)设置为我使用git的目录,如果可以,如何设置?尝试echo“cd$directory”>~/.bash_profile从Mac OS X Lion 10.7开始,终端支持恢复,默认情况下,退出时会自动恢复您打开的终端,恢复他们的工作目录。因此,您可以只打开一个新的终端和cd到您的git目录,然后在退出时保持窗口打开。每次重新打开终端时,终端都会在同一目录中。(默认情况下,这适用于bash。如果您使用的是其

我只对git使用终端(mac),对一个目录使用git。是否可以将默认目录(终端打开时的目录)设置为我使用git的目录,如果可以,如何设置?

尝试
echo“cd$directory”>~/.bash_profile

从Mac OS X Lion 10.7开始,终端支持恢复,默认情况下,退出时会自动恢复您打开的终端,恢复他们的工作目录。因此,您可以只打开一个新的终端和cd到您的git目录,然后在退出时保持窗口打开。每次重新打开终端时,终端都会在同一目录中。(默认情况下,这适用于bash。如果您使用的是其他shell,则需要将/etc/bashrc中的代码改编为您的shell。我在对on SuperUser的回答中发布了zsh的代码。)

您还可以安排终端在特定目录中启动shell。您可以自定义或创建“设置配置文件”,以便在启动时发出“cd”命令:

终端>首选项>设置>[profile]>Shell>启动>运行命令

启用“运行命令”和“在shell中运行”,然后将命令设置为
cd您的\u git\u目录
。当您使用该配置文件打开新终端时,它将转到您的git目录

我建议您使用配置文件列表底部的操作(“齿轮”)菜单复制当前默认配置文件(如果您从未更改过,默认为“基本”),然后自定义该配置文件

最后,要让它在您打开终端时自动打开具有此配置文件的终端,请设置

终端>首选项>启动>启动时打开


到您的自定义配置文件。(在Lion上,Resume将还原退出时打开的窗口,而不是执行启动操作。如我所述,您可以在退出时将此终端保持打开状态,并在再次打开终端时将其还原。或者,您可以在退出时按Option modifier键;退出菜单项将更改为“退出并放弃窗口”下一次打开终端时,它将执行启动操作。)

我喜欢“使用相同的工作目录打开新窗口”。我为这个问题找到的所有答案(很多答案)都会打破这个设置,总是转到新的主目录。下面是我在.profile(或.bashrc等)顶部使用的内容

这将查看您是否仅在启动时才在
主页
目录中,如果是,则切换到新的
开始
目录。这样,新windows将不会自动运行此命令


唯一需要注意的是,如果您在实际的
主页
目录中并打开一个新窗口,它将带您进入
开始
。这是预期的。

如果您正在使用例如ZSH, 只需将以下字符串添加到配置文件
.zshrc

# Working directory
cd ~/Desktop
或例如:

# Working directory
cd $HOME/Desktop
根据您的喜好更改路径


它只是将命令返回到ZSH,您不会在终端中看到它,它将从您选择的路径开始使用窗口组。按您希望的方式排列shell窗口,将它们放在启动cd上,并放置到每个窗口中所需的目录中,设置颜色、shell--编辑标题等。然后转到窗口--“将窗口另存为组…”。给它一个名称,选中“终端启动时使用窗口组”。下次你开始时,这个安排将是你的出发点。

我修改了@Michael Ozeryansky的答案,以解决他提到的警告:

唯一需要注意的是,如果您在实际的主目录中并打开一个新窗口,则需要开始。这是预期的。

要使第二个终端窗口选项卡从主目录或任何其他目录开始:

export START="/Users/michael/my/starting/directory"
export DIR = "path/to/directory"
if [[ $PWD == $HOME ]]; then
     cd $START
else 
     cd $HOME  // or any other dir: cd $DIR
fi

非常有用,谢谢!我已经为终端配置了启动选项卡,包括我的Xcode项目和git子模块的目录、标题和颜色。每个都会激发一个git fetch和git status。好极了!如果您使用“Shells open with”“default login shell”(例如,需要更快的启动)之外的内容,“Run command”方式似乎不起作用。。。[?]无论如何,iterm2似乎允许所需的行为,如果您将Shells open with:或Run command:设置为终端在
/etc/Shells
中找不到的命令,则返回到@rogerdpack,它假定它不是shell,并禁用“上次登录”横幅等行为,然后在shell内运行。这是变通办法有效的唯一原因。您最好避免这种变通方法,而是定期清除系统日志,特别是如果您首先检查日志大小,如果日志大小不是太大,那么变通方法就没有问题。(请考虑向苹果提交一份关于登录性能的bug报告)。我建议把CD放进你想要的目录中,然后用<代码>清除< /C>命令进行跟踪,以便提示看起来很新鲜。启动时运行此命令:“cd&&clear”我必须使用:
echo“cd”`pwd`>~/.bash\u配置文件
经过长时间搜索后找到的最佳解决方案。在我的.bash\u配置文件上工作,而不是在.bashrc或.profile上。谢谢!最佳解决方案但它会保留新选项卡上的最后一个工作文件夹吗?@3请尝试。对
export START="/Users/michael/my/starting/directory"
export DIR = "path/to/directory"
if [[ $PWD == $HOME ]]; then
     cd $START
else 
     cd $HOME  // or any other dir: cd $DIR
fi