WEB開発でよく使うLinuxコマンドについての覚書です。
■ 特定のディレクトリ内の文字列を検索
#検索
grep -n 'something' */*
上記コマンドで、somethingという文字列を検索します。n オプションで行数を表示します。wオプションで単語単位の検索が可能。
なお、ルート以下等の現ディレクトリ以下を検索する場合(r オプション)
#-rオプションで再帰的に検索
grep -nr 'words' *
また、カレントディレクトリ以下すべての検索
#findでカレントディレクトリ以下を検索
find | xargs grep -n 'words'
参考:windowsのフォルダ内の検索(findstr)
FINDSTR /NS string * FINDSTR /NSA:3F string *
N=number
S=subdirectory
A=color
■ 特定のディレクトリ内の文字列を置換
#置換
find */* | xargs perl -pi -e 's/old/new/g'
上記コマンドで、文字列 old を new に置換します。意外と危険なので、事前にバックアップを取ること。
■ ディレクトリのコピー(バックアップ)
#コピー
cp -r somedir1 somedir2
-r オプションで、ディレクトリ内を再帰的にコピーします。
■ 特定のディレクトリ内で再帰的にパーミッションを変更
#ファイルのみ変更 find . -type f -print | xargs chmod 604 #ディレクトリのみ変更 find . -type d -print | xargs chmod 705
上記コマンドで、ファイルのみ、又は、ディレクトリのみに限定して、一気にパーミッションを変更します。
■ 最近更新したファイルを表示
#更新日を基準にファイル表示
find . -mtime -7 -ls
上記コマンドでは、特定ディレクトリ内で、7日以内に更新したファイルを表示します。-ls オプションを付けることにより、詳細情報が表示されます。
■ ファイル名を検索してファイルを表示
#特定のファイル名(sample.php)を検索
find . -name sample.php -ls
上記コマンドでは、カレントディレクトリ以下から、特定のファイル名を有するファイルを表示します。-ls オプションを付けることにより、詳細情報が表示されます。
■ 文字入力を補完(Tabキー)
lsで表示したディレクトリ内に移動するには、cdコマンドで当該ディレクトリを入力しますが、識別可能な最初の何文字かを入力して、Tabキーを押すと、そのディレクトリ名が補完され入力されます。ディレクトリ名が長い場合に重宝します。
■ ファイルを実行する(CORESERVER/XREAサーバーなど)
shファイルを実行する
#/bin/sh に続けてshファイルまでの絶対パス
/bin/sh /virtual/account/path_to_file.sh
PHPファイルを実行する
#/usr/local/bin/php に続けてphpファイルまでの絶対パス
/usr/local/bin/php /virtual/account/path_to_file.php
■ コマンドのパスを調べる
which mysql
whichコマンドで、調べたいコマンドのパスを確認することができます。上記では、mysqlコマンドの実行パスを確認できます。
■ サイトのIPアドレスを確認する
nslookup exmaple.com
nslookupコマンドを使うと、ホスト名から正引きでIPアドレスを確認できます。
ホスト名・・・exmaple.com
IPアドレス・・・123.456.789.***
■ WEBサイトの特定のディレクトリを取得する
wget -r -np http://example.com/somedir/
r オプションは再帰処理。npオプションは親ディレクトリを無視。
r オプション単独だと、サイトの全部を取得してしまうので要注意。
途中で停止するには、「Ctrl」+「Z」による。Zは大文字。
■ 特定のディレクトリ内のファイル数(f)・ディレクトリ数(d)を表示
find ./ -type f | wc -l find ./ -type d | wc -l
■ 特定のディレクトリ内のサイズを表示
du ./
■ 複数ディレクトリの行数(l)・文字数(m)を調べる
wc -l `find ./ -type f` wc -m `find ./ -type f`
■ 実行したLinuxコマンドを中止・中断する
Ctrl+Z
■ TeraTermの中止・文字化けを直す
export LANG='ja_JP.UTF-8'
以上です。