Download presentation
Presentation is loading. Please wait.
1
UNIX演習 情報ネットワーク特論
2
準備(Windowsのみ): TeraTermProのインストール
以下からファイルをダウンロード ダウンロードしたファイルを実行 言語の選択以外は、 基本的に「OK」か「next」をクリック
3
サーバへのログイン ホスト名: psihexa.cc.kyushu-u.ac.jp TeraTermの場合:
ホスト名を入力し OK をクリック User name に、講義で渡した ID Passphrase に、講義で伝えたパスワード を入力して OK MacOS X, Linux の場合: ターミナルで以下のコマンドを実行 講義で伝えたパスワードを入力 (入力中は何も表示されないので注意) ssh
4
初期パスワードの変更 必ず最初にパスワードを変更する
a0029]$ yppasswd Changing NIS account information for a0029 on pcc001. Please enter old password: 初期パスワードを入力 Changing NIS password for a0029 on pcc001. Please enter new password: 新しいパスワード Please retype new password: 新しいパスワード(確認) The NIS password has been changed on pcc001. a0029]$
5
ファイル操作の準備 実習用のファイルを展開. 展開後は以下のようになる. $ ls $ tar xvf /tmp/unix1.tar
ファイルの一覧 実習用のファイルを展開. 展開後は以下のようになる. ホームディレクトリ カレントディレクトリ unix1 hello.c pi.f90 pi.c pi-omp.f90 pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
6
作業ディレクトリの変更 カレントディレクトリを unix1に変更. $ pwd $ cd unix1 $ ls 現在のディレクトリを確認
ホームディレクトリ カレントディレクトリ unix1 hello.c pi.f90 pi.c pi-omp.f90 pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
7
ファイルの内容閲覧 $ less lu.f90 次のページへ: SPACE もしくは f 前のページへ: b
1行下へ: Enter もしくは j 1行上へ: k 閲覧終了: q ホームディレクトリ unix1 カレントディレクトリ hello.c pi.f90 pi.c pi-omp.f90 pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
8
ディレクトリの作成とファイルのコピー $ ls $ mkdir test $ cp hello.c test
$ cp test.txt test $ ls test testディレクトリ作成 ファイルのコピー testディレクトリの下のファイル一覧 ホームディレクトリ unix1 カレントディレクトリ test hello.c pi.f90 pi.c pi-omp.f90 hello.c test.txt pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
9
ファイルの削除 $ cd test $ pwd $ ls $ rm hello.c $ rm test.txt 削除 削除 ファイルの削除
ホームディレクトリ unix1 カレントディレクトリ test hello.c pi.f90 pi.c pi-omp.f90 hello.c test.txt pi-omp.c mm.f90 削除 削除 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
10
複数のファイルの操作 $ cd .. $ pwd $ cp hello.c test.txt test $ ls test
$ rm -ri test 全て y と答える $ ls ホームディレクトリ unix1 カレントディレクトリ test hello.c pi.f90 pi.c pi-omp.f90 hello.c test.txt pi-omp.c mm.f90 削除 mm.c mm-omp.f90 mm-omp.c mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-essl.f90 test.txt
11
ファイルの移動と名前の変更 $ mkdir test $ ls $ mv hello.c test.txt test $ ls test
$ mv lu.f90 lu-serial.f90 ファイルの移動 ファイル名の変更 ホームディレクトリ 移動 unix1 カレントディレクトリ test hello.c pi.f90 pi.c pi-omp.f90 hello.c test.txt pi-omp.c mm.f90 mm.c mm-omp.f90 mm-omp.c 移動 mm-essl.f90 mm-essl.c lu.f90 lu-omp.f90 lu-serial.f90 ファイル名変更 lu-essl.f90 test.txt
12
*の利用(1) $ mkdir lu $ ls $ mv lu-* lu $ ls lu 移動 名前の先頭が lu- であるファイルを移動
ホームディレクトリ unix1 カレントディレクトリ test lu pi.f90 pi.c pi-omp.f90 hello.c lu-serial.f90 pi-omp.c test.txt mm.f90 lu-omp.f90 mm.c lu-essl.f90 mm-omp.f90 mm-omp.c mm-essl.f90 移動 mm-essl.c lu-serial.f90 lu-omp.f90 lu-essl.f90
13
*の利用(2) $ ls $ mkdir mm $ mv mm.* mm-* mm $ ls mm 移動
名前の先頭が mm. であるファイルと mm- であるファイルを移動 (mm* とすると mmディレクトリまで 含まれてしまう) ホームディレクトリ unix1 カレントディレクトリ test lu mm hello.c lu-serial.f90 test.txt lu-omp.f90 pi.f90 lu-essl.f90 pi.c mm.f90 pi-omp.f90 mm.c pi-omp.c mm-omp.f90 mm.f90 mm-omp.c mm.c mm-essl.f90 mm-omp.f90 mm-essl.c mm-omp.c 移動 mm-essl.f90 mm-essl.c
14
*の利用(3) $ cd mm $ ls $ mkdir f c $ mv *.f90 f $ mv *.c c $ ls * 移動
ホームディレクトリ unix1 カレントディレクトリ test mm lu hello.c lu-serial.f90 test.txt c f lu-omp.f90 pi.f90 mm.f90 lu-essl.f90 pi.c mm.c pi-omp.f90 mm.c mm.f90 pi-omp.c mm-omp.f90 mm-omp.c mm-omp.f90 mm-omp.c mm-essl.c mm-essl.f90 mm-essl.f90 mm-essl.c 移動
15
ディレクトリのコピー $ cd ~/unix1 $ ls $ ls -R $ cp -r mm mm-copy 移動 ホームディレクトリ
カレントディレクトリ test mm mm-copy lu hello.c lu-serial.f90 test.txt c f lu-omp.f90 c f pi.f90 lu-essl.f90 pi.c mm.c mm.f90 pi-omp.f90 mm.c mm.f90 mm-omp.c mm-omp.f90 pi-omp.c mm-omp.c mm-omp.f90 mm-essl.c mm-essl.f90 mm-essl.c mm-essl.f90 移動
16
ディレクトリの移動 $ mkdir programs $ mv mm lu programs $ ls $ ls -R ホームディレクトリ
unix1 カレントディレクトリ programs mm-copy test hello.c lu c f test.txt mm mm.f90 mm.c mm-omp.f90 c f mm-omp.c pi.f90 lu-serial.f90 mm-essl.f90 mm-essl.c pi.c lu-omp.f90 pi-omp.f90 mm.c mm.f90 lu-essl.f90 pi-omp.c mm-omp.c mm-omp.f90 mm-essl.c mm-essl.f90
17
プログラムの入力(1) 作業ディレクトリに移動 $ cd ~/unix1/test ホームディレクトリ unix1 カレントディレクトリ
programs test pi mm lu c f c f hello.c lu-serial.f90 test.txt lu-omp.f90 pi.f90 mm.c mm.f90 lu-essl.f90 pi.c pi-omp.f90 mm-omp.c mm-omp.f90 pi-omp.c mm-essl.c mm-essl.f90
18
プログラムの入力(2) Emacsを起動し,次ページのプログラムを入力 #include <stdio.h>
$ emacs -nw test.c 以下のプログラムを入力し,保存後終了. 保存コマンド: C-x C-s 終了コマンド: C-x C-c #include <stdio.h> int main() { printf("Hello World\n"); return(0); }
19
コンパイルと実行(1) /tmp/sample.c をコピー (まず予め入力してあったものを試す) $ cp /tmp/sample.c .
$ ls ホームディレクトリ unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c lu-serial.f90 test.txt lu-omp.f90 pi.f90 mm.f90 test.c mm.c lu-essl.f90 pi.c pi-omp.f90 mm-omp.f90 sample.c mm-omp.c pi-omp.c mm-essl.c mm-essl.f90
20
コンパイルと実行(2) sample.c をコンパイル C言語プログラムのコンパイル: cc コマンド
$ cc sample.c –o sample $ ls ホームディレクトリ unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c lu-serial.f90 test.txt lu-omp.f90 pi.f90 test.c mm.c mm.f90 lu-essl.f90 pi.c pi-omp.f90 sample.c mm-omp.c mm-omp.f90 pi-omp.c mm-essl.c mm-essl.f90 sample
21
コンパイルと実行(3) sample の実行 ./ を忘れない $ ./sample Welcome to the UNIX world!
./ を忘れない $ ./sample Welcome to the UNIX world! ホームディレクトリ unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c lu-serial.f90 test.txt lu-omp.f90 pi.f90 mm.c mm.f90 test.c lu-essl.f90 pi.c pi-omp.f90 sample.c mm-omp.c mm-omp.f90 pi-omp.c sample mm-essl.c mm-essl.f90
22
コンパイルと実行(4) 自分で入力したプログラムのコンパイル エラーが出たら再編集 再編集 エラーメッセージが表示された?
$ cc test.c –o test 再編集 $ emacs –nw test.c エラーメッセージが表示された? No Yes $ ./test 表示が正しくない? Yes No Congratulations!
23
コンパイルと実行(5) プログラムの再編集(表示内容の変更) 終わったら再度コンパイル・実行 $ emacs –nw test.c
以下のように編集し、保存後終了 #include <stdio.h> int main(void) { printf("Yesterday, \n"); printf("All my trouble seemed so\n"); printf("Far away.\n"); return(0); } Emacs の行コピー機能を利用すると便利 $ ls $ cc test.c –o test $ ./test
24
リダイレクションの利用(1) 準備: /tmp/sum.c のコピー $ cp /tmp/sum.c . $ ls ホームディレクトリ
unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c test.txt lu-serial.f90 lu-omp.f90 test.c pi.f90 mm.c mm.f90 pi.c lu-essl.f90 test pi-omp.f90 mm-omp.c mm-omp.f90 sample.c pi-omp.c mm-essl.c mm-essl.f90 sample sum.c
25
リダイレクションの利用(2) sum.cのコンパイル $ cc sum.c –o sum $ ls ホームディレクトリ unix1
カレントディレクトリ programs test pi mm lu c f c f hello.c test.txt lu-serial.f90 lu-omp.f90 test.c pi.f90 mm.c mm.f90 test pi.c lu-essl.f90 pi-omp.f90 mm-omp.c mm-omp.f90 sample.c pi-omp.c mm-essl.c mm-essl.f90 sample sum.c sum
26
リダイレクションの利用(3) 実行: まずキーボードから入力 $ ./sum A = ? 10 B = ? 20
実行: まずキーボードから入力 $ ./sum A = ? 10 B = ? 20 A = 10, B = 20, A + B = 30 キーボードから入力 キーボードから入力
27
リダイレクションの利用(4) 実行: ファイルから入力 (リダイレクト) $ less /tmp/data 中身を確認したら q で終了
実行: ファイルから入力 (リダイレクト) $ less /tmp/data 中身を確認したら q で終了 $ ./sum < /tmp/data A = ? B = ? A = 100, B = 200, A + B = 300
28
リダイレクションの利用(5) 実行: ファイルから入力し,ファイルへ出力 (リダイレクト)
実行: ファイルから入力し,ファイルへ出力 (リダイレクト) $ ./sum < /tmp/data > out $ less out ホームディレクトリ unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c test.txt lu-serial.f90 lu-omp.f90 test.c pi.f90 mm.c mm.f90 test pi.c lu-essl.f90 pi-omp.f90 mm-omp.c mm-omp.f90 out sample.c pi-omp.c mm-essl.c mm-essl.f90 sample sum.c sum
29
リダイレクションとパイプラインの利用 実行: 出力を次のコマンドの入力とする (パイプライン)
実行: 出力を次のコマンドの入力とする (パイプライン) $ ./sum < /tmp/data | tail –1 $ ./sum < /tmp/data | tail –1 > out $ less out tail コマンド: ファイルの末尾から指定した行数分を表示する. tail –行数 ファイル名 ホームディレクトリ unix1 カレントディレクトリ programs test pi mm lu c f c f hello.c test.txt lu-serial.f90 lu-omp.f90 test.c pi.f90 mm.c mm.f90 test pi.c lu-essl.f90 pi-omp.f90 mm-omp.c mm-omp.f90 out sample.c pi-omp.c mm-essl.c mm-essl.f90 sample sum.c sum
30
パイプラインの利用 1画面に表示しきれない出力をページ毎に表示 $ ls -lR | less カレントディレクトリ ホームディレクトリ
unix1 programs test pi mm lu c f c f hello.c test.txt lu-serial.f90 lu-omp.f90 test.c pi.f90 mm.c mm.f90 test pi.c lu-essl.f90 pi-omp.f90 mm-omp.c mm-omp.f90 out sample.c pi-omp.c mm-essl.c mm-essl.f90 sample sum.c sum
31
ログアウト 必ず以下を実行してログアウトする $ exit
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.