拡張子 .ts と .tsx ファイルを 文字列 foobar で検索 (カレントディレクトリ ./ 以下)
grep -rnw './' -e 'foobar' --include=\*.{tsx,ts}
再帰的に文字列【onClick】でカレントディレクトリ以下の全ての【拡張子 .tsxファイル】を検索するには
find . -name "*.tsx" -print0 | xargs -0 grep 'onClick'
とやります。
拡張子 による絞り込みが不要の場合は、以下のようにしてもokです
grep -r 'onClick' .
du -h ディレクトリ名
du -h -s ディレクトリ名(指定したディレクトリのみ表示)
du -h -a ディレクトリ名(一覧表示)
容量の大きいディレクトリを発見するにはルートディレクトリから grep で
du -h | grep [0-9]G
du -h | grep [0-9][0-9][0-9]M
とするといいでしょう
df -hT
です。
真っ先にチェックすべきはこのディレクトリです
/var/log/
ブルートフォースアタック(総当たり攻撃)を受けている場合ログのサイズが飛躍的に大きくなっていますのでログサイズが大きい場合はどういうアタックがされているのかも合わせてチェックすると良いでしょう。
/var/cache/
/home
/usr
/var/lib/mysql
/var/lib/pgsql
/var/spool/mail
/root/Maildir
等です。
まずはyumキャッシュの要領を確認
du -sh /var/cache/yum/
キャッシュの削除
sudo yum clean all
(rootユーザからは実行できません)
composer clear-cache
testディレクトリ以下の 3日前より古いファイルを検索するコマンドは
find ./test/* -mtime +3
とします。
testディレクトリ以下の 3日前より古いファイルを削除するコマンドは
find ./test/* -mtime +3 -exec rm -f {} \;
とします。
unixであるディレクトリ以下のすべてのファイルを再帰的に権限変更(chmod)するには以下のようにパイプを使って流し込みます
find ./ -type f -print0 | xargs -0 chmod 0666
find ./ -type d -print0 | xargs -0 chmod 0777
find . -name "*.log" -type f -print0 | xargs -0 chmod 0666
find . -name "*.sqlite3" -type f -print0 | xargs -0 chmod 0666
find に `
-print0xargsに
-0`
をつけることによってスペースを含むファイルも処理できるようにしています
find ./ -name templates_c -type d -print | xargs chmod 0777
find ./ -name cache -type d -print | xargs chmod 0777
テキストファイルから重複行を削除するには
エクセル等で作業する方が多いみたいですが、unixコマンド一発です。
uniq ファイル名
重複行が削除されたテキストが画面上に表示されます。
結果をファイルに保存したい場合は
uniq ファイル名 > 保存するファイル名
でOK。
colordiffというdiff(ファイル比較コマンド)の結果に色を付けるコマンドがあり、なかなか便利なので導入してみます。
Linuxの場合 : インストールは yumコマンド一発
yum install colordiff
Mac OSの場合 : インストールは brewコマンド一発
brew install colordiff
colordiff ファイル1 ファイル2
cat diff_result.txt | colordiff
色の設定ファイルは /etc/colordiffrc というファイルなのでこれをホームディレクトリの .colordiffrc というファイルにコピーして使用する
cp /etc/colordiffrc ~/.colordiffrc
中身はこんな感じ
banner=no
plain=black
newtext=darkblue
oldtext=darkred
diffstuff=darkgreen
cvsstuff=darkwhite
曖昧検索を行うコマンド「agrep」 というのがあるが、標準ではインストールされていない事がある。
のでまず「yum」コマンドを使ってインストール(Fedora Coreの場合)
yum install agrep
インストールが完了したら
whereis agrep
で確認。
■ agrepの使い方(普通の検索)
agrep wordtest /usr/share/dict/words
単語「wordtest」が /usr/share/dict/words にあるかどうか検索する。(普通の検索)
■ agrepの使い方(あいまい検索)
agrep -1 wordtest /usr/share/dict/words
単語「wordtest」に1文字分の間違いを許容した範囲で検索する。(あいまい検索)
■ agrepの使い方(あいまい検索 Best-match)
agrep -i -y -B wordtest /usr/share/dict/words
オプション -B をつけると一番近いと思われる単語を検索する
UNIXでのファイル名変更コマンドは
mv file1.cgi file1.txt
(file1.cgi を file1.txt という名前に変更する)
ですが、これを一括でしようと思って
mv *.cgi *.txt
としてもエラーとなります。
そこで for文 を使って
for fname in *.cgi; do mv $fname ${fname%.cgi}.txt; done
とします
参考:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/248chngext.html
macやunixのターミナルであるディレクトリ以下の合計ファイル数を知るには
● 合計ファイル数:
ls -laR | grep -c '^-'
● 合計ディレクトリ数:
ls -laR | egrep -c '^d.+[^.]$'
でいけます。
なおディレクトリ以下に作成するファイル数は 5000以内 にとどめておいたほうがでしょう。
関連: ファイル・ディレクトリ容量やディスクの空き容量を取得する http://logic.moo.jp/memo.php/archive/97/
例えば一般的に
【ll】というコマンドは【ls -l】のエイリアスであることが多い。
この設定をするのが
alias
とすると現在設定されているエイリアスの一覧を表示する。
エイリアスを設定するには
alias ll='ls -la --color=tty'
とする(bashの場合)
これで【ll】が【ls -la --color=tty】に変更される。
外部サーバにバックアップをとるコマンド rsync あらかじめ外部サーバに ssh でパスワード無しで接続できるよう設定しておく必要がある。
(SSHをパスワード無しで接続する↓) https://pgmemo.tokyo/data/archives/250.html
rsync コマンド例
rsync -avzL --delete -e ssh /home/mydata user@hostname.com:/var/www/backup
rsync -avz --delete myhost:/home/myuser/tmp/ ~/Downloads/tmp/
バックアップ元サーバの【/home/mydata】以下を全て
バックアップ先サーバ(user@hostname.com)の【/var/www/backup】以下に
バックアップを作成する。
-a :全てのデータをコピーする
-v :転送状態を表示する
-z :圧縮して転送します
-L :(シンボリックリンクを解決して)リンク先のファイルを転送する
--delete :バックアップ元で削除されたファイルはバックアップ先でも削除する
-e ssh :sshを使って転送する