お金をかけずにサーバーの勉強をしよう

Linuxの黒い画面で泳ぎ回る

2022年7月19日

メニューへ戻る

ウフフ


思う所あって初めて Linuxを導入したという人は、Ubuntu やら CentOS やらのデスクトップ環境が使えるようになったんだと思います。

Windowsの感覚でスタートメニューを見たりインストールされているアプリケーションソフトを立ち上げてみたりして、Windowsよりも何だか洗練されてない画面が出てきて「使い辛ぁ…」ってなったと思います。

フリーのソフトってやっぱりそんなものなので、Firefoxや Chromeを立ち上げて WEBブラウズして、Windowsと同じ絵面が出てくる以外は他にやることもなく「つまらん」と思って、ここで終わっちゃう人が多いと思います。

そんな人には是非「黒い画面」を味わうことをお勧めします。

この「黒い画面」というのは何かというと、皆さんの Linuxデスクトップには必ず「端末」とか「ターミナル」という感じの名前のアプリケーションが 1つはあるはずなんですが、それの事です。

特別何をするでもないですが、以下に書いていくような事をしていると、何となく Linux環境の中を自由に泳いでいる感覚になりますので、やってみると良いと思います。

昔の Unixのエンジニア達が見ていた成果を垣間見ることになるかも知れません。

私の Linux環境は VMware Workstation Playerの仮想OSとして作った Ubuntu Desktopの軽量版の Lubuntuですので、それを例にしています。

Lubuntu 22.04の黒い画面は「QTerminal」というやつですが、今からやることは他の Linuxディストリビューションでも大差ないはずです。

ターミナル(端末)を開きますと、こんな感じになるかと思います。

subro@Ubuntu2204:~$

これをコマンドプロンプトと言って、Linuxコマンドの入力と実行をするところです。

この行の意味は、

subroこのコマンドプロンプトを使うユーザー名
@区切り
Ubuntu2204マシン名
:区切り
~今いるディレクトリ(~はホームディレクリを指す)
$ここから先がコマンドですよの区切り

ここで Linuxのファイルシステムの話をします。

Linuxのディスクは Windowsと同じように木構造で管理されています。
基本的に同じと考えておけば良いでしょう。

ただ Windowsのフォルダは Linuxでは「ディレクトリ」と言います。

それから ドライブという観念が無く、ディスク空間の全てがルートディレクトリをトップとする 1つの木構造に組み入れられています。

Windowsであればドライブが 1つしか無いのと同じです。
ディスクや SSDが何台あってもこれは変わりません。

それを見るため、まずは Change Directory コマンド(cd)で、ルートディレクトリに移動します。

subro@Ubuntu2204:~$ cd /
subro@Ubuntu2204:/$

Linuxでファイルシステムの木構造を表す時、ディレクトリとディレクトリの間の区切り文字が / なんですが、 / の1文字だけにするとルートディレクトリを表します。

cdコマンドの結果、コマンドプロンプトの今いるディレクトリが / に変わっています。

lsコマンド(list directory contents)を実行して、今居るディレクトリ(ここではルートディレクトリ)直下にあるディレクトリとファイルの一覧を見ることができます。

subro@Ubuntu2204:/$ ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  swapfile  sys  tmp  usr  var

subro@Ubuntu2204:/$

実際の画面では色分けされていたりしますのでもう少しわかり易いですが、もうちょっとわかり易くするため、lsコマンドのオプションを使います。
use a long listing formatオプションである[ -l ]を後ろにつけて lsコマンドを実行します。

subro@Ubuntu2204:/$ ls -l
total 524364
lrwxrwxrwx   1 root root         7  4月 19 19:02 bin -> usr/bin
drwxr-xr-x   3 root root      4096  7月 14 09:20 boot
drwxr-xr-x  19 root root      4180  7月 19 11:09 dev
drwxr-xr-x 136 root root     12288  7月 16 18:20 etc
drwxr-xr-x   3 root root      4096  6月 27 11:23 home
lrwxrwxrwx   1 root root         7  4月 19 19:02 lib -> usr/lib
lrwxrwxrwx   1 root root         9  4月 19 19:02 lib32 -> usr/lib32
lrwxrwxrwx   1 root root         9  4月 19 19:02 lib64 -> usr/lib64
lrwxrwxrwx   1 root root        10  4月 19 19:02 libx32 -> usr/libx32
drwx------   2 root root     16384  6月 27 11:19 lost+found
drwxr-xr-x   3 root root      4096  6月 27 14:26 media
drwxr-xr-x   2 root root      4096  4月 19 19:02 mnt
drwxr-xr-x   2 root root      4096  4月 19 19:02 opt
dr-xr-xr-x 346 root root         0  7月 19 11:09 proc
drwx------   5 root root      4096  7月 15 16:01 root
drwxr-xr-x  31 root root       860  7月 19 11:09 run
lrwxrwxrwx   1 root root         8  4月 19 19:02 sbin -> usr/sbin
drwxr-xr-x  12 root root      4096  7月 17 16:09 snap
drwxr-xr-x   2 root root      4096  4月 19 19:02 srv
-rw-------   1 root root 536870912  6月 27 11:22 swapfile
dr-xr-xr-x  13 root root         0  7月 19 11:09 sys
drwxrwxrwt  15 root root      4096  7月 19 12:48 tmp
drwxr-xr-x  14 root root      4096  4月 19 19:02 usr
drwxr-xr-x  15 root root      4096  7月 15 15:06 var

