LoginSignup
1
1

ターミナル操作がラクラクに!zshエイリアス活用術

Last updated at Posted at 2023-11-08

はじめに

普段ターミナルで入力するgit commit -m"hoge hoge"git branchなど、短いようで実は10文字ぐらい、またはそれ以上の文字をタイプしているんです。

ここで一旦、目を瞑って深呼吸してみましょう。。。。。。。。。。。。

面倒くさくないですか。。。?頻繁に使うのにそんなにタイプするの。。。

可能だったらもうちょい短くできたらな、って思ったことありませんか?

Macの場合、zshエイリアスというショートカットコマンドを登録できる仕様があり、登録内容次第では日々のターミナルのコマンド入力に使う時間を短縮できます。

そこで今回は私が登録していて普段使っているエイリアスの一部をご紹介します!!

「なにそれ初めて聞いた!」って方、存在は知ってたけど登録が面倒くさくてやってないよ〜という方も、ぜひ登録してみてください!日々のコマンド入力が圧倒的に楽に感じるようになります。

zshエイリアスの登録方法

.zshrcを開く

rootディレクトリにある.zshrcをエディタで開いてください。
エディタはなんでも良いですが、vscodeのコマンドがインストールされている方は以下コマンドでVSCodeで開けます。

code ~/.zshrc

まだ.zshrcファイルが存在しない場合は以下コマンドで空のファイルを作成できます。

touch ~/.zshrc

コマンドを登録する

コマンド登録の公式は以下です。

alias ショートカットコマンド='元のコマンド'

例えば、git branchというコマンドをgbで動作するようにしたい時は以下のように記述してファイルを保存します。

alias gb='git branch'

これを登録すると、次からはgbと打つだけでカレントブランチとローカルのブランチリストを参照することができるようになります!

こんな感じで、自分のよく使うコマンドはショートカットコマンドを登録しておくと業務効率が上がります⤴︎⤴︎

変更を反映する

.zshrcを編集した場合、その変更内容はファイルを保存しても特定のコマンドを打つかターミナルを再起動しない限り反映されません。

ということで、.zshrcを保存したら以下コマンドを叩いて変更を反映します。

source ~/.zshrc

これでzshのエイリアス登録のプロセスは以上です。ここから私が登録しているエイリアスと応用方法をカテゴリごとにご紹介します。

私が登録しているコマンド集

ここから私が登録しているコマンドの一部をご紹介します!

基本タスク系

alias ll='ls -la'
alias rmf='rm -rf'

主にリスト表示と削除系を登録しています。rm -rfrmfでできるのはいつもとても助かっています。

VSCode

alias co='code .'

カレントディレクトリをVSCodeで開きたいときはいつもこれを使っています。

Git系

alias g='git'
alias gb='git branch'
alias gbd='git branch -D'
alias gst='git status'
alias gpl='git pull'
alias gps='git push'
alias ga='git add .'
alias gcm='git commit'
alias gch='git checkout'
alias gsta='git stash'
alias gsta-u='git stash -u'
alias gsta-a='(){git stash apply stash{$1}}'
alias gsta-c='git stash clear'
alias gsta-p='git stash pop'
alias gf='git fetch origin'

特に複数のブランチを使い分ける開発がある時はgb(git branch)やgbd(git branch -D)、gch(git checkout)のコマンドは非常に重宝します。

画面共有しながらチェックアウトする際には「チェックアウトはやw」なんて言われます笑

あと私はgit stash系のコマンドを登録しています。

git stash系コマンドは以下のようなシチュエーションでかなり効率化できます。

ブランチAで開発をしている途中で...

  • ブランチBでバグが見つかって優先して作業をしなければならないケース
  • ブランチCでチームメンバのコードレビューをしたりするケース
  • 昨日出していたブランチDのレビューが返ってきたので修正するケース
  • 作業が中途半端でコミットには入れたくない

上記のような感じで開発中のブランチ移動が多いので、これ系のコマンドはいつも助かっています。

個人開発系

ginit () {
    git init && git add . && git status
	git commit -m"initial commit" && git branch -M main
    echo "Repository name: " && read name;
    git remote add origin https://github.com/自分のgithubのアカウント名/${name}.git
	git push origin HEAD
}

gcom () {
    git add .
	git status
	echo "Commit message: " && read message;
	git commit -m"${message}"
    git push origin HEAD;
}

エイリアスは複数の直列的なコマンドのフローや対話型のフローを関数として登録することができます。

簡単に直列フローや対話型のフロー登録のお作法を記載します。

  • &&で連続するコマンドを登録(改行も同様)
  • echoで入力補助などに使うテキストの表示
  • read 変数名でテキストの入力を待ち、入力後に変数に格納
  • ${変数名}でread 変数名で格納した変数の参照

これだけ覚えたら対話型の関数は作成できます!

gcom () {
    git add .
	git status
	echo "Commit message: " && read message;
	git commit -m"${message}"
    git push origin HEAD;
}

上記のgcom()を例にすると、ターミナルでgcomと叩くと、git add .git statusが自動的に実行され、ターミナルにCommit message: と表示されて入力用のカーソルが表示されます。

そこでコミットメッセージを入力すると、自動的にそのコミットメッセージがgit commit -m""内に挿入され、gti pushまだ勝手にやってくれます。

このように対話型の関数を使いこなすと、日々の連続したコマンドのフローの一部を自動化することができます。

対話型の応用

gcom2 () {
    git add . && git status
	echo "Type commit category ex.add,modify..." && read category;
	echo "Type ticket number" && read number;
	echo "Type commit message" && read message;
	git commit -m"${category} refs JIRA-ID:${number} ${message}"
    git push origin HEAD;
}

中〜大規模の開発になると、JIRAなどのチケットでタスクを管理することもあると思います。
プロジェクトのルールによりけりですが、コミットには対応したJIRAチケットの番号を記載するケースもよく見受けられます。

このように、プロジェクトでコミットメッセージの型が決まっている場合には私はそのプロジェクトごとのエイリアスを作成して、プロジェクトでシェアしています。

上記のgcom2()の場合、

  1. gcom2と叩く
  2. カテゴリ入力でaddmodifyなどを入力してEnter
  3. JIRAチケット番号を入力してEnter
  4. コミット内容を入力してEnter

とすることで、add refs JIRA-ID:1234 検索ロジック実装というような型の決まったコミットメッセージを自動作成することができます。

おわりに

よく使うgit系のコマンドをエイリアスに登録しておくのはとても便利です。

慣れてきたら自分のいる開発プロジェクトや体制でよく使うコマンドのフローをエイリアス登録して作業の効率化をしてみることをおすすめします!

うまくできたらチームメンバーに共有してあげましょう!大体喜ばれます笑

1
1
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
1
1