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