2021/02/06

GoogleCloudSDKインストール

GoogleCloudSDKインストール

# 最新化
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# パッケージソース追加
sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" >> /etc/apt/sources.list.d/google-cloud-sdk.list'
sudo apt-get update
sudo apt-get install -y kubectl
sudo apt-get install -y google-cloud-sdk

# 初期化
gcloud init

# Googleアカウント切り替え
gcloud auth list
gcloud auth login Googleアカウント名
gcloud config set account Googleアカウント名
gcloud auth revoke Googleアカウント名

# プロジェクト切り替え
gcloud config set project プロジェクトID

# SSH
gcloud compute --project プロジェクトID ssh --zone VMインスタンスリージョン VMインスタンス名

# SCP
gcloud compute scp /作業端末のディレクトリ/ファイル名 VMインスタンス名:/配置先ディレクトリ --project プロジェクトID --zone VMインスタンスリージョン

# GoogleCloudStorageからダウンロードする
gsutil cp gs://バケット名/ファイル名 .
gsutil cp -r gs://バケット名/* .

# GoogleCloudStorageにアップロードする
gsutil cp ファイル名 gs://バケット名
gsutil cp -r ディレクトリ名 gs://バケット名

Linux操作

Linux操作

# OS情報確認
cat /etc/os-release
do-release-upgrade -V

# 再起動(shutdownを使うのが安牌)
reboot
sudo shutdown -r now

# シャットダウン(shutdownを使うのが安牌)
poweroff
sudo shutdown -h now

# システム負荷
top -d 更新間隔(秒) -n 繰り返す回数(回)
## 特定プロセスのシステム負荷
top -d 更新間隔(秒) -n 繰り返す回数(回) -p プロセスID

# ディスク使用率
df -h

# ユーザー
## ユーザー一覧
cat /etc/passwd
## ユーザー追加
sudo useradd ユーザー名
## ユーザー削除
sudo userdel ユーザー名
## パスワード変更
sudo passwd ユーザー名
## ユーザー切り替え
su ユーザー名
## 現在のユーザー確認
whoami

# グループ
## グループ一覧
cat /etc/group
## ユーザーにグループを追加
sudo gpasswd -a ユーザー名 グループ名
## ユーザーからグループを削除
sudo gpasswd -d ユーザー名 グループ名
## ユーザーのグループを変更
sudo usermod G グループ名 ユーザー名

# パッケージ検索
## パッケージ検索
sudo apt-cache search パッケージ名
## パッケージ検索(インストール可能)
sudo apt-cache policy パッケージ名
## アップグレード可能なパッケージ一覧
sudo apt-get --simulate upgrade
sudo apt list --upgradable

# パッケージインストール
## パッケージインストール
sudo apt-get install パッケージ名
## パッケージアンインストール
sudo apt-get remove パッケージ名

# パッケージの自動更新のオンオフ
## 自動更新オンのパッケージ一覧
sudo apt-mark showmanual
## 自動更新オフのパッケージ一覧
sudo apt-mark showhold
## パッケージの自動更新オン
sudo apt-mark unhold パッケージ名
## パッケージの自動更新オフ
sudo apt-mark hold パッケージ名

# システムマネージャー
## システム起動
sudo systemctl start システム名
## システム停止
sudo systemctl stop システム名
## システム再起動
sudo systemctl restart システム名
## システムの状態確認
sudo systemctl status システム名
## OS起動時にシステム起動する
sudo systemctl enable システム名
## OS起動時にシステム起動しない
sudo systemctl disable システム名

# ディレクトリ
## 現在のディレクトリ確認
pwd
## ディレクトリを移動
cd ディレクトリ名

# ファイル
## 現在のディレクトリのファイル一覧
ls -al
## ファイル権限変更
### コマンド
chmod 三桁数字 ファイル名
### 三桁数字
所有者  所有者グループ  その他
421  421  421
rwx  rwx  rwx
## 所有者変更
### ファイルの所有者を変更
chown ユーザー名 ファイル名
### ファイルの所有者、所有グループを変更
chown ユーザー名:グループ名 ファイル名
### ディレクトリ配下のファイルの所有者を変更
chown -hR ユーザー名 ディレクトリ名

# ファイルの圧縮解凍
## tar
### 圧縮
tar -cvf xxxx.tar directory
### 解凍
tar -xvf xxxx.tar
## tar.gz
### 圧縮
tar -zcvf xxxx.tar.gz directory
### 解凍
tar -zxvf xxxx.tar.gz
## zip
sudo apt-get install -y zip
### 圧縮
zip -r xxxx.zip directory
### 解凍
unzip xxxx.zip

# 削除
rm -rf 削除したいファイル名
rm -Rf 削除したいディレクトリ名

