端くれプログラマの備忘録 Unix [Unix] XAMPPプログラマが最低限覚えておきたいシェルコマンド

[Unix] XAMPPプログラマが最低限覚えておきたいシェルコマンド

現在携わっているWeb系の開発は、WindowsのXAMPP環境で行っている。ローカルである程度動作確認してから、本番サーバーのプライベートエリアにアップして結合テストを行い、問題が無ければ公開エリアにコピーする、というのがディプロイの手順。

それゆえに本番サーバーのUnix環境での作業はあまり多くない。それでも場合によっては、シェルスクリプトを書いてバッチで処理したい作業も出てくる。シェルプログラミングはたまにしかやらないので、都度調べてもすぐ忘れてしまう。というわけで、良く使いそうなコマンドを覚え書きしておく。

ファイル名に本日日付を入れる

フォルダやアーカイブを作るときに、本日日付や現在日時をフォルダやファイルの名前にしたいことがある。

たとえばフォルダの作成。

mkdir `date '+%Y%m%d'` 
mkdir `date '+%Y%m%d-%H%M%S'`

たとえばアーカイブの作成。

tarfile=backup-`date '+%Y%m%d-%H%M%S'`.tar
tar cf ${tarfile} *.php

日時のフォーマットはstrftimeのマニュアルを参照。

Man page of STRFTIME
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strftime.3.html

アーカイブ操作

僕が使いそうなものだけ。

arc_dirディレクトリ内のファイルを書庫ファイル(arch.tar)にする。

$ tar cvf arch.tar arc_dir

書庫ファイルを展開する。

$ tar xvf arch.tar

gzip方式で圧縮した書庫ファイルを作成する (圧縮された書庫ファイルにはファイルの追加はできなくなる)。

$ tar zcvf arch.tar.gz arc_dir

既にある書庫にファイル(add_file)を追加する

$ tar rf arch.tar add_file

書庫ファイルの内容を一覧する

$ tar tf arch.tar

書庫ファイルからreadme.txtファイルのみを削除する

$ tar vf arch.tar --delete readme.txt

Linuxコマンド集 – 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230896/

ファイルやディレクトリの存在をチェックする

if [ -e パス ]; then
    # 存在する場合
else
    # 存在しない場合
fi

[Bash] ファイルやディレクトリの存在をチェックする方法
http://sweng.web.fc2.com/ja/program/bash/bash-check-file.html

[Bash] Bashに関するTIPS
http://sweng.web.fc2.com/ja/program/bash/index.html

ディレクトリだけ一覧する

$ find . -maxdepth 1 -type d

linuxでディレクトリだけを表示させる方法 – Linux系OS – 教えて!goo
http://oshiete.goo.ne.jp/qa/2760104.html

シンボリックリンクの実体をコピーする

cpコマンドに -d オプションをつければ良い。

Linuxコマンド集 – 【 cp 】 ファイルやディレクトリをコピーする:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230734/