※この記事はこちらのアドベントカレンダーに参加しています。
https://qiita.com/advent-calendar/2018/yumemi01_one-liner
というわけで、やっていきます。
ちなみにちゃんとbashを使い始めたのは大体3か月ぐらい前くらいです。それまでは完全なwindowsマンでしたので、低レベルな内容になるかと思いますがご容赦ください。
Docker関連
僕は普段の業務でdocker-compose up
してから、docker ps
してコンテナIDを調べてからコンテナに入るということをやっているので下記のaliasを張っています。
alias dcp='docker-compose'
alias dop='docker ps'
function dce() {
docker exec -it $1 bash
}
毎回dockerのコンテナID入力するとか面倒じゃない?と思ったかたもいると思いますが、じつはコンテナIDって全部入力しなくてもいいんですよ。コンテナを識別できる文字数(2文字か3文字程度)が入力されていれば普通にログインできます。
下記が例。
$ docker-compose up
# コンテナが起動する
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7ec42e8cef5 node_web "node" 13 seconds ago Up 4 seconds 0.0.0.0:8080->3000/tcp node
78303277dc02 mysql:5.7 "docker-entrypoint.s…" 16 seconds ago Up 11 seconds 0.0.0.0:3306->3306/tcp db
$ docker exec -it e7 bash
# これでコンテナにログインできる
なので、この例を最初に紹介したエイリアスを張った場合には、下記のようになります。
$ dcp up
$ dop
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7ec42e8cef5 node_web "node" 13 seconds ago Up 4 seconds 0.0.0.0:8080->3000/tcp node
78303277dc02 mysql:5.7 "docker-entrypoint.s…" 16 seconds ago Up 11 seconds 0.0.0.0:3306->3306/tcp db
$ dce e7
コンテナを複数立ち上げて頻繁に入りなおす場合なんかはこうしておくと便利です。
あと、そもそもコンテナIDじゃなくてimageの名前で定義しておけばいいんじゃない?って人もいると思います。それでもいいと思います。
ただ、僕はいまからどのコンテナに入るかを明確に意識するために毎回IDを見てから入るようにしています。これは個人の感覚の問題なので好きなやりかたでok。
あと当たり前の話ではありますが、$ docker exec -it $1 bash
というコマンドはbashがインストールされてるイメージじゃないと怒られます。alpineベースのコンテナだとデフォルトではbashが入っていないのでインストールさせるかコマンドの末尾を bin/sh
もしくは ash
に変更しましょう。
git関連
alias glo='git log --oneline'
alias gb='git branch'
alias gba='git branch -a'
function gcb() {
git checkout -b $1
}
gitは敢えてしぼっています。
pushやcommitもよく使いますが、aliasで短くした結果コマンド間違ったみたいなことになると嫌なので。。。
とりあえずこんなとこですかね。
来年はもうちょっとターミナルを活用していきたいなーと思っています。
皆様、良いお年を~
追記
tree='pwd;find . | sort | sed '\''1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'\'''