$ pwd /homer/pl/tea/mmr14135 ・・・各自違う結果になるはず
$ ls $ ls -a ・・・隠しファイルも含む全てのファイルリストを表示 $ ls -l ・・・ファイルに関する詳細情報を表示 $ ls -la ・・・隠しファイルもふくめて、ファイルに関する詳細情報を表示 $ ls -F ・・・ディレクトリ名の後ろに「/(スラッシュ)」が付く。
隠し(不可視)ファイルファイルとは、
ピリオド"."で始まるファイルは隠しファイルである。
lsコマンドでみるには、オプション-aが必要。
このように、コマンドの動作を変更する指令を「オプション」といい、
コマンドの引数として指定します。
例えば、Desktop という名前のディレクトリをカレントディレクトリとするには、
$ cd Desktop
UNIX には非常に多くのコマンドがあるため、すべてを把握するのは困難ですが、基本的なコマンドにはオンラインマニュアルが用意されています。オンラインマニュアルを使用するには、man というコマンドを用います。例えば、
$ man cat
と入力すると cat コマンドのマニュアルが表示されます。したがって man コマンド自身のマニュアルは、man man と入力すれば表示されます。
マニュアルの次の行を表示するにはリターンキー、次のページを表示するに はスペースキーです。
1 行スクロールアップ | Enter キー |
1 ページスクロールアップ | Space キー |
1 ページ逆方向へスクロール | b |
終了 | q, Q |
また、行いたい操作がどのようなコマンドを使えばできるのかを知るには、 man -k keyword とするとヒントが得られます。
キーワード検索については、英文を英単語のキーワードで検索する方がヒットしやすいかもしれません。ファイルを複製(copy)をするコマンドを探すなら、次のように実行します。
$ man -k copy cp(1) - copy files cpio(1) - copy files to and from archives dd(1) - convert and copy a file memccpy(3) - copy string until character found : --- 以下たくさん ---
目的のコマンド名がわかったら man cp などとして詳しい説明を読みます。
ファイルを指定する時は、階層の一番上(ルートといい"/"で表現します),
あるいはカレントディレクトリから、
そのファイルにたどり着くまでのディレクトリを"/"で区切りながら順にならべます。
このようにファイルを指定する文字列をパスと呼びます。パス=
path = 径路(経路)、そのファイルに至る道筋という意味です。
パスの例として、
/homer/pl/tea/mmr14135/Examples/readme.txt
が意味するのは…
ファイルシステムの一番根元のディレクトリ(ルートと呼ぶ)の中にある( 一番先頭の/ がそれを表す)
homer というディレクトリの中にある
tea というディレクトリの中にある
mmr14135 というディレクトリの中にある
Examples というディレクトリの中にある
readme.txt というファイル
を指定しています.
この例のパスは/で始まっていることに注意してください。入り口
(root)からの完全な経路をしていしている、
このパスを絶対パスと呼んでいます。
もう一つの例として、
Examples/readme.txt
が意味するものを考えましょう。
これは/で始まっていないので、どこのディレクトリの中の Examples
ディレクトリなのか分からないことになりますが、この場合は
カレントディレクトリの中にあるExamplesを指定することになっています。
だからもしカレントディレクトリが /homer/pl/tea/mmr14135 と指定されていたら
実際のパスは
/homer/pl/tea/mmr14135/Examples/readme.txt
となりますが、もしカレントディレクトリが /homer/pl/tea/ となっていたら (ディレクトリteaのなかに Examplesがあるとしての話です)
/homer/pl/tea/Examples/readme.txt
になります。
このように/で始まらないパスは、カレントディレクトリを基準として
ファイルを指定するパス(相対パス)と理解されます。
カレントディレクトリを設定することで、本来長いパスを省略して書くことができます。
特殊なファイル名として、"." と ".." があります。 "." はカレントディレクトリ(ユーザが作業を行っているディレクトリ)を、".." は 1 つ上の階層のディレクトリを表します。 親ディレクトリに移動するには、
$ cd ..
カレントディレクトリのパスを調べるには pwdコマンドを使用します。
$ pwd /homer/pl/tea/mmr14135 ・・・/tea/mmr14135のところ各自違う結果になるはず
みなさんも試してください。
$ pwd /homer/se/16/rp ...
となっているはずです。
カレントディレクトリにあるファイルの一覧を表示するには ls コマンドを使用します。
$ ls Desktop Rits-Rainbow wp1.txt Examples public_html
※ まず、かんたんのために前回描いた絵をGUIの操作でデスクトップから ホームディレクトリに移しておきましょう。
CUIでのディレクトリの作成には mkdirコマンドを使用します。 前回に描いた絵を収めるディレクトリ「PicBox」をつくりましょう。
$ mkdir PicBox $ ls Desktop PicBox public_html Examples Rits-Rainbow wp1.txt
もちろん、もっとつくれます。
$ mkdir training $ ls Desktop PicBox public_html wp1.txt Examples Rits-Rainbow training
ディレクトリへ移動するにはcdコマンドを使用します。
$ cd PicBox $ pwd /homer/pl/tea/mmr14135/PicBox
このディレクトリにあるファイルを確認しましょう。
$ ls $ ls -aF ./ ../
ls にオプション -a を与えると、全てのファイルを表示します。"." はそのディレクトリ自身を示し、".." はひとつ上のディレクトリを示します。ここでは、
. = /homer/pl/tea/mmr14135/training
.. = /homer/pl/tea/mmr14135/
となります。ls -a で表示されたものが "." と ".." だけということは、何も入っていないディレクトリだということです。
1階層上のディレクトリに遡るには、特別なディレクトリ名「..」を用います。
$ cd .. $ pwd /homer/pl/tea/mmr14135・・・各自のホームディレクトリになっているはず
ホームディレクトリに直接移動する方法は cd ~ と入力します。「~」はホームディレクトリを意味する記号です。
(ホームディレクトリに移動することはcd のみ入力してもできます)
$ cd ../../ $ pwd /homer/pl $ cd ~ $ pwd /homer/pl/tea/mmr14135・・・各自のホームディレクトリになっているはず
ファイルのコピーをするのは cp コマンドです。
ホームにある
GIMPで描いた絵をPicBoxにコピーしましょう。
$ cp ピーマン2016.xcf PicBox $ cd PicBox $ ls ピーマン2016.xcf
やはりファイル名は英数文字にしておいたほうがつかいやすいですね。
※ まだ絵を描いていないひとは
$ gimp &としてグラフィックソフト 『GIMP』を起動して描画してください。保存するときは、GIMP形式 (*.xcf)にしておくとよいでしょう。
アカウント名 mmr14135 (講師:松本)のホームディレクトリに行くには
$ cd ~mmr14135 $ pwd pwd /homer/pl/tea/mmr14135 ・・・松本のホームディレクトリになっているはず
とします。「~」の後にユーザIDをつけると、そのユーザのホームディレクトリを意味します。
隣のひとのホームディレクトリに行ってみましょう。
筆者のホームディレクトリ内のExamplesディレクトリ(/homer/pl/tea/mmr14135/Examples または ~mmr14135/Examples)
にサンプル等を置くので、適宜参考にしたりコピーして使ってください。
他人のファイルでもコピーできてしまうこともあります。 私(講師)のホームディレクトリに在るファイルを各自のホームディレクトリにコピーしてみましょう。
$ cp ~mmr14135/Examples/readme.txt ~/ $ cd ・・・受講者のホームディレクトリに移動した $ ls readme.txt (その他のファイル) $
このファイルの内容を見てみましょう。catコマンドでファイルの内容を標準出力に渡します。
$ cat readme.txt
自分のホームディレクトリにコピーしなくても、直接ファイルの中身を見たり、実行
したりすることもできます。
$ cd ~mmr14135/PicBox $ cat ピーマン2015.xcf
これはテキストファイルではないので、 とんでもない光景になります。
$ gimp ピーマン2015.xcf &
で他人の部屋で他人の描いた絵を観ている状態となります。
ファイルの場所を移動をするのは mv コマンドです。
自分のホームディレクトリにあるreadme.txt をさっき作った training ディレクトリ(~/training)に移動してみましょう。
$ cd $ ls readme.txt .... $ mv readme.txt ~/training/ $ cd ~/training $ ls readme.txt
ファイル名の変更も mv コマンドです。readme.txt を koreyome.txt という名前に変更してみましょう。
$ mv readme.txt koreyome.txt $ ls koreyome.txt
ファイルを削除するコマンドは rm です。
$ rm koreyome.txt $ ls
ディレクトリを削除するときはオプション -r です。(あるいは、 rmdir)
$ cd ~ $ rm -r training
ファイルやディレクトリのアクセス権の変更をします。UNIX では人に見られたくないファイルやディレクトリを他人にアクセスされないようにすることが簡単に出来ます。 RGL
まず、ファイルやディレクトリのアクセス権を調べます。 調べるには ls コマンドを用いますが、-l のオプションを併用します。
$ ls -l .bashrc -rw-r--r-- 1 mmr14135 teacher 124 4月 1 09:26 2014 .bashrc
ここで、左端のカラム -rwxr--r-- に注目します。
この記号は 1+3+3+3 のグループに分けて読み取ります。
各々のグループが示している意味は以下になります。
記号 r,w,x の意味は
文字 | 数値 | 内容 |
---|---|---|
r | 4 | 読みだし可(readable) |
w | 2 | 書き込み可(writable) |
x | 1 | 実行可能(executable) |
これらのアクセス権を変更するコマンドが chmod です。 アクセス権は以下の規則で決められる数字を3桁に用いて表現します。
文字 | 数値 | 内容 |
---|---|---|
rwx | 7 (4+2+1) | 読み出し可+書き込み可+実行可能 |
rw- | 6 (4+2) | 読み出し可+書き込み可 |
r-x | 5 (4+1) | 読み出し可+実行可能 |
-wx | 3 (2+1) | 書き込み可+実行可能 |
例えば、ファイル .bashrc を自分には実行・読み・書きの権限を与え、 自分以外のユーザーには全く権限を与えないようにするには
$ chmod 700 .bashrc
としてやります。リストを見て、
$ ls -l .bashrc -rwx------ 1 mmr14135 teacher 124 4月 1 09:26 2014 .bashrc
左端のカラムが -rwx------- となっているか確認します。
外部にホームページを公開しつつ、それ以外のファイルにアクセスできないよう にするためには以下のコマンドを実行します。
$ chmod 700 -R ~ $ chmod 755 -R ~/public_html $ chmod 755 ~
ここのchmodのオプション -Rは 再帰的(Recursive)にそのディレクトリの中身も同じアクセス権に設定するオプションです。
課題:講師(松本)のホームディレクトリ下のディレクトリExamplesにある隠しファイルを探し、
そのファイル名とその内容を松本までメールで提出せよ。
メールの件名:情報処理演習(A2 or B2) 第2回課題 氏名: 学籍番号: ファイル名: 内容:
提出期限:演習時間内