連載
» 2018年07月27日 05時00分 公開

Linux基本コマンドTips(227):【 logname 】コマンド――現在のユーザーのログイン名を表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、現在のユーザーのログイン名を表示する「logname」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は現在のユーザーのログイン名を表示する「logname」コマンドです。

lognameコマンドとは?

 「logname」は、ユーザーのログイン名を表示するコマンドです。lognameを実行すると、実行したユーザーのログイン名を表示します。

 ログイン名を表示するコマンドは他にもあります。「who」コマンド(連載第225回)や「w」コマンド(第226回)です。lognameはこれらのコマンドとは異なり「ログイン名だけを表示する」という特徴があります。シェルスクリプト中などで、ログイン名だけを取得したい場合はlognameが使いやすいでしょう。



lognameコマンドの書式

logname





lognameの主なオプション

 lognameのオプションは、--version(バージョン表示)と--help(ヘルプ表示)のみです。



ユーザーのログイン名を表示する

 lognameを実行すると、実行したユーザーのログイン名だけを表示します(画面1)。

コマンド実行例

logname

(実行したユーザーのログイン名を表示する)(画面1


画面1 画面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 -」相当の実行結果となります。

画面2 画面2 「su」と「su -」を実行したときのlognameコマンドなどの動作の違い


筆者紹介

西村 めぐみ(にしむら めぐみ)

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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。