アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【FreeBSDDebianMacOS
UNIXコマンド備忘録
POSTED BY
2021-02-09

いつも忘れるのでメモ

# 出力を全部ファイルへ落とす
./command > /home/hogeuser/log.txt 2>&1
# 捨てる場合
./command > /dev/null 2>&1
# バックグラウンドでやる場合末尾に&
./command > /dev/null 2>&1 &

ファイルが異なるかどうかだけ調べる(差分表示なし)

diff -q file1 file2
diff -r -q dir1 dir2

ディレクトリ内のサブディレクトリ内も含めた総ファイル数を表示

ls -laR | grep -c '^-'
ls -laR | egrep -c '^d.+[^.]$' # ディレクトリ数を表示

大文字小文字を区別しない(-i)ディレクトリ内OR検索、かつ特定ディレクトリ除外(ex.git)

grep -r -i -e keyword1 -e keyword2 --exclude-dir=.git

該当した行の後ろN行・前のN行も表示する

grep -A 10 "keyword" # 後ろ10行(After)
grep -B 10 "keyword" # 前の10行(Before)

findコマンドのAND,OR,NOT(除外)検索

find . -name "*.html" -and -name "*.xml" # AND
find . -name "*.html" -or -name "*.xml" # OR
find . -name "*.htm*" -not -name "*.htm" # .htmは除外

Git/Subversion 変更ファイルつきログ出力

git log --stat #Git
svn log -v #Subversion

ファイル内文字列の一括置換
例)*.html 内 http: を https: に一括置換

# 単体ファイル
sed -i -e "s/fromword/toword/g" file.txt
# 一括
for FILE in *.html; do cp $FILE $FILE.bak; sed -e "s/http:/https:/g" $FILE.bak > $FILE; done
#バックアップ.bakファイルを残さない場合
for FILE in *.html; do cp $FILE $FILE.bak; sed -e "s/http:/https:/g" $FILE.bak > $FILE; rm $FILE.bak; done
#サブディレクトリも含めて再帰的に一括置換する場合以下が便利
find ./ -name '*.html' -type f | xargs sed -i 's/http:/https:/g'

画像のリサイズ

【Linux】imagemagick
# src.png を 横96pxに縮小(上書き/縦横比は保たれる)
mogrify -resize 96x src.png
# dst.png と別名で保存したい場合 convert。縦96pxとするには x96 とする。
convert -resize 96x src.png dst.png
# フォルダ内一括置換
mogrify -path ./ -resize 640x -quality 100 *.jpg
【macOS】
# 横 96px に上書き
sips --resampleWidth 96 src.png
# 縦 96px に dst.png に保存
sips --resampleHeight 96 src.png --out dst.png

PNG画像の減色 pngquant

【Linux】
apt-get install pngquant
【macOS】
https://brew.sh/index_ja に従い HomeBrewをインストール
brew install pngquant
pngquant <colors> src.png # colors 2-256
とする。colorsは16でも割と十分

JPEG画像の圧縮 jpegoptim

apt install jpegoptim

jpegoptim -S50 src.jpg # 50KBに収まるようリサイズ

しかし画像に関してはhttps://compresspng.com/ja/のような素晴らしい変換サイトがあるので正直そちらのが断然優秀。

ZIP圧縮

zip -r dirname.zip dirname
zip -re dirname.zip dirname #パスワードつき

JSONファイルの整形

apt install jq
# 1行JSON(raw)を整形してファイルへ出力
cat raw.json | jq . > pretty.json
# 整形JSONを1行JSON(raw)にしてファイルへ出力
cat pretty.json | jq -c . > raw.json
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】