Skip to content

Instantly share code, notes, and snippets.

@yomichi
Last active April 19, 2021 09:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save yomichi/0fb2cb7cbad641f77d762124b79af364 to your computer and use it in GitHub Desktop.
Save yomichi/0fb2cb7cbad641f77d762124b79af364 to your computer and use it in GitHub Desktop.

速習「ソフトウェア講習会のためのUNIX 環境」

本文書について

これは (ISSP-CCMS) ソフトウェア講習会に参加するために最低限必要と思われるUNIX 関連知識をざっくりと学ぶことを目的に作成された(非公式な)文書である。 解説の厳密性および完全性は目指していないことに注意。 また、本文書の内容が各種講習会の事前知識として十分であることは保証されていない。 もう少し余力がある場合には、他の資料、たとえば 計算機実験ハンドブック の第1章 (特に1.1) を予習すると良いだろう。

ライセンス

ほとんどが事実の羅列であり、そもそも著作権が発生しないと考えられるが、 そうではない部分(情報の取捨選択などの編集部分など)も含めて、 CC0 1.0 Universal として公開する。

ディレクトリ

UNIX ではいくつかのファイルをまとめる入れ物としてディレクトリと呼ばれる特殊なファイルがある。 ディレクトリの中にディレクトリを入れることもでき、全体としてツリー構造を構成する。 ディレクトリの包含関係は中置された / で表す。 たとえば foo/bar は、 foo ディレクトリに含まれている bar ファイルを意味する。

特殊なディレクトリとして、次のようなものがある:

  • ツリー構造の根をルートディレクトリとよび、 / 一文字で表す
  • 今いるディレクトリをカレントディレクトリ (あるいは working directory) とよび、特別に . として表す
  • 一つ上のディレクトリ (親ディレクトリ)を表す特別な表記として .. を用いる
  • ログインしたとき(ターミナルを起動した時)に最初にいるディレクトリのことをホームディレクトリとよび、 ~ として表す

コマンド

コマンドラインインターフェース(シェル・プロンプト・ターミナル・etc) では、利用者はコマンドを打ち込んで計算機に指示を与える。 ひとつのコマンドは1つのコマンド名と0個以上の引数(ひきすう)の組み合わせである。これらは空白で区切られる。

たとえば次のコマンド

cp file1 file2

は、ファイルの複製を行うコマンド cpfile1file2 というふたつの引数を与えている。

講習会で最低限必要なコマンド

  • cd (Change Directory)
    • ディレクトリを移動する
    • cd
      • ホームディレクトリに移動
      • 迷ったらこれで帰ってくる
    • cd foo
      • サブディレクトリ foo に移動
    • cd ..
      • ひとつ上のディレクトリに移動
  • cp (CoPy)
    • ファイル・ディレクトリをコピーする
    • cp source destination
      • destination がディレクトリではない場合
        • sourcedestination という名前でコピーする
        • 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

Tips

  • コマンド/ファイル名補完
    • コマンド名やファイル名を入力するときに、途中まで入力したあとに 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 から入手可能な、教育や研究を主眼とした資料としては

などが挙げられる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment