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