今すぐalias登録すべきワンライナー by ゆめみ① Advent Calendar 2018の3日目の記事です。
前回は@YutoMizutaniさんの今すぐaliasを登録しておくべきGitワンライナーでした。
(かぶった部分があることを先にお詫びしておきます...)
「ワンライナー」と言えるほどライナーライナーしてないのですが、簡単だけどもよく使う(ベタともいう)エイリアスを書いておこうかと思います。
物によっては便利かもしれない。
前提
- OS: macOS
- shell: bash
- 基本的になんでもCLIで行いたい人間です
超基本的なカスタム
色づけなど
if [ "Darwin" = 'Darwin' ]; then
alias ls='ls -G'
else
eval `dircolors ~/.colorrc`
alias ls='ls --color=auto'
fi
alias la='ls -a'
alias ll='ls -l'
alias tree='tree -C'
ls
- lsコマンドは、物によって色づけのオプションが異なる
- 自分の環境ではこの分け方で十分だが、もっと変えようがあると思う。
- なおこれはコピペしてきた思い出がある。
- 用途: lsに色づけしたい
la
-
ls -a
もよく使いますよね。 - 用途:
.*
ファイルも見たい時
ll
-
ls -l
もよくt(ry - 用途:
ls
で詳細が見たい時
tree
- 用途: treeコマンドの出力に色づけする
git関連
git関連は最もよく使うコマンドの一つだと思います。
そこで、ベタですがいくつか載せておきます
alias gs='git status' # `git status`の確認
alias gd='git diff' # `git diff`の確認
alias gc='git commit' # commitする
alias gca='git commit --amend' # 前のコミットの編集
alias glo='git log --oneline' # コミットログを各一行で読む
alias mkpr='hub pull-request' # PRを書く
alias prs='ghi | grep ↑' # 現在のレポジトリのPR取得
少しだけ解説
mkpr
-
hub pull-request
でPRをかけるのでそのショートカット - 用途: CLIからPRを送る
hubコマンドは、githubを使うにあたって便利なコマンド群を提供します。
調べると色々出てくると思います。Githubユーザーには強くおすすめ。
公式: github/hub
prs
-
ghi
コマンドでissue&PRの一覧が取得できるため、そこからPRのみを抽出 -
ghi
ではPRには↑
の記号が付いていることからそれのみをgrepしている - 用途: PRの一覧を見る
ghiコマンドはGithubのissue周りの管理をするコマンドです。
これもまた便利。githubユーザーには強くおすすめ。
公式: stephencelis/ghi
utilityツール群
その他諸々なツール群
alias init='[ ! -d ".git" ] && { git init; git flow init; hub create; } || echo "aleady initialized"' # プロジェクト作成時に行う一連の作業
alias bashrc='source ~/.bashrc' # bashrc再読み込み
alias bash_profile='source ~/.bash_profile' # bash_profile再読み込み
alias back='cd $OLDPWD' # 一つ前のディレクトリにback
init
新たなプロジェクトを作成するときに、自分が使っている一連の作業を詰め込んだものです。
[ ! -d ".git" ] \
: # `.git`ディレクトリが存在していなければ \
&& { git init; git flow init; hub create; } \ : # `git`を初期化してgit-flowも初期化、githubにレポジトリを作成する
: # `.git`ディレクトリが存在していれば \
|| echo "aleady initialized" # 初期化済みだよと出力して終了
-
git init
: おなじみgitの初期化 -
git-flow
: 開発手法の一つであるgit-flow
をサポートする拡張コマンド -
hub create
: hubコマンドの機能の一つで、githubに現在のレポジトリを作成します。
git-flowも調べれば出てきますが、割とおすすめな開発手法です。
自分は、その拡張であるgit-flow-avh
を使っています。
CLIツール公式: nvie/gitflow
CLIツールavh版公式: petervanderdoes/gitflow-avh
bashrc
名前のまま、です。
- 用途: bashrc書き直した時など
bash_profile
名前のままです。
- 用途:
bash_profile
に書かれてる処理がたまに実行されていない時など
back
現在いるディレクトリの一つ前のディレクトリに移動します。
$ pwd # 元のディレクトリ
/Users/me/dotfiles/vim
$ cd ~/Desktop/hoge # 他のディレクトリに移動
$ pwd
/Users/me/Desktop/hoge
$ back # 一つ前にいたディレクトリへ移動
$ pwd
/Users/me/dotfiles/vim
-
$OLDPWD
には、一つ前のpwd
が保存されている(man bash
を探ると書いてあります) -
cd -
でも同様の動作はできる -
cd -
ではない理由:cd -
だとパスが出力され、個人的に邪魔だったから。
おまけ
正直あまり使ってない(or実用的ではない)けど面白いのがいくつかあるのでおまけで載せておきます
Macに関わる設定
mac以外では通用しない設定たちです。
alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'
alias wport='networksetup -setairportpower' # usage: wport <device> <on/off>
alias wifi='networksetup -setairportnetwork' # usage: wifi <device> <SSID> <password>
alias siri='open /Applications/Siri.app'
airport
- airportユーティリティへのショートカット
- このコマンドはデフォルトで存在しているがパスは通っていない
- ネットワーク周りの設定をするコマンドだったと思う(きちんと使えていないため紹介のみ)
wport
- 同じくネットワーク系コマンドの
networksetup
のラッパーです。 - 正直あまりわからない。
- 各デバイス(wifiやbluetoothなど)をオンオフします。
wifi
- 同じくnetworksetupのラッパー
- wifiアクセスポイントに接続を試みます
- GUIで接続した方が楽(パスワードを求められないため)のであまり使っていない
siri
- 文字通りsiriを起動する
- ちょっともっさりする
個人的utility群
全員の役には立たないけど自分が使っている諸々
alias drp='cd ~/Dropbox && ls'
alias dotdrop='$HOME/dotfiles/dotdrop.sh'
alias jnethack='cocot -t UTF-8 -p cp932 -- ~/nethackdir/jnethack'
drp
- ドロップボックス内に移動します
dotdrop
- dotfile管理ツールのdotdrop用エイリアス
jnethack
* ローグライクゲーム"nethack"の日本語バッチ版の起動用エイリアス
* ちょっとややこしいのでエイリアス化した