Linux / Unix:logname 命令示例显示登录名
我是 Linux 和 Unix 系统的新用户。如何使用命令提示符在 Linux 或类 Unix 操作系统上查找当前登录名?
您可以使用 logname 命令显示或打印当前用户(也称为呼叫用户)的名称。此命令读取 var/run/utmp 或 /etc/utmp 文件以显示当前用户的名称。
句法
基本语法:
logname
logname --help
logname --version
logname 命令示例
只需输入以下命令即可显示用户的登录名:
logname
示例输出:
动画 gif 01:logname 命令与 id 和 whoami 命令一起运行
您可以在 shell 脚本中使用 logname 命令,使用命令替换功能,如下所示:
#/bin/bash ## ## My backup function ### do_backup(){ tar -zcvf /nas01/backup/home.files.tar.gz /home/ } ## ## Only run backup job, if it is backup user else die with message ## ## [ "$(logname)" == "backup" ] && { echo "Starting backup..."; do_backup; } || { echo "Requires backup user account."; exit 1; } exit 0
与 logname 等效的历史命令
logname 命令相当于运行以下id 命令或whoami 命令:
id -un
或
whoami
$USER 和 $LOGNAME shell 变量
您还可以使用 $USER shell 变量来显示用户的登录名,如下所示:
echo "Hi, $USER! Let us be friends." echo "Hello, $LOGNAME! "
示例输出:
Hi, vivek! Let us be friends. Hello, vivek!
请注意,logname 实用程序明确忽略 LOGNAME 和 USER 环境变量,因为环境不可信任。这是使用 logname 命令的主要原因。尝试以下演示
#!/bin/bash # getlogin-name.sh : A shell script to display login name ## Let us change variable values ## USER="foo" LOGNAME="bar" ## Greet user ## ## Display imposter name i.e. you can not trust $USER and $LOGNAME ## echo "Hi,$USER! You are Imposter, for sure. Sorry, I can not trust you." echo "Hello, $LOGNAME! You are Imposter, for sure. I cannot trust you. Go away! " ## Display real login name ## echo "Hello, $(logname)! Let us be friends."
示例输出:
Hi,foo! You are Imposter, for sure. Sorry, I can not trust you. Hello, bar! You are Imposter, for sure. I cannot trust you. Go away! Hello, vivek! Let us be friends.
参见
- /etc/passwd文件