# IP確認
ip -4 a

# MACアドレス確認
ip addr show

# 経路確認
tracepath ホスト名(or IP)

# DNSに問い合わせ
nslookup ホスト名(or IP)

# SSH
## SSH接続
ssh -i 鍵 ユーザー名@リモートホスト名
## 鍵作成
ssh-keygen -t rsa -b 4096 -f 鍵
## 登録されている鍵
### SSHする側(公開鍵)
sudo vi ~/.ssh/known_hosts
### SSHされる側(秘密鍵)
sudo vi ~/.ssh/authorized_keys

# ファイル転送
## ローカルからリモートホストにファイルをコピーする
scp -i 鍵 /作業端末のディレクトリ/ファイル名 ユーザー名@リモートホスト名:/配置先ディレクトリ
## リモートホストからローカルにファイルをコピーする
scp -i 鍵 ユーザー名@リモートホスト名:/配置先ディレクトリ/ファイル名 /作業端末のディレクトリ

cron操作

cron操作

# 編集
基本的に追記していく。ユーザーにrootは使わないほうが良い。
## コマンド
crontab -e
## 書き方
m h dom mon dow command
分 時 日 月 曜日 コマンド
### 分
0~59の数字で指定するか、*で毎分実行にする
*/5で5分毎
### 時
0~23の数字で指定するか、*で毎時実行にする
*/6で6時間毎
### 日
1~31の数字で指定するか、*で毎日実行にする
*/5で5日毎
### 月
1~12の数字で指定するか、*で毎月実行にする
*/3で3ヶ月毎
### 曜日
0~6の数字を指定するか、*で全ての曜日で実行する
0で毎週日曜日
1で毎週月曜日
2で毎週火曜日
3で毎週水曜日
4で毎週木曜日
5で毎週金曜日
6で毎週土曜日
*で全ての曜日
### コマンド
フルパスで指定
### 例
3分毎に実行(正常系と異常系のログを分ける)
*/3 * * * * /usr/bin/python3 /home/python/cron.py 1>> /home/python/success.log 2>> /home/python/error.log
3分毎に実行(正常系と異常系のログを分けない)
*/3 * * * * /usr/bin/python3 /home/python/cron.py >> /home/python/cron.log 2>&1

# 登録内容確認
crontab -l

# cron再起動
sudo systemctl restart cron

# cron実行ログ確認方法
cat /var/log/syslog | grep CRON

# 動作確認
sudo systemctl status cron

Python3インストール

Python3 # インストール sudo apt-get install -y python3 sudo apt-get install -y python3-dev sudo apt-get install -y python3-pip sudo apt-get install -y python3-venv sudo apt-get install -y python3-tk # バージョン確認 python3 -V # インストール先確認 which python3 # 仮想環境 ## 仮想環境作成 python3 -m venv 仮想環境名 ## 仮想環境削除 rm -Rf 仮想環境名 ## 仮想環境に入る source 仮想環境名/bin/activate ## 仮想環境から出る deactivate ## ユーザーログイン時に仮想環境に強制的に入る echo 'source 仮想環境名/bin/activate' >> ~/.bash_profile # pip最新化 python3 -m pip install -U pip # パッケージの追加 python3 -m pip install パッケージ名 # 脳死 python3 -m pip install パッケージ名==バージョン # バージョン指定 python3 -m pip install パッケージ名>=バージョン # バージョン以上 # パッケージの削除 python3 -m pip uninstall パッケージ名 # パッケージの更新 python3 -m pip install -U パッケージ名 # パッケージの一覧 python3 -m pip list # パッケージの固定 python3 -m pip freeze > requirements.txt python3 -m pip install -r requirements.txt # 複数バージョンを維持 # 複数バージョンをインストール sudo apt-get install -y python3.8 sudo apt-get install -y python3.9 # 複数バージョンを登録 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 # 複数バージョンの切替 sudo update-alternatives --config python3 # 複数バージョンの一覧 sudo update-alternatives --list python3 # webサーバー python3 -m http.server 8080

Ubuntuキッティング

Ubuntuキッティング

# 最新化
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# パッケージ依存関係整理
sudo apt-get dist-upgrade

# vim
## インストール
sudo apt-get install -y vim
## デフォルト変更
select-editor

# Chrome
## 公式リンク
https://www.google.com/chrome/?hl=ja
## パッケージソース追加
sudo curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/chrome-archive-keyring.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/chrome-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/chrome.list'
sudo apt-get update
## インストール
sudo apt-get install -y google-chrome-stable
## 邪魔になったパッケージソース削除
sudo rm -rf /usr/share/keyrings/chrome-archive-keyring.gpg
sudo rm -rf /etc/apt/sources.list.d/chrome.list
sudo apt-get update

