ぽにょ、ぽにょぽーにょ

ぽにょ、ぽにょぽーにょ

2012年からWebエンジニア。
プログラムとか、趣味とか、人生とかの備忘録。

なんかアメブロってださくて使いづらいからそのうち引っ越しまふ。

Amebaでブログを始めよう!
vimrc syntasticの連携

"NeoBundle 'scrooloose/syntastic'

let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=1
let g:syntastic_mode_map={ 'mode': 'passive',
                        \ 'active_filetypes': ['php', 'ruby', 'javascript', 'json'],
                        \ 'passive_filetypes': []
                        \}
let g:syntastic_ruby_checkers=['rubocop']
let g:syntastic_javascript_checkers=['jshint']
let g:syntastic_php_checkers=['php','phpcs']
let g:syntastic_quite_warnings=0

rubocopのインストール系
http://qiita.com/yuku_t/items/0ac33cea18e10f14e185

phpdcsのインストール
phear install PHP_CodeSniffer

jshintのインストール系
http://d.hatena.ne.jp/sasaplus1/20120517/1337260047


railsの起動方法

1.apache止める

2.rais-serverの起動
amazonのsecurity zoneをあけておくこと
rails server -d
curl -I localhost:3000

3.nginxの起動
/etc/init.d/nginx start

4.unicornの起動
 unicorn -c config/unicorn.conf -D
 
※unicorn.confのあるディレクトリ注意

