ターミナルのコマンドチートシート

* プロンプト $ コマンド
    * プロンプトはコマンドの対象となるもの。
    * ```$``` はユーザー種別を示していて$は一般ユーザー、#だと管理ユーザーを示す。

# 便利機能

## tabによる補完機能

ターミナルではファイル名の入力途中でtabを押すとファイル名を補完してくれる。

# コマンド一覧

## ターミナルで使うコマンド

* touch・・・ファイルの作成
* ls・・・フォルダの中身を表示
    * ls -l・・・ファイルのパーミッションの確認
* pwd・・・現在の位置を絶対パスで確認できる
* mv・・・ファイル、フォルダの移動、リネーム
    * mv 移動させたいフォルダ 移動先
    * mv 名前を変えたいファイル 変更後名前
* rm・・・ファイル、フォルダの削除
    * rm-rf・・・ディレクトリごと消す
* sudo
* cat・・・ファイルの中身を表示する
* ruby -v・・・rubyのversionの確認
* irb・・・rubyの動作を実行する

## バージョンを確認するコマンド

* ruby --version・・・Rubyのバージョンを確認するコマンド
* rails --version・・・Railsのバージョンを確認するコマンド
* gem -v・・・RubyGemsのバージョンを確認するコマンド

## rails関連で使うコマンド

* rails server・・・railsのサーバ起動
* rails generate controller name[option]・・・コントローラの作成
* rails new アプリケーション名・・・railsアプリの作成
* rails g model テーブル名 カラム：データ型 カラム：データ型・・・DBとmodelの作成
* rails console・・・railsに直接値を代入したり操作する際に使用

## bundle関連

* bundle install ・・・ gemfileを元にgemのinstallを行う
* bundle update ・・・gemのバージョンアップ
* bundle exec 〜〜 ・・・システム共通ではなくそのアプリケーションのgemfileを参照する

bundle execの詳細

https://qiita.com/dawn_628/items/1821d4eef22b9f45eea8#bundle-exec%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

## 環境設定周りで使うコマンド

* brew doctor・・・homebrewの状態を確認するもの。
* brew upgrade git・・・homebrewを使ってgitをアップグレードする
* rbenv rehash・・・http://dqn.sakusakutto.jp/2014/02/rbenv_rehash_what_it_does.html
* vagrant up
* vagrant ssh・・・[vagrant@localhost ~]$ になったら仮想マシンが動いた証拠

## migration周り

* bundle exec rake db:migrate:status・・・migrationfileの状態の確認
* bundle exec rake db:rollback・・・反映した最新のmigrationfileの削除
* bundle exec rake db:migrate:down VERSION=downさせたいmigration ID・・・fileを指定して削除

## gitで使うコマンド

* git init・・・対象のフォルダにgitをセットする
* git branch・・・今あるブランチの確認
* git checkout hoge・・・hogeのブランチに移る
* git merge マージ先 マージさせるブランチ・・・ブランチのマージ
* git branch -d 削除したいブランチ名・・・ブランチの削除
* git add ファイル名・・・gitのレポジトリに変更したファイルを追加します
    * git add -A・・・新規作成、削除、変更全てを反映
    * git add -u・・・新しく作られたファイルは反映せず、前のバージョンにあった変更のみ
    * git add . ・・・新規作成と変更のみ反映で削除は反映しない
* git remote -v・・・現在のリモートレポジトリを確認
* git log・・・gitのログを確認
* git checkout master・・・master ブランチに戻るコマンドです。
* git revert・・・<commit>によって加えられたすべての変更を元に戻す新しいコミットを生成し、それを現在のブランチに適用するコマンドです。
* git push origin master・・・originというリモートレポジトリのmasterブランチにpushする。

## heroku周りで使うもの

* heroku open・・・ブラウザでherokuを開くことができる
* heroku logs・・・今までのheroku関連のlogをみる

## rails周り

```
rake about                              # Railsフレームワークのバージョンを表示する
rake assets:clean[keep]                 # 古いコンパイルされたアセットを削除する
rake assets:clobber                     # コンパイルされたアセットを削除する
rake assets:environment                 # Load asset compile environment
rake assets:precompile                  # config.assets.prefompile内のすべてのアセットをコンパイルする
rake cache_digests:dependencies         # Lookup first-level dependencies for TEMPLATE (like messages/show or comments/_comment.html)
rake cache_digests:nested_dependencies  # Lookup nested dependencies for TEMPLATE (like messages/show or comments/_comment.html)
rake db:create                          # DATABASE_URL か config/database.yml に基づいてRAILS_ENV 用の DBを作成する
rake db:drop                            # DATABASE_URL か config/database.yml に基づいてRAILS_ENV 用の DBを削除する
rake db:fixtures:load                   # 現在の環境のDBに fixtures をロードする
rake db:migrate                         # マイグレートする(オプション: VERSION=x, VERBOSE=false, SCOPE=blog)
rake db:migrate:status                  # マイグレーションの適用状況を確認する
rake db:migrate:reset                   # db:drop, db:create, db:migrate を実行する
rake db:rollback                        # マイグレートをロールバックする(オプション: STEP=n)
rake db:schema:cache:clear              # db/schema_cache.dump をクリアする
rake db:schema:cache:dump               # db/schema_cache.dump を作成する
rake db:schema:dump                     # db/schema.rb を作成する
rake db:schema:load                     # db/schema.rb の内容をDBにロードする
rake db:seed                            # db/seeds.rb からseedデータをロードする
rake db:setup                           # DBを作成、スキーマをロード、seedデータをロードする
rake db:structure:dump                  # db/structure.sql にDB構造をdumpする
rake db:version                         # 現在のスキーマバージョン番号を取得する
rake doc:app                            # doc/app配下にアプリのドキュメントを生成する
rake doc:rails                          # doc/api配下にRailsのドキュメントを生成する
rake doc:guides                         # doc/guids配下にRailsGuidsのドキュメントを生成する
rake log:clear                          # すべての log/配下の *.log をクリアする (LOGS=test,development でログを指定できる)
rake middleware                         # Rack Middlewareのスタックを表示する
rake notes                              # すべてのアノテーション(コード上のOPTIMIZE, FIXME, TODO)を列挙する (notes:optimize, :fixme, :todo で指定可能)
rake notes:custom                       # カスタムアノテーションを列挙する (ANNOTATION=CUSTOM で指定可能)
rake rails:template                     # Applies the template supplied by LOCATION=(/path/to/template) or URL
rake rails:update                       # Update configs and some other initially generated files (or use just update:configs or update:bin)
rake routes                             # すべての定義されたルートを表示する
rake secret                             # セキュアなシークレットキーを生成する (一般的にクッキーセッションのためのシークレットに使われる)
rake stats                              # コードの静的情報(KLOCなど)を報告する
rake test                               # test:units, test:functionals, test:generators, test:integration を実行する
rake test:all                           # Run tests quickly by merging all types and not resetting db
rake test:all:db                        # Run tests quickly, but also reset db
rake time:zones:all                     # すべてのタイムゾーンを表示する(time:zones:us, time:zones:local も指定可能)
rake tmp:clear                          # tmp/配管のsession, cache, socket ファイルをクリアする(tmp:sessions:clear, tmp:cache:clear, tmp:sockets:clear　でクリア範囲を狭められる)
rake tmp:create                         # sessions, cache, sockets, pidsのために、tmpディレクトリを作成する
rake -T   # すべてのRakeコマンドを表示する
rails routes・・・そのアプリケーションのroute一覧を出す
```

##