行頭に訳の分からない文字の羅列が出てきています。
1文字目(ピンク部分:実際はピンクになってません)の意味は以下の通り。

文字意味Windowsなら
dディレクトリフォルダ
lリンクショートカット
-ファイルファイル

コマンドのオプションはコマンドのマニュアルに書いてあり、manコマンド(an interface to the system reference manuals)で見ることができます。

subro@Ubuntu2204:/$ man ls
LS(1)                                                                                    User Commands                                                                                    LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .
〜〜〜 以下省略 〜〜〜

j でスクロールダウン、 k でスクロールアップ、 q で終了です。

システムのログファイルがあるディレクトリに移動してみましょう。
場所は [/var/log]ディレクトリです。

subro@Ubuntu2204:/$ cd /var/log

subro@Ubuntu2204:/var/log$ ls -l
total 8552
-rw-r--r--  1 root   root              23885  7月 19 11:09 Xorg.0.log
-rw-r--r--  1 root   root              22802  7月 19 09:20 Xorg.0.log.old
-rw-r--r--  1 root   root              42073  7月 14 09:17 alternatives.log
-rw-r-----  1 root   adm                   0  7月 17 15:19 apport.log
-rw-r-----  1 root   adm                1571  7月 16 21:17 apport.log.1
-rw-r-----  1 root   adm                 419  7月 14 15:20 apport.log.2.gz
-rw-r-----  1 root   adm                 378  7月 12 11:52 apport.log.3.gz
-rw-r-----  1 root   adm                 419  7月  5 12:32 apport.log.4.gz
-rw-r-----  1 root   adm                 336  7月  2 13:20 apport.log.5.gz
-rw-r-----  1 root   adm                 512  7月  1 11:54 apport.log.6.gz
drwxr-xr-x  2 root   root               4096  7月 16 18:20 apt
-rw-r-----  1 syslog adm               12848  7月 19 13:30 auth.log
-rw-r-----  1 syslog adm               37642  7月 17 15:19 auth.log.1
-rw-r-----  1 syslog adm                3686  7月 12 09:18 auth.log.2.gz
-rw-r-----  1 syslog adm                3412  7月  2 13:48 auth.log.3.gz
-rw-------  1 root   root               7079  7月 19 11:09 boot.log
-rw-------  1 root   root               7236  7月 19 08:47 boot.log.1
-rw-------  1 root   root               6245  7月 18 19:51 boot.log.2
-rw-------  1 root   root              13415  7月 17 15:19 boot.log.3
-rw-------  1 root   root               6426  7月 16 11:09 boot.log.4
-rw-------  1 root   root               6842  7月 15 07:56 boot.log.5
-rw-------  1 root   root              13184  7月 14 09:14 boot.log.6
-rw-------  1 root   root               6627  7月 13 11:59 boot.log.7
-rw-r--r--  1 root   root             108494  4月 19 19:03 bootstrap.log
-rw-rw----  1 root   utmp                  0  4月 19 19:02 btmp
drwxr-xr-x  2 root   root               4096  7月 19 08:47 cups
drwxr-xr-x  2 root   root               4096  4月 19 02:47 dist-upgrade
-rw-r-----  1 root   adm              134226  7月 19 11:09 dmesg
-rw-r-----  1 root   adm              134491  7月 19 08:47 dmesg.0
-rw-r-----  1 root   adm               25675  7月 18 19:51 dmesg.1.gz
-rw-r-----  1 root   adm               25876  7月 17 15:20 dmesg.2.gz
-rw-r-----  1 root   adm               25449  7月 16 18:19 dmesg.3.gz
-rw-r-----  1 root   adm               25820  7月 16 11:09 dmesg.4.gz
-rw-r--r--  1 root   root            1195857  7月 16 18:20 dpkg.log
-rw-r--r--  1 root   root              32032  6月 27 14:48 faillog
-rw-r--r--  1 root   root              11379  7月  1 11:53 fontconfig.log
-rw-r--r--  1 root   root               1301  7月 19 11:09 gpu-manager.log
drwxr-xr-x  3 root   root               4096  4月 19 19:04 hp
drwxr-xr-x  2 root   root               4096  6月 27 11:25 installer
drwxr-sr-x+ 3 root   systemd-journal    4096  6月 27 11:37 journal
-rw-r-----  1 syslog adm              537289  7月 19 13:26 kern.log
-rw-r-----  1 syslog adm             1296065  7月 17 15:19 kern.log.1
-rw-r-----  1 syslog adm              239568  7月 12 09:18 kern.log.2.gz
-rw-r-----  1 syslog adm              160476  7月  3 12:26 kern.log.3.gz
-rw-rw-r--  1 root   utmp             292292  6月 27 14:48 lastlog
drwxr-x---  2 mysql  adm                4096  7月 19 08:47 mysql
drwxr-xr-x  2 root   adm                4096  7月 17 15:19 nginx
drwx------  2 root   root               4096  4月 19 19:02 private
-rw-r--r--  1 sddm   sddm                  0  4月 19 19:05 sddm.log
-rw-r-----  1 syslog adm              904341  7月 19 13:34 syslog
-rw-r-----  1 syslog adm             2750523  7月 17 15:19 syslog.1
-rw-r-----  1 syslog adm              432188  7月 12 09:18 syslog.2.gz
-rw-r-----  1 syslog adm              272934  7月  3 12:26 syslog.3.gz
-rw-r--r--  1 root   root               2912  7月 19 11:11 ubuntu-advantage-timer.log
-rw-r--r--  1 root   root                  0  4月 19 19:03 ubuntu-advantage.log
drwxr-x---  2 root   adm                4096  7月  2 13:19 unattended-upgrades
-rw-rw-r--  1 root   utmp              42624  7月 19 11:09 wtmp
-rw-r--r--  1 root   root                237  4月 19 19:05 wvdialconf.log

