Skip to content

Instantly share code, notes, and snippets.

@masa-nakano
Last active June 6, 2017 08:33
Show Gist options
  • Save masa-nakano/60dcc21e17efb63a89dd9fc3484e382c to your computer and use it in GitHub Desktop.
Save masa-nakano/60dcc21e17efb63a89dd9fc3484e382c to your computer and use it in GitHub Desktop.
my tips

Tips

Git

コミットをまとめる

ex)コミット:A1(コメント1) - A2(コメント2)

1.リベース(rebase -i)する

git rebase -i HEAD~~

2.A1のコミットメッセージのpickをsquashに変更して終了

pick A2 コメント2
pick A1 コメント1
↓
pick A2 コメント2
squash A1 コメント1

参考:
http://www.backlog.jp/git-guide/stepup/stepup7_5.html

現在のブランチ確認

$ git branch --contains

コンフリクト解消(git rebaseバージョン)

ex)developブランチ と hogeブランチでコンフリクト

$ git co hoge
$ git rebase -i develop
〜コンフリクトを修正する〜
$ git rebase --continue
〜コンフリクトが解消されるまで続ける〜

競合が解決してた場合
$ git rebase --skip
rebaseを諦める
$ git rebase --abort

参考(分かりやすかった):
http://bleis-tift.hatenablog.com/entry/20100219/1266552535

git commitでviのエラーメッセージ対応

macのみ?viは実体ではなく、vimのsymlinkなのでエラーになるとのこと

$ ls -l /usr/bin/vi
lrwxr-xr-x  1 root  wheel  3  9 22 22:03 /usr/bin/vi -> vim
$ ls -l /usr/bin/vim
-rwxr-xr-x  1 root  wheel  1745984  1 13 16:12 /usr/bin/vim

core.editorに実体のvimを明示的に指定してあげることで解決

$ git config --global core.editor "vim"

参考:
http://qiita.com/StupidDog/items/ca1e8a110400bfa4eb1b

git confing --globalの設定ファイルの場所

ここ

$ cat ~/.gitconfig

gitコマンド(logやdiff)を使用した際にページャを使用しない(コンソールに出力する)設定

設定しないとlessになる

$ git config --global core.pager ''

参考:
https://git-scm.com/book/ja/v1/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%81%AE%E8%A8%AD%E5%AE%9A

Mac

Macショートカット記号(よく忘れる。。)

command ⌘/shift ⇧/option ⌥/control ⌃/caps lock ⇪/fn

ショートカットキー

プレーンテキストとしてペーストするショートカット

command + shift + option + v

ディスク容量を確認

以下コマンドで5GB以上のディレクトリを確認

$ sudo du -g -x -d 5 / | awk '$1 >= 5{print}'

参考:
https://discussionsjapan.apple.com/docs/DOC-1081

トラックパッドでスクリーンロック

  • システム環境設定 > セキュリティとプライバシー > スリープとスクリーンセーバの解除にパスワードを要求
  • 開始後: 5秒後 に設定(好みで変更)
  • システム環境設定 > デスクトップとスクリーンセーバ > スクリーンセーバタブ > ホットコーナーボタン
  • 画面のコーナーへの昨日割り当て
  • (好きな位置で)スクリーンセーバを開始する を設定
  • (念のため)スクリーンセーバを無効にする も開いている場所に設定

※ キーチェーンアクセスの設定もあるがこっちのほうが楽

Vim

Java

.propertiesファイル(日本語)を編集する
vimでファイルを開いた後

>:%!native2ascii -reverse
ファイル保存前
>:%!native2ascii

参考:
http://qiita.com/kamichidu/items/ffdbd6d68b392711ba1d

neovim

vimの拡張版?
vimよりもキーレスポンスが早くなる気がするので優先的に使用している

インストール方法

$ brew tap neovim/neovim
$ brew install neovim

nvimはpython(> 2.7 or 3)が必要らしい。詳細ログを残していないがここらへんのコマンドで設定

$ pip install --upgrade setuptools
$ pip install --upgrade pip
$ pip show neovim
$ pip install neovim

起動

$ nvim

vim bootstrap

.vimrcのgererater(すばらしい)

サイト:
http://vim-bootstrap.com/

  • 個別の設定を行う
    ~/.config/nvim/local_init.vim
  • 個別のbundleの設定
    ~/.config/nvim/local_bundles.vim

カーソル位置の単語をコマンドモードにコピペ

ctrl+r -> ctrl+w

Vimにフォーカスが移ると半角英数にするスクリプト(Mac用)

.vimrcにこのスクリプト記載

