Mac初期設定 for フルスタックエンジニア

【2022/12/18更新】

【2022/09/09更新】

  • Monterey対応

【2021/02/14更新】

  • Catalina(zsh)対応にしました。
  • 使ってるやつとかインストールするものとか最新にしました。

【2023/03/29更新】

  • Flutter追加
  • ~/.zhrc晒す
  • ~/.zprofile晒す

//------------------------------------------------------------------------------------
備忘録。
フルスタックエンジニアな僕がMacを新しく買った時にやること。
構成管理全部自動でできたらいいのに&できそうとは思うけど数年に1回だしなぁ。
秘密鍵とか設定とかはだいたいDropboxに置いてあります。

WebやらApp Storeやらからインストールするもの
・開発以外

・開発系

ターミナルでやること

# zsh
ln -s ~/Library/CloudStorage/Dropbox/zsh/zprofile ~/.zprofile
ln -s ~/Library/CloudStorage/Dropbox/zsh/zshrc ~/.zshrc

# vim
echo -e -n ':syntax on\n' >> ~/.vimrc

# ssh
ln -s ~/Library/CloudStorage/Dropbox/ssh ~/.ssh

# homebrew
xcode-select --install
sudo xcodebuild -license
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew doctor

# nodeenv
brew install nodenv
nodenv install -l
nodenv install X.X.X # 任意のバージョンをインストール
nodenv rehash
nodenv global X.X.X

# rbenv
brew install rbenv ruby-build
rbenv install $(rbenv install -l | grep -v - | tail -1)
rbenv global $(rbenv versions | grep -v - | tail -1)

# Node.js / yarn
brew install yarn

# AWS
brew install awscli
ln -s ~/Library/CloudStorage/Dropbox/aws ~/.aws
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
sudo installer -pkg session-manager-plugin.pkg -target /
sudo ln -s /usr/local/sessionmanagerplugin/bin/session-manager-plugin /usr/local/bin/session-manager-plugin
rm session-manager-plugin.pkg

# Git
brew install git-lfs

# VSCode
rm -rf ~/Library/Application\ Support/Code/User
mkdir -p ~/Library/Application\ Support/Code/User
ln -s ~/Library/CloudStorage/Dropbox/code/* ~/Library/Application\ Support/Code/User

# Android
brew install bundletool

# Xcode
defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

# act
brew install act

# Mint
brew install mint

# jq
brew install jq

# Firebase
curl -sL https://firebase.tools | bash

# Flutter
brew tap leoafarias/fvm
brew install fvm

VSCode

共通系

  • Remote Development

Ruby(Rails)

Frontend

  • ESLint
  • Prettier

Flutter

~/.zprofile

# License : MIT
# http://mollifier.mit-license.org/

########################################
# 環境変数
export LANG=ja_JP.UTF-8

# 色を使用出来るようにする
autoload -Uz colors
colors

# ヒストリの設定
HISTFILE=~/.zsh_history
HISTSIZE=1000000
SAVEHIST=1000000

setopt AUTO_MENU
# プロンプト
PROMPT="[%F{cyan}%~%f]$ "
RPROMPT=""

# 単語の区切り文字を指定する
autoload -Uz select-word-style
select-word-style default
# ここで指定した文字は単語区切りとみなされる
# / も区切りと扱うので、^W でディレクトリ1つ分を削除できる
zstyle ':zle:*' word-chars " /=;@:{},|"
zstyle ':zle:*' word-style unspecified

# 補完
autoload -U compinit
compinit
zstyle ':completion::complete:*' use-cache true
zstyle ':completion:*:default' menu select true
zstyle ':completion:*:default' menu select=1
#補完でカラーを使用する
zstyle ':completion:*' list-colors "${LS_COLORS}"
#コマンドにsudoを付けても補完
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin
#何も入力されていないときのTABでTABが挿入されるのを抑制
zstyle ':completion:*' insert-tab false

# フローコントロールを無効にする
setopt no_flow_control

# Ctrl+Dでzshを終了しない
setopt ignore_eof

# '#' 以降をコメントとして扱う
setopt interactive_comments

# 同じコマンドをヒストリに残さない
setopt hist_ignore_all_dups

########################################
# sudo の後のコマンドでエイリアスを有効にする
alias sudo='sudo '

# グローバルエイリアス
alias -g L='| less'
alias -g G='| grep'

# C で標準出力をクリップボードにコピーする
# mollifier delta blog : http://mollifier.hatenablog.com/entry/20100317/p1
if which pbcopy >/dev/null 2>&1 ; then
    # Mac
    alias -g C='| pbcopy'
elif which xsel >/dev/null 2>&1 ; then
    # Linux
    alias -g C='| xsel --input --clipboard'
elif which putclip >/dev/null 2>&1 ; then
    # Cygwin
    alias -g C='| putclip'
fi

########################################
# OS 別の設定
case ${OSTYPE} in
    darwin*)
        #Mac用の設定
        export CLICOLOR=1
        alias ls='ls -G -F'
        ;;
    linux*)
        #Linux用の設定
        alias ls='ls -F --color=auto'
        ;;
esac

# vim:set ft=zsh:

~/.zprofile

# terminal
alias ls="ls -G"
alias ll="ls -alG"

# homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"

# nodenv
eval "$(nodenv init -)"
export PATH="$HOME/.nodenv/bin:$PATH"

# Node
export NODE_OPTIONS=--dns-result-order=ipv4first

# rbenv
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

# Java
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"

# Android
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH="$ANDROID_HOME/build-tools/30.0.3:$PATH"
export PATH="$ANDROID_HOME/platform-tools:$PATH"

# Flutter
alias flutter="fvm flutter"
export PATH="$HOME/fvm/default/bin:$PATH"
export PATH="$PATH":"$HOME/.pub-cache/bin"

# JSC
export PATH="/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Helpers:$PATH"

export LANG=en_US.UTF-8