我正在使用Linux。我目前正在尝试将当前路径位置设置为我的主目录。任何人都知道我需要使用什么命令?
答案 0 :(得分:4)
主目录具有两种不同的含义,通常是相同的。环境变量HOME
的值(请参见environ(7)),以及与密码相关的API(例如getpwuid_r(3))在您当前用户ID上给出的字段pw_dir
(由{{3}获取) }。
登录时,将HOME
环境变量设置为pw_dir
,并更改了有效和实际用户ID。
要将getuid(2)更改为HOME
,请在getenv("HOME")
的结果上使用working directory。请注意,工作目录与您的chdir(2)(可能会提到.
无关;但这可能是一个安全问题),并且每个进程(包括您的shell)都有自己的工作目录(另请参见PATH
variable,credentials(7),fork(2),execve(2),path_resolution(7))。
要更改主目录(这是非常不寻常的要求),可以使用root权限仔细编辑/etc/passwd
文件(请参阅glob(7)),然后重新启动计算机(或至少重新启动一些登录shell) )。
bash cd
passwd(5)就是这样做的(通过chdir
系统调用更改了shell进程的工作目录)。而且,当不带参数使用它时,您会将工作目录更改为通过缓存getenv("HOME"
的结果而获得的主目录。
如果在某些C程序中性能如此重要,则可以缓存(保留一些全局变量,初始化一次)getenv("HOME")
的结果,并在其上使用chdir
。
如果您的问题仅与使用bash
shell有关,只需键入:
cd
,并且这应该(除非cd
被严重别名或重新定义为某些功能)将Shell的工作目录更改为您的主目录。最多最多需要几毫秒(因此应该足够快)完成(我不容易想到一种可靠地测量内置cd
shell的速度的方法;您可以尝试time bash -c 'cd; pwd'
或time bash -c 'cd; times'
,但它的功能远远不止cd
,并且在台式机上最多可以显示几毫秒。
PS。在您的问题中使用“最快速的方式”和“当前路径位置”尚不清楚且令人困惑。我强烈邀请您 builtin您的问题,以改善其措辞并激发其动机并提供更多背景信息。
答案 1 :(得分:0)
我当前正在尝试将当前路径位置设置为我的主目录。 ?您可以使用EXPORT PATH
。
例如,在命令提示符下运行以下命令
export PATH=$PATH:$HOME/user
此更改仅在当前会话中发生,以使其永久添加到.bashrc
文件中。