# Atom
## 公式リンク
https://flight-manual.atom.io/getting-started/sections/installing-atom/
## パッケージソース追加
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" >> /etc/apt/sources.list.d/atom.list'
sudo wget -q -O - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
sudo apt-get update
## インストール
sudo apt-get install -y atom
## 日本語化
package「japanese-menu」をインストール

# 趣味
## simplescreenrecorder
sudo apt-get install -y simplescreenrecorder
## smplayer
sudo apt-get install -y smplayer
## gnome
sudo apt-get install -y gnome

# NVIDIADriver
## 公式リンク
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
## パッケージソース追加
sudo apt-get install linux-headers-$(uname -r)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
## インストール
sudo apt-get install -y cuda-drivers

# Ubuntuアップグレード
sudo do-release-upgrade
## LTS以外にバージョンアップする場合、以下のファイルを編集
sudo vi /etc/update-manager/release-upgrades

# 依存関係のトラブルシューティング
## 大体はコレで直る
sudo apt-get --fix-broken install
## 被疑箇所特定
sudo dpkg --audit
## 被疑箇所を再設定
sudo dpkg --configure パッケージ名
## 被疑箇所がどうにもならなくなって消す
sudo dpkg --remove --force-remove-reinstreq パッケージ名

2021/02/05

DNS

DNS

# ゾーンファイル
URLとIPの対応表の集まり(大体ドメインごとにまとめる)

# DNSレコード
URLとIPの対応表

# SOAレコード
ドメインの管理情報を示すレコード

# NSレコード
ドメインのネームサーバを指定しているレコード

# Aレコード
IPv4形式のIPアドレスに対応したレコード
URL→IPv4

# AAAAレコード
IPv6形式のIPアドレスに対応したレコード
URL→IPv6

# MXレコード
受信用のメールサーバを指定するためのレコード

# TXTレコード
送信用のメールサーバを指定するためのレコード

# CNAMEレコード
URL→URL

# PTRレコード
IP→URL

ステータスコード

ステータスコード

100番台
    情報
200番台
    成功
        200
            リクエストは成功した
        201
            リクエストは成功し、新しいリソースが作られた
        202
            リクエストは受け入れられた
        204
            リクエストは成功したが、コンテンツはない
300番台
    リダイレクト
        300
            複数のリソースがあり、一意に絞れない
        301
            リソースは恒久的に移動したが見つかった
        302
            リソースは一時的に移動しているが見つかった
        303
            他を参照してください
        304
            前回から更新されていないです(キャッシュ参照)
        307
            リソースは一時的に移動している(メンテ中)
400番台
    クライアントサイドに起因するエラー
        400
            リクエストが正しくない
        401
            認証が必要
        403
            アクセスが禁止されている
        404
            指定したリソースが見つからない
        405
            指定されたメソッドは使うことができない
        406
            リクエストに受け入れられない部分が含まれている
        408
            リクエストが規定時間内に処理出来なかった
        409
            リソースが矛盾した
        410
            指定したリソースは消滅した
        413
            リクエストボディが大き過ぎる
        414
            リクエストされたURIが長すぎる
        415
            サポートされていないメディアタイプが指定された
        429
            リクエスト回数が多過ぎる
500番台
    サーバーサイドに起因するエラー
        500
            サーバー側でエラーが発生した
        503
            サーバーが一時停止している

WEB_API
    GET
        リソースの取得
    POST
        リソースの新規登録
    PUT
        既存リソースの更新
    DELETE
        リソースの削除
    PATCH
        リソースの一部変更
    HEAD
        リソースのメタ情報の取得

HTML4.0に定義されているWEB_API
    GET
    POST

日付のフォーマット
形式名:RFC3389
    
        2020-11-11T11:30:22+09:00
        2020-11-11T11:30:22Z

2021/02/04

Windows10,11_初期設定

Windows11_初期設定

# Microsoft Storeから入れるもの
Game Bar
Microsoft フォト
Paint
Windows Notepad
Windows Subsystem for Linux
Windows Terminal

2021/02/01

メモ帳での枠線の引き方

メモ帳での枠線の引き方

「ほそわく」
┌┬─┐
└┴─┘

「ふとわく」
┏┳━┓
┗┻━┛

「みぎうえ」
┐┓

「みぎした」
┘┛

「ひだりうえ」
┌┏

「ひだりした」
└┗

「たて」
│┃

「よこ」
─━

「よこした」
┬┳┰┯

「たてひだり」
┤┫┥┨

「よこうえ」
┴┻┸┷

「たてみぎ」
├┣┝┠

大小<>

大小<>

小なり「<」「≦」
大なり「>」「≧」