【 logname 】コマンド――現在のユーザーのログイン名を表示する:Linux基本コマンドTips(227)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、現在のユーザーのログイン名を表示する「logname」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は現在のユーザーのログイン名を表示する「logname」コマンドです。
lognameコマンドとは?
「logname」は、ユーザーのログイン名を表示するコマンドです。lognameを実行すると、実行したユーザーのログイン名を表示します。
ログイン名を表示するコマンドは他にもあります。「who」コマンド(連載第225回)や「w」コマンド(第226回)です。lognameはこれらのコマンドとは異なり「ログイン名だけを表示する」という特徴があります。シェルスクリプト中などで、ログイン名だけを取得したい場合はlognameが使いやすいでしょう。
lognameコマンドの書式
logname
lognameの主なオプション
lognameのオプションは、--version(バージョン表示)と--help(ヘルプ表示)のみです。
ユーザーのログイン名を表示する
lognameを実行すると、実行したユーザーのログイン名だけを表示します(画面1)。
コマンド実行例
logname
(実行したユーザーのログイン名を表示する)(画面1)
whoamiコマンドとの違い
lognameと同じような実行結果を表示するコマンドがあります。「whoami」(第69回)です。
「whoami」は、実行中のユーザー名を表示するコマンドです。例えばsuコマンド(第67回)でrootユーザーになっている場合は、whoamiの実行結果は「root」に変わります。しかし、lognameの実行結果は「root」にはならず、元のままです。
なお、ユーザー名は環境変数USERとLOGNAMEにセットされています(※1)。こちらも、「su」では変化しません。ただし、「su -」のように「-」オプション(ログイン時のスタートアップファイルを読み、環境変数を再設定するオプション)を付けると、環境変数USERとLOGNAMEも変化します。
※1 環境変数USERとLOGNAMEは、ログイン時に読み込まれる/etc/profileの中で設定されている。これに対し、lognameコマンドは/var/run/utmp(ログイン情報を記録しているファイル)を参照している。
画面2では、「su」と「su -」をそれぞれ実行したとき、動作にどのような違いがあるのか表示しています。lognameコマンド、whoamiコマンドの実行、printenvコマンド(第173回)の3種類のコマンドを実行して、環境変数USERとLOGNAMEを表示しました。
なお「sudo」コマンド(第68回)の場合、「su -」相当の実行結果となります。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.