実習資料
Linux入門講習会
九州大学情報基盤研究開発センター1

実習1
 ログイン ファイル操作
 ディレクトリの作成
 ファイルの移動,コピー,削除 ログアウト2

ログイン（Mac）
 まずMacOSにログイン デスクトップ下方の「ターミナル」のアイコンをクリック
 出てきた画面で、以下のように入力し、改行

ssh ‐l ユーザIDエル

hpc‐lecture.cc.kyushu‐u.ac.jp

受付でお渡しした小さい紙に書かれたユーザID

初回ログイン時に警告メッセージ(yes/no)が出力された場合:→yesを入力する。

3

ログイン（Windows）
 Windowsを起動する
 デスクトップの「TeraTerm」

アイコンをクリック

 接続するサーバのホスト名を入力
hpc-lecture.cc.kyushu-u.ac.jp
4ログイン（Windows）
 セキュリティ警告を承認

 ID/Passwdを入力

5

実習1

漢字コードの設定（Mac）
1. デスクトップ上部の「ターミナル」をクリック

2. 「環境設定」をクリック

3. 「設定」を選択後、「詳細」をクリックし「文字エンコーディング」をクリックして「UTF-8」をクリック

6

実習1

漢字コードの設定（Windows）
1. 画面上部の「設定」から「端末(T)」をクリック

2. 二箇所の漢字コードで”UTF-8”を選択

7

実習1

ファイル操作の事前準備$ ls$ tar xvf /tmp/linux1.tar$ ls

 実習用のファイルを展開．
 展開後は以下のようになる.

ファイルの一覧[tab]キーを使ってなるべくタイピング文字を減らそう！
カレントディレクトリ

ホームディレクトリ
linux1
hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f908lu-omp.f90
lu-essl.f90
test.txt

実習1

作業ディレクトリの変更【作業】
現在のディレクトリの場所を確認して、[linux1]ディレクトリへ移動しましょう。

$ pwd$ cd linux1
$ pwd
$ ls

現在のディレクトリを確認
作業ディレクトリの変更

 カレントディレクトリを linux1に変更.
カレントディレクトリ

ホームディレクトリ
linux1
hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f909lu-omp.f90
lu-essl.f90
test.txt

実習1

ファイルの内容閲覧【作業】[linux1]ディレクトリの中の「lu.f90」ファイルの内容を閲覧しましょう。

$less lu.f90•次のページへ： SPACE もしくは f•前のページへ： b•１行下へ：
Enter もしくは j•１行上へ：k•閲覧終了：q

ホームディレクトリlinux1

カレントディレクトリ

hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c
mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f9010
lu-omp.f90
lu-essl.f90
test.txt

実習1

ディレクトリの作成とファイルのコピー【作業】[linux1]の中に[test]ディレクトリを作成して、その中に以下のファイルをコピーしましょう。
linux1/hello.c
linux1/test.txt$ls$mkdir test
$cp hello.c test
$cp test.txt test$ls
$ls test

testディレクトリ作成
ファイルのコピー
testディレクトリの下のファイル一覧

ホームディレクトリ
linux1
hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

カレントディレクトリ
test
hello.ctest.txt

mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f9011
lu-omp.f90
lu-essl.f90
test.txt

実習1

ファイルの削除【作業】
先ほど（前ページ）でコピーで複製した「hello.c」・「test.txt」ファイルを削除してみましょう。

$cd test$pwd$ls$rm hello.c$rm test.txt$ls

ファイルの削除

ホームディレクトリ
linux1
hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

カレントディレクトリ
test
hello.c削除

test.txt

削除

mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f9012
lu-omp.f90
lu-essl.f90
test.txt

実習1

複数のファイルの操作【作業】1)再度、以下のファイルを[test]ディレクトリにコピーしましょう。
linux1/hello.c
linux1/test.txt2)今度は、[test]ディレクトリ毎削除してみましょう。

$cd ..
$pwd$cp hello.c test.txt test
$ls test$rm -ri test
全て y と答える$ls

