侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux logname命令详解:显示当前用户的登录名(附实例教程和注意事项)

Linux logname命令介绍

logname是一个英文单词,它的全称是login name,意思是登录名。它是一个用来显示当前用户的登录名的命令。它通常会从系统维护的文件(通常是/var/run/utmp或/etc/utmp)中获取信息。它的语法非常简单,只有一个可选的参数。它的用途是在需要知道当前用户的登录名的情况下使用,比如在写脚本或配置文件时,或者在需要区分不同用户的场景下。

Linux logname命令适用的Linux版本

logname命令是一个标准的Linux命令,它适用于几乎所有的Linux发行版,包括Ubuntu, Debian, CentOS, Fedora, Red Hat, SUSE, Arch Linux等。如果你的Linux系统没有安装logname命令,你可以使用以下命令来安装它:

  • 对于基于Debian的系统,如Ubuntu,你可以使用apt-get命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
  • 对于基于Red Hat的系统,如CentOS,你可以使用yum命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
  • 对于基于Arch的系统,如Manjaro,你可以使用pacman命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S coreutils

Linux logname命令的基本语法

logname命令的基本语法如下:

logname [OPTION]

其中,OPTION是一个可选的参数,它可以是以下之一:

  • --help:显示在线帮助信息。
  • --version:显示版本信息。

如果没有指定任何参数,logname命令会打印当前用户的登录名。

Linux logname命令的常用选项说明

logname命令只有两个选项,它们的说明如下:

选项说明
--help显示在线帮助信息。
--version显示版本信息。

Linux logname命令的实例

下面是一些使用logname命令的实例:

  • 显示当前用户的登录名:
[linux@bashcommandnotfound.cn ~]$ logname
linux
  • 显示logname命令的帮助信息:
[linux@bashcommandnotfound.cn ~]$ logname --help
Usage: logname [OPTION]...
Print the name of the current user.

      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/logname>
or available locally via: info '(coreutils) logname invocation'
  • 显示logname命令的版本信息:
[linux@bashcommandnotfound.cn ~]$ logname --version
logname (GNU coreutils) 8.32
Packaged by Gentoo (8.32 (p1))
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard Mlynarik and David MacKenzie.
  • 在sudo模式下使用logname命令,显示原始用户的登录名,而不是root:
[linux@bashcommandnotfound.cn ~]$ sudo logname
linux
  • 与其他类似的命令(如whoami, id, echo $USER等)进行比较,显示它们的不同:
[linux@bashcommandnotfound.cn ~]$ logname
linux
[linux@bashcommandnotfound.cn ~]$ whoami
linux
[linux@bashcommandnotfound.cn ~]$ id
uid=1000(linux) gid=1000(linux) groups=1000(linux),10(wheel)
[linux@bashcommandnotfound.cn ~]$ echo $USER
linux
[linux@bashcommandnotfound.cn ~]$ sudo logname
linux
[linux@bashcommandnotfound.cn ~]$ sudo whoami
root
[linux@bashcommandnotfound.cn ~]$ sudo id
uid=0(root) gid=0(root) groups=0(root)
[linux@bashcommandnotfound.cn ~]$ sudo echo $USER
linux

可以看到,logname命令在sudo模式下仍然显示原始用户的登录名,而其他命令则显示root或者不变。这是因为logname命令从系统文件中读取登录名,而其他命令则从环境变量或者进程信息中获取。

Linux logname命令的注意事项

  • logname命令只能显示当前用户的登录名,不能显示其他用户的登录名。如果想要查看其他用户的登录名,可以使用其他命令,如who, w, last等。
  • logname命令只能显示登录名,不能显示其他信息,如用户ID, 组ID, 主目录, shell等。如果想要查看这些信息,可以使用其他命令,如id, finger, getent等。
  • logname命令的输出可能与其他命令的输出不一致,比如在使用su或者ssh等命令切换用户时,logname命令仍然显示原始用户的登录名,而其他命令则显示切换后的用户的登录名。这是因为logname命令从系统文件中读取登录名,而其他命令则从环境变量或者进程信息中获取。
  • 如果系统文件被损坏或者不存在,logname命令可能无法正常工作,会显示错误信息,如:
[linux@bashcommandnotfound.cn ~]$ logname
logname: no login name
  • 如果系统没有安装logname命令,会显示错误信息,如:
[linux@bashcommandnotfound.cn ~]$ logname
bash: logname: command not found

此时,可以使用上面提到的方法来安装logname命令。

0

评论区