Help us understand the problem. What is going on with this article?

EC2 Amazon Linux を立ち上げた時にする初期設定

More than 1 year has passed since last update.

個人的に良く設定する事を忘れないようにメモします

yumアップデート

$ sudo yum update -y

vimの設定をする

プラグイン管理ツールNeobundleをインストール

$ mkdir -p ~/.vim/bundle
$ sudo yum -y install git
$ git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

.vimrcの記述

コピペする時:set pasteすると自動インデントとかしないから嬉しい

.vimrc
" 最初に記述しておいたほうが良いもの============
" 文字コードの指定
scriptencoding utf-8

" ミュートにする。
set t_vb=
set visualbell
set noerrorbells

" プラグイン管理 NeoBundle ==============================================

" ファイルタイプの自動検出をしないようになる。
" neobundleなどのプラグインを読み込むときは一度filetypeをoffにしておく必要がある
filetype off

if has('vim_starting')
      set runtimepath+=~/.vim/bundle/neobundle.vim/
endif

call neobundle#begin(expand('~/.vim/bundle/'))

" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'

" Recommended to install
" After install, turn shell ~/.vim/bundle/vimproc, (n,g)make -f
" your_machines_makefile

" ここから使いたいプラグインを書く =========================

" Dirのtree表示
NeoBundle 'scrooloose/nerdtree'
" ソースをVim上で実行
NeoBundle 'thinca/vim-quickrun'
" Markdown記法をHTMLに変換
NeoBundle 'Markdown'
" クオートや括弧の対を自動入力
NeoBundle 'Townk/vim-autoclose'
" シンタックスチェックをする
NeoBundle 'scrooloose/syntastic'

" ファイルタイプの自動検出、ファイルタイプ用の プラグインとインデント設定を自動読み込みするようになる。
filetype plugin indent on

" Installation check.
NeoBundleCheck

call neobundle#end( )

" シンタックスチェック scrooloose/syntasticの設定============================

let g:syntastic_check_on_open = 0
let g:syntastic_enable_signs = 1
let g:syntastic_echo_current_error = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_enable_highlighting = 1
let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']
" なんでか分からないけど php コマンドのオプションを上書かないと動かなかった
let g:syntastic_php_php_args = '-l'
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

" 自分のセッティング===========================================================

" ハイライト
syntax on

" スワップファイルはいらない
set noswapfile
" バックアップファイルもいらない
set nobackup

" タブ文字を半角スペースが挿入" 
set expandtab

" 対応する括弧やブレースを表示する
set showmatch

" 行を超えてもバックスペースキーによる編集が可能
set backspace=2

" 行番号表示
set number

" ステータス行に表示させる情報の指定
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P

" ショートカットキー マッピング ====================================================

" プラグインコマンドショートカット
map ,n <ESC>:NERDTreeToggle<CR>
map ,r <ESC>::QuickRun<CR>
map ,m <ESC>::QuickRun markdown<CR>

" 開いているPHPファイルを自動整形する
map ,f <ESC>:! php-cs-fixer fix %<CR>

" 貼り付け用
map ,a <ESC>::set paste<CR>

" Ctrl-jにESCの役割を担ってもらう。
imap <c-j> <esc>

" for php
map ,p <ESC>:!php -l %<CR>

" for perl
map ,t <ESC>:%! perltidy -q -pbp<CR>
map ,w <ESC>:!perl -wc %<CR>

" 全角スペースの表示================================================================

function! ZenkakuSpace()
    highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=darkgray
endfunction

if has('syntax')
    augroup ZenkakuSpace
        autocmd!
        autocmd ColorScheme * call ZenkakuSpace()
        autocmd VimEnter,WinEnter,BufRead * let w:m1=matchadd('ZenkakuSpace', ' ')
    augroup END
    call ZenkakuSpace()
endif

" インデント Indent ==============================================================

set autoindent   " 自動でインデント
"set paste        " ペースト時にautoindentを無効に(onにするとautocomplpop.vimが動かない)
set smartindent  " 新しい行を開始したときに、新しい行のインデントを現在行と同じ量にする。
set cindent      " Cプログラムファイルの自動インデントを始める

" softtabstopはTabキー押し下げ時の挿入される空白の量,0の場合はtabstopと同じ,BSにも影響する
set tabstop=2 shiftwidth=2 softtabstop=0

" 連続インデント
vnoremap < <gv
vnoremap > >gv