if executable('osascript')
  let s:keycode_jis_eisuu = 102
  let g:force_alphanumeric_input_command = "osascript -e 'tell application \"System Events\" to key code " . s:keycode_jis_eisuu . "' &"

  inoremap   :call system(g:force_alphanumeric_input_command)

  autocmd! FocusGained *
    \ call system(g:force_alphanumeric_input_command)
endif

参考 https://keikenchi.com/vim-auto-ei-su

iTerm2

keybind

Option + → と Option + ← で単語単位移動させる
iTerm2 -> Preferences -> Profiles -> Keys -> "+" から、以下の内容を新規作成する。

右に移動:
Keyboard Shortcut: Option + →
Action: Send Escape Sequence
Esc + : f

左に移動:
Keyboard Shortcut: Option + ←
Action: Send Escape Sequence
Esc + : b

参考:
http://qiita.com/hokutoasari/items/e2442b87c7b381f9ff7c

iTermのScheme

https://github.com/mbadolato/iTerm2-Color-Schemes.git

Command

find(カレントディレクトリのみ)

$ find . -maxdepth 1 -name "*.bak"
./.dein.toml.bak
./.dein_lazy.toml.bak
./.vimrc.bak
./vim_area.bak

特定のportで実行しているプロセスを検索

ex.)8080ポートで実行中のプロセス

$ lsof -i:8080
COMMAND   PID USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
java    11979 masa  111u  IPv6 0xa60cc3d7a0d6d09      0t0  TCP *:http-alt (LISTEN)

不要ならばkillコマンド

$ kill -9 11979

diffをunified形式で表示(大したことではないがよく忘れるのでメモ)

git diffのように[+]と[-]で表示

$ diff -u foo.txt bar.txt

TODO:
いっそのことaliasにしてもよい

alias diff='diff -u'  

diffを実行するときは

$ diff 旧ファイル 新ファイル

で実行すると新旧の差分が正確に見える

docker

# 起動していないコンテナをvolumeごとすべて削除
$ docker ps -aqf status=exited | xargs docker rm -v

# tagなしイメージをすべて削除
$ docker images -qf "dangling=true" | xargs docker rmi

#コンテナに紐付いていないvolumeをすべて削除
$ docker volume ls -qf dangling=true | xargs docker volume rm

IntelliJ

lombok設定

  • Plugins > Browse repositories… > lombok.jarを検索
  • MavenないしGradleに追加
  • Annotation Processors > Default > Enable annotation processing にチェック

参考:
http://siosio.hatenablog.com/entry/2013/12/23/000054

webpack

webpack-dev-server起動

$ ./node_modules/.bin/webpack-dev-server --progress --colors --hot --port 9000

参考:
https://webpack.github.io/docs/webpack-dev-server.html

postgres

postgres起動

postgres -D /usr/local/var/postgres

DB接続情報の設定ファイル

設定しておくとパスワードを省略させてくれる

$ cat ~/.pgpass

以下の内容で設定する

ホスト名:ポート番号:データベース名:ユーザ名:パスワード  

psqlの設定ファイル

テーブル情報を見やすくさせる際に設定する

$ cat ~/.psqlrc

MySQL

EXPLAIN

テーブル構造の確認、クエリのパフォーマンスの確認する

mysql> EXPLAIN SELECT * from hoges;

EXPLAINの見方参考(他にもググれば出てくる)
http://kiyotakakubo.hatenablog.com/entry/20101126/1290733254

MySQLコマンド(よく確認しそうなもの。mysql弱者なのでpsqlと比較あり)

# 起動
$ mysql.server start

# 再起動
$ mysql.server restart

# 停止
$ mysql.server stop

# ログイン
$ mysql -h ホスト名 -P ポート番号 -u ユーザー名 -p [データベース名]

# ログアウト
(psql): \q ==  (mysql): exit;

# データーベースを作成
(psql): createdb database_name == (mysql): create database database_name;

# データベース一覧を表示
(psql): \l == (mysql): show databases;

# データーベースへ接続
(psql): \c database_name == (mysql): use database_name;

# テーブル一覧を表示
(psql): \dt+ == (mysql): show tables;

# テーブルカラムの一覧表示
(psql): \d+ table_name == (mysql): desc table_name;

# ユーザーを作成
(psql): createuser user_name == (mysql): create user user_name;

# ユーザー一覧を表示	
(psql): \du == (mysql): select user, host from mysql.user;

# パスワード設定(db名、テーブル名をワイルドカードで指定の場合 => *.* )
    ※ユーザ名とホスト名は明示的に指定しないと匿名ユーザの影響を受けてしまうので注意
