Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

unix

UNIX系環境でシリアル通信をする際便利なCLIアプリ「minicom」

「minicom」はUNIX系環境でシリアル通信をする際便利なCLIアプリです。 導入 Ubuntu $ apt-get install minicom OSX 事前に必要なライブラリを導入しておかないといけません $ brew install minicom 初期設定 読み込むポートやボーレートは $ sudo minicom -…

diffコマンドとpatchコマンドで差分を扱う

diffコマンドとpatchコマンドを使うことで、 差分を楽に扱うことができます。次のようなファイル群があったとします。 $ ls difffile.diff test.txt test_diff.txt $ tail +1 * ==> difffile.diff <== --- test.txt 2015-01-04 21:46:58.000000000 +0900 +++…

テキストファイルをまとめてcat風に表示したい場合、tailを使う手が

tailコマンドは通常、ファイルの末尾数行を表示するコマンドですね。 $ ls difffile.diff test.txt test_diff.txtという構成で、全部表示したい場合、以下のようにやるとファイル名つきで表示してくれます。 $ tail +1 * ==> difffile.diff <== --- test.txt…

ddコマンドで適当なビット列のファイルを生成する

試験用に適当なビット列のデータを作りたい場合、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コマンドは top - display and update sorted information about processes とあるように、プロセスの状態を一覧してくれるコマンドです。 状態を逐次更新してくれるので、瞬間的に負荷がかかるようなコマンドもわかります。 今迄pgrepやpsをカツカツ叩い…

bashコマンドに文字列を渡すと実行してくれる

任意の出力結果をパイプで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…

Rubyでも文字列クラス使って正規表現を楽に書く

