読者です 読者をやめる 読者になる 読者になる

Training to develop the IT skills

IT技術の習得を日々記録します

vimでよく使うもの

vim

h (左) j (下) k (上) l (右) yy でコピー dd で削除 xで1文字削除 esc ノーマルモード i カーソル位置から編集モード 0 行の先頭に移動 $ 行の最後に移動 /キーワード 検索

1番目と2番目のコミットを合体させて、2番目だけ別にする場合

git

git rebase -i --keep-empty --autosquash $(git show-branch --merge-base master HEAD) viで別にしたいコミットをコピーして一番下へ 合体させたいコミットを二番目へ 合体させたいコミットのpickをfに書き換える git push --force-with-lease

end_with?(" ") 文字列の末尾に特定の文字が含まれるか調べる

word = axis if word.end_with?("s") p word end

 slice 文字列の場所を指定して文字を削除する

#最後の文字を削除する場合 word = study length = word.length word = word.slice(0, length - 1)

データ型

[数値] 整数値 : INTGER型 小数 :DECIMAL型 REAL型 [文字列] 固定長 : CHAR型 可変長 : VARCHAR型 [日付と時刻] DATETIME型 DATE型 TIME型 VARCHARの指定には最大桁数が指定される

テーブルを作成する

create table テーブル名(カラム名 int, カラム名 varchar(20));

show create table

tableの情報を確認する mysql> show create table test; +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Tabl…

mysqlで特定のカラムにindexをつける

#testというテーブルのidカラムにindexをつける alter table test add index idx(id); #実行計画をみる explain select id from test where id = 200; rowsが1になっているので検索時はidが200のものだけを検索している indexをつけないと948640行の中から探…

配列の足し算

arry = [1, 2, 3] arry.inject(:+) arry = ["1", "2", "3"] arry.map(&:to_i).inject(:+)

mysqlのバックアップをとる mysqldump

データベースごとバックアップを取るとき mysqldump -u root データベースの名前 > dmp.sql 特定のテーブルをバックアップを取るとき mysqldump -u root データベースの名前 テーブルの名前 > dmp.sql 取り込むとき mysql -u root データベースの名前 < dmp.…

git add -p 編集したスクリプトを箇所ごとにコミットをわける

git

編集をいくつかした後 git add -p Stage this hunk [y,n,q,a,d,/,s,e,?]? にはsを入力 編集した項目が表示されて、これをコミットするか?と聞いてくるので コミットしたい場合は y したくない場合は n yの項目がなくなったらqで終了 参考 横着で神経質な私…

rm -fr

確認メッセージなしで消す rm -fr ファイル名

ローカルで自分が作ったコミットを確認する

git

git log -p

ER図を作成するコマンド

brew install graphviz bundle exec erd

sqlの結合の種類

sql

・直積 (CROSS JOIN) 2つの表の全組み合わせになる結合 ・内部結合 (INNER JOIN) 2つの表に値が等しいものが存在しない場合、行は生成しない結合 以下は同じ結果になる # 内部結合 select u.name,c.id from user u, c_list c where u.id = c..person_id; # …

awsに接続するまでの流れ

aws

公開鍵を作成し、管理者に渡す ssh-keygen -t rsa -b 4096 -C ”メールアドレス” #ここでなんの公開鍵がわかるようにid_rsa(ファイルの置き場所)の部分を書き換える Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] ずっとen…

git rebase --abort

git

rebaseのキャンセル git rebase --abort

group_concat

sql

GROUP_CONCAT() 連結された文字列を返します https://dev.mysql.com/doc/refman/5.6/ja/group-by-functions.html

show create table

テーブルの定義を調べる show create table

