Category: Cheatsheet Posted: 2026-05-29
| Categories:
cheatsheet
| Tags:
cheatsheet ,
neovim ,
snacks
Snacks.nvim rafi/vim-config を LazyVim の現行寄りに使う前提の snacks.nvim チートシート。
<leader> は Space、<localleader> は ;。
起動キーは 2026-05-29 時点の手元環境で maparg() を見て確認したもの。
ファイラは lazyvim.plugins.extras.editor.snacks_explorer を有効にした Snacks Explorer を使う。
個人プラグイン側で Snacks Explorer を無効化する override は置かない。
起動 効果 キー picker 一覧 Space ;ファイル検索(root dir) Space Space, Space ffファイル検索(cwd) Space fFgit 管理ファイル検索 Space fgカーソル下の語でファイル検索 Space gf最近開いたファイル Space fr最近開いたファイル(cwd) Space fRgrep(root dir) Space /, Space sggrep(cwd) Space sGカーソル下/選択範囲を grep(root dir) Space swカーソル下/選択範囲を grep(cwd) Space sWbuffer 行検索 Space sbsearch and replace Space srpicker resume Space sRzoxide ;zspelling suggestion ;unotification history Space nscratch buffer toggle Space .scratch buffer 選択 Space SSnacks Explorer(root dir) ;e, Space e, Space feSnacks Explorer(cwd) ;E, Space E, Space fE現在ファイルを Explorer で reveal(root dir) ;a現在ファイルを Explorer で reveal(cwd) ;A
Picker 効果 キー 決定して開く Enterwindow を選んで開く Shift Enterキャンセル Esc, qhelp ?入力窓とリストの focus 切り替え /次/前へ移動 Ctrl j, Ctrl k, Ctrl n, Ctrl p, j, k下/上へスクロール Ctrl d, Ctrl upreview を下/上へスクロール Ctrl f, Ctrl bpreview を右/左へスクロール Ctrl l, Ctrl h複数選択して次/前へ Tab, Shift Tab全選択 Ctrl a, *quickfix へ送る Ctrl q, elocation list へ送る Esplit / vsplit / tab で開く Ctrl s, Ctrl v, Ctrl tsplit / vsplit / tab で開く(rafi 追加) sv, sg, sthidden files toggle Alt h, .ignored files toggle Alt i, ,preview toggle Alt pfollow mode toggle Alt flive grep toggle Ctrl gregex toggle Alt r最大化 toggle Alt mpicker window cycle Alt wflash jump ssinsert mode から抜ける jj選択して前/次へ進む K, J
files と grep source は hidden files を見る設定になっている。
そのため通常は dotfile も候補に出る。
ignored files は , または Alt i で切り替える。
Read more... Posted: 2025-06-08
| Categories:
cheatsheet
| Tags:
cheatsheet ,
yazi
オプション 説明 コマンド 5行上 K 5行下 J 選択 space ヴィジュアルモード v ヴィジュアルモードで選択範囲をunset V 全部選択 Ctrl + a 選択を反転(reverce) Ctrl + r 選択をキャンセル Esc ファイル開く o ファイル選択する時にインタラクティブにする O ファイルの情報を見る Tab Yank( Copy ) y Cut x ペースト p ゴミ箱へ d 瞬間的に削除 D ファイル作成 a ファイル名変更 r 隠しファイルを表示 .
ファイル検索
説明 コマンド 次のファイルを検索 / 前のファイルを検索 ? 次の検索結果へ移動 n 前の検索結果へ移動 N fdを使って検索 s ripgrepを使って検索 S
ソート
説明 コマンド , -> m 編集時刻 , -> M 編集時刻(逆) , -> b 作成時刻 , -> B 作成時刻(逆) , -> e 拡張子 , -> E 拡張子(逆) , -> a アルファベット順 , -> A アルファベット順(逆) , -> s サイズ , -> S サイズ(逆)
参考 Quick Start | Yazi
Read more... Posted: 2024-05-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
k8n ,
nerdctl
オプション 効果 kubectl get nodesノードの一覧表示 kubectl get podsポッドの一覧表示 kubectl get pods --namespace=<namespace_name>特定のネームスペースのリソースを表示 kubectl get namespacesネームスペース一覧 kubectl get jobsジョブの確認 kubectl get jobsジョブの確認 kubectl get svc -o wideサービスの一覧表示(ロードバランサーも見れる) kubectl get deployments -n <namespace>デプロイメントの一覧表示 kubectl rollout restart <deployment> -n defaultデプロイメントの再起動 kubectl logs <pod_name>ログの確認とデバッグ kubectl logs jobs/example-jobログ kubectl scale deployment <deployment> --replicas=0 -n <namespace>デプロイメントのスケール kubectl exec -it <pod_name> -- <command>ポッド内でコマンドを実行するには kubectl apply -f <filename.yaml>リソースの作成 kubectl delete -f <filename.yaml>リソースの削除
Read more... Posted: 2022-11-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
k8n ,
nerdctl
–address /run/k3s/containerd/containerd.sock
–namespace k8s.io
サンプル sudo nerdctl –address /run/k3s/containerd/containerd.sock –namespace k8s.io build -t cli-tool-docker:latest /mnt/nfs/home/exampleuser/workspace/git/github.com/exampleuser/cli-tool-docker/
exec nerdctl/docs/command-reference.md at main · containerd/nerdctl
–init でコンテナ内でinit経由で起動できる nerdctl はコンテナ内で独自の init プロセスを自動的に起動します。
この init プロセスは PID 1 として動作し、ユーザーが指定したコマンドはその子プロセスとして実行されます。
これにより、コンテナ内のプロセス管理が改善され、特にゾンビプロセスの問題が効果的に解決されます。
参考 Read more... Posted: 2021-10-23
| Categories:
cheatsheet
| Tags:
cheatsheet ,
eix ,
Gentoo
パッケージ検索 行末を示す $ が使える。
Read more... Posted: 2021-10-19
| Categories:
cheatsheet
| Tags:
cheatsheet ,
equery
よく使うオプション オプション ショートオプション 用途 例 belongs b ファイルを提供したパッケージを検索 equery belongs -e /bin/chgrp depends d そのパッケージが必要な全てのパッケージ equery depends pygtk depgraph g そのパッケージに必要な全てのパッケージ equery depgraph distcc uses u USE フラグを表示 equery uses syslib/glibc keywords y アーキテクチャごとの対応状況を確認できる equery keywords lv list l インストール可能なバージョンを確認する equery list -po vim
インストール emerge --ask app-portage/gentoolkit
参考 オフィシャル
オフィシャル
Read more... Posted: 2021-10-13
| Categories:
cheatsheet
| Tags:
AWS ,
cheatsheet ,
MediaLive
チャンネル操作 効果 コマンド チャンネルのリスト aws medialive list-channels –region ap-southeast-1 | jq -r ‘.Channels[].Id’) 止める aws medialive stop-channel –channel-id チャンネル ID 削除 aws medialive delete-channel –channel-id チャンネル ID 作成 aws medialive create-channel –cli-input-json file://channel_sample.json | jq ‘.Channel.Id’ 開始 aws medialive start-channel –channel-id チャンネル ID インプットを作成する aws medialive create-input –cli-input-json “$CREATEINPUT” –region ap-southeast-1 インプット id を調べる aws medialive list-inputs –region ap-southeast-1 | jq -r ‘.Inputs[].Id’ インプット id から詳細を得る aws medialive describe-input –input-id インプット ID –region ap-southeast-1 インプット用のスケルトンを得る( 上記の json より、Destinations の雛形が良い ) aws medialive create-input –generate-cli-skeleton
セキュリティグループの雛形を得る aws medialive create-input-security-group --generate-cli-skeleton
{
"WhitelistRules": [
{
"Cidr": ""
}
]
}
こんな感じにしたい
Read more... Posted: 2021-10-10
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ufw
効果 コマンド 状態 sudo ufw status 有効/無効 sudo ufw <enable/disable> 開放 sudo ufw allow 80 ルールのリスト sudo ufw status numbered ルールの削除 sudo ufw delete <ルールID>
Read more... Posted: 2021-09-23
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ffmpeg
オプション 効果 コマンド 備考 RTMP 送信 ffmpeg -re -i hoge.mp4 -vcodec h264 -ar 44100 -f flv “rtmp://エンドポイント” ts ファイルを結合 ffmpeg -f concat -safe 0 -i live_1080p.txt -vsync 1 -c copy ../live_1080p.mp4 シャープネスを強く -vf “unsharp=3:3:0.3” 0.3〜0.5 CPU スレッドを有効に使う -threads 9 アスペクト比を維持した状態でサイズ変更 -vf scale=1280:-1 参考 音質を良くする -b:a 192k -aac_coder twoloop 参考 フレーム補間 -vf “minterpolate=60” 参考 Intel QSV でエンコード -c:v h264_videotoolbox -b:v 2m 参考 Linux でエンコード -vcodec h264_vaapi ビデオビットレート -b:v 2m 品質 -crf 28 0(ロスレス) 51(最低)
QSV でエンコードする場合、 -b:v で十分なビットレートを指定する必要がある。
Read more... Posted: 2021-09-18
| Categories:
cheatsheet
| Tags:
cheatsheet ,
PulseAudio
コマンド 効果 pactl list cards short カード一覧 pactl list modules ロードしている PluseAudio 一覧 pactl list sinks 現在の sink(出力先)一覧 pacmd list 現在の設定一覧 pacmd list-sinks | grep -e ’name:’ -e ‘index:’ デフォルトの出力先 pulseaudio –dump-conf 設定ファイルの読み込み /etc/pulse/daemon.conf から読み込んでいる
Read more... Posted: 2021-09-16
| Categories:
cheatsheet
| Tags:
cheatsheet ,
wp
Wordpress 用の CLI よく使うもの。
/home/kusanagi/ドメイン/DocumentRoot/ 配下に移動してから使う
コマンド 効果 wc plugin list help ヘルプ wp plugin list –format=csv プラグインのリストを CSV で
Read more... Posted: 2021-09-10
| Categories:
cheatsheet
| Tags:
AWS ,
aws-cli ,
cheatsheet ,
ECR
2021/09/10 時点だと --region us-east-1 が必要だった。でないと
Could not connect to the endpoint URL: "https://api.ecr-public.ap-northeast-1.amazonaws.com/"
というエラーがでる。AWS 管理コンソール上は東京リージョンで存在を確認できる。
作成 AWS 管理コンソールでの作り方は パブリックリポジトリの作成
aws ecr-public create-repository --repository-name hogehoge --region us-east-1
削除 aws ecr-public delete-repository --repository-name hogehoge --region us-east-1
push までの流れ push する前にログインする( public とはいえ push にはログインが必要 ビルドする タグづけをする push aws ecr-public get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin public.ecr.aws/hoge
docker build -t test-20210910-1 .
docker tag test-20210910-1:latest public.ecr.aws/hoge/test-20210910-1:latest
docker push public.ecr.aws/hoge/test-20210910-1:latest
push の手順は各リポジトリにある。
Read more... Posted: 2021-09-08
| Categories:
cheatsheet
| Tags:
cheatsheet ,
git
オプション 説明 コマンド mainブランチとの差分をマージ git fetch origin && git merge origin/main 現在の変更をスタッシュに保存 git stash スタッシュされた変更のリストを表示 git stash list 最後にスタッシュした変更を再適用 git stash apply スタッシュした変更を削除 git stash drop git addしたステージングしたファイルのリストを解除 git reset ローカルにcommitしたが編集状態に戻したい git reset –mixed HEAD^ 最後にコミットした状態に戻す(編集内容は消える) git reset –hard HEAD 編集内容を消す git restore [ファイル名] 直近のログ、1個を確認 git -p -1 直前のコミットとその前のコミットとの間の差分を見たい git diff HEAD~1 HEAD
.gitignore git reset --hard は未コミットの編集内容を破棄するため、実行前に git status で対象を確認する。
例 効果 *.log 全てのログファイルを無視 tmp/ tmpディレクトリを無視
外部レポジトリへのプルリクがマージされた後、自分のレポジトリを最新の状態にする Upstreamリポジトリを追加(最初に1回だけ)
git remote add upstream [元のリポジトリのURL]
最新の状態をフェッチ
Read more... Posted: 2021-09-08
| Categories:
cheatsheet
| Tags:
cheatsheet ,
rg
オプション 説明 コマンド 隠しディレクトリも検索 –hidden 正規表現としない -F, –fixed-strings 単語とみなす。 /\b(?:foo)\b/ -w, –word-regexp 大小文字を区別しない。 /foo/i -i, –ignore-case 大小文字を区別する。 /foo/ -s, –case-sensitive 小文字なら /foo/i で大文字が含まれるなら /Foo/ -S, –smart-case 1行分マッチさせる。 foo は /^foo$/ -x, –line-regexp 複数行にまたがれる。 a\nb には a\nb でマッチする -U, –multiline -U と合わせて指定すると a\nb に a.b でマッチする –multiline-dotall
Read more... Posted: 2021-08-25
| Categories:
cheatsheet
| Tags:
Alpine ,
apk ,
cheatsheet
効果 オプション インストール apk add $package 削除 apk del $package アップデート apk update 全部アップデート apk upgrade 検索 apk search $package インストール済みパッケージ一覧 apk info | sort | less
Read more... Posted: 2021-08-24
| Categories:
cheatsheet
| Tags:
cheatsheet ,
lsof
lsof
プロセス指定・・・プロセスが使用しているファイルが見える
lsof -p 12345
lsof -c sshd
ポート指定
lsof -i:80
lsof -i:http
Linuxコマンドメモ - goungoun技術系雑記帳
「ポートを使用しているプロセス」を調べる場合はfuser -nv tcp 80
[[lsof_ポート利用状況確認]] lsof -i -n | lv
Read more... Posted: 2021-08-24
| Categories:
cheatsheet
| Tags:
cheatsheet ,
mkdir
複雑なディレクトリを一発で作る mkdir -p a/{lib,src,doc/{html,pdf,txt}}
Read more... Posted: 2021-08-24
| Categories:
cheatsheet
| Tags:
cheatsheet ,
tcpdump
よく使うパターン tcpdump -n -i eth0 -X net 198.51.100.185 -s 0 -w ファイル名
port 指定の場合、net オプションと port オプションを同時に指定するのできなかった
tcpdump -n -i eth0 -X port 11211 -s 0 -w ファイル名
tcpdump は標準出力をリダイレクトする形でも保存できるが、後で Wireshark で見ることを考えると -w で保存したほうが良い、でないと wireshark から「このファイルは壊れています」というエラーがでる 意図としては
-X 16 進数 -s 0 パケットを(途中で切らないで)全部取得する コマンドラインオプション オプション 効果 -a ネットワークとブロードキャストアドレスを DNS 名に変換する。 -n アドレスやポート番号を名前に変換しないで表示。 -d コンパイルされたパケットマッチングコードを人間が読める形式で標準出力にダンプし、終了する。 -i キャプチャするインターフェースを指定。 -vv もっと詳細な出力。NFS 応答パケットにおける付加フィールドなどを表示する。 -vvv さらに詳細な出力。 例えば、telnet SB … SE オプションは全て表示される。 -X オプションも指定されると、telnet オプションは 16 進表示でも表示される。 -s キャプチャするサイズを指定。 大きいパケットを見るとき -w 生データをそのままファイルに書き込む。-r オプションで開く。WireShark や Ethereal で開くこともできる -X 16 進と ASCII 文字で表示を行う。
大きいパケットを見るとき -s オプションをつける tcpdump コマンドの使いかたをまとめてみた
Read more... Posted: 2021-08-24
| Categories:
cheatsheet
| Tags:
cheatsheet ,
tig
普段の作業 s で status に移動
[ Changes not staged for commit: ]にあるファイルをエンターで選択
反映したいコミットの上で u で選択。あるいは 1 で 1 行だけ選択、
q を押して status に戻り、
C (shift + c, 大文字) でコミットする
概要 キー ビュー名 説明 m main デフォルトのビュー。いわゆる git tree s status u で git add。 c でコミットメッセージ r refs branch, tag 一覧 l log git log t tree ディレクトリツリー g grep git grep b blame git blame h help tig のキーバインド一覧 d diff 差分 diffを見たい
チェックアウト r(リポジトリ一覧) -> ブランチに上下移動 -> c
Read more... Posted: 2021-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ip
チャンネル名にユニークな文字列が必要、また、この文字列は MediaPackage でチャンネルを作る際に Destination で設定する必要がある
チャンネルは aws cli のオプションで作成できる。
配信に必要なチャンネルは( MediaLive 側で 2 つの Destination を指定する必要があるので )2 つ設定する
2 つのチャンネルのパスワードは EC2 パラメータストアにすぐ保存する( MediaLive の仕様でパスワードは EC2 パラメータストアを参照する)
export DATE=$(date +%Y%m%d%H%M)
export MPACK_C_A=$( aws mediapackage create-channel --region ap-southeast-1 --id "${DATE}-a" )
export MPACK_C_A_URL=$(echo "$MPACK_C_A"| jq -r '.HlsIngest.IngestEndpoints[0].Url')
export MPACK_C_A_USER=$(echo "$MPACK_C_A"| jq -r '.HlsIngest.IngestEndpoints[0].Username')
aws ssm put-parameter --region ap-southeast-1 --name "/medialive/${MPACK_C_A_USER}" --value "$(echo "$MPACK_C_A"| jq -r '.HlsIngest.IngestEndpoints[0].Password')" --type SecureString
export MPACK_C_B=$( aws mediapackage create-channel --region ap-southeast-1 --id "${DATE}-b" )
export MPACK_C_B_URL=$(echo "$MPACK_C_B"| jq -r '.HlsIngest.IngestEndpoints[0].Url')
export MPACK_C_B_USER=$(echo "$MPACK_C_B"| jq -r '.HlsIngest.IngestEndpoints[0].Username')
aws ssm put-parameter --region ap-southeast-1 --name "/medialive/${MPACK_C_B_USER}" --value "$(echo "$MPACK_C_B"| jq -r '.HlsIngest.IngestEndpoints[0].Password')" --type SecureString
ひとつWebUIからエンドポイントを作成して雛形にする(スケルトンは設定項目が多すぎ)
一応、スケルトンは
Read more... Posted: 2021-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ip
サンプル 効果 ip route show ルーティングを表示 ip addr IP アドレス表示 ip link set dev アダプタ名(wlan0, enp0s3 など) {up | down} wifi アダプタの up/down ip addr add 203.0.113.100/32 dev eth0 静的 IP アドレスの付与 ip addr del 203.0.113.100/32 dev eth0 IP アドレスの削除 ip address flush dev eth0 IP アドレスを全て削除 ip -6 route IPv6 のルートを表示 ip route add default via 203.0.113.1 デフォルトゲートウェイ追加 ip route add 203.0.113.0/24 dev eth0 ルート追加 ip neighbor show arp テーブル表示
参考 標準テキスト CentOS7 p487, p501
Read more... Posted: 2021-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
nmcli
効果 コマンド デバイスの一般的な確認(wifiなど) nmcli general status デバイス名と状態 nmcli dev status wifi の状態 nmcli radio wifi アクセスポイント探す nmcli dev wifi list wifi 接続 nmcli d wifi connect <ssid> password <pass> ifname <interface_name> wifi 切断 nmcli d wifi disconnect ifname <interface_name> 自動接続の on/off nmcli connection mod <connection_name> connection.autoconnect <yes/no> wifi の on/off nmcli radio wifi <on/off> wifi アクセスポイントの再スキャン nmcli dev wifi rescan 利用可能なコネクションのリスト nmcli con アクティブなコネクション nmcli con show –active 接続 nmcli con add type ethernet con-name <name> ifname <iface_name> イーサネット接続を有効に nmcli con up <name> ブリッジの追加 nmcli con add type bridge con-name br0 ifname br0 ブリッジの情報 nmcli con show br0 | grep -e ipv4.method -e ipv4.addresses -e ipv4.gateway IP アドレス設定 nmcli connection mod eth2 ipv4.method manual ipv4.addresses “192.0.2.2/24” IP アドレスとゲートウェイの設定 nmcli con mod br0 ipv4.method manual ipv4.address 192.0.2.0/16 ipv4.gateway 192.0.2.1 物理デバイス追加 nmcli con add type bridge-slave con-name bridge-slave-snp0s9 ifname enp0s9 master br0
nmcli のオプション
Read more... Posted: 2021-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ss
オプション 効果 -l リッスン状態 -p プロセス名 -t TCPソケットのみ -u UDPソケットのみ -n ポート番号のサービス名を解決しない
参考 標準テキスト CentOS7 p493 に詳しい
Read more... Posted: 2021-08-17
| Categories:
cheatsheet
| Tags:
cheatsheet ,
docker
やりたいこと コマンド 備考 Github Container Registry にログイン `echo $CR_PAT docker login ghcr.io -u exampleuser –password-stdin` 環境変数 $CR_PAT にパーソナルアクセストークンが入っているものとする 参考 イメージのリストアップ `docker images tac` タグ付け docker tag イメージID ghcr.io/exampleuser/genpi64-distcc-docker:latestpush docker push ghcr.io/exampleuser/genpi64-distcc-docker:latesthttps://github.com/[GithubのID]?tab=packages で docker レポジトリにアクセス可能ポート開いて実行 docker run -p 3632:3632 ghcr.io/exampleuser/genpi64-distcc-docker:latest
Read more... Posted: 2021-08-17
| Categories:
cheatsheet
| Tags:
cheatsheet ,
docker ,
docker-slim
オプション 効果 –state-path docker-slim の状態が保持されるパス、docker-slim コマンドが書き込めるパスにする –target 元のイメージ –tag スリムになったイメージのタグ –http-probe デフォルトは enable、ただ distcc の場合、HTTP ポートではないので false にしている –exec docker-slim が動的にアプリケーションの振る舞いを解析する際に実行するシェルスクリプト
例
time docker build . -t genpi64-distcc-large:latest
docker-slim --state-path ~/tmp/docker-slim build --target genpi64-distcc-large:latest --tag ghcr.io/exampleuser/genpi64-distcc-docker:latest --http-probe=false --exec "/need.bash"
docker push ghcr.io/exampleuser/genpi64-distcc-docker:latest
参考 オフィシャル
Read more... Posted: 2021-08-08
| Categories:
cheatsheet
| Tags:
cheatsheet ,
emerge
忘れがちなオプション ロングオプション ショートオプション 効果 –pretend -p 引きづられてインストールされるパッケージが見たい –update -u アップデート –deep -D /var/lib/portage/world 以外の依存関係も調査 –newuse -N セキュリティアップデートなど明示的にインストールしていないパッケージも含む –with-bdeps=y ビルド時依存のパッケージも含む –changed-use -U USE フラグが変わった事を伝えるが–newuse とは違いユーザーが有効にしない事を示すフラグがある場合、再インストールしない –unmerge -C 削除 –depclean -p -p で使われなくなった依存関係を確認 –depclean 使われなくなった依存関係を削除( -p で確認してから ) –info Portage によって使われる変数 –quiet -q ディスプレィ出力を抑制 –verbose -v 冗長モード。各パッケージの USE フラグを表示
よく見かけるオプション -uDN は –update –deep –newuse と同じ。
参考 Portage が文句を言ってきたときは
バージョンを指定してインストール emerge =dev-lang/go-1.16.7
slot、スロットを指定してインストール eix gcc で調べる
emerge --sync && eix-update &&& eix gcc
下記の状況はver12がインストールされている。これにver11も追加したい。
Read more... Posted: 2021-08-08
| Categories:
cheatsheet
| Tags:
cheatsheet ,
systemctl
オプション 効果 systemctl daemon-reload 設定再読込 systemctl restart daemon-name デーモン再起動 systemctl status daemon-name -l ステータス確認 systemctl enable daemon-name 自動起動するように設定 systemctl disable daemon-name 自動起動をoff systemctl is-enabled daemon-name 自動起動か? systemctl list-units –type service ユニット一覧、サービスのみ systemctl list-dependencies –reverse network-online.target 影響を受けるユニット一覧 systemctl list-dependencies network-online.target 依存関係があるユニット一覧 systemctl is-system-running システムの状態を返す。running, degraded, maintenance など systemctl list-units –state=failed 失敗しているサービスやユニットをリストアップ systemctl cat daemon-name 設定ファイルを見る systemctl edit daemon-name 設定ファイルを編集
ログを見る場合はjournalctlで確認する。
Read more... Posted: 2021-08-03
| Categories:
cheatsheet
| Tags:
aws-cli ,
cheatsheet
CloudWatch logs を CLIで調査( fish ) クエリ投げる
set queryId (aws logs start-query --log-group-name NginxAccessLog \
--start-time (date +%s --date "1 week ago") \
--end-time (date +%s) \
--query-string 'fields @timestamp, @message | filter @message NOT LIKE /ua:ELB-HealthChecker/ | sort @timestamp desc | limit 20'\
| jq -r '.queryId' )
ステータス確認
aws logs describe-queries | jq '.queries[] | select(.queryId=="$queryId")'
取得
aws logs get-query-results --query-id $queryId | jq '.results[][] | select(.field == "@message") | .value'
aws iam create-policy --policy-name ポリシー名 --profile プロファイル --policy-document file://developerpolicy.json --description "this is ...."
CLIのアップデート pip install awscli
Read more... Posted: 2021-08-03
| Categories:
cheatsheet
| Tags:
badblocks ,
cheatsheet
いろいろやってみたが 仕事だと怖くて不良セクタのHDDは使えないのですが、個人だともったいないので色々調べた記録。
badblockでのチェックを試みたが1ヶ月以上かっても終わらない HDDに[ 1 ]を書き込んで[ 0 ]を書き込んでsmartctlでの結果を比較するような形の方が良いだろう
HDDの復旧は、最近のHDDでは『書き込めなかったら、予備セクタを割り当てる』という振る舞いをするので とにかくddで全領域書き込んでみれば良い、ということかも。もちろん新しいHDDを買うのがベスト。
badblock -w だと、もう少しましな文字列を書き込むので、より良い、という点は残るかも
あとbadblockを使う時は badblockのセクタ番号を取得するためだが、smartctlでも値を取得できる。
複数セクタがダメになっている、とかでなければ、smartctlの値の方が正確かも。 badblockの値を使うことにネガティブな意見が多い
http://unix.stackexchange.com/questions/92076/how-can-i-check-for-bad-blocks-on-an-lvm-physical-volume
ファイルシステムのツールか、HDDが不良セクタを使おうとしたら予備領域割り当てるし、smart機能を使った方がよい、という意見
私の考え 結局の所、HDDのbadblockを調べて,ddでゼロを書き込むしかない。ような? というか、その方が確実のような気がする。 手軽にやれそうなのでext4でフォーマットしてfsckでテストしてみた mkfs.ext4 は対象パーティションの既存データを消す。実行前に lsblk などでデバイス名を確認する。
mkfs.ext4 /dev/sdb1
nohup fsck -p -t -y -f -c /dev/sdb1 &
英語のページだがext2, ext3, raiserfs, LVMでの方法が乗っている http://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/
検査の手順 # cd /
# badblocks -s -o badblocks.hda4 /dev/hda4
このオプションならば非破壊。
-s は経過表示
-o ファイル名 は、不良セクタがあったときのブロック番号のファイル化です。(登録時に使う)
なお、すでに不良セクタが登録されている場合は
# badblocks -s -i badblocks.hda4 -o badblocks2.hda4 /dev/hda4
とすることで登録済みの領域をスキップ。
作成される badblocks2.hda4 は、新規の不良セクタ分のみです。既存のは出力されません。
Read more... Posted: 2021-08-03
| Categories:
cheatsheet
| Tags:
cheatsheet ,
jq
ダブルコーテーションを除く -r
AWS CloudFrontのAPIアクセスログからAPIキーをベースにアクセス状況をしらべた jq ‘Records[]‘などで、外側の余計な配列なりハッシュなりを剥がす
❯ cat cloudtrail_root_log.json | jq -r '.Records[]|select(.userIdentity.accessKeyId == "himitunaisho")' > cloudtrail_root_only.json
EC2のspotfleetインスタンスのIPアドレスを調べる。結果は台数ごとに出力されるので、1行だけ取り出すようにhead -n を使う aws ec2 describe-instances --profile test --filters "Name=tag-key,Values=Name" "Name=tag-value,Values=spotfleet-20171027" | jq -r '.Reservations[].Instances[] | select(.State.Name == "running") | .PrivateIpAddress'
Pretty print the json jq “.” < filename.json
Access the value at key “foo” jq ‘.foo’
Access first list item jq ‘.[0]’
Slice & Dice jq ‘.[2:4]’
jq ‘.[:3]’
jq ‘.[-2:]’
参考 ここがわかり易かった => jq コマンドが強力すぎてヤバい件 CUBE SUGAR STORAGE
Read more... Posted: 2021-08-03
| Categories:
cheatsheet
| Tags:
cheatsheet ,
logger
logger -ip local4.notice 'WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 98 idle, and 104 total children'
標準出力と標準エラー出力をloggerコマンドで別々にsysylogに出力する
logger_i="/usr/bin/logger -ip local0.info"
logger_e="/usr/bin/logger -ip local0.error"
{
...
command1
command2
...
} 1> >(${logger_i}) 2> >(${logger_e})
Read more... Posted: 2021-08-03
| Categories:
cheatsheet
| Tags:
cheatsheet ,
SoftEther
sudo vpncmd /HELP sudo vpncmd <ip address>:<port> /SERVER オプション 効果 HubList ハブ一覧 Hub VpnHub1 ハブの設定 StatusGet ステータス SessionList セッション一覧 セッション名は “SID-” の後に、「ユーザー名」を示す文字列が入り、その後に連番で数字が入ります。 SessionGet ? SessionList で得られたセッションの詳細が得られるかも SecureNatHostGet セキュア NAT の情報を取得 DhcpGet DHCP 情報の取得 BridgeList ブリッジ情報 check 動作チェック
ブリッジ関連の操作 リスト
sudo vpncmd <ip address>:<port> /SERVER /PASSWORD:<password> /adminhub:<ハブ名> /cmd BridgeList
OS 側で一緒によく使う コマンド 効果 ip tap TAP デバイス確認 ip addr show tap_tap1 IP アドレス確認 nmcli con インターフェース 接続 確認 nmcli dev TAP デバイス状況確認
vpncmdのリファレンス Posted: 2021-07-25
| Categories:
cheatsheet
| Tags:
cheatsheet ,
tmux
現在のショートカット キーバインド コマンド ? ショートカットキーのリストを表示 c 新しいウィンドウを作成 n 次のウィンドウへ移動 SPACE 次のウィンドウへ移動 p 前のウィンドウへ移動 BS 前のウィンドウへ移動 o 次のペインへ移動 w ウィンドウの選択メニューを表示 d セッションのデタッチ : コマンドプロンプトの開始 ' ウィンドーに名前をつける [ コピーモードの開始 ] バッファ内容のペースト q ペインのインジケータを表示 % ウィンドウを左右のペインに分割 { ペインの入れ替え } ペインの入れ替え(逆順) l ペインの左右分割位置を左へ移動 h ペインの左右分割位置を右へ移動 x ペインの破棄
コマンドプロンプトでの使い方 効果 オプション すでに開いたセッションにアタッチする tmux attach ウィンドウの一覧を取得する tmux list-windows (C-b w) 新しいウィンドウを作る tmux new-window (C-b n) クライアントをデタッチする tmux detach-client (C-b d) キーバインドの一覧を表示する tmux list-keys (C-b ?) 次のウィンドウを表示する tmux next-window (C-b n) 前のウィンドウを表示する tmux previous-window (C-b p) ウィンドウを強制的に閉じる tmux kill-window (C-b k) 最後のセッションを削除する tmux kill-session セッション名FOOを指定してセッションを削除する tmux kill-session -t FOO すべてのセッションを削除する tmux kill-server
参考 Read more... Posted: 2021-07-25
| Categories:
cheatsheet
| Tags:
cheatsheet ,
vim
rafi/vim-config rafi/vim-config: Lean mean Neovim machine, carefully crafted with Use with latest Neovim.
Snacks Explorer(ファイラ) 2026年時点では rafi/vim-config / LazyVim の現行寄りに合わせて、ファイラは Neo-tree ではなく Snacks Explorer を使う。
ローカルでは lazyvim.json に lazyvim.plugins.extras.editor.snacks_explorer を明示し、個人プラグイン側の Snacks Explorer 無効化 override は削除する。
効果 キー Snacks Explorerを開く(root dir) ;e / Space e / Space fe Snacks Explorerを開く(cwd) ;E / Space E / Space fE 現在のファイルをファイラで表示 ;a 現在のファイルをファイラで表示(cwd) ;A ファイルを開く l / Enter 新しいタブで開く st 上のディレクトリに移動 Backspace ファイル/ディレクトリ作成 a ツリーを閉じる h grep gr ファイル検索 gf 水平分割で開く sv 垂直分割で開く sg プレビューのオンオフ K リネーム r 削除 d ファイル移動 m コピー c ペースト p パスをヤンク y システムアプリで開く o 更新 u
Lazygit 効果 キー gitのルートで開く Space , tg カレントディレクトリで開く Space , tg
キーバインド 効果 省略記法 文字コードを確認 :set fileencoding 保存する文字コードを変更 :set fileencoding=utf-8 前ひらいたバッファに戻る <C-^> ( 数字の6のやつ )検索で行きすぎたら戻る ; 変更してきた箇所に戻る g; 変更してきた箇所に進む g, 次のワードの頭に w 次のワードの最後に e 行頭にいきなり追加 I 上書きモード R ワード前のスペース有りヤンク yaw スペース無しヤンク yiw 文字を検索して上書き ct<key>ワード削除 diw 引数をまるっと削除 di( functionの記述をまるっと削除 di{ カーソル上の単語を消す diw カーソル上の単語を消して挿入モード diw “"(ダブルコーテーション)で囲まれた文字列を消す di” 新規ファイルを開く(横分割) :new 新規ファイルを開く(縦分割) :vnew 新規ファイルを開く(タブ) :tabnew 次のタブに切替 gt 前のタブに切替 gT これは % がカレントディレクトリ、 :h が親ディレクトリの意味 :e %:h<Tab>ウィンドウを入れ替える。 <C-w>x縦に最大化 <C-w>_横に最大化 <C-w>パイプウィンドウの大きさを揃える <C-w>=ウィンドウの幅を増やす <C-w>>ウィンドウの幅を減らす <C-w><ウィンドウの高さを増やす <C-w>+ウィンドウの高さを減らす <C-w>-縦に最大化 <C-w>_横に最大化 <C-w>パイプアクティブなウインドウを左に移動 <C-w>hアクティブなウインドウを下に移動 <C-w>jアクティブなウインドウを上に移動 <C-w>kアクティブなウインドウを右に移動 <C-w>lアクティブなウインドウそのものを左に移動 <C-w>Hアクティブなウインドウそのものを下に移動 <C-w>Jアクティブなウインドウそのものを上に移動 <C-w>Kアクティブなウインドウそのものを右に移動 <C-w>Lアクティブなウインドウを次に移動 <C-w>wバッファリストのファイル名をリスト表示 :buffers バッファリストの指定したバッファを開く :buffer :b バッファリストの次のバッファを開く :bnext :bn バッファリストの前のバッファを開く :bprevious :bp バッファリストのすべてのバッファをウィンドウを開く :ball :ba バッファリストにバッファを追加 :badd :bad バッファリストからバッファを削除 :bdelete :bd バッファリストの最初のバッファを開く :bfirst :bf バッファリストの最後のバッファを開く :blast :bl バッファリストの次の変更済みバッファを開く :bmodified :bm バッファを閉じる :bd 新規タブ :tabedit {count}で指定した番号のタブへ移動 :tabnext :tabn {count}gt 次のタブへ移動 :tabnext :tabn gt 前のタブへ移動 :tabprevious :tabp gT 現在、以外のタブを全て閉じる :tabo 開いてるファイルを削除 :call delete(expand(’%’)) 数値をインクリメント、デクリメントする C-a, C-x (ノーマルモード) 前に変更した場所へカーソルを移動する g; (ノーマルモード) パラグラフ削除 dap (ノーマルモード) プラグイン、モジュール 一覧 :scriptnames deinプラグインのアップデート :call dein#update() deinでエラーが起きtが時 :call dein#clear_state() Snacks Explorerを開く :lua Snacks.explorer() ファイルの再読込 :e ファイルを書き込んでexitする :x ショートカット一覧 :map
LSP( neovim rafi/vim-config の設定 20240630時点)のキーバインド rafi/vim-config: Lean mean Neovim machine, carefully crafted with Use with latest Neovim.
Read more... Posted: 2021-07-25
| Categories:
cheatsheet
| Tags:
cheatsheet ,
docker ,
docker-compose
便利な Docker Compose V2 では docker compose を使う。古い環境では docker-compose の場合があるが、新規手順では docker compose を優先する。
オプション 効果 images イメージ一覧 logs ログ port web 3000 ポート表示 build YAML に「build:」があれば、そのイメージをまとめてビルド pull YAML に「image:」があれば、そのイメージをまとめてプル up -d pull して build してからデーモンとして まとめて起動 up -d hoge hoge と依存するデーモン だけ を起動 stop まとめて終了 rm まとめて削除
キャッシュ使わないでビルド docker compose build --no-cache
既存のコンテナを作り直す docker compose up --force-recreate minecraft-touhou
参照 docker-compose コマンドまとめ - Qiita
docker-compose を使うと複数コンテナの管理が便利に - Qiita
Docker Compose - docker-compose.yml リファレンス - Qiita
Read more... Posted: 2018-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
SecretManager
SecretManager の AWS-CLI からの利用方法 ECS でのオートスケール検証に関連して、機密情報を SecretManager にいれる作業を行った。
取得
aws secretsmanager get-secret-value \
--secret-id "/example/config/env20/api/apps/config.json" |\
jq -r '.SecretString' | jq .
更新
aws secretsmanager put-secret-value \
--secret-id test \
--secret-string "{\"password\":\"version7\"}" \
--version-stages (date +%Y%m%d) AWSCURRENT
limit について https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/reference_limits.html
IAM ロールについて https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/reference_iam-permissions.html
Read more... Posted: 2017-09-25
| Categories:
cheatsheet
| Tags:
cheatsheet ,
ElastiCache
aws-cliでキャッシュを作成する aws elasticache create-cache-cluster \
--cache-cluster-id 'test-20170925' \
--engine 'redis' \
--engine-version '3.2.4' \
--cache-parameter-group-name 'default.redis3.2' \
--cache-node-type 'cache.t2.micro' \
--num-cache-nodes 1 \
--security-group-ids 'sg-111111' \
--cache-subnet-group-name cachesubnet
キャッシュを削除 aws elasticache delete-cache-cluster --cache-cluster-id test-20170925
Read more... Posted: 2017-08-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
CloudWatch
ログストリームをまたいで検索 下記を参照
[新機能]CloudWatch Logs がアップデート、ログストリームをまたいで検索できるように! | Developers.IO
更に時間を指定する場合、–start-time と –end-time をつけると絞り込みができる。
この時刻は UTC で Unix date をミリ秒で表現する必要がある( 1000 倍する )
04/19 16:30 の場合 ( unix date 出して、UTC との時差、9 時間を引いて、ミリ秒にしている
echo $(( ($(date -d “2017-04-19 16:30” +%s) - 60 60 9) * 1000 ))
=> 1492554600000
04/19 17:30 の場合
echo $(( ($(date -d “2017-04-19 17:30” +%s) - 60 60 9) * 1000 ))
=> 1492558200000
検索例)
aws logs filter-log-events –region ap-northeast-1 –log-group-name sns/ap-northeast-1/11111111111111/app/APNS/ExampleProduction –max-items 300000 –start-time 1492554600000 –end-time 1492558200000
Read more... Posted: 2017-08-08
| Categories:
cheatsheet
| Tags:
AWS ,
cheatsheet ,
RDS
パラメーターグループ 作る aws rds create-db-cluster-parameter-group \
--db-cluster-parameter-group-name hoge-canvas-postgresql10 \
--db-parameter-group-family aurora-postgresql10 \
--description "for wal_level must be set to logical"
参考 aws rds create-db-cluster-parameter-group help
編集 aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name hoge-canvas-postgresql10 \
--parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot"
設定するパラメーターによっては即時反映 ApplyMethod=immediate が使えず
An error occurred (InvalidParameterCombination) when calling the ModifyDBClusterParameterGroup operation: cannot use immediate apply method for static parameter
というエラーが出る。この場合、 ApplyMethod=pending-reboot を使う必要がある。
staticかどうか?はWebUIの『タイプの適用』の箇所を見るとわかる。
反映 aws rds modify-db-cluster \
--apply-immediately \
--db-cluster-identifier hoge \
--db-cluster-parameter-group-name hoge-canvas-postgresql10
パラメータグループ作成 パラメータグループ名: test-aurora 説明: utf8mb4 ファミリー: aurora5.6
を指定して、とりあえず設定自体を作る $ aws rds create-db-parameter-group \
--db-parameter-group-name test-aurora \
--description utf8mb4 \
--db-parameter-group-family aurora5.6 \
構築 aws rds create-db-cluster \
--engine aurora-postgresql \
--engine-mode serverless \
--engine-version 10.12 \
--copy-tags-to-snapshot \
--enable-http-endpoint \
--db-subnet-group-name prod \
--vpc-security-group-ids sg-1111111111111111 \
--db-cluster-identifier sample-cluster \
--master-username postgres \
--master-user-password himituno
既存のパラメータグループから情報をコピーする aws rds describe-db-parameters –db-parameter-group-name test-aurora > rds-test-aurora.json
Read more... Posted: 2016-12-21
| Categories:
cheatsheet
| Tags:
cheatsheet ,
runcommand
SSMエージェントがインストール済みのサーバに対して、あるコマンド、スクリプトを実行できる仕組みを構築した。
エージェントが入っているインスタンス一覧 aws ssm describe-instance-information --output text --query "InstanceInformationList[*]"
コマンド実行 aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids i-1111111111111 --parameters '{"commands":["/etc/init.d/gitpull start"],"executionTimeout":["300"]}'
複数サーバにコマンドを実行する aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids $(aws ssm describe-instance-information --output text --query "InstanceInformationList[*]" |grep -E 'i-.*' | awk '{print $2}' ) --parameters '{"commands":["/etc/init.d/gitpull start"],"executionTimeout":["300"]}'
githubへの接続が上手く行かなかったら、アップデートもresetもしない git remote show origin > /dev/null 2>&1
Read more... Posted: 2015-08-24
| Categories:
cheatsheet
| Tags:
cheatsheet ,
iperf
実際の通信帯域を計測したい
サーバ側 iperf -s
クライアント側 iperf -c 192.0.2.4 # サーバ側IPアドレスを入れる
Read more... Posted: 2010-10-05
| Categories:
cheatsheet
| Tags:
cheatsheet ,
dd"
50GBの空のファイルを作る dd if=/dev/zero bs=1M count=52400 |pv -L 25m > k001.img
dd は指定先を誤るとディスクやファイルを破壊する。of= にブロックデバイスを指定する場合は、事前に lsblk などで対象を確認する。
壊れた # dd if=/dev/sdb of=/dev/sdc bs=512 conv=noerror,sync
を実行しドライブをコピーします。
※数時間かかります。
※convでエラーをスキップするように指定します。
※bs=512
は512バイトずつコピーしますよ、という意味です。
エラーがある部分をスキップする際もこの単位でスキップします。
この値が大きいとコピー速度が速くなりますが壊れている部分があると道連れになる範囲も大きくなります。
この値を小さくするとエラー時に道連れになる範囲は最小で済みますがコピー速度が遅くなります。
UNIXの部屋 コマンド検索:dd (*BSD/Linux)
dd if=/dev/ad0 | gzip -c > ad0backup.dump.gz
⇒ 圧縮しつつバックアップ
ディスククリア dd if=/dev/zero of=/mnt bs=1024 count=xxxxってな感じかな。
Read more...