実習資料 Linux 入門講習会 九州大学情報基盤研究開発センター 注意 : この内容は najima.cc.kyushu-u.ac.jp の任意の ID で利用できますが, ファイルの削除等を含んでいるので各コマンドの意味を理解するまでは講習会用 ID で利用することをお勧めします. 1
実習 1 ログイン ファイル操作 ディレクトリの作成 ファイルの移動, コピー, 削除 ログアウト 2
ログイン (Mac) まず MacOS にログイン デスクトップ下方の ターミナル のアイコンをクリック 出てきた画面で 以下のように入力し 改行 ssh -l ユーザ ID najima.cc.kyushu-u.ac.jp 初回ログイン時に警告メッセージ (yes/no) が出力された場合 : yes を入力する エル 受付でお渡しした小さい紙に書かれたユーザ ID 3
ログイン (Windows) Windowsを起動する デスクトップの TeraTerm アイコンをクリック 接続するサーバのホスト名を 入力 najima.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 ファイルの一覧 実習用のファイルを展開. 展開後は以下のようになる. ホームディレクトリ カレントディレクトリ linux1 pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 8 lu-essl.f90
実習 1 作業ディレクトリの変更 作業 現在のディレクトリの場所を確認して [linux1] ディレクトリへ移動しましょう $pwd $cd linux1 $pwd $ls 現在のディレクトリを確認 作業ディレクトリの変更 カレントディレクトリを linux1 に変更. ホームディレクトリ カレントディレクトリ linux1 pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 9 lu-essl.f90
実習 1 ファイルの内容閲覧 作業 [linux1] ディレクトリの中の lu.f90 ファイルの内容を閲覧しましょう $less lu.f90 次のページへ : SPACE もしくは f 前のページへ : b 1 行下へ : Enter もしくは j 1 行上へ : k 閲覧終了 : q ホームディレクトリ linux1 カレントディレクトリ pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 10 lu-essl.f90
実習 1 ディレクトリの作成とファイルのコピー 作業 [linux1] の中に [test] ディレクトリを作成して その中に以下のファイルをコピーしましょう linux1/ linux1/ ホームディレクトリ $ls $mkdir test $cp test $cp test $ls $ls test test ディレクトリ作成 ファイルのコピー test ディレクトリの下のファイル一覧 linux1 カレントディレクトリ test pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 11 lu-essl.f90
実習 1 ファイルの削除 作業 先ほど ( 前ページ ) でコピーで複製した ファイルを削除してみましょう $cd test $pwd $ls $rm $rm $ls ファイルの削除 pi.f90 pi.cpi-omp.f90 ホームディレクトリ linux1 カレントディレクトリ test pi-omp.c mm.f90mm.c 削除 削除 mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 12 lu-essl.f90
実習 1 複数のファイルの操作 作業 1) 再度 以下のファイルを [test] ディレクトリにコピーしましょう linux1/ linux1/ 2) 今度は [test] ディレクトリ毎削除してみましょう $cd.. $pwd $cp test $ls test $rm -ri test 全て y と答える $ls ホームディレクトリ linux1 カレントディレクトリ test pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c 削除 mm-omp.f90 mm-omp.c lu.f90 lu-omp.f90 13 lu-essl.f90
実習 1 ファイルの移動と名前の変更 作業 1)[test] ディレクトリを作成しそこへ以下のファイルを 移動 させましょう linux1/ linux1/ 2) 以下のファイル名を luserial.f90 に変更しましょう linux1/lu.f90 ホームディレクトリ $mkdir test $ls $mv test $ls $ls test ファイルの移動 $mv lu.f90 lu-serial.f90 $ls ファイル名の変更 移動 linux1 カレントディレクトリ test pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c 移動 lu-serial.f90 ファイル名変更 lu.f90 lu-omp.f90 lu-essl.f90 14
実習 1 * の利用 (1) 作業 [lu] ディレクトリを作成し その中に [linux1] の中の lu- で始まる全ファイル ) を移動させましょう $mkdir lu $ls $mv lu-* lu $ls $ls lu 名前の先頭が lu- であるファイルを移動 ホームディレクトリ linux1 カレントディレクトリ pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90mm.c mm-omp.f90 mm-omp.c lu-serial.f90 lu-omp.f90 lu-essl.f90 lu lu-serial.f90 lu-omp.f90 lu-essl.f90 test 移動 15
実習 1 * の利用 (2) 作業 [mm] ディレクトリを作成し その中に [linux1] の中の mm で始まる全ファイル ) を移動させましょう ホームディレクトリ linux1 $ls $mkdir mm $ls $mv mm.* mm-* mm $ls $ls mm 名前の先頭が mm. であるファイルと mm- であるファイルを移動 (mm* とすると mm ディレクトリまで含まれてしまう ) カレントディレクトリ pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c 移動 mm mm.f90 mm.c mm-omp.f90 mm-omp.c lu test lu-serial.f90 lu-omp.f90 lu-essl.f90 16
実習 1 * の利用 (3) 作業 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 カレントディレクトリ mm lu test pi.f90 pi.cpi-omp.f90 pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c c f mm.c mm-omp.c 移動 lu-serial.f90 lu-omp.f90 lu-essl.f90 mm.f90 mm-omp.f90 17
実習 1 ディレクトリのコピー 作業 [mm] ディレクトリを mm-copy とう名前でコピーしましょう $cd ~/linux1 $ls $ls -R $cp -r mm mm-copy $ls $ls -R ホームディレクトリ linux1 カレントディレクトリ pi.f90 pi.c pi-omp.f90 pi-omp.c c mm f mm-copy c mm.c mm.f90 mm.c mm.f90 mm-omp.c mm-omp.f90 mm-omp.c mm-omp.f90 移動 f lu test lu-serial.f90 lu-omp.f90 lu-essl.f90 18
実習 1 ディレクトリの移動 作業 [programs] というディレクトリを作成し その中に先ほど ( 前ページで ) 作成した [mm] [lu] ディレクトリを移動させましょう $mkdir programs $mv mm lu programs $ls $ls -R ホームディレクトリ linux1 カレントディレクトリ programs mm-copy test pi.f90 pi.c pi-omp.f90 pi-omp.c mm c mm.c mm-omp.c f lu lu-serial.f90 lu-omp.f90 mm.f90 lu-essl.f90 mm-omp.f90 c f mm.f90 mm.c mm-omp.f90 mm-omp.c 19
実習 1 ファイルの移動 ( 応用 ) 以下のようにファイルを整理してみましょう. ( ディレクトリは必要に応じて事前に作成してください ) mm-copy ディレクトリを削除 pi.f90 と pi-omp.f90 を programs/pi/f ディレクトリの下に移動 pi.c と pi-omp.c を programs/pi/c ディレクトリの下に移動 ホームディレクトリ 後半の演習でこの作業ディレクトリを使用します linux1 char-bug.txt programs test pi mm lu c pi.c pi-omp.c f pi.f90 pi-omp.f90 c f lu-serial.f90 lu-omp.f90 mm.c mm.f90 lu-essl.f90 mm-omp.c mm-omp.f90 20
実習 2: テキストの編集 Emacs を使ったテキストファイルの編集 21
実習 2 テキストの編集 (1) 作業ディレクトリに移動 $ cd ~/linux1/test ホームディレクトリ linux1 カレントディレクトリ programs pi mm lu test c f c f lu-serial.f90 pi.c pi-omp.c pi.f90 pi-omp.f90 lu-omp.f90 mm.c mm.f90 lu-essl.f90 mm-omp.c mm-omp.f90 22
実習 2 テキストの編集 (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 テキストの編集 (3) less を起動し 作成したファイルの内容を確認 $ less test.c 正常にファイルが作成出来ていることを確認し終了閲覧終了 : q 24
実習 3: その他のコマンド find の利用 grep の利用 リダイレクションの利用 パイプラインの利用 標準エラーと標準出力の保存 25
実習 3 find の利用 linux1 に移動し ファイル名で検索 $ cd ~/linux1 $ find./ -name *essl* ホームディレクトリ linux1 の下にある ファイル名に essl を含むファイルを検索する linux1 カレントディレクトリ programs pi mm lu test test.c pi.c c pi-omp.c f pi.f90 pi-omp.f90 c f mm.c mm.f90 lu-serial.f90 lu-omp.f90 mm-omp.c mm-omp.f90 lu-essl.f90 検索範囲 26
実習 3 grep の利用 linux1/test に移動し ファイル内を検索 $ cd ~/linux1/test $ grep Hello./* ホームディレクトリ linux1 linux1 の下にある ファイル内に Hello を含むファイルを検索するし 該当する行を表示する カレントディレクトリ programs pi mm lu test test.c pi.c c pi-omp.c f pi.f90 pi-omp.f90 c f mm.c mm.f90 lu-serial.f90 lu-omp.f90 mm-omp.c mm-omp.f90 lu-essl.f90 検索範囲 27
実習 3 リダイレクションの利用 (1) 作業ディレクトリに移動 $ cd ~/linux1/test ホームディレクトリ linux1 カレントディレクトリ programs pi mm lu test test.c c f c f lu-serial.f90 pi.c pi-omp.c pi.f90 pi-omp.f90 lu-omp.f90 mm.c mm.f90 lu-essl.f90 mm-omp.c mm-omp.f90 28
実習 3 リダイレクションの利用 (2) ls コマンドの結果をファイルに保存 $ ls l > dirs $ less dirs 中身を確認したら q で終了 29
実習 3 パイプラインの利用 1 画面に表示しきれない出力をページ毎に表示 $ cd ~/linux1 $ ls -lr less ホームディレクトリ カレントディレクトリ linux1 programs pi mm lu test test.c c f c f lu-serial.f90 pi-omp.c pi.f90 pi-omp.f90 lu-omp.f90 mm.c mm.f90 lu-essl.f90 mm-omp.c mm-omp.f90 30
実習 3 標準出力と標準エラー出力 (1) エラーを含む ls コマンドの結果を標準出力と標準エラー出力に分けて保存する $ cd ~/linux1/test $ ls lr /tmp/lecture 1>file1 2>file2 $ less file1 $ less file2 file1 に通常の結果 file2 にエラーが保存されていることを確認 31
実習 3 標準出力と標準エラー出力 (2) エラーを含む ls コマンドの結果を標準出力と標準エラー出力を合わせて保存する $ cd ~/linux1/test $ ls lr /tmp/lecture >file 2>&1 $ less file file に通常の結果とエラーメッセージが保存されていることを確認 32
実習 4:ssh 公開鍵認証の設定 鍵ファイルペア ( 公開 / 秘密 ) の作成 サーバへ公開鍵を転送 公開鍵の登録 鍵認証でのログイン 33
実習 4 鍵ファイルペアの作成 (1) 手元のPCで別のターミナルを起動し 下記コマンドを実行し鍵を作成する % ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/lecture/user01/.ssh/id_rsa): lecture Enter passphrase (empty for no passphrase):xxxxx Enter same passphrase again: XXXXX Your identification has been saved in /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@najima.cc.kyushu-u.ac.jp The key's randomart image is: +--[ RSA 2048]----+ o o o. +. + + o.. + S o o... o.....eo+.....o..ooo. +-----------------+ % 注別ターミナルは画面下のターミナルアイコンを右クリック (ctrl+ クリック ) して起動 -t rsa は暗号化方式の指定 鍵ファイルの保存先とファイル名の指定今回は lecture( ファイル名 ) を指定 パスフレーズの入力 (2 回 ) 入力しても画面には表示されない 34
実習 4 鍵ファイルペアの作成 (2) 鍵ファイルのペアが作成されていることを確認 % ls ~/lecture* lecture lecture.pub lecture( 秘密鍵 ) と lecture.pub( 公開鍵 ) が作成されていることを確認 鍵ファイル名 (lecture) は自由に指定可能省略すると id_rsa となる 35
実習 4 サーバへ公開鍵を転送 SCP コマンドで公開鍵を手元 PC からサーバへ転送 % scp ~/lecture.pub ユーザid@najima.cc.kyushu-u.ac.jp:~/ ユーザ名 @najima s password: XXXX lecture.pub 100% 0.1KB/s 00:00 % ssh コマンドと間違えないこと サーバ側用のターミナル画面で公開鍵が転送されていることを確認 $ ls ~/lecture.pub lecture.pub ログイン時のパスワードを入力 入力値は画面上には表示されない サーバ用のターミナルと手元 PC 用のターミナルは コマンドラインのプロンプトの表記で見分けること例 ) サーバ用 : [ ユーザ名 @najima ディレクトリ名 ] 36
実習 4 公開鍵の登録 下記のコマンドで公開鍵をサーバへ登録 lecture.pub( 公開鍵 ) の内容を authorized_keys に追加することで lecture( 秘密鍵 ) による鍵認証が可能になる $ cd ~/ $ cat lecture.pub >>.ssh/authorized_keys $ chmod 644.ssh/authorized_keys $ cd.ssh $ less authorized_keys less で authorized_keys に lecture.pub の内容が追加されていることを確認 他の公開鍵が既に登録されていた場合 >> で追記ではなく > で上書きすると他の公開鍵が消えてしまうので要注意 User :r+w(6) Group:r(4) Other:r(4) 37
実習 4 鍵認証でのログイン 手元 PC 用のターミナルから下記コマンドで秘密鍵を指定してサーバへログイン % cd ~/ % ssh i lecture l ユーザID najima.cc.kyushu-u.ac.jp Enter passphrase for key : XXXX $ ログイン成功 $ hostname najimaにログイン出来ていることを確認 najima.cc.kyushu-u.ac.jp 作成時に指定したパスフレーズを入力 入力値は画面上には表示されない ssh の i オプションは秘密鍵を指定するためのもの 38