undefined method `  ' for  がエラーででた場合

全角スペースが半角スペースの代わりに利用されているため、エラーがでている場合がある。

git init

git

ローカルのプロジェクトをgit initしてgit管理にする

itermでcontrol+rでコマンド履歴を検索する設定方法 

このコマンドを打った後に、 brew install peco .zshrc以下に下記を追記する function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(\history -n 1 | eval $tac | awk '!a[$0]++' | peco --…

コマンドUTF8変換

find . -type f -print0 | xargs -0 nkf --overwrite -w -Lu

itermの設定

https://github.com/robbyrussell/oh-my-zsh Basic Installation Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl or wget. via curl sh -c "$(curl -fsSL…

「Rails をはじめよう」をはじめる (2)

Rails をはじめよう | Rails ガイド アプリケーションの実装と実行 config/routes.rbで articleリソース を宣言する Rails.application.routes.draw do resources :articles root 'welcome#index' end Railsは「articles」というリソース名から単数形の「art…

atomにプログラムの書き方を指摘してくれるrubocopをインストールする

atom.io atom.io

githubの公開鍵を作成しgithubに登録

Generating a new SSH key and adding it to the ssh-agent - User Documentation #Open Terminal. #Paste the text below, substituting in your GitHub email address. ssh-keygen -t rsa -b 4096 -C "your_email@example.com" #This creates a new ssh ke…

「Rails をはじめよう」をはじめる (1)

railsguides.jp アプリケーションの作成 rails new blog で新しいRails アプリケーションの作成 場所は自分が作成したいディレクトリ内で実行 すると cd blog そこに移動 rails server rails serverを起動 http://localhost:3000/にアクセスすると となる Ra…

コマンドのヘルプを見る

git

rm のヘルプを見たい場合には man rm

中身のあるディレクトリを削除する

rm -fr ディレクトリ名 -r, -Rはディレクトリを削除するオプション fはアクセス権に関わらず、確認を要求しないでファイルを削除するオプション

巨大ファイルを取り込むとき

sql

set global max_allowed_packet = 16777216

mysqlの基礎

sql

update update people set birth_date = '1987-11-27' where id = 10096; # updateする テーブル名 set 変更内容 where 変更箇所 # peopleテーブルのidが10096のbirth_dateを'1987-11-27'にアップデートする delete delete from テーブル名 where 該当箇所; …

コミットをまとめる

git

git rebase -i --keep-empty --autosquash $(git show-branch --merge-base master HEAD) vimに以下のような状態で開かれる pick 05eb1e4 test2rb pick 7dc17cc add test.rb # Rebase 7802bc5..7dc17cc onto 7802bc5 (2 commands) # # Commands: # p, pick =…

CSVファイルの中身を置換する sed

sedは与えられた文字列を,ルールに従って変換するコマンド 置換したいと思って調べたら、かなり色々できるようですとりあえずよく使用するであろうCSVの中身の置換を覚えてみる sed -e s/置換条件/置換文字/ list.csvの株式会社を(株)にしてlist_new.csvに…

エラー回避 rescue

rescueを使うことによって、エラーを回避して処理ができる beginとrescueの間で実行する処理で何らかのエラーが発生しても処理を中断しないようになる begin 例外を発生させる可能性のある処理 rescue 例外が起こった場合の処理 end rescueに続けて変数名を…

全角英数字を半角英数字に 半角カナを全角カナに nkfで変換

encode_halfwidth = NKF.nkf('-m0Z1 -W -w', "AABBBBBAAアアアああアアアアアアアアアアアア")=> AABBBBBAAアアアああアアアアアアアアアアアア -m[BQN0] MIME(電子メール用のフォーマット)を解読する エンコーディングの変換のみをするならば以下を指定しておくべき -…

mysqlで実行した命令文の出力結果をクリップボードにコピー

developmentというデータベースにlist.sqlを実行しre.csvに出力 mysql -u root development < list.sql > re.csv 以下で出力結果をクリップボードにコピー pbcopy < re.csvそのまま スプレッドシートなどに貼りつけると、綺麗にペーストされる

git で管理する必要のないファイルは .gitignoreに記入する

git

$ cat .gitignore *.csv *.gem *.rbc /.config /coverage/ /InstalledFiles /pkg/ /spec/reports/ /spec/examples.txt /test/tmp/ /test/version_tmp/ /tmp/ # Used by dotenv library to load environment variables. # .env ## Specific to RubyMotion: .d…

git 基本操作

git

ブランチを作ってそこにマスターから移動する git checkout -b ブランチ名 addしてcommitしてpushをする git add 追加したいファイル git commit -m "コメントを書く" リモートにはじめてあげるときは下記の通りにpushする git push --set-upstream origin …

ブランチで修正作業をする前に以下を実行

git

git checkout master git checkout 作業したいブランチ git rebase master

mysql 複数の文字列の置換 replace / 文字列の結合 concat

sql

下記の場合は、姓名をconcatで結合し、そこから空白文字(半角スペース・全角スペース・タブ)を置換している replace(replace(replace(concat(last_name,first_name),' ',''),'\t',''),' ','') = '#{fullname}'

パラメーターが複数あるプログラムをシェルスクリプトから実行する

プログラムは一つだが、パラメータが複数あるとき、 $ bundle exec ruby test.rb 'aaaaa' $ bundle exec ruby test.rb 'bbbbb' $ bundle exec ruby test.rb 'ccccc' $ bundle exec ruby test.rb 'ddddd' $ bundle exec ruby test.rb 'aaaaa' && bundle exec …

要素の数だけ、繰り返しブロックを実行 .map

条件に合う要素を探すメソッド .select - Training to develop the IT skills 上の記事でselectで要素を探して戻って来た配列を.mapでひとつずつrowにいれる mapは要素の数だけ、繰り返しブロックを実行する cn_list = CSV.read("#{ARGV[0]}").select { |row…

条件に合う要素を探すメソッド .select

このようなリストから会社名に'株'が含まれている要素を探す id campany_name adress 1 株式会社りんご 青森県 2 株式会社みかん 和歌山県 3 めろん有限会社 北海道 4 (株)落花生 千葉県 引数rowに要素を入れながらrow[1]に'株'が含まれているか確認し、 含…

CSV コマンドから指定したCSVファイルのデータを読み込む

[CSV.read] コマンドから指定したファイルから一度に読み込む # csvライブラリを使用する require 'csv' # コマンドから指定するファイルの数ではない場合(この場合はファイル数が1つではない場合) if ARGV.length != 1 # 異なったコマンドの場合の警告の指…

内部統合して集計する GROUP BY

チームをすべてを表示させそのチームに所属している人数を集計 SELECT team.team_id,team.team_name,count(member.team_id) AS 'チーム人数' FROM member RIGHT JOIN team ON member.team_id = team.team_id GROUP BY team.team_id; +---------+------------…

ORDER BY句 について

sql

ORDER BYとは レコードの降順、昇順で並び替えができる。 昇順と降順 ORDER BY フィールド名 ASC ORDER BY フィールド名 DESC 昇順、降順を指定しなかったときは、全て昇順の設定になる 指定しないと mysql> select team_id,name from member; +---------+--…

内部結合ってなんだ (別のテーブル同士で共通するidを持つテーブルを結合する)

sql

内部結合を理解する チームテーブル(team)を作成 #team drop table if exists team; create table team( team_id int primary key, team_name varchar(32) ); insert into team(team_id,team_name) values(1,'現代'); insert into team(team_id,team_name) v…

git 基本操作

git

ブランチを作ってそこにマスターから移動する git checkout -b ブランチ名 addしてcommitしてpushをする git add 追加したいファイル git checkout -b ファイル名 git commit -m "コメントを書く" リモートにはじめてあげるときは下記の通りにpushする git p…

コンフリクトの解消

git

コンフリクトした際は下記の通りにコマンド入力する git checkout master git pull origin master git checkout 該当のブランチ git rebase master 以下のコマンドでconflictしたファイルの一覧を確認 git diff --name-only --diff-filter=U conflictしたフ…