作業ノート

様々なまとめ、雑感など

対象のパーミッションを調べる

bashスクリプトで、対象が期待したパーミッションであるか確認するときに使った方法。 $ stat -c %a /path/to/target -cオプションは出力内容フォーマット指定で、%aは、パーミッションを8進数で表現する。 スクリプトでは、 perm=`stat -c %a /path/to/targ…

git logでマージしたファイルを確認する

git

ベースとなるブランチからサブブランチを作成し、それをno-ffでマージしたときに困ること。 普段、一つの機能を実装するときにサブブランチを作成する。そこから、サブ機能や変更点をファイル単位に切り分けて考え、その単位で実装、テストを行い、少しずつ…

実践Vim

実践Vimを読んだ。元々この手の本はほとんど読まないけど、コア機能を中心に説明していると知って興味を持ったので、読んでみた。 以下は、今回読んで新しく知ったことや気づいたことについて。 normalコマンド(TIP30) ‘<,’>normal . で、ビジュアルモードで…

gitで無視したいファイルが既にリポジトリにあるかを調べる

git

無視したいファイルがリポジトリにあるか確認して、もしあるなら削除したいと思って調べたメモ。 gitのls-filesサブコマンドで確認できる。 $ git ls-files -i --exclude-standard -iオプションで無視ファイル(ignore)のみを表示。このオプションは--exclude…

makefileを作る

会社で管理しているシステムにC言語で作られたWebシステムがある。OracleのOCIを使ってDBに接続していろいろな処理を行う。10年ほど運用しているらしい。 このシステム、buildするときはshellスクリプトを実行するのだが、shellスクリプト内でgccコマンドを…

CentOSにyumレポジトリを追加する

開発環境の構築などで頻繁に導入するのでメモ。 EPEL EPEL - FedoraProjectを開く How can I use these extra packages? の節にあるリンク(EL5、EL6)のどちらかを開く 開いたページの下部に epel-release-XXXとあるので、それをダウンロード、もしくはURLを…

CentOSで固定IPを設定し、ホスト名を変更する

よく忘れるのでメモ。 IPの指定 $ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth1 HWADDR=... TYPE=Ethernet UUID=... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.56.14 NETMASK=255.255.255.0 BOOTPROTOの値をdhcpか…

ダンガンロンパ

ダンガンロンパ1・2 Reload出版社/メーカー: スパイク・チュンソフト発売日: 2013/10/10メディア: Video Gameこの商品を含むブログ (18件) を見る PS Vitaで1と2がセットででること、アニメ化されることを知って購入。その後、録画したアニメをまとめて観た…

git cherry-pickでマージコミットを適用する

$ git cherry-pick -m 1 ec6a3c5 マージコミットは、そのコミットの親が複数(マージ元、マージ先)あるので、そのままでは適用できない。 適用するときにどちらの親を選ぶか、それを指定するのが-mオプション。親コミットを選択して、親コミットとマージコ…

iPhone5sに機種変更した

今月はじめにガラケーからiPhone5s 16GB(スペースグレイ)に変更した。 キャリアはドコモ。 予約 10/4(金)にネットで予約申込み。10/5(土)の昼頃にメールで入荷連絡があり、10/6(日)の午前中に予約先のドコモショップで更新。予約して3日ほどで入手。 契約更…

treeコマンドであるパターンに一致しないディレクトリを表示する

$ tree -d -I 'foo|bar|hoge' -Iオプションで指定する。ワイルドカードでの指定だが、|で条件を複数指定することができる。 参考 How do we specify multiple ignore patterns for tree command? - Unix & Linux Stack Exchange

grepコマンドに色をつける

$ grep --color=auto foo * colorオプションで該当部分やファイル名などを色づけする。 環境変数GREP_OPTIONSを設定すると、コマンド実行時に設定したオプションが適用される。 # ~/.bashrc export GREP_OPTIONS='--color=auto' # 実行時に--color=autoが適…

pgrepで実行中のバッチコマンドを確認する

pgrep -f foo.php -fオプションをつけると、実行しているコマンドライン全体に対して検索し、結果を表示する。 -fオプションをつけなければ、プロセス名のみを対象に検索し、結果を表示する。 参考 Linux - ps aux | grep よりもpgrepでプロセスを探すと楽 -…

gitで特定のファイルを特定のリビジョンに戻す

git

例えばcheckoutサブコマンドで $ git checkout /path/to/file とすると、そのとき変更しているファイルを最新のリビジョンの状態に戻すが $ git checkout HEAD^ /path/to/file のようにリビジョンを指定すると、そのリビジョンの状態に変更する。 参考 Gitで…

VirtualBoxにCentOS 6.4 minimalをインストール

VirtualBoxにCentOS 6.4 minimal x86_64 をインストールした。 これをクローンのベースにする。クローンの作成と設定については以前、VirtualBoxでCenOSのクローンを作成する - 作業ノートにまとめた。 仮想環境 HDD: 8GB 固定サイズで作成 Memory: 512MB Ne…

半角スペースを含むファイルの対応

findコマンドなどでファイルの一覧を取得後、各ファイルに対して処理を行う時、対象ファイルにスペースがあるとそこでパスが区切られ、結果ファイルが存在しない、などのエラーになる。 それを回避するには、スクリプトを実行する際に一時的に区切り文字を変…

Reeder2

Reeder 2Silvio Rizzi¥450 iPad miniで使用した感想。 操作性はReederと同じ。スムーズな挙動。 トップがAccountsレイヤーで、Reeder2に登録したアカウントの一覧が表示される。ここから下ることで当該アカウントのFeedが参照できる。 現時点(2012/09/14)で…

iptablesで、httpとhttpsの接続を許可する設定

VirtualBoxで CentOSの仮想環境を構築した時に行った設定。iptablesの設定を変更して、httpとhttpsでアクセスできるようにした。 1.現在の設定の確認 $ sudo /sbin/iptables -L --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source dest…

ntpdateコマンドを使った時刻同期のシェルスクリプト

ローカルの仮想環境を起動後、時刻のずれを修正するために作成したbashスクリプト。 ntpdateコマンド、sudoコマンドが実行できることが前提。 参考 ntpdが動いている環境で、ntpdateを実行する - 元RX-7乗りの適当な日々

VirtualBoxでCenOSのクローンを作成する

VirtualBoxで作成した仮想マシンをベースに新しい仮想マシンを用意する方法。 複製元の仮想マシン CentOS 6.4 minimal 64bit NICはNAT用とホストオンリーアダプター用の2つ Ubuntu版は、VirtualBoxでクローンを作成する - 作業ノートを参照。 クローン作成 1…

apache + php + curlで外部Webサーバにアクセスできなくてはまった

新しくサーバを構築したときにはまったのでメモ。 環境はphp5 + curl。Webページとしてアクセスしたときに、プログラムでcurlのモジュールを用いて外部のWebサーバにアクセスし、その結果に基づいて処理を行う。 起きた現象は、Webページとしてアクセスした…

Oracle SQL Developerで日付表示の書式を変更する

Macで起動したときの変更方法。Windows版も同様だと思う。(環境がないので試してない) SQL Developerを起動する。 メニューから ツール > プリファレンス を選び、ダイアログを開く。 左の一覧から データベース > NLS を選ぶ。 右の一覧から日付書式(RR-MM-…

smartyテンプレートの変数で文字列を連結する

少しはまったのでメモ。 phpのプログラムでは連結演算子(.)で連結できる。しかしsmartyテンプレートでは、ドット(.)は配列の要素を表すので、文字列の連結ができない。 smartyテンプレートで文字列を連結する方法は2通り。 1.cat修飾子 {assign var='path' v…

社内用ツールとBootstrap

仕事で時々、社内用のツールを作る。目的は様々。 ここ最近も作ったのだが、作り始めた頃にBootstrap3のRCが出た。 せっかくなので、Bootstrap2を試したが、思った以上に使いやすく、そして効果的だった。(3はRCだったので見送った) 社内用なのでページの見…

ブログなどの見直し

はてなブログを使い始めて一年ほど過ぎたので、全体的な見直しと変更をした。 やったことは、主に以下の3つ。 1. 旧ブログのインポート はてなダイアリーにあった旧ブログの記事・コメント・スター・ブックマークをインポートし、リダイレクトを設定した。 …

gitでvimを使ってmergeする

git mergeなどで衝突したとき、vimを使って解消する方法。 1. mergetoolを設定する git mergetoolの設定をする。 $ git config --global mergetool.vimdiff3.cmd 'vimdiff -c "wincmd J" "$MERGED" "$LOCAL" "$BASE" "$REMOTE"' 2. shellスクリプトを作成す…

特定のgitリポジトリでuserとemailを変える

git

会社用のgitリポジトリとgithubのリポジトリではユーザ名、メールアドレスが異なる。 会社の環境だと、$HOME/.gitconfigには会社用の設定をしているが、環境設定関係などはgithubで管理しているのでその変更を行うと会社用の設定が反映されてしまう。 そこで…

ローカルで管理しているgitのブランチをリモートリポジトリに登録し、管理する

git

よく忘れるのでメモ。 リモートリポジトリを登録してない場合は、先にリモートリポジトリを登録する。 $ git remote add origin {リモートリポジトリのURL} git push でリモートリポジトリとブランチ名を指定してpush。 $ git push -u origin master uオプシ…

VirtualBoxでクローンを作成する

VirtualBoxで作成した仮想マシンをベースに新しい仮想マシンを用意する方法。 複製元の仮想マシン Ubuntu 12.04 64 bit NICはNAT用とホストオンリーアダプター用の2つ CentOS版は、VirtualBoxでCenOSのクローンを作成する - 作業ノートを参照。 クローン作成…

rubyで未読メールを取得して処理する(IMAP)

連休中に届いた大量のエラーメールを処理するため、rubyを使って未読メールの取得と 必要な処理をおこない、既読にした。IMAP経由。

はてなブログProに移行した

はてなでは、ポイント制度「はてなポイント」で購入できるポイントの単位を見直し、クレジットカード払いの場合には、980円、8,200円、14,000円の単位でも購入できるようにしました。 はてなポイントの購入単位を見直し、はてなブログProに必要なポイントを…

MongoDBのjournalのファイルサイズが大きすぎる

VirtualboxでMongoDBを試していると、あるときディスク容量がほぼ100%になってしまった。ディスク全体は8.0GBで、そのうちルートは5.7GB。 調べたところ、/var/lib/mongodb/journal/ 以下のファイルのサイズが、2.0GBほどになっていた。 サイズを小さくする…

MongoDBの環境構築

MongoDBイン・アクションを読み始めたので、試すための環境を構築。 MongDBのインストール VirtualBoxのUbuntu 12.10(64bit)にMongoDBをインストールする。 $ sudo aptitude install mongodb mongodb-clients mongodb-dev mongodb-server インストール後、ホ…

sqlplusでsqlファイルを読み込み、sqlを実行する

SQL> @/path/to/foo.sql SQL> @@bar.sql @が1つで、絶対パスで指定する。 @が2つで、相対パスで指定する。 参考 SQL*Plus上でSQLファイルを実行する | Kwappa研究開発室

mysqlでCSVデータをテーブルにロードする

load data infile '/tmp/foo_table.csv' into table foo_table fields terminated by ',' enclosed by '"'; terminated by句で区切り文字にカンマを指定する。 enclosed byにはカラムの囲み文字を指定する。 csvファイルは、mysqlのlinuxアカウントから参照…

httpプロセスで、利用しているファイルを調べる

$ sudo lsof -c httpd ファイルやプロセスの接続先IPなども確認できる。 参考 @IT:特定のポートをオープンしているプロセスを調べるには lsof:オープンしているファイルを調べる | Siguniang's Blog

oracleのアカウントロックを解除する

設定次第だけど、ログインを何度か失敗してしまうと、そのアカウントでのログインが、一定期間できなくなる。 そうなった場合、SYSユーザでログインし、該当するアカウントのロックを解除する。 $ sqlplus '/ as sysdba' SQL> alter user foo account unlock…

gitコマンドでリビジョングラフを表示する

git

VirtualBox上のUbuntuでgit-flowを試しつつ、ふとリビジョングラフを確認したくなった。 通常、iTerm2からsshコマンドを使ってログインして利用するので、GUI系は使えず。 確認したいリポジトリはローカルのみ。 調べたところ、gitコマンドを使って、 $ git …

usermodを使ってグループに追加するときの注意点

usermodを使えば、既存グループに追加できる、のだが。 te2u@ubuntu01$ sudo usermod -G 'sudo,www-data' te2u すでに何かしらの補助グループに属している場合、-Gオプションに明示的に指定しておかないと、その補助グループから外される。 特に対象ユーザが…

iTerm2でオプションキーをEscに切り替える

Mac

iTermで、Preferences(環境設定) > Profiles(プロファイル)を開き、替えたいプロファイルを選択する。 そのプロファイルのKeysタブを開き、一番下に LeftオプションキーとRightオプションキーに割り当てがあるので、これを+Escに変更する。 ちなみに、項目に…

vimのnetrw.vimでコードの判別に失敗して文字化けした場合の対応

Vim

ローカルファイルの場合は、editコマンドにオプションを追加して開き直せばいい。 :e ++enc=eucjp ftp, sftpなどを使ってリモートのファイルを編集するとき、文字コードの判別に失敗して文字化けする場合は、この方法では対応できない。 このときは、先にfil…

Macでログインしたときに自動的にサーバに接続する方法

Mac

Macでログインしたときに、会社の共有サーバなどにつながった状態にする方法。 準備 Finderを選択し、環境設定を開く。 一般 > デスクトップに表示する項目 で、接続中のサーバにチェックする。 Finderの共有から接続したいサーバを選択し、接続した状態にす…

SchemaSpyでOracle DBのドキュメントを作成する

SchemaSpyは、データベースのスキーマ情報を解析して、htmlで出力するツール。javaで書かれている。 必要なのもの java5 以上 SchemaSpyのjarファイル(schemaSpy_5.0.0.jar) 解析したいデータベースのjdbcドライバー Graphviz OSはCentOS 5.7で、Oracle DBで…

MacVimの設定

基本的な設定はvimと同じにして、MacVim用の設定を反映できるようにした。 1. vimrcにMacVimの設定を追加する vimrcの最後にMacVim用の設定を追加する。 $ vi ~/.vimrc … " MacVim if has('gui_macvim') set transparency=1 set showtabline=2 set imdisable…

oracleでトリガー名を確認する、内容を確認する、有効化と無効化

トリガー名を確認する SELECT trigger_name, status FROM user_triggers; 以下、fooという名前のトリガーがあったとして、 トリガーの内容を確認する SELECT line, text FROM user_source WHERE name = 'foo' ORDER BY name, line; lineは行数、textはその行…

svnでコンフリクトしたときに、vimdiffを使って解消する

マージでコンフリクトしたときの対応としての備忘録。 前提 例えば、svnでマージしたときにfooというファイルがコンフリクトしたとする。 コンフリクトすると、管理しているファイル以外に3つのファイルができる。 $ ls ... foo.working foo.merge-left.r1 …

svn diff 変更されたファイルのパスのみを表示する

追加・変更・削除対象のファイルのみのリストを作りたいとき、svn diffにsummarizeオプションをつけることで、ファイルパスのみが表示される。 svn diff --summarize -r PREV:COMMITTED ./ svn diff --summarize -r COMMITTED:HEAD ./ 参考 OZACC.blog: Subv…

sqlplusのプロンプトの変更

sqlplusで特に何も設定していないと、実行したときのプロンプトはこのようになる。 $ sqlplus foo/bar@hoge SQL> 複数の環境を扱っていると、どこに接続しているかわからなくなるので、プロンプトを変更した。 $ mkdir ~/.sqlplus $ vi ~/.sqlplus SET SQLPR…

phpの__FILE__のパス

PHP

シンボリックリンクのphpを実行したときにうまく動かずはまったので。 シンボリックリンクのphpファイルで__FILE__は、シンボリック元のファイルパス。 php $ php -v PHP 5.3.13 with Suhosin-Patch (cli) (built: Jun 20 2012 17:05:20) Copyright (c) 1997…

visudoのエディタをnanoからvimに変更する

ubuntuの環境では、visudoのエディタがnanoになっている。それをvimに変更する方法。以下の2通りがある。visudoの設定を変更する場合editorの設定を追加する。 $ sudo visudo Defaults editor=/usr/bin/vim.basic ubuntuの設定を変更する場合 $ sudo update…