Bash
Zsh
Linux
ターミナル
シェルスクリプト

aliasと関数で幸せになろう(実践編)


はじめに

前回の記事alias関数が何であるかと使い方を解説しました。

今回の記事では実際に私が登録してるオススメのalias関数を紹介していきます。

ソースだけ欲しい人はGistに挙げてるので、こちらを丸っと~/.bashrc~/.zshrcにコピーして使ってくださいね。


alias編

先ずはaliasから紹介していきます。


コマンド短くする系

dockerとかdocker-composeコマンドって長くて打つの面倒臭くないですか?

こういった長いコマンドはまとめて短くしちゃいましょう

alias d='docker'

alias dc='docker-compose'
alias h='heroku'
alias py='python3'
alias wi='which'
alias cl='clear'
alias to='touch'
alias g='git'
alias hi='history'
alias bu='bundle'
alias ra='rails'

こんな感じで1文字か2文字くらいにしてます。


lsコマンド

頻繁に使うlsコマンドも良い感じに設定しましょう。

僕は全て表示したいので、詳細表示の-lオプションとドットファイルも表示する-aオプションを同時に使用してます。

alias ll='ls -G -al'

こんな感じで使い分けてもいいと思います。

alias ll='ls -G -l'

alias la='ls -G -a'


カラーオプションについて

-GはMacで使用する際のオプションになってます。

その他のLinuxディストリビューションで使う際は--color=autoを使用しましょう。


cdコマンド

超使用頻度の高い移動コマンドのcdコマンド。

例えば、プロジェクトフォルダや頻繁に移動するフォルダのaliasを登録しておくと便利。

alias cdh='cd ~/project/hoge/'

alias cdf='cd ~/project/fuga/'


親ディレクトリに移動

親ディレクトリに移動することって地味に多いですよね。そんな時に便利なalias。

alias ..='cd ..'


grepコマンド

こちらも使用頻度の高いコマンドですね。カラーオプションをつけて見易くします。

alias gr='grep --color'


aliasの-gオプション

因みに、シェルにzshを使用していれば、aliasの-gオプションを使ってパイプが使えるようになります。

alias -g gr='| grep --color'

使い方はこんな感じ。すごーい。

% hi gr ssh

30589 pss sshuttle
30592 pss ssh
30594 ssh-wo
30595 pss ssh


rmコマンド

ファイル削除で使うコマンドですね。

ファイルを削除する際に問い合わせる-iオプションを指定します。

逆に、一気に消したい時は、ディレクトリも含め再帰的に削除する-rオプションと、警告を表示しないで強制的に削除する-fオプションを使用します。

alias rmi='rm -i'

alias rmf='rm -fr'


設定ファイル操作系

zsh(bash)ファイルでaliasや関数を結構頻繁に追加するので、それもついでにalias書いときます。


書き込み時

ホームディレクトリにある.zshrcをvimエディタで編集します。

alias viz='vi ~/.zshrc'


読み込み時

設定ファイルは書き込んだ後にsourceコマンドで読み込むのを忘れないようにしてください。

alias sz='source ~/.zshrc'


PATHの確認

環境変数のPATHを確認することも地味に多いので登録しとく。

alias path='echo $PATH'


関数編

次にオススメの関数を紹介します。


プロセスの確認

プロセスの確認をするのに便利な関数。

出力結果からgrepコマンドのプロセスを除外して、ヘッダを付与します。

すごいお気に入りの関数。

pss () {

ps aux | grep -E "PID|$1" | grep -v grep
}

使い方はこんな感じ。第一引数にgrepしたい文字列を指定する。

% pss ssh

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
me 45486 0.0 0.0 4297712 5716 s000 S+ 6:08PM 0:00.03 ssh wo-hoge


文字列検索

対象の文字列が記述されてるファイルを検索する関数。

これもリモートサーバで頻繁に使う。

ローカルだとAtom等のテキストエディタ使ってると、使用する機会は少ないかも。

gre () {

grep -E $1 -rl $2
}

使い方はこんな感じ。第一引数に文字列、第二引数に検索対象のディレクトリを指定する。

% gre session app

app/controllers/application_controller.rb


Railsのマイグレーションコマンド

これも地味に長いのでCASE式を使って使い易くしましょう。

db() {

case $1 in
"st") bundle exec rails db:migrate:status ;;
"up") bundle exec rails db:migrate:up VERSION=$2 ;;
"do") bundle exec rails db:migrate:down VERSION=$2 ;;
*) echo "plese give the params st, up, do " ;;
esac
}

使い方はこんな感じ。第一引数にstupdoを指定、第二引数に操作したいマイグレーションファイルのバージョンを指定する。


まとめ

思ったより登録してるコマンドが多くなかったですorz...

こんな感じで自分で使いたいコマンドをどんどん登録していくと便利になります。

参考にして見てください。