HackerzLab.博多 Vol.21 子供向けLinuxハンズオン
2019/05/05(日) HackerzLab.博多 Vol.21 子供向けLinuxハンズオンの資料(Windows版)です。
(x-0.はWindows版のみでの作業です。)
1. 事前準備
1-0. デスクトップに[コンピュータ]アイコンを表示
デスクトップ上で右クリックし、**[テーマ]画面の右側にある[デスクトップ アイコンの設定]**をクリックします。
[デスクトップ アイコンの設定]画面で、"コンピュータ(M)"にチェックを入れ、
[OK]ボタンをクリックします。

1-1. ターミナル画面を開く
[スタート]メニュー ==> "ここに入力して検索"
"powershell" または "cmd" と入力し、以下のコマンドを入力
または、
[スタート]メニュー ==> [Windows システムツール] ==> [コマンド プロンプト]
[スタート]メニュー ==> [Windows システムツール] ==> [PowerShell]
「Windows PowerShell」ウインドウまたは**「コマンド プロンプト」ウインドウが表示されます。
表示されたこのウインドウを、この後の説明では「ターミナル画面」**と呼ぶことにします。

2. Linuxサーバとの通信
2-1. ハンズオン用Linuxサーバとの通信の確認
ターミナル画面で、以下のコマンドを入力します。
PS C:\Users\xxxx> ping ubuntu1804
ubuntu1804 [192.168.xxx.xxx]に ping を送信しています 32 バイトのデータ:
192.168.xxx.xxx からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.xxx.xxx からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.xxx.xxx からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.xxx.xxx からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.xxx.xxx の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 1ms、平均 = 0ms
2-2. 共有フォルダへの接続(ネットワークドライブの割り当て)
デスクトップ上の**「PC」を右クリックし、[ネットワークドライブの割り当て]**をクリックし、以下のように入力します。
ドライブ(D): z:
フォルダー(O): \\ubuntu1804\s??
s??は、各自に割り当てられた番号を入力してください。
**"別の資格情報を使用して接続する(C)"**にもチェックを入れておきます。

各自に割り当てられたユーザー名とパスワードを入力します。
(画面ではs19になっていますが、そのまま真似しないこと!!)
資格情報を記憶するにもチェックを入れておきます。

|項目|入力値|
|---|---|---|
|名前|s??|
|パスワード|s??|
ネットワークドライブの接続に成功すると、Linuxサーバ上の各自のホームディレクトリの内容が表示されます。最初は何も入っていません。

**[ファイル名拡張子]および[隠しファイル]**にチェックを入れると、表示されていなかったファイルやサブディレクトリ(フォルダ)が拡張子付きで表示されます。

3. telnet/sshでのログイン
3-0. TeraTermのインストール
以下の記事を参考に、TeraTermをインストールします。
(全員で一斉にダウンロードすると回線が混み合う場合があるので、インストールするTeraTermのパッケージは、講師側から配布される場合があります。)
Tera Term(テラターム)をインストールしてみよう!
https://www.j-oosk.com/teraterm/install/42/
インストールが終わったら、下記の記事を参考に背景色や文字色を変更しておきましょう。
(今回のハンズオンでは、専用ログイン・スクリプトの関係で、背景色を黒、文字色を白、緑、水色、黄色などの明るい色にすることをおすすめします。)
Tera Termの環境設定-文字色・背景色の変更
https://www.j-oosk.com/teraterm/configuration/86/
もしくは、講師側から設定変更後のteraterm.iniを配布してもらいましょう。
3-1. telnetでのログイン
デスクトップ上の**[TeraTerm]**のアイコンをダブルクリックし、TeraTermを起動します。
[ファイル(F)] ==> [新しい接続(N)...] をクリックします。
ホスト名の欄には、接続先Linuxサーバのホスト名またはIPアドレスを入力します。
サービル欄では、Telnetを選択しておきます。
入力が終わったら、[OK]ボタンをクリックします。

telnet接続に成功すると、以下のようなメッセージが表示されますので、各自に割り当てられたユーザー名およびパスワードを入力します。
Ubuntu 18.04.2 LTS
ubuntu1804 login: s?? <--- ユーザー名を入力
Password: <--- パスワードを入力(表示されない)
ログアウトする場合は、exitコマンドを実行します。
s19@ubuntu1804:~$ exit
3-2. sshでのログイン
デスクトップ上の**[TeraTerm]**のアイコンをダブルクリックし、TeraTermを起動します。
[ファイル(F)] ==> [新しい接続(N)...] をクリックします。
ホスト名の欄には、接続先Linuxサーバのホスト名またはIPアドレスを入力します。
サービル欄では、TelnetではなくSSHを選択しておきます。
入力が終わったら、[OK]ボタンをクリックします。

初めて接続するサーバの場合、以下のような**[セキュリティ警告]ダイアログ**が表示されます。
(先生になりすました悪意ある他人のサーバではありませんので、)
気にせず**[続行]ボタン**をクリックします。

続いて、[SSH認証]ダイアログが表示されます。
各自のユーザー名およびパスワードを入力し、[OK]ボタンをクリックします。

