Open4

自分用チートシート (一時保存用)

ktkt
My Cheat sheet (コマンドメモ用)

Vscode

最後尾に文字列追加
Control + e

pbcopy

cat ~/***.log | pbcopyでログ結果をコピーする

cat ~/***.log | grep -B 2 fatal

or grep -A 2 ***


grep -v 一致しない行を表示

—invert-match

*** fzf関連 ***

# fzfを使用して現在のディレクトリ以下のファイルを検索
alias ff='find . -type f -print0 | fzf --read0'

# 検索結果から選択したファイルをエディタで開く
alias vff='vim $(ff)'

# 検索結果から選択したファイルをプレビュー表示する
alias pff='bat $(ff)'

# fzfを使用して、コマンドの履歴を検索する
alias hh='history | fzf'

# historyで表示されたコマンドを確認して実行
alias hhdo="histexec"



ターミナル ショートカット

ctrl + A:行の先頭
ctrl + E nd:行の最後
ctrl + F:カーソル右に移動
ctrl + B カーソル左に移動
ctrl + D カーソル部分の文字を削除
ctrl + D カーソル部分の左文字を削除
ctrl + K カーソルから行末の文字を削除
ctrl + K カーソル位置の単語を削除
ctrl + Y 直前に削除した文字を貼り付け
ctrl + L 画面をクリアにする
◉ctrl + w ワード単位で文字列を削除

ターミナルからFinderを開く

open .
open ~/

cat in:行数を出力
cut -f2 -d” ” text
csvから特定のカラムを切り出す


vim

複数行コピー:行数yy → 今の行数~yy分コピー


ターミナル tab切り替え
shift + command + 十字キー

option + 矢印 単語ごとに移動

control + u 1行削除

vscode ターミナルショートカット
control + shift + `

npm run watch

open -a PhpStorm ./

docker-compose exec ◯◯ bash

mysql -u◯◯ -p ◯◯

DBの一覧を取得

show databases

テーブルの一覧を取得

show tables

設定値の確認

show table statusで確認

json構文確認
https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/policies$new?step=edit

IAM 一覧表
https://www.kabegiwablog.com/entry/2017/08/30/192854


psコマンド オプション

ps axuw
?ps alxf

a:全てのプロセスを表示
x:端末を持たない全てのプロセスを表示する
w:出力の幅を広げる
u:ユーザーリスト
l:長いフォーマットで表示する
f:階層表示する
ktkt

vimコマンド

Vim command

h 左     j 下     k 上    l 右

w 単語の先頭へ

b 前の単語の先頭へ

e 単語の末尾へ

ge 前の単語の末尾へ

{  }  段落の先頭、末尾へ移動

^ 行頭へ移動

0 行の先頭(1列目)

$ 行末へ移動

gg ファイルの先頭へ移動

G ファイルの最後に移動

zz カーソルを中央へ

f ファイルを検索

; 検索を繰り返す(前)
, 検索を繰り返す(後ろ)

Cnt + o ジャンプリストの1つ前に移動
Cnt + i ジャンプリストの1つ後に移動

: 行数 指定した行数へ移動

Control F 画面を下にスクロール

Control B 画面を上にスクロール

Control G 現在の行数を表示する

ctr + u 画面の高さの半分上に移動
ctr + d 画面の高さの半分下に移動

u 実行したコマンドの取り消し

G; 変更された箇所へ戻る

I 行の最初に移動して入力モードに
A 行の最後に移動して入力モードに

r + 変更したい文字 今の文字を変更したい文字に変える

Ctrl + R  取り消しの取り消し

p  削除した行の貼り付け

/ ~~ の後に n 検索を進める

大文字のNで逆方向に進める

Ctrl + o で元に戻る

閉じタグの確認 → %を押す

行の文字変換

→ :s/old/new/g

:! 外部シェルコマンドが実行できる

: !ls ディレクトリが表示される

:w ファイル名 ファイルを保存

v 選択した書き込み

o カーソルの下の行が動いて挿入モードへ¥

✨テキスト全消し :%d

:%s/$releasever/6.10/g
ktkt

vimium

vimium

t タブ開く
タブ移動
K
J

k 上
j 下
l 右
h左



u 上50%
gg 上100%
d 下50%
G 下100%

H 戻る

リンクを開く

f 現在のタブ
F 新しいタブ
o 現在のタブ
O 新しいタブで検索O
x タブを削除
ktkt

k8sチートシート

kubernetes チートシート
リソースの検索と閲覧

# Getコマンドで基本的な情報を確認します
kubectl get services             # 現在の名前空間上にあるすべてのサービスのリストを表示します
kubectl get pods --all-namespaces       # すべての名前空間上にあるすべてのPodのリストを表示します
kubectl get pods -o wide           # 現在の名前空間上にあるすべてのPodについてより詳細なリストを表示します
kubectl get deployment my-dep         # 特定のDeploymentを表示します
kubectl get pods               # 現在の名前空間上にあるすべてのPodのリストを表示します
kubectl get pod my-pod -o yaml        # PodのYAMLを表示します

# Describeコマンドで詳細な情報を確認します
kubectl describe nodes my-node
kubectl describe pods my-pod

# 名前順にソートしたServiceのリストを表示します
kubectl get services --sort-by=.metadata.name

# Restartカウント順にPodのリストを表示します
kubectl get pods --sort-by=‘.status.containerStatuses[0].restartCount’

# capacity順にソートしたPersistentVolumeのリストを表示します
kubectl get pv --sort-by=.spec.capacity.storage

# app=cassandraラベルのついたすべてのPodのversionラベルを表示します
kubectl get pods --selector=app=cassandra -o \
 jsonpath=‘{.items[*].metadata.labels.version}’

# ‘ca.crt’のようなピリオドが含まれるキーの値を取得します
kubectl get configmap myconfig \
 -o jsonpath=‘{.data.ca\.crt}’

# すべてのワーカーノードを取得します(セレクターを使用して、
# 「node-role.kubernetes.io/master」という名前のラベルを持つ結果を除外します)
kubectl get node --selector=‘!node-role.kubernetes.io/master’

# 現在の名前空間でrunning状態のPodのリストを表示します
kubectl get pods --field-selector=status.phase=Running

# すべてのノードのExternal IPのリストを表示します
kubectl get nodes -o jsonpath=‘{.items[*].status.addresses[?(@.type==“ExternalIP”)].address}’

# 特定のRCに属するPodの名前のリストを表示します
# `jq`コマンドは複雑なjsonpathを変換する場合に便利であり、https://stedolan.github.io/jq/で見つけることが可能です
sel=${$(kubectl get rc my-rc --output=json | jq -j ‘.spec.selector | to_entries | .[] | “\(.key)=\(.value),“‘)%?}
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})

# すべてのPod(またはラベル付けをサポートする他のKubernetesオブジェクト)のラベルのリストを表示します
kubectl get pods --show-labels

# どのノードがready状態か確認します
JSONPATH=‘{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}’ \
 && kubectl get nodes -o jsonpath=“$JSONPATH” | grep “Ready=True”

# Podで現在使用中のSecretをすべて表示します
kubectl get pods -o json | jq ‘.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name’ | grep -v null | sort | uniq

# すべてのPodのInitContainerのコンテナIDのリストを表示します
# initContainerの削除を回避しながら、停止したコンテナを削除するときに役立つでしょう
kubectl get pods --all-namespaces -o jsonpath=‘{range .items[*].status.initContainerStatuses[*]}{.containerID}{“\n”}{end}’ | cut -d/ -f3

# タイムスタンプでソートされたEventのリストを表示します
kubectl get events --sort-by=.metadata.creationTimestamp

# クラスターの現在の状態を、マニフェストが適用された場合のクラスターの状態と比較します。
kubectl diff -f ./my-manifest.yaml

# Nodeから返されるすべてのキーをピリオド区切りの階層表記で生成します。
# 複雑にネストされたJSON構造をもつキーを指定したい時に便利です
kubectl get nodes -o json | jq -c ‘path(..)|[.[]|tostring]|join(“.”)’

# Pod等から返されるすべてのキーをピリオド区切り階層表記で生成します。
kubectl get pods -o json | jq -c ‘path(..)|[.[]|tostring]|join(“.”)’



リソースのアップデート
kubectl set image deployment/frontend www=image:v2        # frontend Deploymentのwwwコンテナイメージをv2にローリングアップデートします
kubectl rollout history deployment/frontend           # frontend Deploymentの改訂履歴を確認します
kubectl rollout undo deployment/frontend             # 1つ前のDeploymentにロールバックします
kubectl rollout undo deployment/frontend --to-revision=2     # 特定のバージョンにロールバックします
kubectl rollout status -w deployment/frontend          # frontend Deploymentのローリングアップデートを状態をwatchします
kubectl rollout restart deployment/frontend           # frontend Deployment を再起動します


cat pod.json | kubectl replace -f -               # 標準入力から渡されたJSONに基づいてPodを置き換えます

# リソースを強制的に削除してから再生成し、置き換えます。サービスの停止が発生します
kubectl replace --force -f ./pod.json

# ReplicaSetリソースで作られたnginxについてServiceを作成します。これは、ポート80で提供され、コンテナへはポート8000で接続します
kubectl expose rc nginx --port=80 --target-port=8000

# 単一コンテナのPodイメージのバージョン(タグ)をv4に更新します
kubectl get pod mypod -o yaml | sed ‘s/\(image: myimage\):.*$/\1:v4/’ | kubectl replace -f -

kubectl label pods my-pod new-label=awesome           # ラベルを追加します
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq    # アノテーションを追加します
kubectl autoscale deployment foo --min=2 --max=10        # “foo” Deploymentのオートスケーリングを行います

Kubectlコンテキストの設定
kubectl config view # マージされたkubeconfigの設定を表示します。

# 複数のkubeconfigファイルを同時に読み込む場合はこのように記述します。
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2

kubectl config view

# e2eユーザのパスワードを取得します。
kubectl config view -o jsonpath=‘{.users[?(@.name == “e2e”)].user.password}’

kubectl config view -o jsonpath=‘{.users[].name}’  # 最初のユーザー名を表示します
kubectl config view -o jsonpath=‘{.users[*].name}’  # ユーザー名のリストを表示します
kubectl config get-contexts             # コンテキストのリストを表示します
kubectl config current-context            # 現在のコンテキストを表示します
kubectl config use-context my-cluster-name      # デフォルトのコンテキストをmy-cluster-nameに設定します

# basic認証をサポートする新たなユーザーをkubeconfigに追加します
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword

# 現在のコンテキストでkubectlのサブコマンドの名前空間を永続的に変更します
kubectl config set-context --current --namespace=ggckad-s2

# 特定のユーザー名と名前空間を使用してコンテキストを設定します
kubectl config set-context gce --user=cluster-admin --namespace=foo \
 && kubectl config use-context gce

kubectl config unset users.foo  # ユーザーfooを削除します

エンドポイントの確認

Kubectl get endpoints “hostname”

クラスター外からのアクセス

Kubectl port-forward svc/“hostname” 8080:80 localhost : podのポート

EKSとの接続コマンド

aws eks --region ap-northeast-1 update-kubeconfig --name (k8s-terraform-smaple-clustar)