システムのログが集約されている syslog ファイルの内容を見てみます。
lessコマンド(opposite of more)を使います。

「moreの反対」と言われてもピンとこないはずなので説明すると、moreコマンド(file perusal filter for crt viewing)は長いテキストファイルの中身を 1ページずつ止めながら見られるコマンド、lessはその反対で、スクロールアップ・ダウンを使って上の方にも戻って見ることができるコマンドです。

subro@Ubuntu2204:/var/log$ less syslog

コマンドプロンプトが消えてファイルの内容が表示されますので、 j でスクロールダウン、 k でスクロールアップ、 q で終了です。


あとはついでで、cdコマンド利用時のテクニックを2つほど。

/ をつけないでディレクトリ名だけにすると、そのディレクトリに移ります。
(「今いる所から」の指定を「相対パス指定」と言います。)

subro@Ubuntu2204:/var/log$ cd nginx
subro@Ubuntu2204:/var/log/nginx$

1つ上のディレクトリ(親ディレクトリ)に戻るには、[ .. ](親ディレクトリの意味) を指定します。

subro@Ubuntu2204:/var/log/nginx$ cd ..
subro@Ubuntu2204:/var/log$


これだけのことなんですが、これだけでディレクトリ階層のアッチコッチに行くことができるので、しばらくは「黒い画面」で遊べると思います。

Unixや Linuxのサーバー管理のお仕事では、この画面 1つだけ(下手すると横 80文字 x 縦 25文字の広さ)で作業することもあります。

特に LinuxのサーバーOSの場合、そもそもウィンドウシステムがインストールされていなかったりして、この黒い画面でやらざるを得なかったりもしますので、黒い画面でシステムの中を自由に泳ぎ回れるようになっておくと良いですね。

仮想環境で作っているとか、練習専用のPCにインストールしてるとかで「壊しても大丈夫!」という状態なら、色々なコマンドを実行しまくったりするのも面白いです。

いくらやってもハードウェアが壊れることはありませんから、存分に弄りまくると良いです。

「壊しても大丈夫」というのはサーバーエンジニアにとって大事なファクターで、力をつけるにはそういう環境で遊びまくるのが早道なんですよ。


こういうのを1冊持ってると良いですね。
(manコマンドのマニュアルは英語のママのものが多いし、分かり辛いものもあるので。)

新しいLinuxの教科書 [ 三宅英明 ]

価格:2,970円
(2022/7/19 14:47時点)
感想(0件)

Linux+コマンド入門 --シェルとコマンドライン、基本の力 [ 西村 めぐみ ]

価格:2,948円
(2022/7/19 14:48時点)
感想(0件)