首页 文章资讯内容详情

如何在 Golang 中获取当前用户名和目录?

2026-06-02 1 花语

有时我们想知道哪个用户正在执行当前程序以及在哪个目录中,我们可以借助Go标准库的os包中的user包来获取所有这些详细信息。

在这篇文章中,我们将探讨三种这样的情况,首先,我们将执行当前进程的用户名注销,然后我们将名称id一起注销,最后我们从执行当前进程的目录中注销。当前程序位于。

获取用户名

要获取username,我们只需调用Current()将返回当前用户的函数。考虑下面显示的代码。

package main import ( "fmt" "log" "os/user" ) func main() { currentUser, err := user.Current() if err != nil { log.Fatalf(err.Error()) } username := currentUser.Username fmt.Printf("Username is: %s\n", username) }输出结果

如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。

Username is: apache

获取名称和ID

要获取用户名和id,我们分别调用当前用户的Name()Uid()函数。考虑下面显示的代码。

package main import ( "fmt" "log" "os/user" ) func main() { currentUser, err := user.Current() if err != nil { log.Fatalf(err.Error()) } name := currentUser.Name id := currentUser.Uid fmt.Printf("name is: %s and id is: %s\n", name, id) }输出结果

如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。

name is: Apache and id is: 48

获取当前目录

要获取当前目录,我们只需要调用HomeDir()当前用户的函数即可。考虑下面显示的代码。

package main import ( "fmt" "log" "os/user" ) func main() { currentUser, err := user.Current() if err != nil { log.Fatalf(err.Error()) } dir := currentUser.HomeDir fmt.Printf("dir is: %s\n", dir) }输出结果

如果我们在上面的代码上运行gorunmain.go命令,那么我们将在终端中得到以下输出。

dir is: /usr/share/httpd