UNIX演習 情報ネットワーク特論資料 1 教育用クラウド上のサーバを用意 教育用クラウド: https://vcl.qc.kyushu-u.ac.jp/ 学生IDを使ってログイン ログイン後、「新規予約」 「継続時間」を選択して、「予約」 「接続!」が表示されるまで待って、クリック 「リモートコンピュータ」に表示されるアドレスに、 学生IDとパスワードを使ってログイン Windowsの場合、Putty等 MacOS X の場合、「ターミナル」で sshコマンド 実習用ファイルを取得し、 サーバにアップロード 講義ページにある unix.tar をダウンロード ファイル転送ソフト等を使って、教育用クラウド上に 確保したサーバへアップロード Windowsの場合、 WinSCP MacOS Xの場合、 「ターミナル」で scpコマンド 3 ファイル操作の準備 $ ls $ tar xvf unix.tar $ ls ファイルの一覧 実習用のファイルを展開. 展開後は以下のようになる. ホームディレクトリ カレントディレクトリ unix dat hello.c lu.f90 lu-omp.f90 mm-omp.c mm-omp.f90 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 4 sample.c sum.f90 test.txt 作業ディレクトリの変更 $ $ $ $ 現在のディレクトリを確認 pwd cd unix pwd ls 作業ディレクトリの変更 カレントディレクトリを unix1に変更. ホームディレクトリ カレントディレクトリ unix dat hello.c lu.f90 lu-omp.f90 mm-omp.c mm-omp.f90 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 5 sample.c sum.f90 test.txt ファイルの内容閲覧 $ less lu.f90 •次のページへ: •前のページへ: •1行下へ: •1行上へ: •閲覧終了: SPACE もしくは f b Enter もしくは j k q ホームディレクトリ unix dat カレントディレクトリ hello.c lu.f90 lu-omp.f90 mm-omp.c mm-omp.f90 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 6 sample.c sum.f90 test.txt ディレクトリの作成とファイルのコピー $ $ $ $ $ $ ls mkdir test cp hello.c test cp test.txt test ls ls test testディレクトリ作成 ファイルのコピー testディレクトリの下の ファイル一覧 ホームディレクトリ unix dat カレントディレクトリ test hello.c lu.f90 lu-omp.f90 hello.c test.txt mm-omp.c mm-omp.f90 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 7 sample.c sum.f90 test.txt ファイルの削除 $ $ $ $ $ $ cd test pwd ls rm hello.c rm test.txt ls ファイルの削除 ホームディレクトリ unix dat カレントディレクトリ test hello.c lu.f90 lu-omp.f90 hello.c test.txt mm-omp.c mm-omp.f90 削除 削除 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 8 sample.c sum.f90 test.txt 複数のファイルの操作 $ $ $ $ $ cd .. pwd cp hello.c test.txt test ls test rm -ri test 全て y と答える $ ls ホームディレクトリ unix dat カレントディレクトリ test hello.c lu.f90 lu-omp.f90 hello.c test.txt mm-omp.c mm-omp.f90 削除 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 9 sample.c sum.f90 test.txt ファイルの移動と名前の変更 $ $ $ $ $ $ $ mkdir test ls mv hello.c test.txt test ls ls test mv lu.f90 lu-serial.f90 ls ファイルの移動 ファイル名の変更 ホームディレクトリ 移動 dat unix カレントディレクトリ test hello.c lu.f90 lu-omp.f90 hello.c test.txt mm-omp.c mm-omp.f90 mm.c mm.f90 pi-omp.c 移動 pi-omp.f90 pi.c ファイル名変更 pi.f90 10 sample.c lu-serial.f90 sum.f90 test.txt *の利用(1) $ $ $ $ $ mkdir lu ls mv lu-* lu ls ls lu 名前の先頭が lu- であるファイルを移動 ホームディレクトリ カレントディレクトリ unix dat 移動 lu test lu.f90 lu-omp.f90 hello.c lu-serial.f90 mm-omp.c test.txt mm-omp.f90 lu-omp.f90 mm.c mm.f90 pi-omp.c pi-omp.f90 pi.c pi.f90 11 sample.c sum.f90 *の利用(2) $ $ $ $ $ $ ls mkdir mm ls mv mm.* mm-* mm ls ls mm 名前の先頭が mm. であるファイルと mm- であるファイルを移動 (mm* とすると mmディレクトリまで 含まれてしまう) ホームディレクトリ カレントディレクトリ unix test dat 移動 lu mm hello.c lu-serial.f90 lu-omp.f90 mm-omp.c mm-omp.f90 mm.f90 mm.c mm.c mm.f90 mm-omp.f90 pi-omp.c mm-omp.c pi-omp.f90 pi.c pi.f90 sample.c sum.f90 test.txt 12 *の利用(3) $ $ $ $ $ $ $ cd mm ls mkdir f c mv *.f90 f mv *.c c ls ls * ホームディレクトリ カレントディレクトリ unix dat pi-omp.c pi-omp.f90 pi.c pi.f90 sample.c sum.f90 test mm lu hello.c lu-serial.f90 lu-omp.f90 mm.f90 mm.c mm-omp.f90 mm-omp.c test.txt 移動 f c 13 mm.c mm-omp.c mm.f90 mm-omp.f90 ディレクトリのコピー $ $ $ $ $ $ cd ls ls cp ls ls ~/unix -R -r mm mm-copy -R ホームディレクトリ カレントディレクトリ unix dat pi-omp.c pi-omp.f90 pi.c pi.f90 sample.c sum.f90 test lu hello.c コピー mm c mm.c lu-serial.f90 lu-omp.f90 mm-omp.c test.txt mm-copy f mm.f90 mm-omp.f90 c mm.c mm-omp.c f 14 mm.f90 mm-omp.f90 ディレクトリの移動 $ $ $ $ mkdir programs mv mm lu programs ls ls -R ホームディレクトリ カレントディレクトリ unix dat pi-omp.c pi-omp.f90 pi.c pi.f90 sample.c sum.f90 test mm-copy programs c mm c mm.c hello.c mm-omp.c lu f mm.c mm-omp.c test.txt f mm.f90 mm-omp.f90 lu-serial.f90 lu-omp.f90 mm.f90 mm-omp.f90 15 プログラムの入力 Emacsを起動し,下のプログラムを入力 $ cd ~/unix $ emacs -nw test.c #include <stdio.h> int main() { printf("Hello World\n"); return(0); } 保存コマンド: C-x C-s 終了コマンド: C-x C-c 16 コンパイルと実行(1) sample.c をコンパイル C言語プログラムのコンパイル: cc コマンド $ cc sample.c –o sample $ ls 17 コンパイルと実行(2) sample の実行 ./ を忘れない $ ./sample Welcome to the UNIX world! 18 コンパイルと実行(3) 自分で入力したプログラムのコンパイル エラーが出たら再編集 $ cc test.c –o test 再編集 $ emacs –nw test.c エラーメッセージが表示された? No Yes $ ./test 表示が正しくない? No Congratulations! Yes 19 コンパイルと実行(5) プログラムの再編集(表示内容の変更) $ emacs –nw test.c 以下のように編集し、保存後終了 #include <stdio.h> int main(void) { Emacs の行コピー機能を利用すると便利 printf("Yesterday, \n"); printf("All my trouble seemed so\n"); printf("Far away.\n"); return(0); } 終わったら再度コンパイル・実行 $ ls $ cc test.c –o test $ ./test 20 リダイレクションの利用(1) sum.f90 のコンパイル $ gfortran sum.f90 –o sum $ ls 21 リダイレクションの利用(2) 実行: まずキーボードから入力 $ ./sum A = ? 10 キーボードから入力 B = ? 20 キーボードから入力 A = 10, B = 20, A + B = 30 22 リダイレクションの利用(3) 実行: ファイルから入力 (リダイレクト) $ less dat 中身を確認したら q で終了 $ ./sum < dat A = ? B = ? A = 100, B = 200, A + B = 300 23 リダイレクションの利用(4) 実行: ファイルから入力し,ファイルへ出力 (リダイレクト) $ ./sum < data > out $ less out 24 リダイレクションとパイプラインの利用 実行: 出力を次のコマンドの入力とする (パイプライン) $ ./sum < data | tail –1 $ ./sum < data | tail –1 > out $ less out 25 パイプラインの利用 1画面に表示しきれない出力をページ毎に表示 $ ls -lR | less 26 ログアウト 必ず以下を実行してログアウトする $ exit 27
© Copyright 2024 ExpyDoc