ホームディレクトリ
linux1
hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

カレントディレクトリ
test
hello.ctest.txt

削除
mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.clu.f9013
lu-omp.f90
lu-essl.f90
test.txt

実習1

ファイルの移動と名前の変更【作業】
１）[test]ディレクトリを作成しそこへ以下のファイルを“移動”させましょう。
linux1/hello.c
linux1/test.txt２）以下のファイル名を「luserial.f90」に変更しましょう。
linux1/lu.f90$mkdir test$ls
$mv hello.c test.txt test$ls
ファイルの移動$ls test$mv lu.f90 lu-serial.f90$ls
ファイル名の変更

ホームディレクトリ

移動

linux1

hello.cpi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

カレントディレクトリ
test
hello.ctest.txt

mm-omp.f90
mm-omp.c
移動
mm-essl.f90
mm-essl.clu.f9014
lu-omp.f90
lu-serial.f90
lu-essl.f90
ファイル名変更
test.txt

実習1＊の利用（１）【作業】[lu]ディレクトリを作成し、その中に[linux1]の中の”lu-”で始まる全ファイル)を移動させましょう。

$mkdir lu$ls$mv lu-* lu$ls
名前の先頭が lu- であ$ls luるファイルを移動

ホームディレクトリ
linux1

カレントディレクトリ
test

pi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c

lu
hello.clu-serial.f90
test.txt
lu-omp.f90
lu-essl.f90

mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.c
lu-serial.f90
lu-omp.f90
lu-essl.f90

移動15

実習1

＊の利用（２）【作業】[mm]ディレクトリを作成し、その中に[linux1]の中の”mm”で始まる全ファイル)を移動させましょう。

$ls$mkdir mm$ls$mv mm.* mm-* mm$ls$ls mm 名前の先頭が mm. であるファイルとmm- であるファイルを移動（mm* とすると mmディレクトリまで含まれてしまう)

ホームディレクトリ

カレントディレクトリ

linux1

test
lu

mm
pi.f90pi.c
pi-omp.f90
pi-omp.c
mm.f90mm.c
mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.c

hello.clu-serial.f90
test.txt
lu-omp.f90
lu-essl.f90

mm.f90mm.c
mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.c

移動16

実習1

＊の利用（３）【作業】
1)[mm]ディレクトリの中に[f]と[c]ディレクトリを作成しましょう。
2)[mm]ディレクトリ内の拡張子が、”.f90”である全ファイルを[f]ディレクトリへ、”.c”である全ファイルを[c]ディレクトリへ移動させましょう。

$cd mm$ls$mkdir f c$mv *.f90 f$mv *.c c
$ls
$ls *

ホームディレクトリ
カレントディレクトリ

linux1

test

mm

luc
pi.f90pi.c
pi-omp.f90
pi-omp.c

mm.f90mm.c
mm-omp.f90
mm-omp.c
mm-essl.f90
mm-essl.c

mm.c
mm-omp.c
mm-essl.cfhello.clu-serial.f90
test.txt
lu-omp.f90
lu-essl.f90

mm.f90mm-omp.f90
mm-essl.f90
17移動

実習1

ディレクトリのコピー【作業】[mm]ディレクトリを”mm-copy”
とう名前でコピーしましょう。

$cd ~/linux1$ls$ls -R$cp -r mm mm-copy$ls$ls -R

ホームディレクトリ
カレントディレクトリ

linux1

test

mm

mm-copyluc
pi.f90pi.c
pi-omp.f90
pi-omp.ccff

hello.clu-serial.f90
test.txt
lu-omp.f90
lu-essl.f90

mm.c
mm.f90mm.c
mm.f90mm-omp.c
mm-omp.f90
mm-omp.c
mm-omp.f90
mm-essl.c
mm-essl.f90
mm-essl.c
mm-essl.f90

移動18

実習1

ディレクトリの移動【作業】[programs]というディレクトリを作成し、その中に先ほど（前ページで）作成した[mm]・[lu]ディレクトリを移動させましょう。