worker_processes 2&
pid '/tmp/unicorn.pid'&
listen '/tmp/unicorn.sock'&
corn -c config/unicorn.conf -Dstderr_path File.expand_path('unicorn.log', File.dirname(__FILE__) + '/../lo
stdout_path File.expand_path('unicorn.log', File.dirname(__FILE__) + '/../log')&
preload_app true&

これで深い階層にrailsファイル群をつくっても、
URLのroot(ex. http://google.com/)にアクセスすれば見れる。
あとは
rails generate controller hoge home

URL/hoge/homeで見られる。
rails/first_appで
rails server -dをやったから
そこがdocument rootになってるっぽい。
すげえ。。

==================

(戻し方)
1.unicornを落とす

 kill -QUIT `cat /path/to/unicorn.pid`

(参考)
(再起動)  kill -HUP `cat /path/to/unicorn.pid`
 
unicorn.sockを落とす
rm -rf

2. nginx落とす
/etc/init.d/nginx stop

3.apacheをあげる
/etc/init.d/httpd start


[参考URL]
http://qiita.com/dahugani/items/858b3979c0da8ecafdbb

http://qiita.com/konpyu/items/3ba3774bcde226d7d07d

http://tachesimazzoca.github.io/wiki/rails3/unicorn.html







sed -e '3d' names.txt
⇒3行目を消す

 sed '3d' names.txt
⇒ 1つだけならeを省略できる

 sed -i '3d' names.txt
ファイルを上書き

 sed -i.bk '3d' names.txt
ファイルを上書きしてバックアップ

 vim ex1.sed
 sed -f ex1.sed names.txt
外部ファイル読み込み


>>>>>>>>>>>>>>>>>>>>>>>
sed '3d' names.txt

address 3
command d ←パターン表示を削除

パターンスペースっていうバッファーを使って処理をやる
1.ファイルから1行読み込んでパターンスペースに格納
2.addressにマッチ? ⇒ commandを実行!
3. パターンスペースを表示

>>>>>>>>>>>>>>>>>>>>>>

 1062  sed '3!d' names.txt
3行目以外をd

 1063  sed '1d;3d' names.txt
複数指定。1行目と3行目をd


 1064  sed '1,3d' names.txt
1~3行目をd



 1065  sed '1~2d' names.txt
1,3,5,,,,をd

 1066  sed '$d' names.txt
最後の行をd

 1067  sed '3,$d' names.txt
3~最後の行をd


 1068  sed '/i$/d' names.txt
正規表現。最後がiで終わるやつをd


 1069  sed 'd' names.txt
全部の行でd

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 1072  sed '3p' names.txt
3行目をprint


 1073  sed -n '3p' names.txt
3行目をprintマッチしないところは出力しない

 1074  sed '3q' names.txt
3行目を出力してquit

 1076  sed '1i\--- start ---' names.txt
1行目の前に--- start ---を代入

 1077  sed -e '1i\---- start---' -e '$a\ === end ===' names.txt
複数コマンドはe
1行目の前に--- start ---
最後の行の後に end

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


 1082  sed 's/apple/Apple/' items.txt
appleをAppleに変換(最初の一つのみ)

 1083  sed 's/apple/Apple/g' items.txt
appleをAppleに変換(すべて)

 1085  sed 's/apple/Apple/2' items.txt
appleをAppleに変換(2番目)

 1086  sed 's/apple/Ringo/ig' items.txt
appleをRingoに変換(すべて、大文字区別なし)

 1087  sed 's/[aA]pple/Ringo/g' items.txt
正規表現ver

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

# sed 's/[0-5]/[&]/' items.txt
& : [0-5]で抜き出したものを使う

[1] taguchi Apple, apple, apple, grape
[2] fkoji Banana, apple, Apple, lemon
[3] dotinstall Grape, apple, strawberry
[4] tkahashi cherry, pear, kiwi
[5] yasuda cherry, Cherry


# sed 's/\([0-5]\) \(.*\)/\2 [\1]/' items.txt

()でとじると\1とか\2であらわすことができる。
()の前はエスケープ文字が必要

taguchi Apple, apple, apple, grape [1]
fkoji Banana, apple, Apple, lemon [2]
dotinstall Grape, apple, strawberry [3]
tkahashi cherry, pear, kiwi [4]
yasuda cherry, Cherry [5]
コマンドひとつでrubyのバージョンを入れ替えられるやつ

#cd ~
#git clone git://github.com/sstephenson/rbenv.git .rbenv

[パスを通す]
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bash_profile
# echo 'eval "$(rbenv init -)"' >> .bash_profile
# source .bash_profile

# rbenv
rbenv 0.4.0-89-g14bc162

[ruby-buildのインストール]
rubyの手間を省く

# rbenv install
rbenv: no such command `install'

# git clone git://github.com/sstephenson/ruby-build.git .rbenv/plugins/ruby-build

# rbenv install
Usage: rbenv install [-f] [-kvp] <version>

# rbenv install -l
Available versions:
  1.8.6-p383

# rbenv install 1.9.3-p545 とか

# rbenv versions
* system (set by /root/.rbenv/version) ←手動でいれたやつ
  1.9.3-p545

# ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]

rubyのバージョンを変えてみる
# rbenv global 1.9.3-p545

# rbenv global 1.9.3-p545
# rbenv versions
  system
* 1.9.3-p545 (set by /root/.rbenv/version)

# ruby -v
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-linux]

#gem install rails --no-ri --no-rdoc

⇒ドキュメント関係をスキップしてインストール

#rails -v
Rails 4.0.3

#ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]

あらかじめ必要なものをダウンロード
# yum install gcc zlib-devel openssl-devel

・ルビーを本家からダウンロード
https://www.ruby-lang.org/ja/

[install]
・cd /tmp/ruby-2.1.1
  ./configure
  .make test
  .make install

[gemの確認]
・gem update --system

ERROR:  Loading command: update (LoadError)
        cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

zlibがないので、入れる

・cd /tmp/ruby-2.1.1/ext/zlib
  ruby extconf.rb

# ruby extconf.rb
checking for deflateReset() in -lz... no
checking for deflateReset() in -llibz... no
checking for deflateReset() in -lzlib1... no
checking for deflateReset() in -lzlib... no
checking for deflateReset() in -lzdll... no
checking for deflateReset() in -lzlibwapi... no

↑これが出たとき
 yum install gcc zlib-devel openssl-develを確認
# make clean
# ruby extconf.rb
checking for deflateReset() in -lz... yes
checking for zlib.h... yes
checking for crc32_combine() in zlib.h... yes
checking for adler32_combine() in zlib.h... yes
checking for z_crc_t in zlib.h... no
creating Makefile

#make install

終わったら、、
# gem update --system
ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

#cd /tmp/ruby-2.1.1/ext/openssl
#ruby extconf.rb
#make install

[error]
make: *** No rule to make target `/thread_native.h', needed by `ossl.o'.  Stop.
(参考)
http://stackoverflow.com/questions/21498868/install-openssl-support-for-selfcompiled-ruby-installation

# find / -name thread_native.h
/tmp/ruby-2.1.1/thread_native.h

# vim Makefile

 topdir = /usr/local/include/ruby-2.1.0
⇒追加 top_srcdir = /tmp/ruby-2.1.1

# gem update --system
エラーがないことを確認

teratermでいちいちユーザー名とパスワードを入力するのが面倒なときにこうやる。

プロパティ→リンク先

(鍵認証)
"C:\Program Files (x86)\teraterm\ttermpro.exe" localhost:22 /ssh2 /auth=publickey /user=root /ask4password /keyfile=C:\Users\Desktop\local\id_rsa.ppk

(パスワード)
"C:\Program Files (x86)\teraterm\ttermpro.exe" localhost:22 /ssh2 /auth=password /user=ユーザー名/ask4password /passwd=パスワード


参考)http://ri.hateblo.jp/entry/2013/09/22/195005

1.gitのインストール

2.$ ssh-keygen -t rsa -b 2048 -C '<ユーザ名>@<PC名>'で秘密鍵と公開鍵を使う

3.gitlabに公開鍵の登録
cat id_rsa.pubを貼り付ける

4.chmod 600で秘密鍵の権限変更

5./ユーザー/.ssh/ホスト名/におく

6./ユーザー/.ssh/config内に下記を例にして書く

Host FQDN
HostName FQDN
Port 22
User ユーザー名
IdentityFile /ユーザー/.ssh/ホスト名/id_rsa

みたいな感じ

7.クローンしたいフォルダでgit init

8.git clone ユーザー名@FQDNって感じでできる