write ahead log

ロールフォワード用

ShellScript/POSIX

シェルスクリプトの中で一時的に別ユーザで実行したい

なんか毎度ググるからメモ. sudo su - user <

シェルのリダイレクトで混乱したときに

混乱してきた. stackoverflowの回答が簡潔でよかったので表にしておく. コマンド シンタックス 意味 > ディスクリプタ > ファイル名 ディスクリプタの内容をファイル名へ >& ディスクリプタ >& ファイルディスクリプタ ディスクリプタの内容をディスクリプタ…

シェルスクリプトで外部コマンドを組み立てて実行結果を得る

何度も調べたり考えたりしている気がする... 他にももっといい方法があるのかもしれない. 問題 シェルスクリプト内で引数をsha256化した結果を使いまわしたかった. コマンドラインで素直に書くとこんな感じ. echo -n 'pass'| shasum -a 256 | tr -d ' *-' こ…

curlでRESTっぽくやる時に使うオプション

毎回調べるのめんどくさい. HTTP Methodを切り替える Xオプションを使います. $ curl -X PUT [hostname] パラメータを与える dオプションを使います. GETでもPOSTでも使えるっぽいです. $ curl -d arg=param1 -d arg1=param2 [hostname] ボディへ直接データ…

catの-(ハイフン)オプションを使う

こんなファイルを用意する. $ cat > test.txt <<EOS test test test test EOS $ cat > test2.txt <</eos>

iconvコマンドを使う[POSIXコマンド]

iconvコマンドは文字コード変換コマンドです. 名前は「International Codeset Conversion Library」に由来するそうです. 出典はwikipediaより 使い方 基本的にはfオプションとtオプションで入力元ファイルと出力先ファイルの円コーディングを指定して利用し…

hashコマンド[POSIXコマンド]

hashコマンドはコマンドの場所を記憶します.(正確には記憶した場所を表示・削除したりして管理します) hashコマンドは組み込みコマンドの様です. たとえば今の私のシェルで実行すると以下の様になります. $ hash hits command 1 /usr/bin/vim 0 /usr/bin/tou…

loggerコマンド[POSIXコマンド]

loggerコマンドはその名の通りログを残す. 初めて知った. こんな感じで何度も実行する $ logger "test message" $ logger "Hello" $ logger "world" $ logger "logging test" ログを見ると tail /var/log/message ...[中略] Mar 22 17:47:31 localhost root:…

tputコマンド[POSIXコマンド]

POSIXコマンドを淡々と試しているけど,いい加減飽きてきている. tputは制御コードシーケンスを出力するためのコマンド. 制御コードシーケンスはターミナル毎に違うのでターミナルデータベースから情報を持ってきて,それを利用する必要がある. が,面倒. それ…

pwdコマンド[POSIXコマンド]

絶対オプションが無いだろうから一覧だけ更新しようと思ってたのにあった. なんでも調べてみるものだなぁ. pwdは現在のディレクトリの絶対パスを返すコマンド. オプションはcdコマンドにあるものと同じだった. オプション オプション 内容 -L 論理的な現在の…

ctagsを使ってみる[POSIXコマンド]

ソースコード解析補助ツール. ぶっちゃけGNU Global使ったほうが良い気がする. が,POSIXコマンドでviでも(Emacsも?)デフォルトでサポートしてることを考えると知っといて損はない気もする. そんなわけで試してみる. インストール ubuntuだと入ってたけどね. …

cflowを使ってみる[POSIXコマンド]

相変わらずPOSIXコマンドをずっと見ている.(若干飽きてきた) cflowというソースコード解析ツールがあるらしい. POSIXコマンドっぽいのだが,Ubuntuだとそもそも入っていない. それほど高機能でも無いようだけど,コールグラフが出せるらしい.試してみる. イン…

echoコマンド[POSIXコマンド]

POSIXの記載だとマジで1行出力しか出来ないっぽい. GNUとかだとオプションがあるけど,それもシンプル.ただどれも結構便利. オプション オプション 内容 -n テキストの最後に改行を出力しない -e バックスラッシュによるエスケープを解釈する -E バックスラ…

whoコマンド[POSIXコマンド]

サーバシャットダウン前に一応確認するために使うアレ. オプションはこちらが詳しいが使うのは以下くらいではないか. オプション 内容 -m (または who am i) 自分自身の情報を表示する -q ログインしているログイン名と人数のみを表示する -H ヘッダを付けて…

readコマンドを使う[POSIXコマンド]