if has("autocmd")
  "ファイルタイプの検索を有効にする
  filetype plugin on
  "そのファイルタイプにあわせたインデントを利用する
  filetype indent on
  " これらのftではインデントを無効に
  "autocmd FileType php filetype indent off

  autocmd FileType apache     setlocal sw=4 sts=4 ts=4 et
  autocmd FileType aspvbs     setlocal sw=4 sts=4 ts=4 et
  autocmd FileType c          setlocal sw=4 sts=4 ts=4 et
  autocmd FileType cpp        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType cs         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType css        setlocal sw=2 sts=2 ts=2 et
  autocmd FileType diff       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType eruby      setlocal sw=4 sts=4 ts=4 et
  autocmd FileType html       setlocal sw=2 sts=2 ts=2 et
  autocmd FileType java       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType javascript setlocal sw=2 sts=2 ts=2 et
  autocmd FileType perl       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType php        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType python     setlocal sw=4 sts=4 ts=4 et
  autocmd FileType ruby       setlocal sw=2 sts=2 ts=2 et
  autocmd FileType haml       setlocal sw=2 sts=2 ts=2 et
  autocmd FileType sh         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType sql        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType vb         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType vim        setlocal sw=2 sts=2 ts=2 et
  autocmd FileType wsh        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType xhtml      setlocal sw=4 sts=4 ts=4 et
  autocmd FileType xml        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType yaml       setlocal sw=2 sts=2 ts=2 et
  autocmd FileType zsh        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType scala      setlocal sw=2 sts=2 ts=2 et
endif

screenの設定をする

.screenrc
escape ^Tt
shelltitle "$ |bash" 
hardstatus alwayslastline "[%c]%`%-w%{=b bw}%n %t%{-}%+w" 
bind s
startup_message off
autodetach on
defscrollback 1024

screen
screen
screen
screen
screen

grepより超早い検索ツールThe Silver Searcher

# sudo yum install the_silver_searcher

ログ解析にmultitail

# yum -y install multitail
# cd /var/log/httpd
# multitail -f access_log -f error_log

障害調査時に使うコマンドをインストール

# yum -y install dstat sysstat iotop

ファイルツリー表示にtree

# yum -y install tree

Ctrl + s でコンソールストップするのを無効にする

~/.bashrcに以下を追記

~/.bashrc
# No use terminal STOP (ctrl + s) 
stty stop undef

日本時間(JST)にする

yum update してもUTCに戻らないやり方

# vim /etc/sysconfig/clock

ZONE="Asia/Tokyo" 
UTC=false

# cp /usr/share/zoneinfo/Japan /etc/localtime
# date
Thu Sep  4 10:37:21 JST 2014

※再起動
# /etc/init.d/crond restart

swap追加

# free
# dd if=/dev/zero of=/mnt/swapfile bs=1M count=1280
# mkswap /mnt/swapfile
# swapon /mnt/swapfile
# chmod 0644 /mnt/swapfile
# free
# sudo vim /etc/fstab
これを追記
/mnt/swapfile  swap     swap    defaults        0   0

日本語環境にする

# echo "LANG=ja_JP.UTF-8" > /etc/sysconfig/i18n
# yum install -y man-pages-ja

個人のユーザを作る

頻繁に作るかもなので、以下のシェルスクリプトを作っておく。
引数にユーザ名入れよう。
自動でwheelにもいれる
標準出力された鍵は忘れずにコピーして保存

useradd.sh
#!/bin/bash

if [ $# -ne 1 ]; then
  echo "指定された引数は$#個です。" 1>&2
  exit 1
fi

cat <<__EOT__
ユーザ名 $1 ユーザを作ります。
__EOT__

user=$1
useradd $user -G wheel
passwd $user
mkdir /home/$user/.ssh
cd /home/$user/.ssh
ssh-keygen -t rsa
mv /root/.ssh/id_rsa.pub /home/$user/.ssh/authorized_keys
mv /root/.ssh/id_rsa /home/$user/.ssh/${user}_rsa
chmod 600 /home/$user/.ssh/authorized_keys
chmod 700 /home/$user/.ssh
chown -R $user:$user /home/$user/.ssh
cat /home/$user/.ssh/${user}_rsa

権限変更してrootで実行する

# chmod 700 useradd.sh
# ./useradd.sh hoge

sudoしたいならvisudoでwheelを有効にする。

# visudo

%wheel  ALL=(ALL)   ALL

ec2-userにパスワードを設定する

初期のec2-userにはパスワードが無いので設定しておく

# passwd ec2-user
New password: 任意の文字列
Retype new password: 任意の文字列

# visudo -f /etc/sudoers.d/cloud-init

NOPASSWDを消して、以下に変更する。
ec2-user ALL=(ALL) ALL

# User rules for ec2-user
ec2-user ALL=(ALL) ALL

最後に

自分の技術ブログではフリーランス界隈の情報や最新のIT情報の発信していますので、よろしくお願いします。

shojimotio
自分はプログラム歴13年、札幌でフリーランスになって後数日で4期目になるエンジニアです。 今はゲーム系の案件でGCPでインフラ構築と、PHPプログラムでサーバーサイドプログラムミングをしています。 Twitterで日々の為になる技術情報やフリーランスについての有益な情報発信しています。 またブログではフリーランスのお役立ち情報や最新のIT情報の発信を続けています。
https://cloudlance-motio.work/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away