LoginSignup
13
16

More than 3 years have passed since last update.

【効率化】zshエイリアスと関数を晒す

Last updated at Posted at 2019-12-23

TL;DR

以前、村上さん(@ryuta69 )の記事を読んで、速攻で導入したエイリアス一覧を晒します。
【私的最強alias32選】忘れやすいコマンドは、『辞書化&ショートカット化』しちゃえばいい

こんな人におすすめです。

  • コマンドを覚えられない
  • コマンド打つのめんどい
  • コマンドの打ち間違いが怖い

zshについて

macOSのCatalinaからzshが標準のシェルになりましたね。
bashから移行する方も多いと思うので、zshのtipsをまとめます。

zshエイリアスについて

zshのプラグインであるoh-my-zshをインストールすると、gitなどのエイリアスがいい感じに設定されます。

とはいえ

  • 一連のコマンドを組み合わせた関数も欲しい。
  • 自分にとってわかりやすいエイリアスを作りたい。

なので~/.zshrcをいじってオレオレエイリアスを設定しました。

zshエイリアス設定方法

bashとは記法がちょっと異なります。
例えば、エイリアス名とコマンドをつなぐイコールの間に、半角スペースが入ってはいけない、とか。

単純なエイリアスの設定例は以下。

~/.zshrc
alias gitls="alias | grep git"

対話型の関数を作るときはechoreadを使います。
hoge()という関数を作るときの文法は以下の通りです。

~/.zshrc
hoge () {
        echo 'Type your favorite food' && read food;
        echo 'Your favorite food is '"${food}"', right?'
}

readで入力した値がfoodという変数に格納されます。
呼び出すときは${変数}という形で使えます。

hoge()のコンソールでの実行結果は以下のようになります。

-> % hoge
Type your favorite food    // ここでcurryとタイプする
curry
Your favorite food is curry, right?

オレオレzshエイリアス公開

メインは現在業務でよく使う以下の3種類

  • Firebase
  • npm
  • git
~/.zshrc
# zsh aliases
alias vz="vim ~/.zshrc"
alias sz="source ~/.zshrc"
alias rmf="rm -rf"

# Firebase aliases
alias fl="firebase login"
alias fi="firebase init"
alias fs="sudo firebase serve"
alias fd="firebase deploy"
alias fdf="firebase deploy --only functions"

# npm commands
alias nig="npm install -g"
alias nis="npm install --save"
alias nui="npm uninstall"
alias nuis="npm uninstall --save"
alias nls="npm ls"
alias niy="npm init -y"
alias nid="npm install --save-dev"
nvv() { npm view $1 version }

# Show all git alias commands
alias gitls="alias | grep git"
alias gc="git checkout"
alias gcd="git checkout develop"
alias gpd="git push origin develop"
alias gpm="git push origin master"
alias grm="git rm --cached"
alias gdn="git diff --name-only"
alias grh="git reset --hard HEAD^"

gmpd () {
    git pull origin develop
    echo "Type branche name to merge : " && read branch;
    git merge ${branch};
    git status;
    echo "Is it okay to continue?" && read;
    git push origin develop
}

# Push all changes to current branch
gcom () {
    git add . && git status
    echo "Type commit comment" && read comment;
    git commit -m ${comment} && git push origin HEAD
}

mygcre () {
    git init && git add . && git status && git commit -m "First commit"
    echo "Type repository name: " && read name;
    echo "Type repository description: " && read description;
    curl -u YOURID:YOURPASSWORD https://api.github.com/user/repos -d '{"name":"'"${name}"'","description":"'"${description}"'","private":true}'
    git remote add origin https://github.com/deatiger/${name}.git
    git checkout -b develop;
    git push -u origin develop;
}

個人的によく使うのはgcom()mygcre()です。

gitは作業の流れの中で一連のコマンドを実行しますよね。
それを全て繋げて関数化しています。

「次はなんのコマンドだっけ...」といちいち意識する必要もありません。
うっかりおかしなコマンドを実行する事故も無くなりますね。

まとめ

シェルを使いこなすと作業効率が段違いですよ。
ぜひ活用してください。

13
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
16