UNIX利用法
主なUNIXのコマンド コマンド 動作 pwd 現在位置(カレントディレクトリ)の表示 ls ファイル一覧の表示 less ファイル名 ファイルの内容表示 cd 移動先 カレントディレクトリの変更(移動) mkdir ディレクトリ名 新規ディレクトリの作成 mv 移動元 移動先 ファイルの移動, ファイル名の変更 cp コピー元 コピー先 ファイルのコピー rm ファイル名 ファイルの削除 emacs -nw ファイル名 ファイルの新規作成,もしくは編集 ifort ソースファイル –o 実行ファイル Fortranプログラムの翻訳(コンパイル) ./実行ファイル名 プログラムの実行
コマンド入力時の操作 キー操作 機能 → カーソルを一つ右に移動 ← カーソルを一つ左に移動 C-a 左端に移動 C-e 右端に移動 C-u 全部削除 C-k カーソルから右側を切り取り C-y 直前に切り取った部分を貼り付け ↑ 実行したコマンド履歴の古い方へ ↓ 実行したコマンド履歴の新しい方へ TABキー コマンドやファイルの補完
ディレクトリ ディレクトリ = Windowsや MacOSのフォルダ ディレクトリの中にさらにディレクトリを作成可能 UNIX で,ファイルの分類に利用 ディレクトリの中にさらにディレクトリを作成可能 フォルダと同様に階層的な構造 fortran work jikken fortran work jikken work
UNIXの基本コマンド 新しくディレクトリを作成 mkdir カレントディレクトリの変更 cd ファイル一覧 ls カレントディレクトリを表示 pwd ファイルの新規作成,編集 emacs
ディレクトリの作成 mkdir Windowsや MacOSにおける,「右クリックしてフォルダの新規作成」 例1: fortranという名前のディレクトリを作成 例2: jikken と picture という名前のディレクトリを作成 空白(スペース)を 忘れない $ mkdir fortran $ mkdir jikken picture
カレントディレクトリの変更 cd 指定したディレクトリに移動する = カレントディレクトリ(作業対象のディレクトリ)を変更する 指定したディレクトリに移動する = カレントディレクトリ(作業対象のディレクトリ)を変更する 使い方: cd 移動先のディレクトリ名 移動先のディレクトリ名を省略すると,ホームディレクトリに移動 例: fortran ディレクトリに移動する $ cd fortran
ファイル一覧の表示 ls ファイルの一覧を表示 使い方: ls (オプション) (ディレクトリ名やファイル名) … 指定できるオプション: ファイルの詳細情報を表示する –l ディレクトリの中を辿って階層構造を表示する –R ディレクトリ名やファイル名を省略するとカレントディレクトリの ファイルを表示 例: (カレントディレクトリ内の)fortranディレクトリの中に 格納されているファイルの詳細情報を表示する $ ls -l fortran
カレントディレクトリの表示 pwd 使い方: pwd いつ使う? 今,どのディレクトリで作業しているか,わからなくなったとき ファイルを削除する等の危険なコマンドを実行する前に 確認しておきたいとき
ファイルの移動,名前の変更 mv 使い方: mv (オプション) 移動元 移動先 移動先がディレクトリならディレクトリへの移動 ファイルなら,ファイル名の変更 例1: test.f90 を fortranディレクトリに移動 例2:test.f90 の名前を aaa.f90 に変更 例3:test1.f90, test2.f90, test3.f90 を test ディレクトリに移動 test.f90 test.f90 $ mv test.f90 fortran fortran test.f90 aaa.f90 $ mv test.f90 aaa.f90 $ mv test1.f90 test2.f90 test3.f90 test test1.f90 test1.f90 fortran test
ファイルのコピー cp 例: test.f90 を test2.f90 という名前でコピー コピー元がファイルの場合,ファイルをコピー コピー先がファイルなら,その名前のファイルとしてコピー コピー先がディレクトリなら,コピー元と同じ名前のファイルとして, そのディレクトリ中にコピー コピー元がディレクトリの場合,オプション –R を指定して ディレクトリ全体をコピー 例: test.f90 を test2.f90 という名前でコピー $ cp test.f90 test2.f90
ファイルの削除 rm 使い方: rm (オプション) 削除するファイルまたはディレクトリ … 例1: test.f90 と test2.f90 の削除 例2: ディレクトリ fortran の削除 $ rm test.f90 test2.f90 $ rm –r fortran
ファイルの扱いに注意 UNIXでは,ファイルを削除したら,本当に消える. 以下の場合も,上書きされる側の内容が消える コピー先に同じ名前のファイルがある 移動先に同じ名前のファイルがある mv, cp, rm に共通のオプション –i ファイルを削除,もしくは上書きする際,一つ一つのファイルについて,間違いないか,確認してくれる.
ファイルの内容表示 less 使用法: less ファイル名 ファイルの内容を表示 閲覧中は以下のキーを利用 次のページへ: SPACE もしくは f 前のページへ: b 1行下へ: Enter もしくは j 1行上へ: k 閲覧終了: q
プログラムの入力 emacs テキストファイルを作成,編集するエディタ Emacsを起動 使い方: emacs ファイル名 指定したファイルが存在しなければ新規作成, 存在すれば編集. 例: test.f90という名前のファイルを作成,もしくは編集 $ emacs test.f90 --uu:--F1 test.f90 (F90)--L1--All
Emacsの画面構成 編集中の ファイル名 現在,カーソルが ある行 テキストウィンドウ: 文書の編集を行う テキストウィンドウ: 文書の編集を行う モード行: ファイル名,現在位置等を表示 --uu:--F1 test.f90 (F90)--L1--All ミニバッファ: コマンドの入力、メッセージ表示 編集中の ファイル名 現在,カーソルが ある行
Emacsの操作 キー操作 意味 C-f または → カーソルを右へ(Forward) C-b または ← カーソルを左へ(Backward) C-n または ↓ カーソルを下へ(Next) C-p または ↑ カーソルを上へ(Previous) C-d カーソル位置の文字消去 delete カーソル位置直前の文字消去 C-g コマンドの中断 C-x C-s ファイルのセーブ C-x C-c Emacs の終了 C- は 「Ctrl(Control)キーを押しながら」の意 例) C-x Ctrlキーを押しながら x キーを叩く
Emacsで変な画面になったときは まず C-g を数回押してみる 元に戻らなければ,一旦 C-x C-c で Emacsを終了する 元に戻ったら入力を続ける 元に戻らなければ,一旦 C-x C-c で Emacsを終了する Save file .... ? には y を入力 その後あらためて emacs さっき編集していたファイルの名前 でEmacsを起動
UNIXのファイルとディレクトリ 準備: ディレクトリにファイルが入っている状態を このように表すことにする. 1つのディレクトリに 1つのファイルが 入っている状態 複数のファイルが 入っている状態 fortran test1.f90 test2.f90 test3.f90 fortran ディレクトリとファイルが 混在している状態 test.f90 fortran lec1-4 lec5-8 test.f90 test.f90 test.f90
サーバ全体のファイル構造 逆さにした木のような構造 一番上にルート(根)ディレクトリ / ルートディレクトリ - 階層構造の起点 usr tmp home etc 99nen ホームディレクトリ - ログイン時のカレントディレクトリ - ユーザー毎に用意 91nen 90nen te199999 te199000 カレントディレクトリ -作業対象となるディレクトリ - cd コマンドで適宜変更可 - 最初(ログイン直後)は ホームディレクトリ fortran rep1.f90 lec1-4 test.f90
ホームディレクトリと カレントディレクトリ カレントディレクトリ(=現在"いる"ディレクトリ)を 基準としてファイルやディレクトリの場所を指定する. ログイン直後はホームディレクトリ (=自分専用のディレクトリ)に ”いる” 例: → カレントディレクトリに test.f90 を作成 → カレントディレクトリに fortranディレクトリ作成 → カレントディレクトリの test.f90 を カレントディレクトリの下の fortran ディレクトリに移動 $ emacs test.f90 $ mkdir fortran $ mv test.f90
別のディレクトリに移って作業 作業対象のファイルやディレクトリがある ディレクトリに移って作業する $ cd fortran $ mkdir lec1-4 lec5-8 lec9-12 te199999 カレントディレクトリ fortran lec5-8 lec9-12 lec1-4 ディレクトリを移らない場合,キー入力が大変: $ mkdir fortran/lec1-4 fortran/lec5-8 fortran/lec9-12
パス: ファイルやディレクトリの場所 目的のファイルやディレクトリまでたどる際の パス(path:経路)を列挙 二通りの記述方法(どちらでも良い) 相対パス:カレントディレクトリからたどるパス 絶対パス:ルートディレクトリからたどるパス / home 99nen te199999 fortran カレントディレクトリ test.f90
パスの指定 相対パス (カレントディレクトリの下の) fortran の下の test.f90 fortran/test.f90 「ディレクトリの下」は / で記述する 例: (今ホームディレクトリにいる状態で) fortran ディレクトリの下の test.f90 相対パス (カレントディレクトリの下の) fortran の下の test.f90 fortran/test.f90 絶対パス ルートディレクトリの下の home の下の 99nen の下の te199999 の下の fortran の下の test.f90 /home/99nen/te199999/fortran/test.f90 ルートディレクトリも / で記述する. / home 99nen te199999 fortran カレントディレクトリ test.f90
パスの記述に用いる特殊な記号 一つ上のディレクトリ .. (ピリオド二つ) % cd .. カレントディレクトリ . (ピリオド一つ) 一つ上のディレクトリ .. (ピリオド二つ) 例: カレントディレクトリの一つ上に移る カレントディレクトリ . (ピリオド一つ) 例: 一つ上のディレクトリの test.f90 をカレントディレクトリに移動する. ホームディレクトリ ~ 例: ホームディレクトリの work ディレクトリに移る. te199999 % cd .. fortran カレントディレクトリ % mv ../test.f90 . % cd ~/work