1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. ターミナル
  6. »
  7. 【初心者向け】dotfilesの作り方。開発環境を一瞬で構築しよう!

【初心者向け】dotfilesの作り方。開発環境を一瞬で構築しよう!

Macを買い換えたとき、データを全削除した後などは、もういちど自分の開発環境を整える必要があります。
しかし、その環境設定は、ちょっと大変な作業だったりします。

そんなとき、dotfilesというものを作っておくと、とてもかんたんに開発環境を整えることができて便利です。

今回は、zshとVimの設定を例に、Macでのdotfilesの作り方を紹介します。

りこ

ねぇ、dotfilesってなんなの?

山田

いろんなツールの設定ファイルを、ひとつのフォルダのなかに作っておいて、かんたんに環境を作れるようにするものだべ

グッバイキティ

なんか便利そうどすなぁ

アル

なんだかむずかしそう……

目次
  1. dotfilesってなぁに?
  2. ドットファイルをdotfilesフォルダに移動しよう!
  3. シンボリックリンクを作ろう!
  4. シンボリックリンクを作るための、シェルスクリプトファイルを作ろう!
  5. まとめ

dotfilesってなぁに?

dotfilesと言われると、なんだかむずかしいツールみたいに思ってしまいがちですが、そうではありません。
まず、dotfilesは、たんなるフォルダ(ディレクトリです。

そのなかには、さまざまなツールの設定ファイルを入れておきます。
こういった設定ファイルは、ファイル名の最初が「.(ドット)」になっています。

「.(ドット)」ではじまるファイルをひとつにまとめるので、「dotfiles」となるわけです。

といっても、ファイルだけでなく、ドットからはじまるフォルダも、一緒に管理したりします。

このように、設定ファイルをひとつのフォルダにまとめておくことで、いろんなツールの設定を、かんたんに管理できるようになるのです。

山田

つまりdotfilesは、ドットからはじまる設定ファイルをあつめたフォルダ、なんだべ

こんなふうに、いろんな設定ファイルを入れておくんだべよ
もちろん、フォルダを入れてもいいべ

グッバイキティ

たしかに、設定ファイルが1箇所にまとまってはると、管理が楽になりそうどすなぁ

山田

しかも、環境の構築も一瞬でできるようになるんだべ

りこ

すごーい!

アル

うーん、いまいちよく分からないよー

りこ

ここで悩んでても仕方ないわね。とにかく作ってみましょ!

ドットファイルをdotfilesフォルダに移動しよう!

ではまず、ドットからはじまるファイル(ドットファイル)を、「dotfiles」フォルダに移動しましょう。

いろんなツールのドットファイルの多くは、ホームディレクトリに保存されています。
ホームディレクトリは、自分のユーザ名になっているディレクトリですね。

グッバイキティ

あらあら。ホームフォルダ、見てみても、ドットからはじまるファイルフォルダも見当たらないどすー

アル

ぼくもー

山田

ドットからはじまるファイルフォルダは、通常は見えないように隠れているんだべ
shift + command + .で、表示非表示を切り替えられるべよ

りこ

へぇー

山田

まずは、ホームディレクトリに「dotfiles」フォルダを作るべ

※これは例です。ホームディレクトリにあるフォルダやファイルは、上記の例とは異なるかもしれません。

山田

さらに、そのdotfilesフォルダに、管理したいものを入れるべ

.sshなどの秘密の情報が入っているものは、絶対にdotfilesで管理しないようにしましょう。
間違えてGitHubなどで公開してしまうと、大変なことになってしまいます。

山田

dotfilesで管理するものは、ちゃんと自分で選ぶ必要があるべ
そして、そこに秘密の情報が入っていないか、しっかりと確認して、管理するんだべ

あと、コマンド履歴のファイル(.zsh_historyなど)とかも、管理しない方がいいべ

りこ

よく分からないものは、管理しない方がよさそうね

山田

うむ。まず最初は.zshrcとか、.vimrcとか、その辺りの、自分がちゃんと分かっているファイルを管理してみるといいべ

dotfiesは、たとえば以下のようなふうにします。

dotfies/
|-- .vim/
|   |-- autoload/
|   |   `-- xxxxx.vim
|   |-- colors/
|   |   `-- xxxxx.vim
|   `-- config/
|       `-- init.vim
|-- .zsh/
|   |-- init.zsh
|   `-- commands.zsh
|-- .vimrc
`-- .zshrc
山田

環境は人によって違うべけど、こんな感じで、設定ファイルをdotfilesフォルダに入れたんだべ

グッバイキティ

zshとVimだけでも、たくさん設定ファイルがあるんどすなぁ

山田

……ほんとはもっとたくさんあるんだべ
ただ今回は、dotfilesの作り方の基本、ということで、省略させてもらったべ

グッバイキティ

あらまぁ。それは管理が大変どすなぁ

アル

でもさ、設定ファイルの場所を変えちゃって、大丈夫なの?

山田

もちろんこのままじゃzshもVimも、設定がなにもされていない状態になってしまうべ

りこ

どうすればいいの?

山田

シンボリックリンクを作るんだべ!

シンボリックリンクを作ろう!

つづいて、シンボリックリンクを作っていきます。
シンボリックリンクというのは、本当のファイルフォルダは別の場所にあるのに、いかにもそこにあるかのように見せる仕組みのことです。

山田

シンボリックリンクは、別の場所にあるファイルフォルダを、そこにあるかのように見せる仕組みだべ

りこ

そっか! シンボリックリンクってのを使って、ホームディレクトリにそのファイルフォルダがあるように見せればいいのね!

グッバイキティ

どないするんどすかぁ?

山田

コマンドを使うんだべ

りこ

あ、ターミナルを開くのね!

グッバイキティ

あらまぁ。ターミナルを開いたら、なんかむずかしいメッセージが表示されました

This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

--- Type one of the keys in parentheses --- 
山田

うむ。.zshrcをdotfilesに移してしまったからだべ
qを押せば、ふつうにコマンドを実行できるべよ

グッバイキティ

ほんまどすなぁ。ちゃんと動いてくれはりました

山田

それじゃあまず、単純にシンボリックリンクを作るためのコマンドはこれだべ

% ln -s dotfiles/.vimrc ~/.vimrc

%は入力しなくて構いません)

山田

lnというコマンドに、-sというオプションをつけることで、シンボリックリンクを作ることができるんだべ

これはdotfilesフォルダにある.vimrcのシンボリックリンクを、ホームディレクトリに.vimrcという名前で作るものだべ

アル

ちょっとむずかしいけど、つまり、dotfilesにある.vimrcが、まるでホームディレクトリにあるように見えるようになる、ってことかな

山田

うむ。そういうことだべ

りこ

じゃあ、これでdotfilesの中身ぜーんぶシンボリックリンクを作ればいいのね!

山田

まぁ、そういうことなんだべけど、ひとつひとつ作っていては大変だべ
そこで、シェルスクリプトファイルを作って、それを実行することで、かんたんにシンボリックリンクを作れるようにするべ!

シンボリックリンクを作るための、シェルスクリプトファイルを作ろう!

dotfilesの中のもののシンボリックリンクホームディレクトリに作ることで、それぞれのツールがその設定ファイルを読み込むことができるようになります。

しかし、ひとつづつシンボリックリンクを作っていては大変なので、シェルスクリプトファイルを作って、一発でできるようにします。

山田

では、シェルスクリプトファイルを作ってみるべ
link.shというファイルを作って、内容を次のようにするべ!

link.sh

#!/bin/sh

# エラーや未定義の変数に備える
set -eu

# dotfilesディレクトリの場所を、変数DOTFILES_DIRに教える
DOTFILES_DIR=$(cd $(dirname $0); pwd)
# dotfilesディレクトリに移動する
cd $DOTFILES_DIR

# .から始まるファイルフォルダに対して繰り返す
for f in .??*; do
	# シンボリックリンクを作りたくないファイルフォルダを除外
	[[ "$f" == ".git" ]] && continue
	[[ "$f" == ".gitconfig" ]] && continue
	[[ "$f" == ".gitignore" ]] && continue
	[[ "$f" == ".DS_Store" ]] && continue
	[[ "$f" =~ .swp$ ]] && continue

	# シンボリックリンクを作成
	ln -snfv ${DOTFILES_DIR}/$f ~
done
山田

link.shは、dotfilesフォルダに保存するんだべよ

グッバイキティ

link.shはどないなふうに使うんどすかぁ?

山田

ターミナルで実行すればいいんだべよ
cdでdotfilesディレクトリに移動して、shファイル名を指定して実行するべ!

% cd dotfiles
% sh link.sh

%は入力しなくて構いません)

山田

するとホームディレクトリに、こんなふうに矢印のついたファイルフォルダが作られるべ
これが、シンボリックリンクだべ

りこ

あ、ホームディレクトリに、dotfilesにあったファイルフォルダがそのまま作られてる!
ちゃんと矢印もついてるよ!

山田

そして、dotfilesにあるデータに変更を加えても、ちゃんとシンボリックリンクの方にも反映されるんだべ!

グッバイキティ

場所は離れとっても、ちゃんと結ばれている
シンボリックリンク、ホンマ美しいどすなぁ

一曲作れてまうなぁ。「ウチはアンタのシンボリックリンク」なんて……ふふふっ、ホンマ、言わせんといてぇな

りこ

きゃー! すてき!

山田

すばらしいべ!

アル

なんだそれ

山田

まぁまぁ。とにかく、これでdotfilesの完成だべ

このdotfilesだけあれば、Macを変えたときでも、link.shを実行するだけで、すぐに自分の環境に設定することができるんだべよ

