工学基礎実験実習 ファイル操作とシェル1 解説
-
ここでは,ファイルシステムの仕組みやコマンドの詳細について記載しています.
参考にして下さい.
- ファイルとディレクトリ(4.1節)
端末上で "emacs a.txt &" と入力,実行して,編集後に保存すると,"a.txt" という名前の
ファイルがカレントディレクトリに作られます.
実際にやってみましょう.
- ファイルシステム(4.1.1節)
カレントディレクトリが "/home/users/ecs/(ユーザ名)/tmp" の状態で "emacs a.txt &" を実行すると,
1. で作成したファイル "a.txt" とは異なるファイル "a.txt" が作られます.
この状態で,先ほど作成したファイル "a.txt" を編集するためには,
"emacs ../a.txt &" を実行します.
これは,親ディレクトリにあるファイル "a.txt" を指します.
絶対パスは,ファイルを一意に指定する名前です.
前述の2つの "a.txt" は,それぞれ次のような絶対パスで表されます.
なお,$USER は,各自のログイン名(例えば学生番号)とします.
- /home/users/ecs/$USER/a.txt
- /home/users/ecs/$USER/tmp/a.txt
このとき,"emacs /home/users/ecs/$USER/a.txt" などを実行して,
目的のファイルが編集できることを確認しましょう.
カレントディレクトリが "/home/users/ecs" であれば,2 つのファイルはそれぞれ $USER/a.txt ,$USER/tmp/a.txt と表されます.
また,カレントディレクトリが "/home/users/ecs/$USER/tmp" であれば,2 つのファイルはそれぞれ ../a.txt ,a.txt と表されます.
以上のように,通常は相対パスでファイルを指定します.
- ディレクトリ操作のコマンド(4.1.2節)
- ls : ディレクトリ内容の表示
カレントディレクトリ内のファイル一覧を見るためには,
ls コマンドを使います.
まず,ls コマンドを使って,先週までに作成したファイルがあることを確認してみましょう.
次に,コマンドの後ろに -a や -l といったオプションを指定することで,
コマンドの動作が変化します.
そこで,下記のオプションの有無による実行結果の違いを確認しましょう.
- ls
- ls -l
- ls -a
- ls --color=tty
- ls -F
- rm:ファイルの削除
rm file は file を削除する (ファイルは「ゴミ箱」に移動するわけではなく削除されるため,誤消去に注意 ) .
- pwd:カレントディレクトリの表示
pwd を実行するとカレントディレクトリが表示される.
- mkdir:ディレクトリの作成
"mkdir tmp" を実行すると,tmp という名のディレクトリが作られます.
多くのコマンドでは,コマンドの後ろに「オプション」と,操作対象を示す「引数」(ひきすう)を指定して実行します.
- rmdir:ディレクトリの削除
rmdir dir は,ディレクトリ dir を削除する.
- cd:カレントディレクトリの変更
"cd tmp" を実行すると,カレントディレクトリが tmp ディレクトリに移動します.
tmp から元のディレクトリに戻るには, "cd .." と入力します.ここで,".." は,親ディレクトリを指す記号です.
端末の起動直後のカレントディレクトリは,前述の "/home/users/ecs/$USER" を指し,ホームディレクトリと呼ばれます.
この表記は,ホームディレクトリを表す省略記号 ~ を使って," ~/a.txt " や " ~/tmp/a.txt " と指定することが可能です.
また,cd コマンドで引数を省略すると,ホームディレクトリに移動することができます.
- ファイル操作のコマンド(4.1.3節)
- cat : ファイル内容の連結・表示
cat file は,ファイルの内容を表示する.
- less : ファイル内容を一画面ごとに表示
less file は,長いファイルの内容を確認する時に用いる.
- mv : ファイルの移動とファイル名の変更
mv file1 file2 は,ファイル名を変更する,もしくは移動させる.
- "mv a.txt b.txt" なら,ファイル名の変更.
- "mv ../a.txt b.txt" は,親ディレクトリの a.txt をカレントディレクトリに移動させ,名前を b.txt に変える.
- "mv ../a.txt ." は,親ディレクトリの a.txt をカレントディレクトリに移動させる.
カレントディレクトリに存在する a.txt は警告なく上書きされる(オプション -i で警告するように変更することもできる).
なお . はカレントディレクトリを指す記号である.
- cp : コピー
cp file1 file2 は,ファイルをコピーする.
すなわち,file1 と同じ内容となるファイル file2 を作る.
- その他のコマンド(4.5節)
- chmod : パーミッションの変更
chmod mode file は,file の mode bits を変更する.
mode bits は,"ls -l" で確認できる.例えば,
-rw-r--r-- 1 gotoh staff 5020 2014-04-26 11:12 index.html
の左端の10文字が mode bits である.
これを 8 進数で表すと 644 である.
以下に,代表的な mode bits の設定をいくつか示す.
- -rw-r--r-- (644) -- 持ち主は編集できる.誰でも読める,実行可能ファイルではない.
- -rw------- (600) -- 持ち主は編集できる.他人には読めない.実行可能ファイルではない.
- -rwxr-xr-x (755) -- 誰でも読める実行可能ファイル(cc の出力 a.out 等).
- drwx------ (700) -- 他人が読めないディレクトリ.
- -rw-rw-rw- (666) -- 誰でも読み書きできるファイル.
- drwxrwxrwx (777) -- 誰が何をやっても良いディレクトリ ( ls -l /tmp を参照 ).
- man : オンラインマニュアルページを表示
man command とすると,command について調べることができる.
man を終了するには q を押す.
- cat : ファイル内容の連結・表示
cat file は,ファイルの内容を表示する.
- head : ファイルの先頭 n 行を表示
head file は,ファイルの最初の数行を表示する.
- head : ファイルの最後 n 行を表示
tail file は,ファイルの最後の数行を表示する.
- head : ファイルの行数,単語数,文字数を表示
wc file は,文字数,単語数,行数を表示する.