当我在 Ubuntu 中打开非登录 shell 时,我当前的工作目录是/home/user_name
(我的$HOME
环境变量),但我想更改它,以便当我启动终端时我位于其他目录中。
我读到,当我在 Ubuntu 中启动终端时,.bashrc
会获取一个文件。所以我添加了
export HOME=/home/user_name/Documents
到我的.bashrc
文件。现在,当我打开终端时,我仍在/home/user_name
目录中。
我怎样才能改变这个?
答案1
首先,从您的.bashrc
.执行此操作的方法不是使用$HOME
,该变量将始终指向您的主目录,并且您不想更改它,以便您的 shell 在不同的位置启动。
我确信会有一种更优雅的方法来执行此操作,但作为临时解决方法,您可以简单地将这一行添加到您的.bashrc
:
cd ~/Documents
由于每次启动新的非登录 shell(打开新终端)时都会读取该文件,因此cd
将执行该命令并且您的终端将~/Documents
根据您的需要启动。
答案2
终端将在从其父级继承的工作目录中启动。
然而,有些允许通过配置设置覆盖它。
使用gnome-terminal
,您可以编辑您的个人资料,勾选运行自定义命令而不是我的 shell并使其:
sh -c 'cd ~/Documents; exec "${SHELL:-sh}"'
答案3
这是我放入我的~/.bash_profile
:
alias curDir="pwd | sed -e 's/ /\\ /'"
alias save='echo `curDir` > ~/.saved_dir'
alias saved='cd `cat ~/.saved_dir`'
saved
我一直依赖这一点。基本上,当我处理某个项目时,我会save
为其创建一个主目录,然后每个后续会话都从那里开始。然后当我改变项目或其他什么时,我就会去save
别的地方。
我在寻找更好的方法时发现了这个问题,但我所得到的比对一个特定目录进行硬编码更适合我。
答案4
考虑修改/etc/passwd
和更改您的默认主目录