Linux/Unix:logname命令示例以显示登录名
时间:2020-01-09 10:46:01 来源:igfitidea点击:
如何使用命令提示符查找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命令等效于运行以下id命令或者whoami命令:
id -un
或者
whoami
$USER和$LOGNAME shell变量
您还可以如下使用$USER shell变量来显示用户登录名:
echo "Hi, $USER! Let us be friends." echo "Hello, $LOGNAME! "
输出示例:
Hi, Hyman! Let us be friends. Hello, Hyman!
请注意,由于无法信任该环境,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, Hyman! Let us be friends.