技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

シェルの$括弧

  • $(コマンド)
    バッククォートで括ったのと同様にコマンドを実行できる。
    ネストできたり開始終了が分かりやすいので、こっちを使ったほうが良い

  • $((演算))
    exprでやったような演算ができる。$(expr 1 + 1) とやるよりスマート

シェルスクリプトのオプション

set -u 未定義の変数を参照するとエラー・メッセージを表示する
set -e コマンドが0以外のステータスで終了した場合,一部の場合を除いて即座に終了する
set -C 存在するファイルに対して、>でリダイレクトしたらエラーにする

viでコマンドの実行結果を挿入する

:r!コマンド と入力する。

:r!date
:r!ls

jconsoleでリモートのTomcatを監視する

毎度忘れるのでメモしておく。 事前準備としてTomcat起動のjavaオプションに以下を追加しておく。

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7900
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

後はローカルPCでjconsoleを起動して、接続先に IPアドレス:7900 をしている。

portの使用状況を確認する

すぐ忘れるのでメモ。以下のコマンドで一覧を表示できる。

lsof -i

ポートを指定して調べることもできる。

lsof -i:<port_not>

コンフリクト時に共通の祖先の情報を書き出す

あらかじめgit configしておく。

git config --global merge.conflictstyle diff3

そうすると、コンフリクト時に 共通の祖先の内容も書き出される。

func main() {
<<<<<<< HEAD
    fmt.Println("h2")
||||||| merged common ancestors
    fmt.Println("Hello")
=======
    fmt.Println("h1")
>>>>>>> h1
}

マージ済みのブランチを一括削除するワンライナー

git branch --merged | grep -v '*' | xargs -I % git branch -d %