シンプルと自由を目指す

なるべくシンプルに自由になれるための情報を書いて行きます

git初心者のためのチートシート

gitとは...

ディレクトリレベルでファイルを管理するツールです。 コーディングで変更して細かく保存していけば過去のデータに全て戻れる。 さらにブランチといって複数の形に分岐することも可能。 また、複数の人とディレクトリごと共有して開発できるため チーム開発の効率が非常に上がる優れもの またgithubからディレクトリごと環境をもらうこともできる。 最近では、特に無くてはならない存在。

最初は、わからなくてもコマンドを打って実際に使って見るとわかってくる。 gitを使うのであれば、シェルは、bashではなくzshなどをオススメする。 zshは、gitのブランチの位置や最新のファイルの状態かどうかを教えてくれる。

コマンド

インストール(debian系)

$ sudo apt install git

作業ディレクトリに移動して初期設定 {}の中身は、自分で決める

$ cd testwork
$ git init
$ git config --global user.name "{user name}"
$ git config --global user.email "{user name@mail.addr.com}"

gitの基本

$ git add .
$ git commit -m "〇〇"

or

$ git commit -am "xxxx"

'git commit -a'は'add .'と同じ意味

ステータス確認

$ git status

ブランチ確認

$ git branch

ログ確認

$ git log

差分を確認

$ git diff

remote登録

$ git remote add origin {http://xxxx}

push

$ git push origin master

clone作成 {repository url}は自分が欲しいクローンのurlを指定

$ git clone {repository url}

pull

$ git pull origin master

PHP初心者の学習のポイント

PHPの学習のポイントは、他の言語と異なる部分をしっかりと理解すること。 他の言語と異なる部分は、大きく分けて3つ

  • 変数は'$'を使って表現
  • 連想配列の概念
  • foreach()の存在

変数は'$'を使って表現するところ

bashなどのシェルスクリプトの言語触った方なら抵抗は、ないかもだけど シェルスクリプトとは、若干違う。

ex)変数valueに'hello'を入れて出力

value = 'hello'
echo $value
$value = 'hello';
echo $value;

一つ言えるのは、やっぱり型の宣言いらないインタプリンタのスクリプト言語は楽ちん。 でも他のスクリプト言語と違って語尾の';'いるから気をつけよう。

連想配列の概念

簡単に言えば、 配列のボックスに名前をつける

$user = [
        'name'   => '田中太郎',
        'age'    => 24,
        'gender' => 'male'
      ];

echo $user['$name'];  //結果 田中太郎

他の言語に配列に名前をつけたりなんて珍しい でもなれるといい感じ。

foreach()の存在

foreach()とは 一般的な関数のfor()と 配列を進めるeach()という関数の合体版である。

foreach({配列名} as $key => $value)

    $scores = ['数学' => 70, '英語' => 90, '国語' => 80];

    foreach($scores as $key => $value){
      echo $key.'は'.$value.'点。'; 
    //結果 数学は70点。英語は90点。国語は80点。
    }

まとめ

 PHPの基本的な記述で他の言語と異なる部分は、このような感じ。 PHPだけできる人はバカにされる。と言われているほどプログラミング言語の中では 簡単な部類に入るらしい。 しかし、web系で非常に便利だしPDOを使えばどんなDBも同じ命令文の記述で扱える非常に有能な言語。この記事がPHPを学ぶモチベーションに繋がれば良いな。

mongodbのインストール

CentOS

CentOsならmongodbの公式サイトを見ながらリポジトリを獲得することをオススメする。 設定ファイルを/etc/yum.repos.d/mongodb-org-3.0.repoを作成して

[monogodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$release/mongodb-org/3.0/x86_64/
gpgcheck=0
dnabled=1

インストールコマンドは

$ sudo yum install -y mongodb-org

Debian

Debianだと aptであったので最新版じゃないと思いますが リポジトリとか面倒なので

$ sudo apt install mongodb

これでインストール完了

コマンド

versionを調べる

~~~ $ mongo --version ~~~ mongodbへのアクセス

~~~ $ mongo ~~~

mongodbから去る時は、 Ctrl+dかexit

~~~

exit ~~~

dbの一覧を表示

~~~:mongodb

show dbs; ~~~ 最初は、localというdbが入っている。

※mongoでは、dbに何かのデータを入れた時点でdbになる データの入っていないからのdbは いちいちcreateしなくても useでいきなり入れる

> use testdb

コレクションを作成

> db.createCollection("users");

もう一度dbを見るとdbが作成されている

> show dbs;

mongodbの状態を見たい時

> db.stats();

初心者ができるvagrantの設定

Vagrantとは CUI上の仮装環境の構築、およびネットワークなどの設定が簡単にできます。 また、他人が作った設定(Box)を利用することで 複数人が全く同じ仮装環境を構築できる優れもの

なぜ仮装環境が流行っているか - 最近、仮装環境が流行っています。 なぜかというと、ある程度PCのスペックが上がってきて 処理負荷に耐え、速い処理で本物みたいに仮装環境を動かせるので もはや、仮装環境は本物と同じと言っていいくらいです。 - 仮装環境のメリットとは、 同じ環境の複製を大量に作れる 別の環境で同じ動作ができる環境を瞬時に作ることができます。 環境構築に失敗してもすぐに捨てて一から作れる利便性

本題

vagrantの設定は、まずVagrantの構築ができている人前提で話を進めます。 Vagrantの設定は、全てVagrantfileで設定します。 デフォルトの内容は、コメントアウトだらけです。 有効な内容は、

Vagrant.configure("2") do |config|
~~
config.vm.box="~~"
~~
end

これだけですね。

ここに必要なものを足して(コメント外して)いきます。

HostPCとVagrant間の通信のみを考えている人

config.vm.network "private_network", ip: "192.168.33.10"

という行のはじめの#をとって有効にしてください。

他の端末でvagrantで作ったwebsiteを見たい人は

config.vm.network "public_network"

の行の#をとって有効にしてください。 また、途中で何か聞かれたらwi-fiの1でいいと思います。 なんなら、設定書いた方がいいです。

config.vm.network "public_network", ip "192.168.1.10", bridge "en0: Wi-Fi (AirPort)"

ipaddress → 192.168.1.10に指定 bridge → en0: Wi-Fi (AirPort)に指定

独自のドメインを楽しみたい人

まずプラグインのインストール

$ vagrant plugin install vagrant-hostsupdater

vagrant-hostupdaterと間違えないでください(自分...)

その後Vagrantfile内(using a specific IP.の下)に

config.vm.hostname = "好きなドメイン"

を追加してください。(私の場合「myraspi.com」)

 35   # Create a private network, which allows host-only access to the machine
 34   # using a specific IP.
 35   config.vm.hostname = "myraspi.com"
 36   config.vm.network "private_network", ip: "192.168.33.10"

この後リロード(再起動)

$ vagrant reload

再起動中に何か聞かれる. 番号を聞かれたらpublicの時みたいにwi-fiの選択肢1を選ぶか,設定する

なお、publicかつオリジナルのドメインは、できない... できる方がいたら教えて欲しい...

privateとpublicは、同時に設定もできるが あくまで二つの機能を使えるだけで ホストPCでドメインを使えても 他の端末で使えないのであまり意味がないという結論に至った。

結果として、やりたかったpublic_networkができただけでもいいや。

Mysqlの命令文一覧

userの確認

mysql> select user, host from mysql.user;

mysqlのDBにログインしている人は、mysql.user→userで

userの権限(grants)の表示(show)

mysql> show grants for 'vagrant'@'localhost'

vagrantと書いてあるところが一般ユーザ名です。書き換えて使ってください。

userの権限の追加

その前になんの権限が実際必要なのかよくわからないし そのような記事もなかなか見つからない。 そこで基本的な機能を次のリストに挙げた。

権限 意味
CREATE 表を作成する
ALTER 表を更新する
DROP 表を削除する
INSERT データを追加する
UPDATE データを更新する
DELETE データを削除する

そして、次にdumpファイルを作成するときに 必要な権限を表にした。

権限 意味
FILE SELECT ... INTO OUTFILE と LOAD DATA INFILE の使用を可能にする
SELECT SELECT の使用を可能にする
SHOW VIEW SHOW CREATE VIEWの使用を可能にする
LOCK TABLES SELECT 権限を持つテーブル上の LOCK TABLES の使用を可能にする

実際の命令文

mysql> grant create,alter,drop,insert,update,delete on *.* to 'vagrant'@'localhost';
mysql> grant file,select,show view, lock tables on *.* to 'vagrant'@'localhost';

userの権限の削除(revoke) example)createの権限の削除

mysql> revoke create on *.* from 'user'@'localhost';

Atomのショートカット

これだけ知っていたら非常に便利で すぐにでもAtomのユーザになりたくなります。 Macユーザ向けのショートカットですが Windowsの方も設定を開いてキーバインドというところを開けば 全て書いてあります。

ショートカット一覧

まずは、基本

ショートカット 動作
Cmd + c コピー
Cmd + v 貼り付け
Cmd + z 戻る
Cmd + y 戻るの取り消し
Cmd + f 文字列検索 & 文字列変換

Atomの便利なショートカット

カーソルのある行をまとめてコピーペーストしたり削除できます。 以下ではカーソルのある行を行で書きます。

ショートカット 動作
Cmd + / 選択した行全てをコメントアウト
Shift + Cmd + d 行のコピー+ペースト
Shift + Ctrl + k 行の削除
Cmd + Enter 行から改行(カーソルはどこでもOK)
Cmd + Shift + Enter 行の一つ上の行を改行
Cmd + d 選択した単語を一つずつ
検索して足して行く


裏技っぽい業でマルチカーソルというものがあります!

ショートカット 動作
Cmd + 左クリック マルチカーソル
ESC or 左クリック キャンセル

これは、本当にオススメ 複数の場所を選択して同時に編集できる
Atom側の表示などのショートカット

ショートカット 動作
Cmd + alt + \ ファイルツリーの表示,非表示
Cmd + , 設定ファイルの表示,非表示
Cmd + Shift + p コマンド検索の表示,非表示
Cmd + t ファイル検索の表示,非表示

終わりに

これらは、全てデフォルトでできます。 基本的に標準で予測変換もついてるのでtabキーでコーディング保管してくれます。

これらを使用すれば、コーディングが非常に速くなります。 Atomは、プラグインが豊富なので、もっと便利なものも見つかると思います。

ショートカットなどは覚えるのが大変かもしれませんが 非常に便利で無駄がないです。 これがAtomが人気な証拠なんだと思います。