grant select on `db名`.テーブル to ユーザ名@‘ホスト名’ identified by ‘パスワード’;

# 権限の確認(ホスト名をワイルドカードで指定の場合=> % )
show grants for ‘ユーザ名’@‘ホスト名’;

# 権限追加(db名、テーブル名をワイルドカードで指定の場合 => *.* )
grant super(とかallとか) on `db名`.テーブル to 'ユーザ名'@'ホスト名';
flush privileges; # 権限反映させる

mysqlデフォルトport

$ nmap localhost
〜省略〜
3306/tcp open  mysql

mysqlのパスワードを省略する場合

~/.my.cnf にパスワードを設定

その他接続先情報を記載の場合

~/develop-pass.my.cnf
~/production-pass.my.cnf
など

--defaults-extra-fileでファイルを指定して接続する(めんどそうならalias設定を考える mysql-devなど)

mysql --defaults-extra-file=$HOME/develop-pass.my.cnf -u dbuser1 db1

※ .my.cnfには接続情報の細かい設定が可能らしい

bash

ディレクトリがなければ作る

dir=/path/to/dir; [ ! -e $dir ] && mkdir -p $dir

eオプションは実行結果がエラーかどうかを判定

便利ツール(ほぼMac用)

schemaSpy

ER図を見るために幸せにするツール

DL先
http://schemaspy.sourceforge.net/

・Javaも必要
・Graphvizも設定する必要がある
Graphviz
http://www.graphviz.org/

実行方法(TODO:スクリプト化する)

$  java -jar schemaSpy_5.0.0.jar -t pgsql -dp postgresql-9.4.1209.jar -host localhost:5432 -db DB名 -s public -u ユーザ名 -p パスワード -o ./output_schema_spy -charset utf-8

PlantUML

UML記述ツール
専用のjarを落として使用するのも良いが、Atomのplantuml-viewerを使用するのが正義と思われる
javaとGraphvizも別途必要

以下がよくまとまっている
http://pierre3.hatenablog.com/entry/2015/08/23/220217

htop

topコマンドの拡張ツール
topコマンドが見やすくなるのでおすすめ

# インストール
$ brew install htop
# 起動
$ htop

jq

コンソール画面でjson形式のデータをいい感じに確認できるようにするツール

# インストール
$ brew insall jq

使い方まとめサイト(ググれば出てくる)
http://qiita.com/takeshinoda@github/items/2dec7a72930ec1f658af
http://qiita.com/Nakau/items/272bfd00b7a83d162e3a

nmap

対象ホストの開いてるportを確認

# インストール
$ brew insall nmap
# 使い方例
$ nmap localhost

colordiff

その名の通りdiffコマンドに色を付ける

# インストール
$ brew install colordiff
# 使い方例
$ colordiff -u a.txt b.txt 

colordiffにaliasを貼っておくとより良い

$ vi ~/.bash_profile
export LESS='-R'
if [[ -x `which colordiff` ]]; then
  alias diff='colordiff -u'
else
  alias diff='diff -u'
fi

gnu sed

macのsedコマンドは面倒くさいようすなのでgsedを使う

# インストール 
$ brew install gnu-sed --with-default-names

使い方
例)先頭行にhogeを挿入

$ gsed -i '.bak' "1s/^/hoge\n/“ test.txt

tree

windowsにはある例のtreeコマンド

# インストール
$ brew install tree

#ヘルプ確認
$ tree —help

# 階層指定
例)2階層まで表示
$ tree -L 2

enhancd

cdコマンドを幸せにする
インストール、使い方周りはここから確認:
https://github.com/b4b4r07/enhancd

.bashrcから.bash_profile以下を書き換えいる(書き替えたほうが動きが安定した)

$ vi ~/.bash_profile
source ~/.enhancd/enhancd.sh

インタラクティブに検索するツールも必要なのでpecoを入れた

$ brew install peco

解説サイト:
http://qiita.com/b4b4r07/items/2cf90da00a4c2c7b7e60

bashmarks

ディレクトリのブックマーク
設定ファイルのディレクトリとかlogディレクトリとかどこだっけ?を考えたくないので重宝
インストール、使い方周りはここから確認:
https://github.com/huyng/bashmarks

必要な設定

$ vi ~/.bash_profile
source ~/.local/bin/bashmarks.sh

循環的複雑度

コードの複雑さを数値化するものらしい
言語別の解析ツールなどあったら試してみたい
http://szk-takanori.hatenablog.com/entry/20111219/p1

@wbspry
Copy link

wbspry commented Jun 6, 2017

thanx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment