はじめに
大学生の私は毎日のように大学の作業ディレクトリまでcdコマンドで移動している。(例cd ~/desktop/university/junior)
今回、コマンド一つで作業用のディレクトリに移動できる方法を調べた。需要があると感じたので備忘録も兼ねて記事にした。
環境
macでzshを利用している。
(bashを利用している場合は~/.zshrcを~/.bashrcに読み替えて欲しい。)
前提知識
linux系のコマンドを触ったことがあれば、理解できると思う。
最低でもcdコマンドを理解できていれば設定はできるはず。
解決策(結論)
使ったのはalias(エイリアス)という、実行コマンドに別名をつける機能だ。wdというコマンドで作業ディレクトリ(~/desktop/university/junior)に移動したい場合はcd ~/desktop/university/juniorにwdという別名をつけてやれば良い。以下具体的な方法を見ていく。
1.ファイルを開く
普段利用しているエディターを使ってzshrcファイルを開く。
emacsの場合は、以下のようになる
emacs ~/zshrc
2. aliasを記述
.zshrcファイルに次のように書くことでaliasが設定できる。
閉じる時は忘れずに保存して閉じるように!
alias <設定するコマンド名>='<コマンド>'
今回の場合は下のようになる。
alias wd='cd ~/desktop/university/junior'
3.変更を反映する
.zshrcファイルを変更したらターミナルを開き直すか以下のコマンドを実行する必要がある。
source ~/.zshrc
これで完了!実際にwdと打てば作業用のディレクトリに移動することが確認できるはずだ。
注:.zshrcファイルを書き換えたらcdコマンドなど基本的なコマンドが利用できなくなった場合
文法ミスがあると、使えていたコマンドが使用できなくなる。解決方法は以下の通り。
1.Fiderでホームディレクトリまで移動する
2.隠しファイルを表示
⌘ + Shift + .で隠しファイルの表示/非表示が切り替えられる
3.ファイルを開いて修正
.zshrcファイルとは何か
ここまでで、今回の目標であったよく使うコマンドを省略することはできるようになった。
付録として.zshrcファイルとは何なのかを少し調べてみた。
.zhrcファイルの話をする前に.bashrcファイルと.bash_profileファイルについても簡単にまとめる。
.bashrcファイルと.bash_profileファイル
両者はbash環境でパスなどの環境変数の定義をするファイルである。
両者の違いは読み込まれるタイミングが異なる。.bashrcファイルは新しいターミナルセッションの開始時や新しい(インタラクティブな)サブシェルを開始するタイミングで読み込まれる。一方で.bash_profileはユーザーがシステムにログインするタイミングで読み込まれる。つまり、.bash_profileはユーザーがbashを利用し始めたタイミングのみで読み込まれる一方で、.bashrcファイルは子プロセスの開始など新しいbashの利用が始まったタイミングで読み込まれるというイメージで良いと思う。そのため、bash環境では.bashrcファイルに書いておけば特に問題はないだろう。
(正確にはインタラクティブなシェルなのかサブシェルなのかで読み込まれるファイルが決まるそう。)
.zhrcについて
bashには.bashrcファイルと.bash_profileファイルの二つが用意されているということがわかった。さて、.zshrcファイルについてだが、このファイルも役割は.bashrcや.bashprofileと大枠同じである。つまり、zshが何か作業をする上で必要な情報を保存しているのだ。bashでは二つのファイルが存在したが、zshでもzprofileというファイルが存在するようだ。
.zshrcファイルを書き換えた時にsourceコマンドが必要な理由
ここまで読んでくださった方はわかったと思うが、.zhrcを変更した後にsourceコマンドが必要な理由は.zshrcを再度読み込ませるためである。その証拠に、ターミナルを再起動することによっても変更内容を反映させることができる。
最後に
今回は、よく使うディレクトリへの移動を簡単にできるエイリアスについて説明した。
.zshrcなどを調べていく中でzshの強みであるタブ補完機能などにも興味を抱いたので、時間がある時に記事にしたい。
参照文献
更新履歴
2024年6月zprofileの記述を追加