unix
「minicom」はUNIX系環境でシリアル通信をする際便利なCLIアプリです。 導入 Ubuntu $ apt-get install minicom OSX 事前に必要なライブラリを導入しておかないといけません $ brew install minicom 初期設定 読み込むポートやボーレートは $ sudo minicom -…
diffコマンドとpatchコマンドを使うことで、 差分を楽に扱うことができます。次のようなファイル群があったとします。 $ ls difffile.diff test.txt test_diff.txt $ tail +1 * ==> difffile.diff <== --- test.txt 2015-01-04 21:46:58.000000000 +0900 +++…
tailコマンドは通常、ファイルの末尾数行を表示するコマンドですね。 $ ls difffile.diff test.txt test_diff.txtという構成で、全部表示したい場合、以下のようにやるとファイル名つきで表示してくれます。 $ tail +1 * ==> difffile.diff <== --- test.txt…
試験用に適当なビット列のデータを作りたい場合、ddコマンドが使えます。 使い方 $ dd if=/dev/random of=~/output bs=1024 count=1; 1+0 records in 1+0 records out 1024 bytes transferred in 0.000183 secs (5592405 bytes/sec)bs × countで長さを決めま…
topコマンドは top - display and update sorted information about processes とあるように、プロセスの状態を一覧してくれるコマンドです。 状態を逐次更新してくれるので、瞬間的に負荷がかかるようなコマンドもわかります。 今迄pgrepやpsをカツカツ叩い…
任意の出力結果をパイプでbashに渡してあげると、 それが解釈可能である場合実行してくれます。例えば、echoで「cal」と出し、それを繋ぐケースでは…… $ echo 'cal' | bash 12月 2014 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19…
ちょっと前にやったPOSIX 文字クラスですが、これらはRubyでも活用できます。 [:alnum:] 英数字 (Letter | Mark | Decimal_Number) [:alpha:] 英字 (Letter | Mark) [:ascii:] ASCIIに含まれる文字 (0000 - 007F) [:blank:] スペースとタブ (Space_Separator…
lsofは動作中のプロセスの詳細を調べるコマンドです便利なコマンドですが、深い所まで手を突っ込むため、sudoで実行する必要があります。 また、全プロセス見に行くので結構重いのが難点です。httpdを動かした状態でやると $ sudo lsof -i -n -P | grep LIST…
touchはご丁寧にも大文字小文字を一緒くたにして下さいます。 つまり... $ touch MKdata.rbとやれば、mkdata.rbを選んでくれます。ところが、横着して mkdata.rbとMKDATA.rbをtouchコマンドで作ろうとすると... $ touch mkdata.rb $ ls mkdata.rb $ touch MK…
findには、正規表現を使って検索できるregexオプションがあります。 $ ls mkdata* mkdata.rb mkdata_fund.rb mkdata_funds_relation.rb mkdata_partner.rb mkdata_proffessor.rbこんなディレクトリがあったとしてregexをやると範囲を絞り込んで検索もできま…
コマンドの意味を知る時に使う、manコマンド。 実は...同名のC言語ライブラリ関数を調べる事ができます。 例えば、printf(3)とかです。何もやらなければ $ man printf | head -n 6 PRINTF(1) BSD General Commands Manual PRINTF(1) NAME printf -- formatte…
OS Xで文字列からdateを生成するには、以下のようにします。 $ date -jf '%Y-%m-%d' '2014-12-12' 2014年 12月12日 金曜日 23時04分30秒 JST指定しない部分は、環境から呼び出すみたいです UTCにしたい場合はjnfとします $ date -juf '%Y-%m-%d' '2014-12-12…
前回の続きっぽい記事です。手当たり次第ブランチを切りまくっていると、問題になってくるのが不要ブランチの処分。 実験用のお砂場として弄り回した果てに存在すら忘れていたのがチラホラ... 以前も似たような事をやりましたが、あのバージョンだと日付以降…
brewでgitを導入した場合、以下のディレクトリに存在しています。 $ ls /usr/local/Cellar/git/2.0.0/etc/bash_completion.d/git-completion.bash とgit-prompt.shがあります。 今回つかうのは後者です $ cp /usr/local/Cellar/git/2.0.0/etc/bash_completio…
columnは...段組みのテキストデータを綺麗に成型してくれるコマンドです $ cat sample.txt hoga huga piyo 12 3 45 6 7 8 9 a bc てな無茶苦茶なモノがあったとしても $ cat sample.txt | column -s " " -t hoga huga piyo 12 3 45 6 7 8 9 a bcとあっという…
以下のような文字列があったとします。 $ seq -10 10 | sed -e s/^4/hoge/ -e s/^-8/fuga/ -10 -9 fuga -7 -6 -5 -4 -3 -2 -1 0 1 2 3 hoge 5 6 7 8 9 10デフォルトのsortだと、 $ seq -10 10 | sed -e s/^4/hoge/ -e s/^-8/fuga/ -1 -10 -2 -3 -4 -5 -6 -7 …
seqのように連続数を $ jot 10 1 10 1 2 3 4 5 6 7 8 9 10ランダム値の場合は「r」オプションを。 $ jot -r 10 1 10 4 2 2 8 3 8 10 5 3 3 $ jot -r 10 1 10 8 9 2 5 7 2 2 2 3 2連続する16進数を表示するのも楽々。 $ jot -w 0x%x 10 20 0x14 0x15 0x16 0x1…
sedは文字列置換以外にも、不要な行を削除するのにも使えます。 $ seq 1 10 | sed -e "1 ,3d"4 5 6 7 8 9 10headとtailでも似た事ができますが、コッチの方が楽なケースもありそうですね。 参考もと man sed
readは標準入力から変数を代入するコマンドです。 $ read Hoge <<< 'as' $ echo ${Hoge} asそもそもは標準入力と連動して動くものです。 以下のようなbashスクリプトを組み #!/bin/bash ## hoge.sh # single 'read' statement can set multiple variables. e…
単にコマンドへ文字列を渡したいだけのケースって結構多いですよね。 bash系では、そういった要望にお答えする手法「ヒアストリング」が用意されています。 これを使えば毎回毎回echoやprintfをつかって文字列を生成する必要がなくなるわけです。 $ tr a-z A…
ドキュメント中のコメントに $$ hoge $$ $$ huga $$なんて出力をしたい場合、 今迄は一行毎に $ echo ' $$ hoge $$' $ echo ' $$ huga $$'とやるか、ヒアドキュメントで $ cat << 'EOS' > $$ hoge $$ > $$ huga $$ > EOSなんてやってました。 毎回毎回、定型…
mkdirしたら、すぐ移動したいのが人情というものです。 ぱっと思いつく泥臭い方法は mkdir=>C-rで履歴辿り=>mkdirを消してcd といった感じでしょうか。 ここでbashの組込み変数を使うと若干楽にできます。 今回使う「$_」には、最新のパラメータが格納されて…
バイナリダンプは指定したファイル・標準出力の結果を16進数として吐き出すものです。 メモリの状態やバイナリファイルのヘッダを確認するときに重宝します。 組込み業界で仕事をしていた頃よく使いました(遠い目 odコマンド まずはodコマンドから。 タイプ…
$ colrm {削除をはじめる番号} {削除を終える番号}といった形でつかいます。cutでやると $ for i in {1..9}; do printf $i; done | cut -b 1 -b 5-9 156789となるところ、colrmだと $ for i in {1..9}; do printf $i; done | colrm 2 4 156789となります。残…
bannerというコマンドを使うと、 昔懐かしな電光掲示板風のAsciiアートを標準出力に表示できます。 $ banner -w 40 "as you like" ### ####### ## ######### #### ## ## # ## # ## # ## # ## ############### ############## # #### ## #### ###### ## #####…
wcは"word, line, character, and byte count"との説明通り、文字数や行数を数えるコマンドです。 原則オプションと組み合わせて使います。 -m The number of characters in each input file is written to the standard output. If the current locale does…
まず、git ls-filesというコマンドを使うとファイル名一覧を出す事が出来ます。 $ git ls-files .gitignore .magnum.yml .rspec Gemfile README.rdoc Rakefile app/assets/images/.keep app/assets/javascripts/application.js app/assets/javascripts/boots…
FindライブラリはRubyに標準装備されている検索用コマンドです。 `find ...`とかやらなくとも良いのです。 その上、標準添付なのでプラットフォームの差分を吸収してくれるのが良いです。記法はfind(1)に則るので、フツーに使えます。 $ ruby -rfind -e 'Fin…
Linux環境下のネットワークカードでは仮想的に複数のアドレスを運用(エイリアス方式)する事ができます。 極力NICは分けておいたほうが良いのですが、「仮アドレスの試験」や「新環境への移行期間」では有効に使う事ができます。 具体的な手法 今回は アド…
前回の例と同様、サンプルデータsampledata.logを用意します。 data [alpha] data [beta] data [gamma] data [delta] deta [epsilon] 切り出す dでカラムを切り出す記号を選び、-f NUMで何番目を抽出するか決めます $ cut -d '[' -f2 sampledata.log | cut -…