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