今回は解説しないべけど、このdotfilesをGitHubとかにアップしておくと、とても便利になるんだべ

グッバイキティ

ほう。せやから秘密の情報を管理したらあかん、言うてはったんどすなぁ

まとめ

今回はdotfilesの作り方を紹介しました。
dotfilesを作っておくことで、Macを変えたときなど、すぐに自分の環境を整えることができます。

グッバイキティ

アンタ〜、帰らへん日々、ウチ辛抱〜
あ、シンボ〜ぅリック、リぃンクぅぅぅ〜♪

アル

そういえば、グッバイキティちゃんは演歌の歌い手だったんだよね

グッバイキティ

そうなんどすえ

りこ

すごい! もっといろんな曲、聞かせてよ

アル

ぼくも聞きたい!

グッバイキティ

ひっ、は、恥ずかしいどす〜
ウチ、そんなふうに言われてもうたら……

ウチ、もうそろそろ帰ります
ほな、グッバイならどすー

グッバイキティ

とことことことこ

アル

帰っちゃった!

りこ

ホントに恥ずかしかったのね……

山田

実は最近、わたすも歌を練習してるんだべ
絶対に上手くなって、グッバイキティちゃんを振り向かせてみせようと思ってるべ

りこ

すてき! 先生、歌ってみてよ!

アル

ほんとに歌えるの?

山田

てやんでぇ、べらぼうめだべ!
聞いて驚くなだべ!

こほん……
グッバイ、グッバイ、キティちゃん〜♪
グッバイ、グッバイ、キティちゃん〜♪

アル

なんか、お別れの歌みたい

山田

うそだべ!
すごくいい曲作ったと思ったんだべけどなぁ

スポンサードリンク

関連コンテンツ

オススメ記事

Homebrew

Homebrewのインストールと使い方。よく使うコマンド一覧と詳しい解説まとめ

人生をもう一度やり直したいとつくづく思う@It_is_Rです。 今回はHomebrewについての記事を書いてみようと思います。Homebrewをインストールすると、ターミナルから便利なコマンド

WordMove | 運用中の WordPress 環境をローカルと FTP で同期

道が覚えられない、@It_is_Rです。 人生さえ彷徨い続けてここにいます。 さて、運用中の WordPress サイトの環境を、ローカル開発環境と同期したい時、 WordMove を使うとと

オブジェクトを使ってみよう!

【JavaScript】オブジェクトを使ってみよう! 小学生からのプログラミング入門

小学生からのJavaScript《ジャバスクリプト》入門講座《にゅうもんこうざ》、今回もはじめていきましょう!前回の講座《こうざ》では、HTMLやCSS、JavaScriptを分けて管理《かんり》す

パスの書き方を覚えるべ!

パスの書き方を覚えよう。絶対パス、相対パス、ルート相対パスの違い

みなさん、こんにちは。今日もプログラミングの勉強《べんきょう》をはじめていきましょう。 今回は、パスの書き方について学びます。パスというのは、ファイルの場所《ばしょ》を、パソコンに教《おし》え

wordpress

WordPress管理画面のテーマカスタマイザーに独自の項目を追加。

WordPressみたいに私自身の人生もカスタムできたらいいのに。@It_is_Rです。 WordPressのカスタマイズは、公開しているサイトだけではありません。管理画面をカスタマイズするこ

小学生からのプログラミング入門。プログラミングってなぁに?

小学校でプログラミングを勉強しなくてはいけないことになり、「プログラミングなんてやったことないし、そもそもプログラミングってなんなんだろう」と思う方も多いのではないでしょうか。 といっても、「

zsh

enhancd で cd コマンドを超便利に! インストールと使い方。

曲を作っても、再生数が伸びない。@It_is_Rです。 やかましいわ。 ターミナルをカッコよくするシリーズ4回目です。 今回は enhancd というプラグインを使って cd コマンドを便利にする方

WordPress|ショートコードの作り方&使い方。確実に使いこなす為のガイド。

前回、WordPressで、特定のカテゴリ一覧を表示する方法について書きました。 改めまして、@It_is_Rです。 特定のカテゴリ一覧を表示したとき、ショートコードというものを使いましたが、

画像を表示するよ

JavaScriptで画像を表示してみよう! 小学生からのプログラミング入門

みなさんこんにちは。今日もプログラミングの勉強をはじめていきましょう。 前回、「JavaScriptで今月の残り日数を計算してみよう! 小学生からのプログラミング入門」では、JavaScrip

SCSS vs SASS どっちが便利か違いを比較。おまいら SASS 使えよ!

CSS を書くときに、 Sass はもう手放せません。 @It_is_R です。 さて、今回のテーマとなる Sass の表記には、2種類ありますよね。 SCSS と、 SASS です。

コメントを残す(コメントは承認後に反映されます)

メールアドレスが公開されることはありません。