知っとくと便利なコマンドやら設定やら

# 業務で使える一行コマンドを、列挙。

## linuxコマンド

```prompt:コンソールに出力しつつ、ファイルにも保存する(teeコマンド)。
make 2>&1 | tee aaaaa.txt
```

```prompt:xxxxグループの所属ユーザ確認。
getent group xxxx
```

```prompt:xxxxグループにaaaユーザ追加。
sudo gpasswd -a aaa xxxx
# ↓再起動しないで反映
sudo grpconv
```

```prompt:ワンライナーではなけど、viの最小設定。
vi ~/.vimrc

### 中身は下記 ###
set nocompatible
set backspace=indent,eol,start
set number
##################
```

```prompt:ubuntuにビルドツールのインストール
sudo apt install build-essential -y
```

## windows コマンドプロンプト

```prompt:シャットダウン
shutdown -s -t 0 -f
```
windowsのファイル検索

```prompt:ファイル検索
dir /s /b xxxx.jpg
rem /s : サブフォルダも対象にする
rem /b : フルパスの一覧表示
```

```prompt:ファイル検索2
where /r c:/users xxxx.jpg
```

```prompt:空のファイル作成
type nul > 出力ファイル名
```

```prompt:フィル名を指定して実行
%windir%\system32\rundll32.exe shell32.dll,#61
```

## git コマンド
windowsの場合、コマンドプロンプトで実行すること!!(powershellだと文字化けが解決しない)

```prompt:おそらく文字化けするので、最初に実行する。
SETX LANG ja_JP.UTF-8
```

```prompt:gitで差分をパッチファイル出力
git diff > aaaaa.patch
```

```prompt:パッチファイルを適用する
git apply aaaaa.patch
```

```prompt:変更の取り消し
git checkout .
```

```prompt:Clone元のURLの確認方法
git remote -v
```

```prompt:ローカルを最新に更新
git fetch -v --progress "origin"
git pull
# ↑git pullかgit mergeをしないと反映されない
```

## 正規表現
```prompt:平仮名3文字
[\u3040-\u309F]{3}
```

```prompt:カタカナ3文字
[\u30A0-\u30FF]{3}
```

```prompt:漢字4文字
[一-龠]{4}
```

```prompt:半角カタカナ3文字
[\uFF61-\uFF9F]{3}
```

```prompt:秀丸のファイル名と思わしき場所
([a-z]{1}:\\)[^ \t\*\?\|:,;<>"][^\t\*\?\|:;<>"]*\.[\-.0-9a-z_~]+
その他 → ファイルタイプ別の設定 → デザイン → ファイル名と思わしき場所 → カスタマイズ押下
```

## Android
```prompt:時刻設定
adb shell date 021011052020.00
               MMDDHHmmYYYY
```

```prompt:ログをファイルに出力
adb logcat aaaaa:D bbbbb:W *:S > c:\aaaaa.log
           ~~~~~~~~~~~~~~~ ~~~
           ↑↑aaaaaタグのDebugレベル以上と、bbbbbタグのWarningレベル以上を出力する。
                           ↑↑左記以外のロゴを全部silentにする。
```

## フロントエンド周り(React,npm)
```prompt:インストール場所の確認
npm root -g
C:\Users\xxx\AppData\Roaming\npm\node_modules
```

## ワンライナーではないけど、便利なtips
```prompt:コマンドウィンドウをここで開く
エクスプローラで該当のフォルダまで開く → アドレスバーにcmdを入力 → enter
```

## C++コードのtips

```C++:一回だけ実行コード
static bool unused = (initialize(), true);
// ※まー、ステキ!![[maybe_unused]]をつければ完璧。
```

``` C++:メモリリーク検出(VisuslStudioのみ)
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>		/* _CrtDbgBreak */
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif	/* _DEBUG */

int main(int argc, char* argv[]){
#ifdef WIN32
	_CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF | _CRTDBG_ALLOC_MEM_DF);
#endif /* WIN32 */
	・
	・
	・
	return 0;
}
```

## AndroidStudioの設定

```Java:AndroidStudioの設定
・Ctrl+PageUp/PageDnで、...ファイル→設定→キーマップ→メインメニュー→ウィンドウ→エディター・タブ→t次のタブを選択と前のタブを選択
・進む/戻る...ファイル→設定→キーマップ→メインメニュー→移動→戻ると進む
・ctrl+yで戻す...ファイル→設定→キーマップ→メインメニュー→編集→やり直し
・ctrl+wで現在のタブを閉じる...ファイル→設定→キーマップ→メインメニュー→ウィンドウ→エディタータブ→エディタークローズアクション→タブを閉じる
```

## Java
JavaでもC#みたいなオブジェクト初期化子で初期化
[ココが参考になる](https://cs.hatenablog.jp/entry/2013/06/24/190945)

```Java:オブジェクト初期化子で初期化
return new Person() {{ name = "Alice"; age = 20; }};
```


```Java:byte配列を文字列に変換
byte[] rcvdata = new byte[]{'0','1','2','3'};
String logmsg = MessageFormat.format("rcvdata:(size={0}, {1})", rcvdata.length, Arrays.toString(rcvdata));
```

## Dockerコマンド

```prompt:docker起動
docker run -it xxxxxx bash
```

```prompt:dockerアタッチ
docker exec -it xxxxx bash
```

```prompt:dockerの作業で失敗した時に、初期化
docker system prune
```

```prompt:コンテナからホストにコピー
docker ps
# 上記でコンテナIDを調べる。
docker cp <調べたコンテナID>:/aaaa003.txt .
```

```prompt:dockerコンテナにアタッチ
docker ps
# 上記でコンテナIDを調べる。
docker attach <調べたコンテナ名>
# もしくは、(attachとの違いは、execだと未起動時は起動し、attachだと起動しない。)
docker exec -it <調べたコンテナ名> bash
```

```prompt:dockerコンテナにデタッチ
ctrl + P + Q
# もしくは
exit
```

## VSCode
```prompt:コメント化/コメント解除のショートカット
ctrl + /
##     ↑ 数値キーじゃない方ね。
```

# Stable diffusion
```prompt:犬がプログラミングをしている絵の呪文
A cute dog doing programing instead of his owner.
```
## 参考
- [素人がAI生成画像で1P漫画を作ったわよ](https://note.com/ya_photo/n/n45a3290c62a4)
- [stable-diffusion-webui を素早く使いこなすためのtips](https://qiita.com/peka2/items/fdef492bcae84580edf4)