IT pass HikiWiki - [itbase2017]コマンド 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 には, その他にもたくさんのオプションがありますが, "t" オプション

  
および "r" オプションを付けて何が起こるか確認しなさい.


== ファイル操作

=== ちょっとしたファイル作成方法

既に実行してもらっていますが, サイズの小さなファイルを作成する簡単な方法として echo コマンドを利用する方法があります.

$ cd ~                               < ホームディレクトリに移動
$ echo 'hogehoge' >  test.txt        < 文字列 'hogehoge' を test.txt というファイルに入れる

長めの文章やプログラムを作成する場合は, エディタと呼ばれるプログラム (vi, mule, emacs, ae, ex などなど) を使います.

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

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

$ cd ~                         < ホームディレクトリに移動
$ cp test.txt hoge.txt         < 先程作成した test.txt というファイルを hoge.txt というファイルにコピー
$ cat hoge.txt                 < hoge.txt の内容を出力させる

hogehoge と出力されれば, test.txt の中身がコピーされていることが確認されたことになります.

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

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

$ cd ~                              < ホームディレクトリに移動
$ echo 'herohero' >> test.txt       < ">>" と2度大なり記号を続けて入力する
$ 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 の内容が同じであれば, ファイル名が変更されたことを確認できたことになります.

* 問題:

  前節では echo 'hogehoge' の後は ">" と大なり記号は 1 つだけ入力しましたが, 今回は echo 'herohero' の後は ">>" と大なり記号が 2 つになりました. ">"が 1 つのときと 2 つのときでは何が違うでしょうか.

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

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

$ cd ~               < ホームディレクトリに移動
$ rm hero.txt        < 先程作成した hero.txt を消去する
$ ls                 < ファイルリストを表示させ, 上記ファイルが無くなっていることを確認


= 参考資料

このページは
((<"北海道大学 理学院 情報実験 (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>))
を基に作成しました.