情報処理概論(第二日目)

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の基本コマンド
•
新しくディレクトリを作成
•
カレントディレクトリの変更
•
ファイル一覧 ls
•
カレントディレクトリを表示 pwd
•
ファイルの新規作成,編集 emacs
mkdir
cd
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 (オプション) 移動元 移動先
–
•
移動先がディレクトリならディレクトリへの移動
ファイルなら,ファイル名の変更
例1: test.f90 を fortranディレクトリに移動test.f90
$ 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
test.f90
fortran
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-1222
パス:
ファイルやディレクトリの場所

目的のファイルやディレクトリまでたどる際の
パス(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