※この記事はこちらのアドベントカレンダーに参加しています。

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'\'''