$mkdir programs$mv mm lu programs$ls$ls -R

ホームディレクトリ
カレントディレクトリ

linux1
programs

mm-copy

test
hello.c

c

lumm

f

test.txt

mm.f90mm-omp.f90
mm-essl.f90
mm-essl.c

mm.c
mm-omp.c

pi.f90pi.c
pi-omp.f90
pi-omp.ccflu-serial.f90
lu-omp.f90
mm.c
mm.f90lu-essl.f90
mm-omp.c
mm-omp.f90
mm-essl.c
mm-essl.f90

19

実習1

ファイルの移動（応用）以下のようにファイルを整理してみましょう.
（ディレクトリは必要に応じて事前に作成してください）● mm‐copyディレクトリを削除● pi.f90 と pi‐omp.f90 を programs/pi/f ディレクトリの下に移動● pi.c と pi‐omp.c を programs/pi/c ディレクトリの下に移動※後半の演習でこの作業ディレクトリを使用します。

ホームディレクトリ
linux1

test

programs

char-bug.txt

mmpic
pi.c
pi-omp.cf
pi.f90pi-omp.f90

cluf

hello.ctest.txt

lu-serial.f90
lu-omp.f90
mm.c
mm.f90lu-essl.f90
mm-omp.c
mm-omp.f90
20mm-essl.c
mm-essl.f90

実習2： テキストの編集
 Emacs を使ったテキストファイルの編集※「実習１」が完了していない場合は、以下のコマンドにより、「実習１」が完了した状態のディレクトリ構造をコピーして展開してください。
$ cd$ cp /tmp/linux2.tar ./$ tar xvf linux2.tar

この場合、以降記載の「linux1」は「linux2」に読み替えてください
21

実習2

テキストの編集（１） 作業ディレクトリに移動$ cd ~/linux1/test
ホームディレクトリ
linux1

カレントディレクトリ

programs

pic

test

mmluc

ff
lu-serial.f90

hello.ctest.txt

lu-omp.f90
pi.f90pi.c

pi-omp.f90

mm.f90mm.c

lu-essl.f90

mm-omp.c

pi-omp.c
mm-essl.c

mm-omp.f90
mm-essl.f90

22

実習2

テキストの編集（２） Emacsを起動し，テキストを入力$ emacs -nw test.c
以下の内容を入力し,保存して終了.
保存コマンド: C-x C-s
終了コマンド： C-x C-c#include <stdio.h>
int main(){printf("Hello World¥n");return(0);
}
23

実習2

テキストの編集（３） lessを起動し、作成したファイルの内容を確認$ less test.c
正常にファイルが作成出来ていることを確認し終了
閲覧終了： q24

実習3：その他のコマンド findの利用
 grepの利用 リダイレクションの利用
 パイプラインの利用 標準エラーと標準出力の保存
25

実習3

findの利用
 linux1に移動し、ファイル名で検索$ cd ~/linux1$ find ./ -name “*essl*”
linux1の下にある、ファイル名にesslを含むファイルを検索する
ホームディレクトリ
カレントディレクトリ

linux1
programs

pi

testmmlu

test.ccc

ff
lu-serial.f90

hello.ctest.txt

lu-omp.f90
pi.f90pi.c

pi-omp.f90

mm.f90mm.c

lu-essl.f90

mm-omp.c

pi-omp.c
mm-essl.c

mm-omp.f90
mm-essl.f90

検索範囲

26

実習3

