これは (ISSP-CCMS) ソフトウェア講習会に参加するために最低限必要と思われるUNIX 関連知識をざっくりと学ぶことを目的に作成された(非公式な)文書である。 解説の厳密性および完全性は目指していないことに注意。 また、本文書の内容が各種講習会の事前知識として十分であることは保証されていない。 もう少し余力がある場合には、他の資料、たとえば 計算機実験ハンドブック の第1章 (特に1.1) を予習すると良いだろう。
ほとんどが事実の羅列であり、そもそも著作権が発生しないと考えられるが、 そうではない部分(情報の取捨選択などの編集部分など)も含めて、 CC0 1.0 Universal として公開する。
UNIX ではいくつかのファイルをまとめる入れ物としてディレクトリと呼ばれる特殊なファイルがある。
ディレクトリの中にディレクトリを入れることもでき、全体としてツリー構造を構成する。
ディレクトリの包含関係は中置された /
で表す。
たとえば foo/bar
は、 foo
ディレクトリに含まれている bar
ファイルを意味する。
特殊なディレクトリとして、次のようなものがある:
- ツリー構造の根をルートディレクトリとよび、
/
一文字で表す - 今いるディレクトリをカレントディレクトリ (あるいは working directory) とよび、特別に
.
として表す - 一つ上のディレクトリ (親ディレクトリ)を表す特別な表記として
..
を用いる - ログインしたとき(ターミナルを起動した時)に最初にいるディレクトリのことをホームディレクトリとよび、
~
として表す
コマンドラインインターフェース(シェル・プロンプト・ターミナル・etc) では、利用者はコマンドを打ち込んで計算機に指示を与える。 ひとつのコマンドは1つのコマンド名と0個以上の引数(ひきすう)の組み合わせである。これらは空白で区切られる。
たとえば次のコマンド
cp file1 file2
は、ファイルの複製を行うコマンド cp
に file1
と file2
というふたつの引数を与えている。
cd
(Change Directory)- ディレクトリを移動する
cd
- ホームディレクトリに移動
- 迷ったらこれで帰ってくる
cd foo
- サブディレクトリ
foo
に移動
- サブディレクトリ
cd ..
- ひとつ上のディレクトリに移動
cp
(CoPy)- ファイル・ディレクトリをコピーする
cp source destination
destination
がディレクトリではない場合source
をdestination
という名前でコピーするdestination
がすでに存在している場合は、上書き
destination
がディレクトリである場合destination
ディレクトリの下にsource
をコピーする
cp -r source_directory destination_directory
- ディレクトリをコピーする場合は
-r
オプションが必要 r
は recursive (再帰的)の意
- ディレクトリをコピーする場合は
mkdir
(MaKe DIRectory)- ディレクトリを作成する
mkdir foo
- サブディレクトリ
foo
を作成
- サブディレクトリ
cat
- ファイルの中身を表示する
cat file.txt
less
- ファイルの中身を表示する
less file.txt
q
(quit) キーを押すと終了する/foo
とすると、foo
という文字列を検索できるn
キーで次の検索結果に、N
で前の結果に飛べる
ls
(List Segments)- ディレクトリの中身やファイルの情報を表示する
ls
- 現在いるディレクトリにあるファイルの一覧を表示
rm
(ReMove)- ファイルを削除する
- ゴミ箱への移動などはなく、一発で削除される
- ディレクトリを削除する場合には
-r
オプションが必要
mv
(MoVe)- 大体
cp
と同じだが、元のファイルを残さない(移動する) mv file1 file2
file1
というファイルを移動して、file2
という名前にする- つまり、名前の変更
cp
と違い、ディレクトリの移動の際に-r
は不要
- 大体
pwd
(Print Working Directory)- 現在いるディレクトリ (current directory) の位置を表示
ssh
(Secure SHell)- 別の計算機にリモートログインする(暗号化・認証機能付き)
ssh -X -l yourname yourmachine
yourmachine
という計算機にyourname
というアカウントとしてログインする-X
をつけるとGnuplot
などの GUI ソフトがリモートで利用できる
wget
- Web からファイルをダウンロードする
wget https://google.com/
https://google.com/
にあるファイル (index.html
) をダウンロードする
wget -O foo.html https://google.com/
https://google.com/
にあるファイル (index.html
) をfoo.html
という名前でダウンロードする
gnuplot
- グラフ描画ツール
gnuplot
を実行すると Gnuplot のプロンプトに移行する- Gnuplot 内部のコマンドを実行することでデータをプロット可能
plot "data.dat" u 1:2
- 1列目をx, 2列目をy としてプロット
plot "data.dat" u 1:3 w line
- 1列目をx, 2列目をy として折れ線プロット
evince
- PDF ファイルを開くためのツール
evince file.pdf
- ウィンドウを閉じるかターミナルで
Ctrl-C
で終了
firefox
- ウェブブラウザ
- png などの画像ファイルを表示するのにも使える
firefox image.png
- コマンド/ファイル名補完
- コマンド名やファイル名を入力するときに、途中まで入力したあとに
TAB
キーを入力することで補完がかかる
- コマンド名やファイル名を入力するときに、途中まで入力したあとに
- コマンド履歴
- 上キーを押すことで過去に実行したコマンド一覧をたどれる
- 再度 Enter を押すことで再実行可能
- 上キーを押すことで過去に実行したコマンド一覧をたどれる
- 強制終了
- 実行しているコマンドを途中で止めたくなった場合には、
Ctrl
キーを押しながらc
キーを押す(Ctrl-C
) - 一度押しても止まらない場合には何度か連打してみると良い
- 実行しているコマンドを途中で止めたくなった場合には、
- リダイレクト
- コマンドが画面に出力する結果をファイルに保存したい場合にはリダイレクトを行う
ls > ls.dat
ls
コマンドの結果をls.dat
ファイルに(上書き)保存する
- コマンドが画面に出力する結果をファイルに保存したい場合にはリダイレクトを行う
(テキスト)ファイルを作成・編集するためのプログラムを一般にエディタと呼ぶ。
世の中には様々なエディタが存在するが、MateriApps LIVE! を用いた講習会では mousepad
が一番シンプルなテキストエディタであろう。
これは Windows で言うところのメモ帳、 macOS で言うところのテキストエディタに近いもので、
気の利いたことはあまりできないが、すでにあるファイルを少しだけ書き換える場合には十分である。
物性研スパコンには mousepad
は残念ながら入っていないが、その代わりに使える比較的シンプルなエディタとして nano
がある(MA LIVE! でも利用可能)。
nano
では Ctrl-O
でファイル保存、 Ctrl-X
で終了できる(画面の下にコマンド一覧が表示されているが、その中の ^
は Ctrl
キーの意味)。
言うまでもなくUNIX 環境の資料および教科書は世にたくさん存在する。 Web から入手可能な、教育や研究を主眼とした資料としては
-
- 東大の教育用計算機システム(ECCS) の自習用教材
- いわゆる「情報」の講義のざっくりとした入門教材
-
- 東大理物の計算機実験(プログラミングなど)の教科書
などが挙げられる。