Open19
便利なLinuxコマンドまとめ
ファイルを検索して別ディレクトリにコピー
find . -type f -name "ファイル名" | xargs -i cp -p {} "コピー先"
状況に応じて -maxdepth <n>
-mindepth <n>
などを付ける。
ファイルの一部を書き換え
sed -i -e 's/書き換え前/書き換え後/' <対象ファイル>
Dockerのコマンドだけど…
ログの表示
docker logs -f <コンテナID>
特定のディレクトリを別ディレクトリにマウント
mount -B <マウント元> <マウント先>
# 同じ
mount --bind <マウント元> <マウント先>
findでパスを指定する
find . -path "*/bin/*" -name "*.txt"
文字化けしたディレクトリに移動する。
ls -li
cd $(find . -type d -maxdepth 1 -inum xxxx)
fishshellで文字の色を変える。
-r
で背景が指定色になる。
指定色は16進数でも指定可能。
スクリプトで設定すると、その後の出力がすべてその色になってしまうので、適宜set_color normal;
にする必要があるっぽい。
set_color red; echo 'hoge'
curlコマンドでヘッダーを付ける
curl -H 'ヘッダー' URL
basic認証をパスする
curl -u user:password URL
treeコマンドの代用
pwd; find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'
patchコマンドで差分を書き込む
# oldとnewの差分を取得する
diff -u old new > hoge.patch
# バックアップ取って差分を書き込む(実行前にhoge.patchを確認して問題ないかを見ておいた方がいい)
patch -b old hoge.patch
scoop のアップデート
# scoop 自身のアップデート
scoop update
# インストールしたパッケージのアップデート
scoop update xxx
# とりあえず全部アップデートする
scoop status | awk '{print $1}' | sed -e 's/WARN.*//' -e 's/Name.*//' -e 's/----//' | xargs scoop update
scoop status | awk 'NF{print $1}' | sed -e 's/WARN.*//' -e 's/Name.*//' -e 's/----//' -e 's/Scoop//' | xargs scoop update
scoop status | awk 'NF{print $1}' | sed -n '/----/,$p' | awk 'NR>1' | xargs scoop update
scoop status | sed -n '/----/,$p' | awk 'NR>1 {print $1}' | xargs scoop update
検索対象のファイル
file.txt
hoge
fuga
piyo
piyo
hogehoge
-c
は該当行数を出力するようなので、1行に2か所以上検索文字列がある場合、欲しい数と異なってしまう。
cat file.txt | grep -c "hoge"
2
-o
を使うことで、該当箇所のみを取得できるので、 wc
コマンドと組み合わせることにより、該当箇所の数を知ることが出来る。
cat file.txt | grep -o "hoge" | wc -l
3
Data URL Scheme であそぶ
echo "data:image/MIME Type;base64,"`cat imagefile | base64`
# example
echo "data:image/png;base64,"`cat hoge.png | base64` => この結果をブラウザに張り付けると画像が見れる
# これで文字列
echo "data:text/plain;base64,"`echo "hoge" | base64`
// data:text/plain;base64,aG9nZQo=
# これでUTF8
echo "data:text/plain;charset=UTF8;base64,"`echo "ほげ" | base64`
// data:text/plain;charset=UTF8;base64,44G744GSCg==
# JSON
echo "data:application/json;base64,"`echo '{"hoge": "fuga", "piyo": 10}' | base64 -w 0`
// data:application/json;base64,eyJob2dlIjogImZ1Z2EiLCAicGl5byI6IDEwfQo=
コアダンプファイルの配置場所
/var/lib/systemd/coredump
# 一覧
coredumpctl list
# gdb で見れる
coredumpctl gdb <上記の一覧で確認できるプロセスID?>
vim
回数i文字ESC
で同じ文字を指定回数入力する。
証明書の有効期限を見る
openssl s_client -connect ドメイン:443 < /dev/null 2> /dev/null | openssl x509 -noout -subject -dates
コンテナにあるファイルをローカルにコピー
docker cp コンテナID:コンテナ内のパス 配置先パス