ちょっと前にやったPOSIX 文字クラスですが、これらはRubyでも活用できます。 [:alnum:] 英数字 (Letter | Mark | Decimal_Number) [:alpha:] 英字 (Letter | Mark) [:ascii:] ASCIIに含まれる文字 (0000 - 007F) [:blank:] スペースとタブ (Space_Separator…

lsofで動作中のプロセスやファイルの詳細を調べる

lsofは動作中のプロセスの詳細を調べるコマンドです便利なコマンドですが、深い所まで手を突っ込むため、sudoで実行する必要があります。 また、全プロセス見に行くので結構重いのが難点です。httpdを動かした状態でやると $ sudo lsof -i -n -P | grep LIST…

touchはご丁寧にも大文字小文字を一緒くたにして下さる

touchはご丁寧にも大文字小文字を一緒くたにして下さいます。 つまり... $ touch MKdata.rbとやれば、mkdata.rbを選んでくれます。ところが、横着して mkdata.rbとMKDATA.rbをtouchコマンドで作ろうとすると... $ touch mkdata.rb $ ls mkdata.rb $ touch MK…

findのregexオプションやiregexオプションで一寸入り組んだファイルを検索する

findには、正規表現を使って検索できるregexオプションがあります。 $ ls mkdata* mkdata.rb mkdata_fund.rb mkdata_funds_relation.rb mkdata_partner.rb mkdata_proffessor.rbこんなディレクトリがあったとしてregexをやると範囲を絞り込んで検索もできま…

manコマンドでC標準関数を調べる

コマンドの意味を知る時に使う、manコマンド。 実は...同名のC言語ライブラリ関数を調べる事ができます。 例えば、printf(3)とかです。何もやらなければ $ man printf | head -n 6 PRINTF(1) BSD General Commands Manual PRINTF(1) NAME printf -- formatte…

OS Xで文字列からdateを生成する

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…

指定日以前の不要ブランチをまとめて消す

前回の続きっぽい記事です。手当たり次第ブランチを切りまくっていると、問題になってくるのが不要ブランチの処分。 実験用のお砂場として弄り回した果てに存在すら忘れていたのがチラホラ... 以前も似たような事をやりましたが、あのバージョンだと日付以降…

PS1へ現在いるブランチを表示させる

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コマンドで段組みのテキストデータを綺麗に成型する

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とあっという…

sortのオプションを使えば自然な形で整列してくれる。

以下のような文字列があったとします。 $ 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 …

連番の値やランダム値を出力したい場合はjotコマンドが便利

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で不要な行を削除する

sedは文字列置換以外にも、不要な行を削除するのにも使えます。 $ seq 1 10 | sed -e "1 ,3d"4 5 6 7 8 9 10headとtailでも似た事ができますが、コッチの方が楽なケースもありそうですね。 参考もと man sed

readコマンドで標準入力から変数を代入する

readは標準入力から変数を代入するコマンドです。 $ read Hoge <<< 'as' $ echo ${Hoge} asそもそもは標準入力と連動して動くものです。 以下のようなbashスクリプトを組み #!/bin/bash ## hoge.sh # single 'read' statement can set multiple variables. e…

ヒアストリングで出力コマンドを使わずともstdinに文字列を渡す事ができる

単にコマンドへ文字列を渡したいだけのケースって結構多いですよね。 bash系では、そういった要望にお答えする手法「ヒアストリング」が用意されています。 これを使えば毎回毎回echoやprintfをつかって文字列を生成する必要がなくなるわけです。 $ tr a-z A…

sedの行頭・末尾一致を単体使うと定型文にコメントを入れる処理を楽にできる

ドキュメント中のコメントに $$ hoge $$ $$ huga $$なんて出力をしたい場合、 今迄は一行毎に $ echo ' $$ hoge $$' $ echo ' $$ huga $$'とやるか、ヒアドキュメントで $ cat << 'EOS' > $$ hoge $$ > $$ huga $$ > EOSなんてやってました。 毎回毎回、定型…

mkdirしてすぐ移動したい場合はcd $_とやると楽

mkdirしたら、すぐ移動したいのが人情というものです。 ぱっと思いつく泥臭い方法は mkdir=>C-rで履歴辿り=>mkdirを消してcd といった感じでしょうか。 ここでbashの組込み変数を使うと若干楽にできます。 今回使う「$_」には、最新のパラメータが格納されて…

odやhexdumpで内容をバイナリダンプしてみる

バイナリダンプは指定したファイル・標準出力の結果を16進数として吐き出すものです。 メモリの状態やバイナリファイルのヘッダを確認するときに重宝します。 組込み業界で仕事をしていた頃よく使いました(遠い目 odコマンド まずはodコマンドから。 タイプ…

cutと似たコマンドcolrmは不要な部分のみ消し去る

$ 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コマンドやfigletコマンドでアスキーアートを生成する

bannerというコマンドを使うと、 昔懐かしな電光掲示板風のAsciiアートを標準出力に表示できます。 $ banner -w 40 "as you like" ### ####### ## ######### #### ## ## # ## # ## # ## # ## ############### ############## # #### ## #### ###### ## #####…

テキストデータの行数や文字数をカウントしたい場合はwcコマンドを使う

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管理下のディレクトリにあるRubyスクリプトの総行数を調べる

まず、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…

Rubyでディレクトリ検索したいなら標準添付のFindライブラリを使った方が幸せになれるかもしれない。

FindライブラリはRubyに標準装備されている検索用コマンドです。 `find ...`とかやらなくとも良いのです。 その上、標準添付なのでプラットフォームの差分を吸収してくれるのが良いです。記法はfind(1)に則るので、フツーに使えます。 $ ruby -rfind -e 'Fin…

一枚のネットワークカードで複数のIPアドレスを扱う方法

Linux環境下のネットワークカードでは仮想的に複数のアドレスを運用(エイリアス方式)する事ができます。 極力NICは分けておいたほうが良いのですが、「仮アドレスの試験」や「新環境への移行期間」では有効に使う事ができます。 具体的な手法 今回は アド…

cutコマンドを使って羅列型のテキストデータを簡単に切り出す

前回の例と同様、サンプルデータsampledata.logを用意します。 data [alpha] data [beta] data [gamma] data [delta] deta [epsilon] 切り出す dでカラムを切り出す記号を選び、-f NUMで何番目を抽出するか決めます $ cut -d '[' -f2 sampledata.log | cut -…