ウフフ
思う所あって初めて 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コマンドのマニュアルは英語のママのものが多いし、分かり辛いものもあるので。)
価格:2,970円 |
Linux+コマンド入門 --シェルとコマンドライン、基本の力 [ 西村 めぐみ ] 価格:2,948円 |