Ubuntu新規インストール直後にやることリスト2016

# Ubuntuの新規インストールと、個人環境を整えるためにやったことを覚え書きする

今回は Windows10 x64マシン(ディスク2TB,メモリ24GB,CPU i7)上に仮想マシンを作成してインストールした。

## 仮想マシンを作成する
1. VMware workstation 12 player を起動する
2. 「新規仮想マシンの作成」を選択する
3. 事前にダウンロードしておいた、[Ubuntu日本語Remix](https://www.ubuntulinux.jp/download/ja-remix)のisoイメージファイルを指定する
<br>![ubuntu-install-vmware1.PNG](https://qiita-image-store.s3.amazonaws.com/0/130677/697b11af-16f6-6bba-abc1-0b7da20534c3.png)
4. ユーザ名、パスワード、仮想マシン名と場所などをお好みで指定する
5. パフォーマンスを優先し、「仮想ディスクを単一ファイルとして格納」に変更する
<br>![ubuntu-install-vmware2.PNG](https://qiita-image-store.s3.amazonaws.com/0/130677/9db31804-454d-b6d8-bc5a-9c491e927640.png)
6. カスタマイズを選択し、パフォーマンス優先で、メモリを1GB→4GB、プロセッサコアを1→4 に変更する。インストール後にも再調整できるので適当に設定して良い
<br>![ubuntu-install-vmware3.PNG](https://qiita-image-store.s3.amazonaws.com/0/130677/9756f2d4-472e-9017-2767-c9569cb38245.png)
7. インストール開始。全ておまかせで進み、10～30分程でUbuntuが起動する。

## VMware Tools をインストールする
1. VMwareのメニュー：Player(P)→ファイル(F)→環境設定(P)を選択し、「今すぐすべてのコンポーネントをダウンロード」ボタンをクリックする
<br>![vmware-tools-download](https://qiita-image-store.s3.amazonaws.com/0/130677/68f76e8e-b054-e38b-5f8d-de420cf27ad2.png)
2. Ubuntu仮想マシンを起動した状態で、VMwareのメニュー：Player(P)→管理(M)→VMwareToolのアップデート(T)を選択する。または、VMwareウィンドウ下部に下記メッセージが出たら、「Toolsの更新」ボタンをクリックする（更新後も何度も同じメッセージが出ることがあり邪魔なので、その場合は「通知しない」をクリックする）
<br>![vmware-tools-update](https://qiita-image-store.s3.amazonaws.com/0/130677/348bd301-ca70-fa8e-c9f1-061b5c88f0c9.png)
3. VMwareTools仮想ディスクがマウントされて、内容が表示される
<br>![vmware-tools-mount](https://qiita-image-store.s3.amazonaws.com/0/130677/c5d3f086-70d6-be96-448c-31f65b16fe90.png)
4. VMwareTools-*.tar.gz を右クリックし、メニューから「展開...」を選ぶ
<br>![vmware-tools-select](https://qiita-image-store.s3.amazonaws.com/0/130677/3261fb2c-5bfd-c025-6825-a83634512b1c.png)
5. 展開ウィンドウ左サイドバーにて展開先にホームを選び、右下の展開ボタンを押す
<br>![vmware-tools-tarx](https://qiita-image-store.s3.amazonaws.com/0/130677/1ef695cc-ab78-adb7-f443-8393817cbc21.png)
6. ホームフォルダ下に展開されたvmware-tools-distribフォルダを右クリックし、メニューから「端末を開く」を選ぶ
<br>![vmware-tools-shellopen](https://qiita-image-store.s3.amazonaws.com/0/130677/0dfca482-3c3b-6348-775d-7f6355ed8fd0.png)
7. 端末にて<br>```sudo ./vmware-install.pl```
8. 上記ではインストール項目を細かく問い合わせてくるので、すべてデフォルトで良い場合は<br>```sudo ./vmware-install.pl -d```
<br>![vmware-tools-sudo](https://qiita-image-store.s3.amazonaws.com/0/130677/da566f67-ad9c-3e76-7780-31a5de31af2b.png)

## Ubuntu16.04の環境設定
1. ログインして、右上の歯車をクリックし、メニューからシステム設定を選ぶ
<br>![ubuntu-install-system1.PNG](https://qiita-image-store.s3.amazonaws.com/0/130677/b6b8f077-9d56-d8e5-aec0-af102994e708.png)
2. 「時刻と日付」にて場所を「Tokyo」に設定する
<br>![ubuntu-install-system2.PNG](https://qiita-image-store.s3.amazonaws.com/0/130677/cd591a15-d121-d671-58bb-53904ec99266.png)
3. 「ディスプレイ」にて解像度を各自のモニタサイズにあわせる
4. 「言語サポート」にて地域フォーマットを「日本語」に設定する
5. デスクトップを右クリックし、メニューから「端末を開く」を選ぶ
6. ホームディレクトリにある「ドキュメント、ダウンロード、ピクチャ、ビデオ」などの日本語フォルダ名を英語にするため、端末にて<br>
```
LANG=C xdg-user-dirs-gtk-update
```
 * ポップアップしたダイアログに対し、"Don't ask me this again" をチェックし、"Update Names" ボタンをクリックする。<br>![image](https://qiita-image-store.s3.amazonaws.com/0/130677/39701c7f-4216-7362-e12f-cd6835bc568b.png)
 * このとき日本語フォルダ中にファイルが１つでもあると日本語フォルダが残ってしまうので、デスクトップやダウンロードフォルダに何かファイルを置いていたら、ホームフォルダに移動しておくこと。
7. 続いて、初期ファイル保存フォルダを作成し、ホーム直下とetcの設定ファイルの初期状態を保存しておくとよい。<br>
```
mkdir orig ; sudo cp -p .* /etc/* orig/
```
7. Ubuntu標準パッケージのgitは古いので、最新バージョンが取れるようにパッケージリポジトリを追加する。<br>
```
sudo add-apt-repository ppa:git-core/ppa
```
8. パッケージを最新に更新する。二度手間を避けるため、追加パッケージを入れる前にやっておくべき<br>
```
sudo apt update ;
sudo apt upgrade
```
8. アップグレード後のディストリビューションのバージョンを確認する。<br>
```
lsb_release -d
```
9. 各自が欲しい追加パッケージをインストールする
 * 端末用エディタ(vim,emacsなど)とnkfとgitは最低限欲しい. tigはsshでGUIが使えないときのgit操作に便利だ<br>
```
sudo apt -y install vim git tig nkf jless lv zip p7zip-full xsel
```
 * ビルド環境が欲しい場合はさらに<br>
```
sudo apt -y install build-essential libtool automake autoconf pkg-config
```
 * GUIパッケージは、画面左端のランチャーからUbuntuSoftwareを起動してインストールする。端末上の ```sudo apt install``` でも可能だが、ランチャー登録やインストール済みの削除などの管理が楽である。```meld,gitg,geany``` などお好みで入れる。
10. この時点で初期選択済みパッケージの一覧を保存しておくとよい。<br>
```dpkg --get-selections > orig/pkg-selections```
10. bash、vim、gitの設定をカスタマイズする

```bash
# vimを、お好みに設定にする. emacs派はここでemacs設定をする.
vim ~/.vimrc

# aliasを、お好みに設定する
vim ~/.bash_aliases
source ~/.bash_aliases

# ヒストリ無視パターンを設定する.
#  cd とか ls とか ps とか top など3文字までのコマンド入力や exit はヒストリに残す価値なし.
echo "export HISTIGNORE='?:??:???:exit'" >> .bashrc

# bash設定を確認する.
#  Ubuntuの.bashrcはデフォルトで良い感じに設定されているので
#  ざっと眺めるだけで良い. 気に入らない箇所があれば直す.
vim ~/.bashrc

# git無視パターンファイルを作成して、登録する
# 1. core.excludesfile の初期値は $XDG_CONFIG_HOME/git/ignore なので、その場所に作る方法と、
vim ~/.config/git/ignore
# 2. 任意の場所にファイルを作成し、そのパスを core.excludesfile に設定する方法がある.
vim ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

# gitパッケージに含まれている diff-highlight を起動可能にする.
cd /usr/share/doc/git/contrib/diff-highlight
sudo make && sudo install diff-highlight /usr/local/bin

# Ubuntuでは、git標準エディタがnanoに設定されているのでvimやemacsに切り替える.
# gitで賢く差分が出せるオプションを指定する.
# 残りのgit設定は、切り替えたエディタを起動して、お好みで記入する.
# 最低限 user.name, user.email, push.default は記入しておくべき. 
git config --global core.editor vim
git config --global diff.compactionHeuristic true
git config --global -e
```

### alias設定ファイル
```bash:.bash_aliases
alias ..='pushd ..'
alias ...='pushd ../..'
alias ....='pushd ../../..'
alias a='alias'
#alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias aw='aliaswhich'
alias cp='cp -i'
alias df='df -h'
alias du='du -h'
#alias egrep='egrep --color=auto'
alias f='find . -iname'
#alias fgrep='fgrep --color=auto'
#alias grep='grep --color=auto'
alias h='history'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
#alias ls='ls --color=auto'
alias lt='ll -t'
alias mg='make -f GNUmakefile'
alias mv='mv -i'
alias rm='rm -i'
```
### vim設定ファイル
```vim:.vimrc
"=== encoding
set enc=utf-8
set fencs=ucs-bom,iso-2022-jp,euc-jp,sjis,cp932,utf-8
set fileformats=unix,dos,mac

" FROM <http://www.kawaz.jp/pukiwiki/?vim>
" if fenc is iso-2022-jp and buffer is ascii only then change fenc as enc
" if this failed, do :e ++enc=utf-8
if has('autocmd')
  function! AU_ReCheck_FENC()
    if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
       let &fileencoding=&encoding
    endif
  endfunction
  autocmd BufReadPost * call AU_ReCheck_FENC()
endif

"=== status line
set laststatus=2
set statusline=%<%F%h%m%r\ [%Y][%{&ff}][%{&fenc!=''?&fenc:&enc}:0x\%02.6B]%=%l,%c%V\ %P

"=== syntax
" check /usr/share/vim/vim74/filetype.vim
au BufNewFile,BufRead *.ssi setf perl
syntax on
filetype on
autocmd FileType c,cpp,perl,javascript set cindent tabstop=4 shiftwidth=4

"=== cursor
" FORM <http://qiita.com/usamik26/items/f733add9ca910f6c5784>
let &t_ti.="\e[1 q"
let &t_SI.="\e[5 q"
let &t_EI.="\e[1 q"
let &t_te.="\e[0 q"
"set cursorline

"=== mouse
set mouse=a
set ttymouse=sgr

"=== color
"colorscheme elflord
"set t_Co=256

"=== highlight
set hlsearch

"=== visible tab,space,eol
set list
set listchars=tab:»-,trail:-,nbsp:%,eol:↓
" NonText:eol, SpecialKey:tab,trail
highlight NonText    ctermfg=DarkGreen guifg=DarkGreen
highlight SpecialKey ctermfg=DarkGreen guifg=DarkGreen
```

### git設定ファイル
```ini:.gitconfig
[user]
	name = YOUR NAME
	email = YOUR@mail.address.com
[core]
	editor = vim
	excludesfile = /home/hkuno/.gitignore_global
	quotepath = false
	autocrlf = input
[push]
	default = simple
[pull]
	ff = only
[credential]
	helper = cache
[rebase]
	autosquash = true
[pager]
	log  = diff-highlight | less
	diff = diff-highlight | less
	show = diff-highlight | less
[tig]
	tab-size = 4
	mouse = yes
[diff]
	compactionHeuristic = true
	tool = meld
[merge]
	tool = meld
[alias]
	utf8 = !LANG=ja_JP.UTF-8 LESSCHARSET=utf-8 git
	sjis = !LANG=ja_JP.SJIS  LESSCHARSET=dos   git
	st = status
	co = checkout
	ci = commit
	cia = commit --amend
	cif = commit --fixup
	cis = commit --squash
	uncommit = reset --soft
	rollback = reset --hard
	pullr = pull --rebase
	pullri = pull --rebase=interactive
	br = branch
	bl = branch -avv
	tl = tag -l -n
	al = config --get-regexp alias.*
	ul = config --show-origin --get-regexp user.*
	crlf = config --show-origin --get-all core.autocrlf
	confg = config --global
	diffc = diff --cached
	difftoolc = difftool --cached
	diffs = diff --stat
	diffn = diff --no-index
	logff = log --format=fuller
	logd = log --decorate
	logs = log --decorate --oneline -5
	logv = log --decorate --graph --stat
	ignore = !vim $(git config --get core.excludesfile)
```

### git無視パターンファイル
```bash:.gitignore_global
#{{{ my add

# sytem folders
vssver.scc
.svn/
Debug/
Release/

# work folders
wk/
fix/
old/
tmp/
temp/
save/
orig/
,*/
wk.*/
fix.*/
old.*/

# backup files
*.bak
*.tmp
*.swp
*.TMP
*.old
*.orig
*~
\#*#
.#*
*.rej
*.decomment
*.$
$*
~$*

# OS cache
Thumbs.db
ehthumbs.db
Desktop.ini
.DS_Store

# unix work files
*.o
*.lo
*.la
*.al
.libs
*.so
*.so.[0-9]*
*.a
*.pyc
*.pyo
*.out

# windows work files
*.exp
*.manifest
*.cod
*.map
*.res
*.lnk
*.idb

# archive files
*.atc
*.zip
*.7z
#}}}

# original gitignore_global.txt by SourceTree for Windows
#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
##*.log
*.dll
*.lib
*.sbr
```

## 参考記事
* Ubuntu仮想マシンにVMware Toolsをインストールする
 - http://ginka.hatenadiary.jp/entry/2015/05/06/151110
 - https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078905
* VMware Tools をインストールして使いやすくする
 - http://qiita.com/suppy193/items/7c6905003c02a697f159
* ゲストOSがUbuntuでVMWareToolsをインストールする手順
  - http://qiita.com/kure/items/dd8f01ff481d7556e0d2
* ubuntu 16.04 へアップグレードした際の備忘録
  -http://iamidleness.blogspot.jp/2016/05/ubuntu-1604.html
* Ubuntuのgitを最新版にアップデートする
  - http://qiita.com/isaoshimizu/items/e0891fead893f6d87b0e
* 「デスクトップ」等のディレクトリ名を英語にする
  - http://qiita.com/take5249/items/13ada73bbd01ee12a2c3
* Git2.9のキレイなdiffを出すためのconfig
  - http://qiita.com/takyam/items/d6afacc7934de9b0e85e
* vim: 文字コードの自動認識
  - http://www.kawaz.jp/pukiwiki/?vim
* mintty ターミナル上の vim で、モードに応じてカーソル形状を変える
  - http://qiita.com/usamik26/items/f733add9ca910f6c5784
* 日本語109キーボードのIMEオンオフ設定とCapsLock/左CtrlキーをMacキーボード風に変更する
  - http://qiita.com/hkuno/items/9e41575c651812028960