1 | git clone git://git.sv.gnu.org/coreutils |
これで最新の ls や chown や kill などのソースが手に入ります。うれしいですね。
C言語の初学者や、オレオレutilsを作りたい方や、Macのcoreutilsを一からビルドしたい方に役立つTipsでした。
参考
Ubuntuで使われているcoreutilsのソースは、 apt-get source で入手可能とのことです。
上記参照。
1 | git clone git://git.sv.gnu.org/coreutils |
これで最新の ls や chown や kill などのソースが手に入ります。うれしいですね。
C言語の初学者や、オレオレutilsを作りたい方や、Macのcoreutilsを一からビルドしたい方に役立つTipsでした。
Ubuntuで使われているcoreutilsのソースは、 apt-get source で入手可能とのことです。
上記参照。
1分
cd と打ち間違えることで有名な dc 、 bc 、 $(()) 記法などを利用する。
# calcコマンド等は最初からではUbuntuに入っていないし、特に言及しない。
以下のようなfunctionを適当な .bashrc 類のファイルに定義しとくと、ただ数字を並べて全部の和を出したいときに楽。
1 2 3 4 5 6 7 8 9 10 | function tasu { [ $# -le 0 ] && return 1 ( echo $@ shift while shift do echo + done echo p ) | dc } |
1 2 3 4 5 | $ tasu 100 200 350 650 # 1~10の和 $ tasu `seq 1 10` 55 |
関数名については、 sum コマンドは既に存在するのでこんなことになった。あと、この関数は3分ぐらいで書いた。
僕はこのコマンドを家計簿つけるときに使ってますが、ふと思いついたんだけどコマンドライン家計簿ユーティリティってあると便利じゃね。一部の特殊な方々に。。。
サブコマンド付きのコマンドラインユューティリティを作成する際に便利そうなRubyライブラリがあった。
10月 7
Posted by udzura in Linux, Ruby | No Comments ![]()
![]()
![]()
![]()
![]()
1分
な、なに言ってるのかわかんねーと思うが(AA略
1 2 3 4 5 6 7 | $ sudo aptitude install ruby1.9.1 The following NEW packages will be installed: libreadline5{a} libruby1.9.1{a} libyaml-0-2{a} ruby1.9.1 ...... $ ruby1.9.1 -v ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] |
ruby1.9.2というパッケージは、1.9.1へのエイリアスとなっているようです。
1 2 3 4 5 6 7 8 | $ aptitude search ruby1.9 ...... p ruby1.9.1 - Interpreter of object-oriented scripting language Ruby 1.9.2 p ruby1.9.1-dev - Header files for compiling extension modules for the Ruby 1.9.1 p ruby1.9.1-elisp - Emacsen 用 ruby モード p ruby1.9.1-examples - Examples for Ruby 1.9 p ruby1.9.1-full - Ruby 1.9.1 full installation v ruby1.9.2 - |
ということなので、みなさん騙されないように気をつけましょう。そして安定版のRuby 1.9.2が大変簡単に使えるようになってうれしいですね(まとめ)。
5分
※ 以下の記事のシェル処理系はすべてbashです。
たとえば、自分で作った「DoHoge.rb」というバッチについて、「-d {日付}」という起動方法ができるんだけれど、60日前から今日までの日付を順に指定して起動したいなあ~ と思ったとき、僕はこうした。
seqコマンドで60~0の数字のセットを作る。
1 2 3 4 5 6 7 8 | $ seq 60 -1 0 60 59 58 57 56 #... 0 |
その出力をxargs経由でdateに噛ませて、日付のセットにする
1 2 3 4 5 6 7 8 | $ seq 60 -1 0 | xargs -i date -d -{}days +'%F' 2010-08-06 2010-08-07 2010-08-08 2010-08-09 2010-08-10 #... 2010-10-05 |
その出力をもう一回xargsに噛ませ、日数分のバッチ起動コマンドを生成
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ seq 60 -1 0 | xargs -i date -d -{}days +'%F' | xargs -t -i ./DoHoge.rb -d {} ./DoHoge.rb -d 2010-08-06 #…… ./DoHoge.rb -d 2010-08-07 #…… ./DoHoge.rb -d 2010-08-08 #…… ./DoHoge.rb -d 2010-08-09 #…… ./DoHoge.rb -d 2010-08-10 #…… #…… ./DoHoge.rb -d 2010-10-05 |
という記事を見かけた。言わんとするところは同じで、「標準入力というリストをコマンドでフィルタする感じがすごく関数型っぽい」ということだと思う。
一点、map相当はwhileとreadを組み合わせるのもいいけれど、やっぱりxargsとか、sedやawkでフィルタする方が、コード量も短いしそれっぽいんじゃないでしょうか、と思いました。
「yesは無限リスト」とかは本当にそんな感じな印象。
You are currently browsing the archives for the Linux category.
Arclite theme by digitalnature | powered by WordPress