page_adsence

2010年7月11日日曜日

よく使うLinuxコマンドをまとめてみた(ファイルの操作関連)

前回、僕がよく使うけどよく忘れるコマンドをいくつか書いたんですが、
どうせならまとめるかと思ってまとめてみました。
とりあえず今回はファイルの操作関連に関するコマンド。
次回以降に続きを書く予定。
予定は未定・・・。


cat
ファイルの中身を表示する。

オプション
-n 行番号を付加する
-b 行番号はつけるが空白行をカウントしない

書式
cat [オプション] ファイル名

例)fileAを行番号を付加した状態で表示する。
$ cat -n fileA



pwd

カレントディレクトリの絶対パスを表示する

オプション
なし

書式
pwd

例)カレントディレクトリのパスを調べる。(/var/www/html以下にいた場合)
$ pwd
/var/www/html



cd
カレントディレクトリを切り替える

オプション
なし

書式
cd 移動先のディレクトリパス(相対でも絶対でもOK)

例)現在のディレクトリから、/var/www/htmlに移動する。
$ cd /var/www/html



ls
ディレクトリ内にあるファイルやディレクトリを表示する。

オプション
-a ドットファイルも含めて表示する
-F 分類記号を付加して表示する。「/」がディレクトリ、「@」がシンボリックリンク、「*」が実行可能ファイル
-l 最終更新日時やファイルやディレクトリのオーナー、パーミッションなどを表示する。
-t ファイルをアルファベット順のソートから最終更新日時でソートしたものを表示する
-R ディレクトリ内を再帰的に表示します。
-C 1行に複数のファイルやディレクトリを表示します。「-1」オプションと同時指定はできない
-1 1行に1つのエントリを表示します。

書式
ls [オプション] (ディレクトリ)

例)現在のディレクトリ内に存在するファイルを全て表示し、パーミッション等を調べる
$ ls -la


cp
ファイルまたはディレクトリをコピーする。windowsでいうコピペができる。

オプション
-i 同名のファイルが存在する場合に確認のメッセージを表示する
-f ユーザーには確認せずに、全て上書きします
-r ディレクトリごとコピーします
-d シンボリックリンクとハードリンクをそのままコピーします
-p 日付やフラグなどのファイル情報をできるだけそのままコピーする
-a コピー元ファイルの構成と属性を可能な限り保持してコピーする。-dprと同義
-u 同名ファイルが存在する場合、コピー元のファイルがコピー先のファイルより新しい場合だけ上書きコピーする

書式
cp [オプション] コピー元のファイルもしくはディレクトリ コピー先のディレクトリ

例)/var/www/html/test.htmlをコピーして/var/www/html/test2.htmlを作成する
$ cp /var/www/html/test.html /var/www/html/test2.html


mv
ファイルまたはディレクトリの移動をする。windowsでいうカット&ペーストやリネームができる。オプションはcpコマンドと同じものが多い。

オプション
-i 同名のファイルが存在する場合に確認のメッセージを表示する
-f ユーザーには確認せずに、全て上書きします
-v ファイルの移動先や変更後のファイル名を表示する
-b ファイルを上書きする場合はファイル名の末尾に「~」チルダがついたファイル名でバックアップを残す
-u 同名ファイルが存在する場合、コピー元のファイルがコピー先のファイルより新しい場合だけ上書きコピーする

書式
mv [オプション] 移動元ファイル 移動先ファイル

例)現在のディレクトリにあるtest.htmlをindex.htmlにリネームしたい
$ mv test.html index.html

例)現在のディレクトリにあるindex.htmlを/var/www/htmlの下に移動させたい
$ mv index.html /var/www/html/index.html


mkdir
新しくディレクトリを作成する。
複数のディレクトリを作成したり、引数に指定したディレクトリが存在しない場合、そのディレクトリを含めて作成することもできる。

オプション
-m パーミッションを指定してディレクトリを作成する
-p 引数に指定したディレクトリが存在しない場合、途中のディレクトリも含めて作成する

書式
mkdir [オプション] ディレクトリ名

例)複数のディレクトリを一度に作成する場合
$ mkdir dir1 dir2 dir3

例)多階層に渡ってディレクトリを作成する場合(/var/www/htmlがあり、/var/www/html/sites/sitenameとディレクトリを作成したい場合)
$ mkdir -p /var/www/html/sites/sitename

例)/var/www/html以下にtestというディレクトリをパーミッション777で作成する
$ mkdir -m 777 /var/www/html/test


rmdir
ディレクトリを削除する。
ただしこのコマンドは空のディレクトリのみ削除できる。
削除対象ディレクトリ内にファイルが存在した場合は、rmコマンドの「r」オプションを利用して削除する必要がある。

オプション
-p 中間ディレクトリを含めて削除する

書式
rmdir [オプション] ディレクトリ名

例)現在のディレクトリ内にあるtestディレクトリを削除する
$ rmdir test


rm
ファイルを削除する。
「r」オプションを利用することでrmdirコマンドと同様の処理が可能。

オプション
-i 削除するかをユーザーに確認してから削除する
-f 削除するかをユーザーに確認しないで削除する
-r ディレクトリを削除する

書式
rm [オプション] ファイル名

例)現在のディレクトリにあるindex.htmlを削除する
$ rm index.html

例)testディレクトリ以下のファイルを全て削除する
$ rm -r test


touch
ファイルの更新日時を変更する。

オプション
-c 引数に指定したファイルが存在しない場合、新規ファイルを作成しない
-m 最終更新日時を変更する
-r file 最終更新日時をfileの日時に合わせる
-t time 最終更新日時をtimeに変更する

書式
touch [オプション] ファイル名

例)index.htmlの最終更新日時を現時刻に変更する
$ touch index.html

例)最終更新日時を2010年7月13日23時59分にする
$ touch -t 201007132359


whereis
プログラムが存在するパスを調べる
似たようなコマンドでwhichがあるが、whichはコマンドのパスのみを表示します。

オプション
-b プログラム(バイナリ)が存在するパスのみ表示する
-m オンラインマニュアルが存在するパスのみ表示する
-s ソースファイルディレクトリが存在するパスのみ表示する
-B path プログラム(バイナリ)検索に使うパスをpathに変更する
-M path オンラインマニュアル検索に使うパスをpathに変更する
-S path ソースファイルディレクトリ検索に使うパスをpathに変更します
-f -B,-M,-Sのオプションを使ってパス指定した場合には、パス指定の終了を表すために使う必要がある

書式
whereis [オプション] プログラム名

例)phpがどこにあるのか調べる
$ whereis php
php: /usr/bin/php /etc/php.d /etc/php.ini /usr/lib/php /usr/share/php /usr/share/man/man1/php.1.gz

例)phpのプログラムファイルが存在するパスだけ表示する
$ whereis -b php
php: /usr/bin/php /etc/php.d /etc/php.ini /usr/lib/php /usr/share/php