IT pass HikiWiki - [itbase2019]Unix コマンド手始め Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

GUI (Graphical User Interface) 環境下では, Finder やエクスプローラー
といったファイルマネージャを用いてファイルを操作しますが,
CUI (Character User Interface) 環境下ではすべてコマンドを実行しなければ
なりません.
ここではそれら基本的なコマンドのいくつかを実習します.

下に書いてあるコマンドの実行例は, 自分でターミナルに打って動作を
確認することを勧めます.
読んでいるだけでは頭に入りませんが, 自分で手を動かしてみることが
重要です.
(惑星学の他の科目と同じことですね.)


== ファイル一覧表示

現在いるディレクトリにあるファイルのリストを表示するコマンドは ls です.

  $ ls                                     <- ls コマンドを実行
  Desktop Library  Pictures  old-home
  Documents  Movies  Public  jouhou

ls は list の意味で, 現在いるディレクトリ (これを current working directory と呼びます) にあるファイルやディレクトリを表示します.

コマンドには通常様々なオプションが用意されています.

非常によく使うであろう ls のオプションの一つは a オプションです.

  $ ls -a
  . .. .bash_profile .bashrc
  Desktop Library  Pictures  old-home
  Documents  Movies  Public  jouhou

このとき, オプションを付けない ls よりも多くのファイルが表示されます.
a オプションを付けることで初めて表示されるようになったファイルは,
ファイル名の最初が "." (ドット/ピリオド) で始まっているファイルです.
これらは, 謂わば「隠しファイル」になっています.
".", ".." はそれぞれ特別な意味がありますが, それ以外の, "." で名前が
始まるファイル, 例えば .bashrc など, は各種設定のためのファイルです.

他の良く使うオプションの一つは l オプションです.

  $ ls -l
  合計 1520
  drwx------ 2  XXX student 4096 Mar 28 12:47 Desktop
  drwx------ 2  XXX student  256 Mar  7 2005  Documents
  drwx------ 23 XXX student 4096 Apr  4 14:47 Library
  ...

l オプションは, ファイルやディレクトリの情報を詳細に示します.
表示された情報の詳細の説明は後に回すことにしますが, 一つだけ
説明しておくと, 最初の "d" の文字は, それがディレクトリであることを
示しています.
つまり, 上の例で示している Desktop, Documents, Library はすべて
ディレクトリで, その中にファイルやディレクトリが入っているかもしれません.

ディレクトリの中にあるファイルやディレクトリを調べるためには ls に
引数としてディレクトリ名を与えます.

  $ ls Desktop
  Test.txt
  ...

上の例の "Desktop" のように, コマンドの後に空白を付け, その後に与える「値」を
「引数」と呼びます.

上では, コマンドには複数のオプション (l, a, ...) があり,
また, 引数を与えることができることを示しましたが, これらは一度に
与えることもできます.

  $ ls -al Desktop
  合計 20
  drwx------ 2  XXX student 4096 Mar 28 12:47 .
  drwx------ 2  XXX student  256 Mar  2 2005  ..
  -rwx------ 5  XXX student 4096 Mar  4 14:47 Test.txt
  ...

なお, この時のオプション a, l の順番は逆でも構いません.

=== 練習

ls コマンドに下のオプションを付けて表示の変化を確認しよう.

  -a
  -l
  -r
  -tl(t オプションと l オプションを同時に指定)
  -F


== ファイル操作

=== 準備 (練習に使用するファイル作成)

この後の練習に用いるファイルを作ります.
ここでは, echo コマンドを使ってファイルを作ることにします.
echo コマンドは, 引数に与えた文字列を画面に出力します.

$ echo 'hogehoge' >  test.txt        < 文字列 'hogehoge' を test.txt というファイルに入れる
$ cat test.txt                       < test.txt の内容を出力させる

">" の記号の詳細はあとで説明しますので, ここではとりあえず上のように入力してファイルを作ってください.
また, cat は, ファイルの中身を表示するコマンドです.

=== ファイルのコピー方法

既存ファイルの他のファイルへのコピーは cp コマンドを用います.

$ cp test.txt hoge.txt         < 先程作成した test.txt というファイルを hoge.txt というファイルにコピー
$ cat hoge.txt                 < hoge.txt の内容を出力させる

hogehoge と出力されれば, test.txt の中身がコピーされていることが確認できるでしょう.

=== ファイル名の変更方法

既存ファイル名の変更は mv コマンドを用います.

$ cat test.txt                      < test.txt の内容を確認
$ mv test.txt  hero.txt             < test.txt というファイルを hero.txt という名のファイルに変更
$ ls                                < ファイルリストを出力 (test.txt は存在しないことを確認!)
$ cat hero.txt                      < hero.txt の内容を出力させる

mv を実行する前の test.txt の内容と hero.txt の内容は同じで, ファイル名が変更されたことを確認できるでしょう.

* 練習:

  上の方法を使って, hoge.txt を hoge1.txt に名前を変えてみましょう.
  その後で, hoge1.txt をコピーし, hoge2.txt, hoge3.txt, hoge4.txt を作ってみましょう.
  ファイルをコピーしたら, 実際にファイルができていることを確認しましょう.


=== ファイルの削除方法

ファイルの削除は rm コマンドを用います. Windows とは異なり, 一度消したファイルは復帰できませんので注意してください.

$ ls                 < ファイルリストを確認
$ rm hero.txt        < 先程作成した hero.txt を消去する
$ ls                 < ファイルリストを表示させ, 上記ファイルが無くなっていることを確認

* 練習:

  上の方法を使って, hoge3.txt を削除してみましょう.
  ファイルを削除したら, 実際にファイルが削除されていることを確認しましょう.



= 参考資料

このページは
((<"北海道大学 理学院 情報実験 (INEX)"|URL:http://www.ep.sci.hokudai.ac.jp/~inex>))

((<" 最低限 UNIX / Linux [II] ファイルとディレクトリ (2007 年度資料)"|URL:http://www.ep.sci.hokudai.ac.jp/~inex/y2007/1019/1022.1.html>))
を基に作成しました.