このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンド演習60

以下のコマンドの演習を行います。

 Linuxコマンド演習の最後の演習となります。少々ボリュームが多いですが、この演習01~60までの「Linuxコマンド演習 60本」を通じて、Linuxの操作をマスターしましょう。

演習01:カーネルメッセージを表示する。

・カーネルメッセージを表示します。

古いメッセージから新しいメッセージまで順に表示されます。

$ dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-1160.108.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Jan 25 16:17:31 UTC 2024
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.108.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=ja_JP.UTF-8
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
(略)
演習02:特定のログレベルのカーネルメッセージを表示する。

・エラーレベルのメッセージのみを表示します。

他にもinfoやwarningなどのログレベルが指定できます。

$ dmesg -l err
[    3.158370] [drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send host log message.
[    3.159992] [drm:vmw_host_log [vmwgfx]] *ERROR* Failed to send host log message.
演習03:カーネルメッセージにタイムスタンプつけて表示する。

・カーネルメッセージの前に人間が読みやすい形式のタイムスタンプをつけて表示します。

$ dmesg -T
[土  2月 24 00:49:06 2024] Initializing cgroup subsys cpuset
[土  2月 24 00:49:06 2024] Initializing cgroup subsys cpu
[土  2月 24 00:49:06 2024] Initializing cgroup subsys cpuacct
[土  2月 24 00:49:06 2024] Linux version 3.10.0-1160.108.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Jan 25 16:17:31 UTC 2024
(略)
演習04:カーネルメッセージバッファをクリアします。

・カーネルメッセージバッファをクリアします。

 メッセージをすべて読み込んでから、カーネルメッセージバッファをクリアされます。rootユーザーに切り替えて実行する必要があります。

$ su -
パスワード:
最終ログイン: 2024/02/24 (土) 00:00:36 JST日時 pts/1
[root@localhost ~]# dmesg -c
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-1160.108.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Jan 25 16:17:31 UTC 2024
(省略)

カーネルメッセージを表示します。

# dmesg

何も出力されません。カーネルメッセージがクリアされていることが確認できます。

演習05:システムにログインしたユーザー履歴を表示する。

・システムにログインしたユーザーの履歴を表示します。

$ last
user01   pts/1        :0               Sat Feb 24 01:47   still logged in   
user01   pts/1        :0               Sat Feb 24 01:46 - 01:47  (00:01)    
user01   pts/0        :0               Sat Feb 24 01:45   still logged in   
user01   pts/0        :0               Sat Feb 24 00:54 - 01:45  (00:51)    
user01   pts/0        :0               Sat Feb 24 00:51 - 00:54  (00:03)    
user01   :0           :0               Sat Feb 24 00:49   still logged in   
reboot   system boot  3.10.0-1160.108. Sat Feb 24 00:49 - 01:47  (00:58)    
user01   pts/1        :0               Sat Feb 24 00:00 - 00:48  (00:48)    
user01   pts/0        :0               Fri Feb 23 23:29 - 00:48  (01:18)    
jiro     pts/1        10.0.2.15        Fri Feb 23 22:18 - 22:18  (00:00)    
taro     pts/1        10.0.2.15        Fri Feb 23 22:17 - 22:17  (00:00)    
taro     pts/1        10.0.2.15        Fri Feb 23 22:16 - 22:16  (00:00)
(略)
演習06:特定のユーザーのログイン履歴を表示する。

・特定のユーザー(ここでは”taro”とします)のログイン履歴を表示します。

$ last taro
taro     pts/1        10.0.2.15        Fri Feb 23 22:17 - 22:17  (00:00)    
taro     pts/1        10.0.2.15        Fri Feb 23 22:16 - 22:16  (00:00)   
演習07:ログイン履歴の表示する行数を制限する。

・最新の10行のログイン履歴のみを表示します。

$ last -n 10
user01   pts/1        :0               Sat Feb 24 01:47   still logged in   
user01   pts/1        :0               Sat Feb 24 01:46 - 01:47  (00:01)    
user01   pts/0        :0               Sat Feb 24 01:45   still logged in   
user01   pts/0        :0               Sat Feb 24 00:54 - 01:45  (00:51)    
user01   pts/0        :0               Sat Feb 24 00:51 - 00:54  (00:03)    
user01   :0           :0               Sat Feb 24 00:49   still logged in   
reboot   system boot  3.10.0-1160.108. Sat Feb 24 00:49 - 01:54  (01:04)    
user01   pts/1        :0               Sat Feb 24 00:00 - 00:48  (00:48)    
user01   pts/0        :0               Fri Feb 23 23:29 - 00:48  (01:18)    
jiro     pts/1        10.0.2.15        Fri Feb 23 22:18 - 22:18  (00:00)    

wtmp begins Sun Dec 31 17:41:24 2023
演習08:rootユーザーの直近2回のログイン履歴を確認する。

・rootユーザーの直近2回のログイン履歴を表示します。

$ last -n 2 root
root     :1           :1               Sat Feb 24 02:03 - 02:03  (00:00)    
root     :1           :1               Sat Feb 24 02:00 - 02:02  (00:01)    

wtmp begins Sun Dec 31 17:41:24 2023
演習09:ログイン中のユーザーの一覧を表示する。(who コマンド)

・whoコマンドでログイン中のユーザーの一覧を表示します。

 「who」コマンドを実行すると、現在ログインしているユーザーのログイン名と使用している端末、ログイン時刻、ログインしている場所が表示されます。

$ who
user01   :0           2024-02-24 12:47 (:0)
user01   pts/0        2024-02-24 13:22 (:0)
user01   pts/1        2024-02-24 13:34 (:0)
演習10:自分の情報だけを表示する。(who コマンド)

・whoコマンドを実行したユーザーだけを表示します。

「who -m」コマンドを実行すると、whoコマンドを実行したユーザーの名前と端末のみが表示されます。

$ who -m
user01   pts/1        2024-02-24 13:34 (:0)
演習11:最後にシステムが起動した時刻を表示する。(who コマンド)

・最後にシステムが起動した時刻を表示

「who -b」コマンドを実行すると最後にシステムが起動した時刻が表示されます。

$ who -b
         システム起動 2024-02-24 12:44
演習12:ログインしているユーザーの一覧を表示する。(w コマンド)

・w コマンドで、ログインしているユーザーの一覧を表示します。

 このコマンドは、ログインしているユーザーのユーザー名、端末、ログイン時刻、CPU利用率、実行中のコマンドなどの情報を表示します。

$ w
 14:16:17 up  1:32,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user01   :0       :0               12:47   ?xdm?   1:04   0.13s /usr/libexec/gn
user01   pts/0    :0               13:22   53:13   0.02s  0.02s bash
user01   pts/1    :0               13:34    1.00s  0.04s  0.01s w
演習13:ショートフォーマットでログインしているユーザーの一覧を表示する。(w コマンド)

・w コマンドのショートフォーマットでログインしているユーザーの一覧を表示します。

-sオプションを使用すると、ショートフォーマットでログインしているユーザーの情報が表示されます。

$ w -s
 14:16:40 up  1:32,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              IDLE WHAT
user01   :0       :0               ?xdm?  /usr/libexec/gnome-session-binary -
user01   pts/0    :0               53:36  bash
user01   pts/1    :0                0.00s w -s
演習14:ヘッダーを表示しない。(w コマンド)

・w コマンドで、ヘッダーを表示しないで、ログインしているユーザーの情報を表示します。

-hオプションを用いるとヘッダー行が表示されなくなります。

$ w -h
user01   :0       :0               12:47   ?xdm?   1:06   0.13s /usr/libexec/gn
user01   pts/0    :0               13:22   57:37   0.02s  0.02s bash
user01   pts/1    :0               13:34    1.00s  0.03s  0.00s w -h

以上で、Linuxコマンド演習は終了です。