ログインに成功すると、telnet接続後と同様のメッセージが表示されます。
作業を終えてログアウトする場合は、exitコマンドを実行します。
s19@ubuntu1804:~$ exit
4. Linuxコマンドで遊んでみよう
4-1. slコマンドを実行してみる
ログインしたら、とりあえずslコマンドを実行してみましょう。
何かが画面上を走ります(笑)
s19@ubuntu1804:~$ sl
4-2. ディレクトリ(フォルダ)の中身を見てみる
ディレクトリ(フォルダ)の内容を表示するには、lsコマンドを使用します。
まだ何もファイルは作成していないので、何も表示されずに次のプロンプトが表示されます。
s19@ubuntu1804:~$ ls
s19@ubuntu1804:~$
lsコマンドの後ろに**"-al"を付けて実行すると、「.」で始まるファイル名およびディレクトリ名を含めて出力し、さらにアクセス権や所有者名、サイズ、修正時刻**などの詳細情報も表示されます。
s19@ubuntu1804:~$ ls -al
合計 52
drwxr-xr-x 4 s19 students 4096 4月 23 11:12 .
drwxr-xr-x 26 root root 4096 4月 23 07:54 ..
-rw------- 1 s19 students 31 4月 23 10:56 .bash_history
-rw-r--r-- 1 s19 students 220 4月 23 07:54 .bash_logout
-rw-r--r-- 1 s19 students 3771 4月 23 07:54 .bashrc
drwx------ 2 s19 students 4096 4月 23 09:49 .cache
-rwxr-xr-x 1 s19 students 19331 4月 23 07:54 .fd2rc
drwx------ 3 s19 students 4096 4月 23 09:49 .gnupg
-rw-r--r-- 1 s19 students 807 4月 23 07:54 .profile
2-2. 共有フォルダへの接続の時と同じように、非表示だったファイルが表示されました。
4-3. ファイルを作ってみる
catコマンドに続いて、> ファイル名 と入力すると、
キーボードから入力した内容をファイルに書き出すことができます。
s19@ubuntu1804:~$ cat > test.txt
aaa
bbb
ccc
12345
<--- 入力が終わったら、CTRL + D と入力する
catコマンドでは、ファイルの内容を表示することもできます。
s19@ubuntu1804:~$ cat test.txt
aaa
bbb
ccc
12345
ファイルの内容が表示されたら、Windowsのネットワークドライブ(Z:)を開いてみましょう。
さきほど作成したtest.txtが表示されているはずです。

test.txtをダブルクリックして、テキストエディタで開いてみましょう。
(ただし、メモ帳では、改行がうまく表示されません)

4-4. ファイルを消してみる
rmコマンドを使うと、ファイルを削除することができます。
rm test.txtと入力してみてください。
s19@ubuntu1804:~$ rm test.txt
続いて、ls -alコマンドでファイルの一覧を表示してみます。
test.txtが表示されなくなっているはずです。
s19@ubuntu1804:~$ ls -al
合計 52
drwxr-xr-x 4 s19 students 4096 4月 23 11:25 .
drwxr-xr-x 26 root root 4096 4月 23 07:54 ..
-rw------- 1 s19 students 31 4月 23 10:56 .bash_history
-rw-r--r-- 1 s19 students 220 4月 23 07:54 .bash_logout
-rw-r--r-- 1 s19 students 3771 4月 23 07:54 .bashrc
drwx------ 2 s19 students 4096 4月 23 09:49 .cache
-rwxr-xr-x 1 s19 students 19331 4月 23 07:54 .fd2rc
drwx------ 3 s19 students 4096 4月 23 09:49 .gnupg
-rw-r--r-- 1 s19 students 807 4月 23 07:54 .profile
Windowsのネットワークドライブ(Z:)を開いてみましょう。
ネットワークドライブ(Z:)からも、test.txtが消えているはずです。
4-5. 他のユーザーにメッセージを送ってみる
whoコマンドを実行すると、同一のサーバにログインしているユーザーの一覧を確認することができます。
**ログイン名(ユーザー名)**のほかに、端末番号、ログイン時刻、ログイン元のIPアドレスなども表示されます。
s19@ubuntu1804:~$ who
s19 pts/0 2019-04-23 11:10 (192.168.xxx.xxx)
s00 pts/1 2019-04-23 11:34 (192.168.xxx.xxx)
s01 pts/2 2019-04-23 11:35 (192.168.xxx.xxx)
mesgコマンドで、現在のメッセージの受付可否を確認します。
s19@ubuntu1804:~$ mesg
有効になっています
もし、無効と表示された場合は、
s19@ubuntu1804:~$ mesg y
と入力して、有効にしておきます。
それでは、ほかのユーザーにメッセージを送ってみましょう。
メッセージを送信するには、writeコマンドを実行します。
s19@ubuntu1804:~$ write s01 <-- writeに続いて、送信相手のログイン名を入力する
Hello!!
I am s19.
todoki masita ka??
<--- 入力終了(CTRL + D と入力する)
送信先のs01さんの画面では、以下のようなメッセージが表示されます。
Message from s19@ubuntu1804 on pts/0 at 11:46 ...
Hello!!
I am s19.
todoki masita ka??
EOF
4-6. 他のユーザーとチャットしてみる
writeコマンドでは、自分から相手にしかメッセージを送れませんでしたが、
talkコマンドを使用すると、お互いに同時にメッセージを送受信することができます。
2人ずつペアを組み、talkコマンドに続いて相手のログイン名を指定して実行してみてください。
- Aさんの入力例
s01@ubuntu1804:~$ talk s19
- Bさんの入力例
s19@ubuntu1804:~$ talk s01
talkコマンドのConnectionが確立されると**[Connection established]**という文字列が画面上に表示されます。
画面が上下に2分割され、相手からのメッセージを表示しながら、相手に送るメッセージを入力・送信することができます。
talkコマンドを終了する場合は、CTRL + C と入力してください。
5. 後片付け
デスクトップ上の**[PC]**のアイコンを右クリック ==> "ネットワーク ドライブの切断(C)"
で、ネットワークドライブ(Z:)の割り当てを解除しておきましょう。