readコマンドはシェルスクリプト書くなら基本っぽい. 基本的に行指向で取り込んで,区切り文字ごとにフィールドで分けて勝手に変数に取り込んでくれる. read [1フィールド目を入れる変数] [nフィールド目を入れる変数] ... といった感じ. 区切り文字は特殊変…

bcコマンドを使ってみる[POSIXコマンド]

使ったことがなかったので試してみた. まぁ,便利な事もあるのかもなぁ,と言った感じ. 慣れてくると電卓アプリとか起動するより楽で良いかも. 詳細はこちらが詳しい. The Open Groupの説明には文法までちゃんと書いてある. 標準入力を計算するのでお気楽に試…

commコマンド[POSIXコマンド]

commコマンドは2つのファイルを行単位で単純比較します. 単純比較なので事前ソートが必須です. #サンプル用ファイル1 $ cat text1.txt 1 2 3 4hoge 5 #サンプル用ファイル2 $ cat text2.txt 1 2foo 3 4 5 上記2ファイルに対して実行すると $ comm text1.txt …

waitコマンド[POSIXコマンド]

waitコマンドは他のプロセスやジョブの完了を待つためのコマンド. $ sleep 5 & [1] 3775 $ wait $! # $!はバックグラウンド実行された直前のプロセスのプロセス番号を持つ [1]+ 終了 sleep 5 これだけだとなんの有り難みもないが,シェルスクリプト内で同期処…

sleepコマンド[POSIXコマンド]

sleepコマンドは指定時間(秒)動作を停止します. $ sleep 1 # => 1秒何も起きない $ POSIXだとこれだけみたいです. POSIX外だと以下の指定方式が使えるようです. s(秒),m(分),h(時間),d(日) $ sleep 1m # => 1分何も起きない $ 単体だとまず使いませんが,シェ…

cmpコマンド[POSIXコマンド]

cmpコマンドは1byte単位でファイルを比較できるコマンドです. 例 例として下記の様なファイルを用意します. $ cat greeting1.txt Hello, World. $ cat greeting2.txt hello,world 比較してみます. $ cmp greeting1.txt greeting2.txt greeting1.txt greeting…

basenameコマンド[POSIXコマンド]

basenameコマンドはフルパスからファイル名だけを取り出してくれるコマンドです. 例 twinbird@:~/text$ basename /home/twinbird/text/edit.txt edit.txt また,suffixを指定するとファイル名末尾から取り除いてくれます. 例 twinbird@:~/lab$ basename /home…

catコマンド[POSIXコマンド]

catは超基本でオプションもいっぱいあると思っていたんだけど,POSIXだとuオプションしかなかった. しかも存在意義がない..... 使い方 catはファイルをつなげたり表示したりするのに使うコマンドです. 以下の様に単純にファイル内容を表示するのによく使いま…

calコマンド[POSIXコマンド]

calコマンドはカレンダーを表示します. (今となっては使うシチュエーションがあまり浮かびませんが...まぁ,シェルスクリプトとかで...いやぁ,date使うなぁ...) 基本 twinbird@:~$ cal 3月 2016 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16…

unaliasコマンド[POSIXコマンド]

unaliasコマンドはaliasコマンドで登録した別名を解除するためのコマンドです. 指定した別名の解除 aliasコマンドを実行して解除するものを確認した後に解除する,というのが一般的かなと思います. twinbird@:~/lab$ alias alias ll='ls -alF' alias logwatch…

aliasコマンド[POSIXコマンド]

aliasコマンドはコマンドに別名をつけるコマンドです. aliasの登録 alias 割当て名='コマンド' という形式で使います. 例 twinbird@:~$ alias logwatch='tail -f' twinbird@:~$ logwatch commands.txt val vi wait wc aliasの一覧 引数なしで実行すると登録…

POSIXコマンド一覧

The Open Group こんなにあるんだって感じ. 使ったやつから埋めていこう. [追記] ubuntu15.10でのデフォルトインストールの有無を追記した. 結構入ってない....POSIXって.... コマンド名 説明 ubuntuデフォルト admin sccsの管理ファイルを作るコマンドらし…

cutコマンド[POSIXコマンド]

ここを見るとPOSIXコマンドだけで結構な量があることがわかる. POSIXは基本どこでもある程度動くので便利だ. なにせWindowsでさえMSYSなどを入れればそれなりに動く.SUAもあるし. 面白いので知らないコマンドを試してメモしていくことにした. cutコマンド タ…

lexを使う

少し前に構文解析プログラム入門の定番である電卓でも作ってみようかなとRubyで書いた. わかったことはとにかくめんどくさい. 電卓程度なので手抜きをたくさんできるんだけど、実際、+をAddに変更しようかと思うと、もっとちゃんとした字句解析も必要になる.…