grepの利用
 linux1/testに移動し、ファイル内を検索$ cd ~/linux1/test$ grep “Hello” ./*linux1の下にある、ファイル内にHelloを含むファイルを検索するし、該当する行を表示する

ホームディレクトリ

カレントディレクトリ

linux1
programs

pitestmmlu

test.cccff
lu-serial.f90

hello.ctest.txt

lu-omp.f90
pi.f90pi.c

pi-omp.f90

mm.f90mm.c

lu-essl.f90

mm-omp.c

pi-omp.c
mm-essl.c

mm-omp.f90
mm-essl.f90

検索範囲
27

実習3

リダイレクションの利用（１） 作業ディレクトリに移動$ cd ~/linux1/test

ホームディレクトリ
linux1

カレントディレクトリ

programs

pitestmm

lutest.cccf

f
lu-serial.f90

hello.ctest.txt

lu-omp.f90
pi.f90pi.c

pi-omp.f90

mm.f90mm.c

lu-essl.f90

mm-omp.c

pi-omp.c
mm-essl.c

mm-omp.f90
mm-essl.f90

28

実習3

リダイレクションの利用（２） ls コマンドの結果をファイルに保存$ ls –l > dirs
$ less dirs

中身を確認したら q で終了

29

実習3

パイプラインの利用 １画面に表示しきれない出力をページ毎に表示$ cd ~/linux1$ ls -lR | less
ホームディレクトリ

カレントディレクトリ

linux1
programs

pitestmmlutest.ccc

ff
lu-serial.f90

hello.ctest.txt

lu-omp.f90
pi.f90pi-omp.f90

mm.f90mm.c

lu-essl.f90

mm-omp.c

pi-omp.c
mm-essl.c

mm-omp.f90
mm-essl.f90

30

実習3

標準出力と標準エラー出力（１） エラーを含むls コマンドの結果を標準出力と標準エラー出力に分けて保存する$ cd ~/linux1/test$ ls –l /tmp/lecture

各ファイルのパーミッションを確認$ ls –lR /tmp/lecture

画面の出力内容を確認$ ls –lR /tmp/lecture >file$ less file

ファイルの出力内容を確認$ ls –lR /tmp/lecture 1>file1 2>file2$ less file1$ less file2
file1に通常の結果、file2にエラーが保存されていることを確認

31

実習3

標準出力と標準エラー出力（２） エラーを含むls コマンドの結果を標準出力と標準エラー出力を合わせて保存する$ cd ~/linux1/test$ ls –lR /tmp/lecture >file 2>&1
$ less file
fileに通常の結果とエラーメッセージが保存されていることを確認

32

実習4：ssh公開鍵認証の設定
 鍵ファイルペア(公開/秘密)の作成
 サーバへ公開鍵を転送
 公開鍵の登録
 鍵認証でのログイン
33

実習4

鍵ファイルペアの作成（１/２） Mac 手元のPCで別のターミナルを起動し、下記コマンドを実行し鍵を作成する

注 別ターミナルは画面下のターミナルアイコンを右クリック(ctrl+クリック)して起動% ssh-keygen -t rsa◆ -t rsa は暗号化方式の指定
Generating public/private rsa key pair.
Enter file in which to save the key◆ 鍵ファイルの保存先とファイル名の指定(/home/lecture/user01/.ssh/id_rsa): lecture
今回は lecture(ファイル名) を指定
Enter passphrase (empty for no passphrase):XXXXXEnter same passphrase again: XXXXXYour identification has been saved in◆ パスフレーズの入力(2回)/home/lecture/user01/lecture.
※入力しても画面には表示されない
Your public key has been saved in/home/lecture/user01/lecture.
The key fingerprint is:
17:da:ef:e3:ea:a0:70:d1:0c:52:1e:eb:2c:eb:97:86 user01@hpclecture.cc.kyushu-u.ac.jp
The key's randomart image is:+--[ RSA 2048]----+|
o|
|o o
|
|
. +.
|
|
+ + o .
||
. + S o||o . . .
|
|
o....
.
|
|
.Eo+. . ..
||.o. .ooo.
|34+-----------------+%

実習4

鍵ファイルペアの作成（２/２） Mac 鍵ファイルのペアが作成されていることを確認% ls ~/lecture*lecture lecture.pub
lecture(秘密鍵) と lecture.pub(公開鍵) が作成されていることを確認※ 鍵ファイル名(lecture)は自由に指定可能
省略すると id_rsa となる

35

実習4

鍵ファイルペアの作成（１/３） Win
 TeraTermを起動し、「キャンセル」

36

実習4

鍵ファイルペアの作成（２/３） Win メニューバーの「設定」→「SSH鍵生成」をクリック

37

実習4

鍵ファイルペアの作成（３/３） Win 鍵の種類、ビット数を入力し「生成」
 パスフレーズを入力し、鍵ファイルを保存
公開鍵

ファイル名：lecture.pub

秘密鍵パスフレーズ
パスフレーズ
ファイル名：lecture

デスクトップへそれぞれ保存

38

実習4

サーバへ公開鍵を転送

Mac SCPコマンドで公開鍵を手元PCからサーバへ転送% scp ~/lecture.pub ユーザid@hpc-lecture.cc.kyushu-u.ac.jp:~/
ユーザ名@hpc-lecture‘s password: XXXX
◆ログイン時のパスワードを入力※入力値は画面上には表示されない

lecture.pub%

100%

0.1KB/s

00:00※ sshコマンドと間違えないこと

 サーバ側用のターミナル画面で公開鍵が転送されていることを確認$ ls ~/lecture.pub
lecture.pub◆ サーバ用のターミナルと手元PC用のターミナルは、コマンドラインのプロンプトの表記で見分けること例) サーバ用： [ユーザ名@hpc-lecture ディレクトリ名]
39

実習4

サーバへ公開鍵を転送(1/2) Win
 ホスト名：hpc-lecture.cc.kyushu-u.ac.jp
 ユーザ名、パスワードを入力し、「ログイン」をクリック

hpc-lecture.cc.kyushu-u.ac.jp

ユーザ名パスワード40

実習4

サーバへ公開鍵を転送(2/2) Win 公開鍵を手元PCからサーバへ転送

ドラッグアンドドロップ

公開鍵
秘密鍵41

実習4

公開鍵の登録MacWin 下記のコマンドで公開鍵をサーバへ登録
lecture.pub(公開鍵)の内容を authorized_keysに追加することでlecture(秘密鍵) による鍵認証が可能になる$ cd ~/$ mkdir .ssh
$ chmod 700 .ssh
$ cat lecture.pub >> .ssh/authorized_keys$ chmod 644 .ssh/authorized_keys$ cd .ssh$ less authorized_keyslessで authorized_keys にlecture.pubの内容が追加されていることを確認※ 他の公開鍵が既に登録されていた場合、>> で追記ではなく > で上書きすると他の公開鍵が消えてしまうので要注意

User :r+w(6)Group:r(4)Other:r(4)

42

実習4

鍵認証でのログイン

Mac 手元PC用のターミナルから下記コマンドで秘密鍵を指定してサーバへログイン% cd ~/% ssh –i lecture –l ユーザID hpc-lecture.cc.kyushu-u.ac.jp
Enter passphrase for key : XXXX
◆ 作成時に指定したパスフレーズを入力※入力値は画面上には表示されない$◆ ログイン成功$ hostname
hpc-lecture.cc.kyushu-u.ac.jp◆ hpc-lectureにログイン出来ていることを確認

sshの –i オプションは秘密鍵を指定するためのもの

43

実習4

鍵認証でのログイン(1/2)

Win 手元PC用のターミナルから下記コマンドで秘密鍵を指定してサーバへログイン①hpc-lecture.cc.kyushu-u.ac.jp③ユーザ名④パスフレーズ②
鍵作成時に入力したパスフレーズ

秘密鍵⑨⑧「すべてのファイル(*.*)」を選択

⇐⑦選択
⑨開く

⑤

⑥44

実習4

鍵認証でのログイン(2/2)

Win 手元PC用のターミナルから下記コマンドで秘密鍵を指定してサーバへログイン⑩自分の秘密鍵が指定されていることを確認⑪◆ hpc-lectureにログイン出来ていることを確認$ hostname
hpc-lecture.cc.kyushu-u.ac.jp

45